当前位置: 首页 > 工具软件 > Three-rs > 使用案例 >

一不小心就深陷的threejs坑-为什么Mesh总是黑色的?

许昆
2023-12-01

从其他软件导了一些面,组成了Mesh放到你的Scene里面。


你的颜色也设置了,光源也加了,还加得特别亮,材质Material也设置了,甚至还设置成了白色!,甚至组成Geometry的各种Color全者改成了白色!但是无论怎么设置,你的Mesh像黑洞一般,十分的黑,连反光都没有。


那基本可以肯定,是你的Mesh没有法向量。没有法向量!每一个三角面都没有法向量!


法向量增加的方法有好多种。比如


1、 geometry.computeFaceNormals();

 

2、   

 computeFaceNormalsmi: function(vA , vB, vC ) {

// vA vB  vC 是THREE.Vector3

        var cb = new THREE.Vector3(),

            ab = new THREE.Vector3();
       

        cb.subVectors(vC, vB);

        ab.subVectors(vA, vB);

        cb.cross(ab);


        cb.normalize();

        return cb;


    },

 

 类似资料: