【发布时间】:2012-09-08 01:26:37
【问题描述】:
是否有可能只从几何着色器导出三角形而不是三角形条?这带来了一些有趣的可能性。 OpenGL 3.3。
glProgramParameteriARB(mVoxelShd, GL_GEOMETRY_OUTPUT_TYPE_ARB, GL_TRIANGLE_STRIP);
指定shader的巫婆输出模式。如果我尝试:
glProgramParameteriARB(mVoxelShd, GL_GEOMETRY_OUTPUT_TYPE_ARB, GL_TRIANGLES);
它编译和工作正常,但它的表现形式与三角形条相同。
还有 GLSL 语言规范 3.3:
几何着色器输出的布局限定符标识符是
- layout-qualifier-id
- 点
- line_strip
- triangle_strip
- max_vertices = 整数常量
这里似乎没有“三角形”。
【问题讨论】:
-
请注意,
glProgramParameteriARB不是 3.3。这不是 3.3 的工作方式。那是ARB_geometry_shader4,和核心Geometry Shaders不一样。 -
这是一个有用的观察。这意味着语言规范对于核心功能来说大部分是正确的,而 ARB 和 EXT 可以采用不同的规则?
-
只有core extensions 需要具有与核心功能完全相同的语义和功能。对于所有其他扩展,核心功能没有与扩展版本相匹配。 GLSL 在 ARB_shader_objects 和 GL 2.0 版本之间发生了显着变化。
标签: opengl glsl shader geometry-shader