《OpenGL编程指南》 笔记九 细分着色器

文章目录

  • 第九章 细分着色器
    • 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的经典几何图元类型进行


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部