是否可以从输入以外的几何着色器输出新的基本类型?我想输入一个点并渲染一个三角形。该点将仅用作此三角形的中心。如果没有,是否有其他选项只输入点并渲染该点定义的其他几何体?
在答案的帮助下,几何着色器就像我要求的那样(如果有人需要的话):
#version 120
#extension GL_EXT_geometry_shader4 : enable
layout(points) in;
layout(triangle_strip) out;
void main()
{
gl_Position = gl_in[0].gl_Position;
EmitVertex();
gl_Position = gl_in[0].gl_Position+vec4(1,0,0,0);
EmitVertex();
gl_Position = gl_in[0].gl_Position+vec4(0, 1, 0, 0);
EmitVertex();
EndPrimitive();
}
答案 0 :(得分:4)
是的,这是完全可能的,这就是几何着色器的用途。只需使用应用程序中的glProgramParameteri
或使用更现代的layout
,将输入基元类型指定为点,将输出基元类型指定为三角形(或者更确切地说是三角形条,无论它是否只是一个三角形)语法直接在着色器中。