【发布时间】:2017-08-06 17:53:47
【问题描述】:
我正在尝试从文件中读取顶点和面信息并计算顶点法线。我已经阅读了很多其他答案,但我仍然不确定我是否理解。共识是顶点法线应该是周围面法线的平均值,这乍一看是有道理的。对于立方体,法线都应该是 45 度。那正确吗?因为只有当三角形以每个顶点共享 3 个或 6 个“面”的方式排列时,才会这样计算。
问题:
如果一个立方体有一个顶点,比如 4 个三角形,我应该以某种方式对它们进行加权,以使法线在 45 度处出现。或者我应该总结面部法线? OpenGL是否期望顶点法线向具有2个三角形的面倾斜更多?另外,我应该在求和之前对面部法线进行归一化吗?
【问题讨论】:
-
对于立方体,您不需要任何平滑法线。你想要硬边。
-
我正在从一个文件中读取,立方体只是一个例子,OPENGL 如何期望顶点法线?
-
OpenGL 没有对法线的外观定义任何限制。实际上,“正常”一词在当前的 OpenGL 4.5 规范中并没有以任何方式定义。您基本上可以根据最适合您的数据/最适合您的数据来计算它们。
-
@BDL 所以,如果我有一个带有 3 个周围多边形面的顶点,每个面由 2 个三角形组成......我们就说一个立体角。不管三角形如何排列,OpenGL 会做同样的着色吗?或者,如果 2 个面有 1 个三角形接触顶点,而第三个面被 2 个接触,这是否会以不同的方式绘制到相同形状的顶点(可以这么说)但被 3 个三角形(不是 4 个)接触?我认为前者是这样,但正如许多人所说的那样,平均面部法线也许三角形的数量确实会影响事物。
-
@immibis 是的,感谢您的贡献和其中的丰富信息。更不用说你的智慧了。