gpt4 book ai didi

glsl - GLSL ES 中的统一与属性

转载 作者:行者123 更新时间:2023-12-03 09:10:03 30 4
gpt4 key购买 nike

我有一些参数从 CPU 传递到 GPU,这些参数对于所有片段都是恒定的,但在每一帧上都会发生变化(我使用的是 GLSL ES 1.1)。对于这些值,我应该使用制服还是属性?属性可能因顶点而异,所以我的直觉是,将属性用于在整个框架中保持不变的值将是低效的。但是,我读过制服适用于“相对不经常”更改的值,这表明在每一帧上更改制服可能效率低下。

在硬件方面,我最感兴趣的是针对 iPhone 4S 进行优化。

最佳答案

我投票给制服。

您的问题中已经解释了原因之一:制服是每个顶点/片段的常量。

更喜欢制服而不是属性的其他原因是:

  • 可用插槽的数量(允许有 16 个属性,但有更多制服)
  • GLSL 编译器可以优化统一值处理
  • 长顶点数组上的数据流越少,每个顶点的属性越少意味着更好的性能。
  • 统一在片段着色器中可用,无需在顶点着色器和片段着色器之间定义不同的属性
  • 制服可以是结构和数组,从而使代码更具可读性。
  • 关于glsl - GLSL ES 中的统一与属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11158223/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com