0

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 上查看我的项目:

太棒了。

4

0 回答 0