Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将反射率值传递给JSONLoader_Json_Three.js - Fatal编程技术网

将反射率值传递给JSONLoader

将反射率值传递给JSONLoader,json,three.js,Json,Three.js,我正在开发一个在Maya中制作场景的工作流,使用ThreeJSJSON导出器导出场景,并通过JSONLoader加载场景 我希望将其设置为可以将多个对象、材质和动画存储在一个JSON文件中,每个场景几乎不需要代码操作 现在我遇到了一个问题,一些材质需要使用环境贴图。事实上,这不是问题所在。问题是我找不到设置“反射率”值的好方法 目前,我已将其设置为,如果maya中的材质名称中有“Reflective”(反射),加载程序将自动应用环境贴图 loader.load( "./3Dobj

我正在开发一个在Maya中制作场景的工作流,使用ThreeJSJSON导出器导出场景,并通过JSONLoader加载场景

我希望将其设置为可以将多个对象、材质和动画存储在一个JSON文件中,每个场景几乎不需要代码操作

现在我遇到了一个问题,一些材质需要使用环境贴图。事实上,这不是问题所在。问题是我找不到设置“反射率”值的好方法

目前,我已将其设置为,如果maya中的材质名称中有“Reflective”(反射),加载程序将自动应用环境贴图

        loader.load( "./3Dobjects/Materials.js", function( geometry, materials ) {
            materials[ 0 ].morphTargets = true;
            for (var k in materials){
                materials[k].skinning = true;
            }

            //In Maya, add the word "Reflective" to any material that should have environment reflections.
            for(var i = 0; i < materials.length; i++){
                    if(materials[i].name.indexOf("Reflective")>-1 ){
                        materials[i].envMap = envTexBlurred;
                    }
            }

            jsonMesh = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial( materials ) );
            scene.add( jsonMesh );

            animation = new THREE.Animation( jsonMesh, geometry.animations[0] );
            animation.play();

        });
一般来说,我不太擅长Javascript或web开发。我是一个3D艺术家,如果这是一个非常基本的问题,我很抱歉。如何解析JSON文件以自动应用我添加到JSON文件中的任何反射率值?


<script>
json = [{
  "DbgName": "phongReflective", 
  "blending": "NormalBlending", 
  "colorAmbient": [
    0.0, 
    1.0, 
    0.0
  ], 
  "colorDiffuse": [
    1, 
    1, 
    1
  ], 
  "colorSpecular": [
    0.5, 
    0.5, 
    0.5
  ], 
  "reflectivity": 0.1,
  "depthTest": true, 
  "depthWrite": true, 
  "shading": "Phong", 
  "specularCoef": 20, 
  "opacity": 1.0, 
  "transparent": false, 
  "vertexColors": false
}];
console.log(json[0]["reflectivity"]);

//// OR

var reflectivity = json[0]["reflectivity"];


</script>
json=[{ “DbgName”:“phongReflective”, “混合”:“正常混合”, “彩色环境”:[ 0.0, 1.0, 0 ], “彩色漫反射”:[ 1. 1. 1. ], “彩色镜面反射”:[ 0.5, 0.5, 0.5 ], “反射率”:0.1, “深度测试”:正确, “depthWrite”:正确, “着色”:“Phong”, “镜面反射系数”:20, “不透明度”:1.0, “透明”:假, “顶点颜色”:错误 }]; log(json[0][“反射率]); ////或 var reflectivity=json[0][“reflectivity”];
Evan,如果答案有效,请接受,这样其他有类似问题的人也能从中受益。谢谢。由于JSON文件是一个巨大的独立文件(40mb),而不仅仅是我的主场景代码中的JSON内容,所以我最终没有使用它。请您澄清一下这个解决方案是如何实现的不顾一切地想知道如何将材质的镜像/反射值导出到three.js!!
<script>
json = [{
  "DbgName": "phongReflective", 
  "blending": "NormalBlending", 
  "colorAmbient": [
    0.0, 
    1.0, 
    0.0
  ], 
  "colorDiffuse": [
    1, 
    1, 
    1
  ], 
  "colorSpecular": [
    0.5, 
    0.5, 
    0.5
  ], 
  "reflectivity": 0.1,
  "depthTest": true, 
  "depthWrite": true, 
  "shading": "Phong", 
  "specularCoef": 20, 
  "opacity": 1.0, 
  "transparent": false, 
  "vertexColors": false
}];
console.log(json[0]["reflectivity"]);

//// OR

var reflectivity = json[0]["reflectivity"];


</script>