GS函数为每一个图元执行一次,一次GS函数执行可以输出0…n个图元
#version 430 layout(triangles) in; //输入图元类型 layout(triangle_strip,max_vertices = 256) out; //输出图元类型 /*---------------------内置输入变量--------------------- in int gl_PrimitiveIDIn; //图元索引 in gl_PerVertex { vec4 gl_Position; float gl_PointSize; float gl_ClipDistance[]; } gl_in[]; -----------------------------------------------------*/ /*---------------------内置输出变量--------------------- out int gl_PrimitiveID; out vec4 gl_Position; out float gl_PointSize; out float gl_ClipDistance[]; -----------------------------------------------------*/ //自定义输入 in vec2 uvInGS; //自定义输出 out vec2 uvInFS; void main() { for each primitive { for each vertex { gl_Position = ... uvInFS = ... EmitVertex(); //为当前图元添加一个顶点 } EndPrimitive(); //结束当前图元 } }
几何着色器
最新推荐文章于 2022-02-24 08:00:00 发布