使用几何着色器创建新的基元类型

Rav*_*ven 5 c++ opengl shader geometry glsl

是否可以从输入以外的几何着色器输出新的基本类型?我想输入一个点并渲染一个三角形.该点将仅用作此三角形的中心.如果没有,是否有其他选项只输入点并渲染该点定义的其他几何体?

在答案的帮助下,几何着色器就像我要求的那样(如果有人需要的话):

#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();
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*ica 4

是的,这是完全可能的,这就是几何着色器的用途。glProgramParameteri只需在应用程序中使用或直接在着色器中使用更现代的语法,将输入基元类型指定为点,将输出基元类型指定为三角形(或者更确切地说,三角形带,无论它是否只是一个三角形)layout