gpt4 book ai didi

c++ - 在 OpenGL 引擎中组织 GLSL 着色器

转载 作者:IT老高 更新时间:2023-10-28 12:34:41 24 4
gpt4 key购买 nike

哪个更好?

  1. 拥有一个包含大量制服的着色器程序指定要使用的灯光或要执行的映射(例如,我需要一个网格进行视差映射,另一个网格进行视差/镜面反射)。我会为惰性传输制作一个缓存的制服列表,如果需要的话,只需为每个下一个网格更改几个制服。

  2. 为每个需要的情况提供大量着色程序,每个都有少量的制服,并为每个网格使用 glUseProgram 进行惰性绑定(bind)如果它需要这样做。在这里,我假设网格已正确批处理,以避免冗余切换。

最佳答案

我知道的大多数现代引擎都有“着色器缓存”并使用第二个选项,因为它显然更快。

您还可以查看允许动态链接的 ARB_shader_subroutine。但我认为它只适用于 DX11 类硬件。

关于c++ - 在 OpenGL 引擎中组织 GLSL 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649801/

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