Three.js
我正在尝试在我的基础项目中使用临时太空船模型。该模型具有颜色、凹凸、镜面反射和光照贴图。
所以,我的问题是:
- 凹凸贴图看起来很奇怪/错误。你可以在这里查看结果。船槽看起来太深了,船底的槽太亮了。
我做错了什么?我正在使用创建对象SceneLoader
,加载.obj
文件和纹理。以下是 JSON 文件的一些片段。
目的:
"ship" : {
"type": "obj",
"url" : "res/object/ship/space_frigate_6.obj",
"material": "ship",
"position": [0, 0, 0],
"rotation": [0, 4.71, 0],
"scale": [0.08, 0.08, 0.08],
"visible": true
}
材料:
"ship": {
"type": "MeshPhongMaterial",
"parameters": {
"map": "ship_color",
"bumpMap": "ship_bump",
"specularMap": "ship_specular",
"bumpMap": "ship_bump",
"bumpScale": 1
}
}
纹理:
"ship_color": {
"url": "res/texture/ship/space_frigate_6_color.jpg",
"anisotropy": 4
},
"ship_bump": {
"url": "res/texture/ship/space_frigate_6_bump.jpg",
"anisotropy": 4
},
"ship_specular": {
"url": "res/texture/ship/space_frigate_6_specular.jpg",
"anisotropy": 4
}
这是纹理的问题还是我做错了什么?
- 光照贴图不起作用:
我以与另一个相同的方式加载光照贴图纹理,并将其添加到材质中。我有一个GL_INVALID_OPERATION
,但是好的,我在这里找到了一个解决方案。我试过了,把它放在代码中'obj.children[0].geometry.faceVertexUvs[1] = obj.children[0].geometry.faceVertexUvs[0]',但没有成功。屏幕上只有一艘黑色的船。
我需要做什么才能进行光照贴图工作?
你可以在GitHub 上查看我的项目:
太棒了。