纹理与GLSL中的texture2D

Mor*_*bel 23 opengl glsl

当在GLSL(a uniform sampler2D)中对2D纹理进行采样时,使用该texture函数并且从采样器推断尺寸(在这种情况下为2D).这是从1.30开始在GLSL中采样纹理的现代方法(GLSL参考页).但是,您也可以使用该texture2D功能.

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

pos*_*ism 31

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

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

  • @Jessy考虑到这个问题没有提到任何ES(甚至没有提及弃用,更不用说GLSL 1.30或问题**中明确提到的`texture`函数**),你的评论不会真有意义.大多数人使用OpenGL ES的事实(或者它是一个吗?)并没有神奇地使这个完全正确的答案毫无意义.因为你期望一个非主题的答案(无论出于何种原因)不会突然在主题上做出主题回答. (8认同)
  • 在原始问题中没有提到OpenGL ES,所以我假设我们在谈论vanilla GL.如果GL ES的答案不同,那肯定值得一提; 我会更新我的答案(除非有人想要插话). (3认同)
  • 有两种人:一类人希望得到与问题完全相同的答案,另一类人希望得到他们心中的问题的答案。有时这两个人实际上是同一类人。 (2认同)