【问题标题】:Can I export triangles instead triangle strip in geometry shader?我可以在几何着色器中导出三角形而不是三角形条吗?
【发布时间】: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


【解决方案1】:

我的错误,似乎可以在每个指定的三角形序列之后使用 EndPrimitive() 在几何着色器中导出独立的三角形。这似乎更加强大。三角形条带和独立三角形都可以从单个着色器创建,而无需更改几何输出类型。

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 2018-08-27
    • 2018-01-05
    • 2015-01-06
    • 2021-05-02
    • 2016-09-12
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多