文章目录
- 第九章 细分着色器
- 9.1 细分着色器
- 9.2 细分面片
- 9.3 细分控制着色器
- 9.3.1 生成输出面片的顶点
- 9.3.2 细分控制着色器的变量
- 9.3.3 细分的控制
-
- 9.4 细分计算着色器
- 9.4.1 设置图元生成域
- 9.4.2 设置生成图元的面朝向
- 9.4.3 设置细分坐标的间隔
- 9.4.4 更多的细分计算着色器layout选项
- 9.4.5 设置顶点的位置
- 9.4.6 细分计算着色器的变量
- 9.5 细分实例:茶壶
- 9.5.1 处理面片输入顶点
- 9.5.2 计算茶壶的细分坐标
- 9.6 更多的细分技术
- 9.6.1 视口相关的细分
- 9.6.2 细分的共享边与裂缝
- 9.6.3 置换贴图映射
第九章 细分着色器
9.1 细分着色器
- 顶点着色器的局限:顶点着色器在运行时无法创建新的几何体。它只是在处理当前顶点的过程中对其关联的数据进行更新而已,它甚至无法做到对图元中其他的顶点数据进行访问
- 细分着色器可以实现生成三角形模型网格等类型。面片(patch)是一种新的几何图元类型
- 细分着色在OpenGL管线中有两个着色阶段,用来生成几何图元的模型网格。
- 在顶点着色阶段,我们需要设置所有的线段或者三角形来构成处理的模型
- 而在细分阶段,首先要指定面片,也就是顶点的有序列表。当渲染面片的时候,将首先执行细分控制着色器,处理面片顶点,并设置面片中要生成多少几何数据。这是细分着色阶段一,细分控制着色器是可选的
- 当细分控制着色器结束后,第二个着色器,即细分计算着色器,将负责把生成网格的顶点放置到细分坐标指定的位置,并且将它们发送到光栅化阶段,或者发送给几何着色器进行更多的处理
- OpenGL会将细分控制着色器的输出传递给图元生成阶段,在其中生成几何图元的网格以及细分坐标,供细分计算着色器阶段使用。最后,细分计算着色器将每个顶点放置在最终网格的对应位置上
9.2 细分面片
- 细分过程并不会对OpenGL的经典几何图元类型进行
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!