我正在尝试修改看到here的ThreeJS材质示例,并且到目前为止已经相当成功地将其反向工程到我自己的极简主义演示中。
当我尝试修改材料时出现问题。
我已将mlib["Orange metal"]
更改为以下内容:
"Orange metal": new THREE.MeshLambertMaterial( {
map: carTexture,
envMap: skyBox,
combine: THREE.MultiplyOperation
} )
carTexture
是对以下内容的引用:
var carTexture = THREE.ImageUtils.loadTexture('texture/blue.jpg');
carTexture.wrapS = carTexture.wrapT = THREE.RepeatWrapping;
carTexture.repeat.set(3,3 );
carTexture.wrapS = THREE.RepeatWrapping;
carTexture.wrapT = THREE.RepeatWrapping;
虽然这改变了我的最终输出,但缺少纹理中的细节。
然而,如果我添加一个具有完全相同纹理的金牛座,我可以非常清楚地看到细节:
我玩过纹理文件的尺寸(高达几千%),以及MeshLambertMaterial的反射率,但根本无法看到任何变化。
答案 0 :(得分:1)
您的模型需要UV坐标
在这样的模型上,需要在3ds Max,Maya等3d软件中完成
如果您可以获得已经具有正确UV坐标设置的模型版本,则可以省去所有麻烦。
如果您以前从未这样做过,在这样的模型上设置UV坐标并不容易
另一种方法是在你的着色器中生成你的油漆片(不使用紫外线)而不是在纹理中(我很快就会尝试将它作为个人项目)。
HERE是有关在3ds Max中进行UV展开的一些YouTube视频