除了输入之外,是否可以从几何着色器输出新的图元类型?我想输入一个点并渲染一个三角形。该点将用作此三角形的中心。如果没有,是否有其他选项可以仅输入点并渲染由该点定义的其他一些几何体?
在 answer 的帮助下,几何着色器正在做我要求的事情(如果有人需要的话):
#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();
}
最佳答案
是的,这是完全可能的,这就是几何着色器的用途。只需在应用程序中使用 glProgramParameteri
或使用更现代的 layout
语法直接在着色器中。
关于c++ - 使用几何着色器创建新的图元类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7518611/