使用几何着色器创建新的基元类型
Posted
技术标签:
【中文标题】使用几何着色器创建新的基元类型【英文标题】:using geometry shader to create new primitives types 【发布时间】:2011-09-22 16:59:58 【问题描述】:是否可以从几何着色器输出新的原始类型而不是输入?我想输入一个点并渲染一个三角形。该点将用作该三角形的中心。如果没有,是否有其他选项可以仅输入点并渲染由该点定义的其他几何图形?
在答案的帮助下,几何着色器正在做我所要求的(如果有人需要的话):
#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();
【问题讨论】:
【参考方案1】:是的,这是完全可能的,这就是几何着色器的用途。只需在应用程序中使用 glProgramParameteri
或直接在着色器。
【讨论】:
请注意,您实际上无法选择语法。或者更确切地说,您对语法的选择取决于您使用的是几何着色器的扩展版本还是核心功能。不要试图将两者混为一谈。 @Nicol 我实际上还没有使用几何着色器。感谢您的澄清。以上是关于使用几何着色器创建新的基元类型的主要内容,如果未能解决你的问题,请参考以下文章