纹理看起来像一个扁平的颜色,缺乏图像的细节,在三个j

时间:2016-08-13 01:03:40

标签: three.js textures

我正在尝试修改看到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;

虽然这改变了我的最终输出,但缺少纹理中的细节。

供参考:这是纹理文件:
Metetalic flake texture
其中明显具有金属片状纹理。

同时我的最终产品看起来像这样:
enter image description here
完全顺利。

然而,如果我添加一个具有完全相同纹理的金牛座,我可以非常清楚地看到细节:

with taurus

我玩过纹理文件的尺寸(高达几千%),以及MeshLambertMaterial的反射率,但根本无法看到任何变化。

1 个答案:

答案 0 :(得分:1)

您的模型需要UV坐标 在这样的模型上,需要在3ds Max,Maya等3d软件中完成 如果您可以获得已经具有正确UV坐标设置的模型版本,则可以省去所有麻烦。
如果您以前从未这样做过,在这样的模型上设置UV坐标并不容易 另一种方法是在你的着色器中生成你的油漆片(不使用紫外线)而不是在纹理中(我很快就会尝试将它作为个人项目)。

HERE是有关在3ds Max中进行UV展开的一些YouTube视频