背景

OpenGL在渲染一个3D物体过程中,我们能看见的最多只有第三个面,其他的是看不到的,如果全部渲染出来,就会浪费性能,用某种方式去丢弃这部分看不到的面,就叫正背面剔除

正背面剔除

~需要解决的问题

1、如何知道某个面在观察者的视野中不会出现
任何平面都有两个面,意味着同一个时刻,你只会看到一个面,OpenGL可以做到检查所有正面朝向观察者的面,并渲染他们,从而丢弃背面朝向的面,这样可以节约片元着色器的性能,那么OpenGL是怎么检查正面朝向的呢,

OpenGL通过分析定点数据的顺序,可以知道你要绘制的图形,哪个面是正面,哪个面是背面,例如是正向画三角形,还是反向画三角形
OpenGL渲染技巧

正面:按照逆时针顶点连接顺序的三角形面
加粗样式背面:按照逆时针顶点连接顺序的三角形面

总结:
正面和背面是由三角形的顶点定义顺序和观察者方向共同决定的,随着观察者的角度方向的改变,正面背面也会跟着改变

OpenGL渲染技巧

正背面剔除的具体实现方案

OpenGL渲染技巧

相关文章: