纹理看起来像一种平面颜色,缺乏图像细节,在三个 js 中
Texture looks like one flat color, lacking detail of image, in three js
我正在尝试修改看到的 ThreeJS 材料示例 here,并且到目前为止在将其逆向工程到我自己的极简演示中已经相当成功。
当我尝试修改材料时出现问题。
我已将 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 的反射率,但根本看不到任何变化。
您的模型需要 UV 坐标。
在这样的模型上,需要在3ds Max、Maya等3d软件中完成
如果你能得到一个已经设置了正确的 UV 坐标的模型版本,它将为你省去所有的麻烦。
如果您以前从未做过,那么在这样的模型上设置 UV 坐标并不是那么容易。
另一种方法可能是在着色器中(不使用 UV)而不是在纹理中生成油漆薄片(我很快就会自己在个人项目中尝试这样做)。
HERE 是一些关于在 3ds Max 中展开 UV 的 youtube 视频
我正在尝试修改看到的 ThreeJS 材料示例 here,并且到目前为止在将其逆向工程到我自己的极简演示中已经相当成功。
当我尝试修改材料时出现问题。
我已将 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 的反射率,但根本看不到任何变化。
您的模型需要 UV 坐标。
在这样的模型上,需要在3ds Max、Maya等3d软件中完成
如果你能得到一个已经设置了正确的 UV 坐标的模型版本,它将为你省去所有的麻烦。
如果您以前从未做过,那么在这样的模型上设置 UV 坐标并不是那么容易。
另一种方法可能是在着色器中(不使用 UV)而不是在纹理中生成油漆薄片(我很快就会自己在个人项目中尝试这样做)。
HERE 是一些关于在 3ds Max 中展开 UV 的 youtube 视频