一、几何着色器
介绍
几何着色器处于顶点着色器与片元着色器之间。
输入:顶点着色器的输入是一个图元的一组顶点。
输出:在几何着色器中可以对这些顶点进行变换,并且可以输出成不同的图元,甚至产生更多的顶点。
例子
#version 330 core
layout (points) in;
layout (line_strip, max_vertices = 2) out;
void main() {
gl_Position = gl_in[0].gl_Position + vec4(-0.1, 0.0, 0.0, 0.0);
EmitVertex();
gl_Position = gl_in[0].gl_Position + vec4( 0.1, 0.0, 0.0, 0.0);
EmitVertex();
EndPrimitive();
}
(1)图元类型
在几何着色器顶部需要声明输入和输出的图元类型。并且需要指定需要生成多少个输出点,使用"max_vertices"限定符可以让OpenGL提前预分配内存来存储输出图元数据,并且可以优化内存分配和性能。超过指定数量的顶点将会被丢弃。
可输入的图元类型:
points |

文章详细介绍了OpenGL中的几何着色器,它在顶点着色器和片元着色器之间起作用,允许开发者对图元进行操作,如将点转换为线。还展示了如何使用几何着色器实现爆破效果,通过计算每个三角形面片的法向量并应用位移来模拟爆炸。此外,还讨论了法向量的可视化,将三角形的法向量以线条形式呈现。
最低0.47元/天 解锁文章
339

被折叠的 条评论
为什么被折叠?



