《OpenGL编程指南》 笔记十 几何着色器

第十章 几何着色器

  • 在逻辑上几何着色器位于图元装配和片元着色之前
  • 几何着色器接受的输入是一系列顶点组成的完整的图元,并且这些输入全部是数组的形式。通常来说这些输入数据来自于顶点着色器
  • 如果激活细分着色器,那么几何着色器的输入将来自细分计算着色器的结果。因为几何着色器的每个请求都负责处理一个完整的图元,所以我们可以访问这个图元的所有顶点,进而实现一些专门的技巧
  • 除了增强多顶点访问属性之外,几何着色器还可以控制输出数据的数量。如果输出的总量为0,那么几何体将被自动裁剪,如果输出的顶点数比原始图元要多,那么相当于进行了几何体细化的操作
  • 几何着色器还可以产生与输入数据不同的输出图元类型,也就是在管线过程中改变几何体的类型
  • 几何着色器可以接收4种特殊的图元类型作为输入
  • 几何着色器可以与transform feedback共同使用,将输入的顶点数据流切分为多个子数据流

10.1 创建几何着色器

  • 着色器的创建调用glCreateShader(),着色器类型参数传GL_GEOMETRY_SHADER
  • 着色器源代码使用glShaderSource()函数传递,然后使用glCompileShader()编译着色器程序
  • 一个程序对象可以关联多个几何着色器,当程序完成链接之后,被关联的几何着色器将会链接一个GPU上运行的可执行程序。如果启用已经带有几何着色器的程序对象,那么几何着色器将会对OpenGL产生的每个图元进行处理。这样的图元包括点、线、三角形,或者特殊的邻接图元类型
  • 几何着色器位于光栅化和片元着色阶段之前
  • 几何着色器的输出可以通过transform feedback的方式捕获,并且我们通
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值