我有下面的圆柱体,我在opengl中绘制蠕虫,我想计算顶点法线。如何计算圆柱的顶点法线?
0
A
回答
2
法线计算,每面(三角形),并保存在某个地方吧。现在,对于每个顶点,您都有几个共享顶点的面(典型情况是6张图片)。您的最终顶点法线是面部法线的平均值。对于6个面,你算算:
int faceCount = 6;
float sum = 0.0f;
for(int face = 0; face < faceCount; ++face)
sum += faceNormals[face].x;
normal.x = sum/faceCount;
// and so on for y and z
不要忘了标准化得到的载体,所以它的长度为1
注意:不要把faceNormals
在一个这样的数组。在一个真实的代码中,你可能希望有一个类似于所有法线的容器和一些逻辑来说明哪个法线与哪个顶点相关。
3
对于缸环上的每一个点,vertexNormal = normalize(vertexPosition - ringCenter);
或者你也可以正常计算它们,在正常进行归一化所有的和面法线包含此顶点每个人脸上。
+1
使用上述公式在创建顶点的同时为每个顶点创建一个法线。这将适用于所述的气缸。 – 2014-03-21 16:58:28
相关问题
- 1. 计算顶点法线
- 2. 圆柱算法
- 3. 计算网格的顶点法线
- 4. 如何计算圆柱体“顶部”圆心,给定旋转角度?
- 5. 从圆上的点计算切线?
- 6. Python:计算圆柱体的表面积
- 7. 计算顶点法线fron法线贴图
- 8. 如何计算3D圆的切线?
- 9. 圆柱类计算显示0.0
- 10. 如何计算椭圆弧的点
- 11. 如何计算中点顶点?
- 12. 如何用CGAL计算线段和圆的交点
- 13. 如何使用circle.java来计算圆柱的getVolume。 [2班]
- 14. 圆柱算法的奇怪之处
- 15. 圆点算法?
- 16. 计算两个圆上两点之间的切线圆弧
- 17. 计算椭圆上的点
- 18. 计算一个球体的顶点法线
- 19. 计算曲面和顶点法线的C#代码片段
- 20. 准备虚线圆的顶点数据
- 21. 从3D噪声计算每个顶点法线
- 22. 用于计算圆柱体圆柱体矩形的体积,方法超载更容易去这个
- 23. 如何计算曲线上的点?
- 24. 计算通过中心的圆与线的交点
- 25. 什么算法用于计算具有浮点半径的圆?
- 26. 计算最适合椭圆的线条
- 27. 在几何圆顶上存储顶点
- 28. 计算椭圆和线的交点处理中
- 29. 计算一个圆上两个切线的交点?
- 30. 用SAGE计算椭圆曲线上一个点的y坐标?
这个实际上应该工作吗?对于我的测试它似乎并没有工作......这就是我所做的:'normal.x =(V1.x + V2.x + V3.x)/ 3.0f'(对于三角形),然后我最后归一化。我做错了什么? – Rookie 2012-03-02 15:36:20
@Rookie这不是一个从顶点计算三角法线的公式。为此,您需要[跨产品](http://en.wikipedia.org/wiki/Cross_product)。我的答案是关于平均几个法向量。 – Fiktik 2012-03-02 18:33:06
对不起,我误解了你,因为我理解OP要求如何计算法线,而不是如何计算平滑法线...... – Rookie 2012-03-02 18:55:39