opengl - 由于OpenGL可以执行内置的背面剔除,它必须计算顶点法线;可以访问这些而不是将它们作为属性发送吗?
问题描述
想了解这一点;目前尚不清楚为什么您必须上传法线,但同时尊重正常计算的缠绕顺序。
解决方案
您在渲染命令中给 OpenGL 的所有顶点都按特定顺序排列。对于数组渲染,这意味着数组中顶点的顺序,由绘图命令指定。对于索引渲染,它是您从中渲染的索引值范围内的索引的顺序。实例化渲染定义每个实例的顶点发生在前一个实例的顶点之后。等等。
三角形的图元组装系统采用此顶点序列并将其分解为三角形,具体取决于您渲染的图元类型。这意味着图元组装系统输出的每个顶点相对于该三角形的其他顶点都有一个顺序;一个顶点首先出现,然后是另一个,然后是第三个。
由于三角形只有 3 个顶点,因此光栅化器有两种方法可以查看此顺序。顶点可以顺时针环绕三角形,也可以逆时针环绕,如屏幕空间所示。这是三角形的缠绕顺序:从屏幕空间看,顶点的明显顺序。
它是用于确定面剔除工作方式的缠绕顺序,而不是正常顺序。GPU 从不计算顶点法线。或任何类型的法线。
推荐阅读
- vba - Excel VBA中长除法溢出6错误(可能的错误)
- apache-nifi - Nifi - 无法在 LookupRecord 中找到架构
- html - 如何使用引导程序使页脚文本居中,右侧有两个图像?
- python - 赋值前引用的局部变量's'
- html - 是否可以仅使用 CSS 脚本将一个部门移动到另一个部门内?
- c++ - 2D std::array ,堆栈溢出异常
- android - 改造入队突然停止和退出
- c# - UWP:以编程方式获取控件绑定对象的引用
- delphi - Delphi Indy idHTTP 导致 Mac 应用程序退出
- r - 如何将平均值添加到分组的 bwplot Lattice R