Geometry THREE.js ImmediateRenderObject:共面三角形具有不同的着色?
我是一名计算机图形学初学者(有一学期的CG基础知识) 关于使用ImmediaterObject在THREE.js中着色(平滑和平坦)的一个问题: 为什么在平面和平滑着色中,共面三角形的着色方式不同?如下图所示,三角形具有正确的面法线(即,与三角形所在的平面垂直,它们是下图中的蓝色)。顶点法线看起来也是正确的(即,除了位于非常边界的顶点的顶点法线(下图中的红色顶点法线)外,顶点法线也垂直于平面) 我有一个菱形的几何体(作为一个即时对象),我从中减去底部的立方几何体(使用THREE.CSG) 在CSG操作之前和之后,共面三角形得到不同的着色,尽管面法线似乎完全正确(顶点法线在菱形的锐边上似乎不完全正确,但这不应影响顶部和不同侧面的共面部分) 知道为什么会发生这种情况吗?我能做些什么来获得正确的阴影??我真的很感激任何帮助 提前感谢!:) 以下是照片: 带平面明暗处理的完整菱形:Geometry THREE.js ImmediateRenderObject:共面三角形具有不同的着色?,geometry,three.js,Geometry,Three.js,我是一名计算机图形学初学者(有一学期的CG基础知识) 关于使用ImmediaterObject在THREE.js中着色(平滑和平坦)的一个问题: 为什么在平面和平滑着色中,共面三角形的着色方式不同?如下图所示,三角形具有正确的面法线(即,与三角形所在的平面垂直,它们是下图中的蓝色)。顶点法线看起来也是正确的(即,除了位于非常边界的顶点的顶点法线(下图中的红色顶点法线)外,顶点法线也垂直于平面) 我有一个菱形的几何体(作为一个即时对象),我从中减去底部的立方几何体(使用THREE.CSG) 在CS
带平面明暗处理的切割菱形顶部:如果它们的照明方式不同,是因为它们不完全在同一平面上。四元体在渲染时被拆分为两个三角形,如果这两个三角形不在同一平面上,它们的照明方式也不同。为感兴趣的人找到了解决我的问题的方法: 在使用ImmediateRenderObject时,我用顶点法线填充法线数组。现在,取而代之的是,我用面法线填充它们,这使它们变得平坦。但是,使用此解决方案,似乎不支持平滑着色。但它解决了我的问题
祝你好运!:) 但正如你在照片上看到的,它们在同一平面上,具有完全相同的面法线。因此,顶点法线似乎存在问题,而不是面法线。