渲染管道(2)几何阶段四“几何着色器”

1. 几何着色(Geometry Shader)

可编程,可选的阶段。

将输入的点或线扩展成多边形,可以将一个或多个顶点转变为完全不同的基本图形(或称为图元),从而生成比原来多得多的顶点。

eg. 可以通过让每个三角形创建线边,将三角形网格转换为线框。或者,可以将这些线替换为面向观察者的四边形,从而使线框渲染的边缘更厚。

输入信息:完整的图元(比如,点),为图元(点,线,三角面)
输出信息:一个或多个其他的图元(比如,三角面),或者不输出任何的图元。

  • 可以对顶点进行增删改操作
  • 并行程度低,调用硬件困难,性能比顶点着色器差很多

2. 用处

2.1 粒子系统

粒子系统的实现便是使用的GS。在 Dx10 被引入, 在图元外添加(tesselation 为图元内添加)额外的 vertex, 将原始图元转为新图元, 构建不一样的模型

  • 使用一个 vertex 代表一个粒子
  • 在该阶段将每个 vertex 拓展成两个三角形以形成一个正方形
  • 可以使用几何着色器来决定下一个粒子的位置, 新建一个 vertex

2.2

  • 有效地创建级联阴影图以生成高质量的阴影。
  • 沿着轮廓拉伸进行毛发渲染以及找到对象边缘。
  • 可以为一个模型进行蒙皮,然后再次使用蒙皮后的顶点

eg. 左边为metaball, 中间“利用 GS和流输出进行线段分形细分,利用GS生成闪电”, 布料模拟是“使用顶点和几何着色器的Stream Output来实现”
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/thefist11cc/article/details/124114651