gpt4 book ai didi

opengl - 纹理采样 : Calculation of BIAS value from the LOD value

转载 作者:行者123 更新时间:2023-12-01 11:42:45 26 4
gpt4 key购买 nike

在 GL ES 2.0 中,texture2DLod 函数在片段着色器中不可用。我需要移植 GLSL 着色器。

在 GL ES 2.0 中我只能使用texture2D(sampler2D sampler, vec2 coord, float bias)

告诉我如何计算与已知值LOD(详细程度)相等的偏差值?

//Example GLSL:
float lod=u_lod;
textureLod(sampler, (uInverseViewMatrix * vec4(r, 0.0)).xy, lod);

//I need GL ES 2.0:
float lod=u_lod;
float bias=? <-----calc bias from lod
texture2D(sampler,(uInverseViewMatrix * vec4(r, 0.0)).xy,bias)

最佳答案

你想要的不可能。

LOD 偏差正是:偏差。它被添加到从 texture2D 自动计算的 LOD。

textureLOD 不是那样工作的。它选择一个特定的 LOD,它不基于任何人自动计算的任何东西。

做你想做的唯一方法是自己执行自动 LOD 计算,然后尝试计算该值和你实际想要的 LOD 之间的偏差,然后将其应用到 texture2D .我会告诉您如何做到这一点,但这需要函数 dFdxdFdy,它们不在 OpenGL ES 2.0 中。所以你不能。

但是不要难过,因为即使你可以,它也行不通。另一个问题是 LOD 偏差被钳制在特定范围内。请注意,您不会在 ES 2.0 规范中找到它,但这没关系;您也找不到任何关于如何将偏差应用到为 mipmap 计算的 lambda 的语言。对真的;继续寻找它。您得到的最接近的是 GLSL ES 规范,但 OpenGL ES 规范并未提及对 lambda 应用偏差。

所以是的,这是不可能的。

关于opengl - 纹理采样 : Calculation of BIAS value from the LOD value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17916967/

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