2013-07-17 50 views
0

我搜索了互联网,但没有找到适合此问题的正确答案。我注意到很多人都在问同样的想法。Three.js DDS Json紫外线贴图问题

我有一个从3D max导出的包含UV信息的JSON文件。 我试图加载应用到Three.js中的DDS图像的JSON文件。 (使用THREE.ImageUtils.loadCompressedTexture) DDS图像是从Photoshop中导出的。

图像被加载到对象,但它被拉伸(我认为这是一个事实,即DDS文件不是长方形了,因为它包含几个的贴图引起的)。

如何判断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); 
} 
+0

我想的jsfiddle或其他现场演示将有助于特别是在你的情况我 – yaku

+0

没有看到任何“伸展”。我确实看到黑色的脸。我相信这是因为嵌入式DDS mipmap是颠倒的(或者在three.js中存在一个bug)。你是什​​么意思“告诉three.js该图像是一个DDS文件”? – WestLangley

回答

1

谢谢大家对你的答案。我想到了。图像导出到DDS之前,我必须垂直翻转它和它的作品