【发布时间】:2013-07-15 18:46:12
【问题描述】:
我已经搜索了互联网,但我没有找到这个问题的正确答案。我注意到很多人都有同样的想法。
我有一个从 3D max 导出的 JSON 文件,其中包含 UV 信息。 我正在尝试加载带有应用于 Three.js 的 DDS 图像的 JSON 文件。 (使用 THREE.ImageUtils.loadCompressedTexture) DDS 图像是从 Photoshop 导出的。
图像正在加载到对象上,但它正在被拉伸(我认为这是由于 DDS 文件不再是矩形,因为它包含多个 mipmap)。
如何告诉 three.js 使用的图像是 DDS 文件?
提前谢谢你。
我整理了一个现场演示。这是链接:http://aeche.eu/DDS/DDS.html 左侧可以看到正确使用的JPG文件,右侧可以看到DDS文件。
这是原始 JPG 图片:http://aeche.eu/DDS/art/cubeJPG.jpg
这是使用 DDS 文件的多维数据集的代码:
var map1 = new THREE.ImageUtils.loadCompressedTexture('art/cubeDDS.dds');
{
jsonLoader.load( "art/cube2.js", addCubeDDS );
function addCubeDDS( geometry, materials ) {
var material = new THREE.MeshPhongMaterial( {map: map1} );
cube1 = new THREE.Mesh( geometry, material );
cube1.position.x = 66;
scene.add( cube1 );
}
【问题讨论】:
-
我认为 jsFiddle 或其他现场演示对您的情况特别有帮助
-
我没有看到任何“拉伸”。我确实看到了黑色的面孔。我相信这是因为嵌入式 DDS mipmap 是颠倒的(或者在 three.js 中存在一个错误)。 “告诉three.js该图像是DDS文件”是什么意思?
标签: json mapping three.js mipmaps dds-format