gpt4 book ai didi

opengl - 查明 GL_TEXTURE_2D 是否在着色器中处于事件状态

转载 作者:行者123 更新时间:2023-12-04 00:47:33 25 4
gpt4 key购买 nike

我想知道 GL_TEXTURE_2D 在着色器中是否处于事件状态。

我将颜色绑定(bind)到着色器以及事件纹理(如果设置了 GL_TEXTURE_2D)并且需要将这两者结合起来。

因此,如果绑定(bind)了纹理,则混合颜色和纹理(sampler2D * color),如果没有绑定(bind)纹理,则使用颜色。

或者我应该采取另一种方式来解决这个问题?

最佳答案

'GL_TEXTURE_2D 处于事件状态'或'GL_TEXTURE_2D 已设置'的意思还不太清楚。

请注意以下事项:

  • glEnable(GL_TEXTURE_2D)对您的(片段)着色器没有影响。它将您刚刚通过使用片段着色器替换的管道的固定功能部分参数化。
  • 没有“直接”/“干净”的方式可以从 GLSL 着色器内部判断是否存在绑定(bind)到与纹理采样器关联的纹理单元的有效纹理(据我所知)。
  • 从 GLSL 1.3 开始,您可能会幸运地使用 textureSize(sampler, 0).x > 0检测是否存在与采样器相关的有效纹理,但这可能会导致未定义的行为。
  • ARB_texture_query_levels扩展确实明确指出 textureQueryLevels(gsampler2D sampler)如果没有与采样器关联的纹理,则返回 0。

  • 你应该采取另一种方式吗?我是这么认为的:与其在着色器中做出决定,不如简单地绑定(bind)一个 1x1 像素的“白色”纹理并无条件地对该纹理进行采样并将结果与​​颜色相乘,这显然会返回 1.0 * color .这也将更便携、更快。

    关于opengl - 查明 GL_TEXTURE_2D 是否在着色器中处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978986/

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