OpenGL几何着色器(geometry shader)

OpenGL几何着色器(geometry shader)

除了顶点着色器(vertex shader)和片元着色器(fragment shader).

OpenGL还提供了一个可选的几何着色器(geometry shader). 其位于顶点着色器和几何着色器之间.

  • 如没有使用几何着色器,则顶点着色器输出到片元着色器.
  • 若使用几何着色器,顶点着色器输出组成一个基础图元的顶点信息到几何着色器,经过几何着色器处理后,再输出到片元着色器. 几何着色器能够产生0个以上的基础图元(Primitive),它能起到一定的裁剪作用.同时也能产生比顶点着色器输入更多的基础图元.

几何着色器的基本概念

几何着色器在启用后,它将获得顶点着色器以组成一个基础图元为一组的顶点输入,通过对输入的顶点进行处理,几何着色器将决定输出的图元类型和个数.

在几何着色器中in和out分别指示了输入的图元,和输出的图元等参数.

几何着色器输入模式顶点着色器输入顶点最少个数
pointsGL_POINTS1
linesGL_LINES, GL_LINE_LOOP, GL_LINE_STRIP2
trianglesGL_TRIANGLES, GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP3
lines_adjacencyGL_LINES_ADJACENCY,GL_LINE_STRIP_ADJACENCY4
triangles_adjacencyGL_TRIANGLES_ADJACENCY,GL_TRIANGLE_STRIP_ADJACENCY6

同时从几何着色器输出模式,则有3种:

  • points
  • line_strip
  • triangle_strip

这3种模式基本包含了所有绘图类型,例如triangle_strip就包含了triangle这种特例。max_vertices表示从几何着色器最多输出顶点数目,如果超过设定的这个数目,OpenGL不会输出多余的顶点。

几何着色器中EmitVertex表示输出一个顶点,EndPrimitive表示结束一个图元的输出,这是一对命令

参考文献

OpenGL几何着色器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值