29

在 GLSL (a uniform sampler2D) 中对 2D 纹理进行采样时,texture使用该函数并从采样器中推断出尺寸(在本例中为 2D)。这是自 1.30 以来在 GLSL 中采样纹理的现代方式(GLSL 参考页)。但是,您也可以使用该texture2D功能。

texture2D函数是否已弃用,如果是,是否会texture2D在某些版本的 GLSL 中删除(或已删除)对该函数的支持?

4

1 回答 1

39

是的,texture2D()(至少)OpenGL 3.3 已弃用;请参阅3.30 GLSL 规范的第 99 页。OpenGL 兼容性配置文件将继续支持它以避免破坏现有代码,但强烈建议不要在新代码中使用它。

编辑:OpenGL ES 的细节略有不同,但最终结果是相同的:在 OpenGL ES 3.0 中texture2D()已弃用并替换为;请参阅3.0 GLSL ES 规范texture()的第 8.8 节。

于 2012-09-06T22:16:05.137 回答