4

我对使用 Three.js 并从我自己的模型格式分别编写一个导出器到 JSON 模型格式非常陌生。使用 Three.js 加载的场景格式。我不明白材料 JSON 规范的差异。使用 Three.js JSONLoader 材质规范必须像这样定义颜色: ... "colorAmbient":[0.0, 0.0, 0.0], "colorDiffuse":[0.0, 1.0, 0.0], ... 。我试过“colorDiffuse”:65280,但这不起作用。使用 JSONLoader 也不考虑“colorSpecular”参数。当我在 Firebug 中检查加载的结果时,我只看到正确加载了环境和漫反射颜色。相比之下,Three.js 的 JSON 场景格式使用如下参数列表定义材质:

"phong_skin": {
"type": "MeshPhongMaterial",
"parameters": { "color": 0, "ambient": 0, "specular": 16777215, "shininess": 50, ... }},

为什么场景和对象 JSON 格式在材质规格上如此不同?高光颜色和高光系数呢?我错过了什么?

我的简单 JSON 文件(代表飞机):

{
    "faces": [40,0,1,2,0,1,2,0,1,2,40,3,4,5,3,4,5,3,4,5],

    "materials":[{
        "DbgColor":15658734,
        "DbgIndex":0,
        "DbgName":"_global_FLOOR_MAT",
        "colorAmbient":[0.0, 0.0, 0.0],
        "colorDiffuse":[0.0, 1.0, 0.0],
        "colorSpecular":[1.0, 1.0, 0.0],
        "opacity":1,
        "specularCoef":128,
        "transparent":false,
        "wireframe":false,
        "blending" : "NormalBlending"
        }],

    "metadata":{
        "formatVersion":3.1,
        "generatedBy":"My Exporter"},

    "normals":[0,-0,1,0,-0,1,0,-0,1,0,-0,1,0,-0,1,0,0,1],
    "scale":1,
    "uvs":[[0,-193.333,0,-0,58,-0,0,-193.333,58,-0,58,-193.333]],
    "vertices":[0,1160,0,0,0,0,1160,0,0,0,1160,0,1160,0,0,1160,1160,0]
    }
4

0 回答 0