float texture(gsampler2DArrayShadow sampler, vec4 P, [float bias]);
在OpenGL ES(shader lang)中查看此功能。我不明白gsampler2DArrayShadow
和sampler2DArrayShadow
之间的区别。你能解释一下吗?我读过那个' g'可以意味着什么,或我或你。但是这种类型呢?
此外,是否[浮动偏见]'意味着我们有2个函数:使用此参数而不使用?
答案 0 :(得分:2)
任何时候你在函数原型中看到前缀为g
的GLSL中的变量类型,这是一种速记约定,意味着每种类型的数据都存在重载。例如,接受gvec
的函数意味着它有ivec
,uvec
,vec
,dvec
,bvec
的重载等等上。
桌面GLSL除了固定/浮点外还支持整数采样器,因此您将看到使用gsampler...
而不是sampler...
定义的许多函数,这意味着函数具有{{1除了更传统的变种之外,还有isampler...
重载。
至于usampler...
,用于控制mipmap LOD偏差。如果不为该参数提供值,则GL会计算偏差本身。
有趣的是,由于mipmap LOD的计算方式,只有纹理查找的片段着色器多种支持自动mipmap选择(它与每片段衍生计算有关)。要在顶点着色器中使用mipmapping,您必须使用[float bias]
明确选择LOD,或使用textureLod (...)
提供您自己的偏导数。