【发布时间】:2013-04-07 11:10:53
【问题描述】:
我正在探索相对较新的功能 GL_ARB_separate_program_object。我理解的是我必须创建一个管道对象,该对象应该包含来自阶段的着色器,这些着色器通过映射到那里 glUseProgramStages
这让我想到了使用多个着色器的两种可能性:
1.使用来自一次映射到每个管道的变体顶点/片段着色器对(暂时不使用其他着色器类型)创建多个管道。
2.创建单个管道并在运行时使用
将映射切换到不同的着色器glUseProgramStages
我最关心的是性能。哪个选项更适合性能?
【问题讨论】:
-
你都测量了吗?另外,我认为您应该存储 Pipeline 对象,因为它们相对便宜,不是吗?
-
我今天实施了这个系统,没有发现性能下降。但需要看看频繁的管道对象更新是否有影响