2013-04-17 79 views
2

我正在加载从Rhino导出的STL。所有的作品都可以,但是,当我尝试将简单的纹理应用到网格时,STL对象根本不会被渲染。three.js将纹理应用到stl网格

我缺少什么

代码如下:

var diamondTexture = THREE.ImageUtils.loadTexture('images/diamond.jpg'); 
... 
var loader = new THREE.STLLoader(); 
loader.addEventListener('load', function (event) { 

    var geometry = event.content; 
    stones = new THREE.Mesh(geometry, new THREE.MeshPhongMaterial({color:0x99CC3B, ambient:0x99CC3B, map:diamondTexture})); 

    scene.add(stones); 

}); 
loader.load('models/jwl0020-stones.stl'); 
+1

问题是,据我所知,STL不存储UV。我们没有紫外线发生器,所以你必须自己创建它们。 – mrdoob

回答

1

你可以尝试geometry.computeTangents()。一旦我添加了我的stl文件能够有纹理虽然...纹理不正确“适合”模型,因为没有紫外线。