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
Javascript 我的对象不是';t以3.js反射光线_Javascript_Three.js - Fatal编程技术网

Javascript 我的对象不是';t以3.js反射光线

Javascript 我的对象不是';t以3.js反射光线,javascript,three.js,Javascript,Three.js,我在three.js场景中使用了一些基于立方几何的网格,它们都反映了我全局使用的点光源。但是其中的一个是由“手工”制作的,只有三个。几何体(通过代码添加顶点和面)并没有反映出来。即使它没有颜色,我也只能为它设置颜色,如果我在MeshPhongMaterial上将THREE.color设置为“emissive”键 由JS函数自动生成的几何体。我正在使用这个litghs: pointLight = new THREE.PointLight(0xFFFEF0, 1, 100000) p

我在three.js场景中使用了一些基于立方几何的网格,它们都反映了我全局使用的点光源。但是其中的一个是由“手工”制作的,只有三个。几何体(通过代码添加顶点和面)并没有反映出来。即使它没有颜色,我也只能为它设置颜色,如果我在MeshPhongMaterial上将THREE.color设置为“emissive”键

由JS函数自动生成的几何体。我正在使用这个litghs:

    pointLight = new THREE.PointLight(0xFFFEF0, 1, 100000)
    pointLight.position = camera.position;
    scene.add(
        pointLight
    );  
我正在用以下代码创建所提到的网格:

        var floor = new THREE.Mesh(
            ShelfArchitect.Utils.getFloorGeometry(walls), 
            new THREE.MeshPhongMaterial(materialParams)
        );

我应该在materialParams上添加一些内容?或者问题出在哪里?

听起来“手”制作的几何体缺少顶点法线,或者顶点法线不正确

您可以这样做:

geometry.computeFaceNormals();
geometry.computeVertexNormals();

我只是创建了几何体宽度var geom=new THREE.geometry();,并添加一些带有geom.vertices.push(…)的顶点,以及一些带有geom.faces.push(…)的面。接下来我还应该做什么?在您回答之后,我尝试调用geom.computeVertexNormals(),但它仍然不起作用。谢谢你
computeVertexNormals()
首先需要
computeFaceNormals()
。非常有效。非常感谢。