GLSL的texture2D函数

Posted davidsu33

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GLSL的texture2D函数相关的知识,希望对你有一定的参考价值。

最近在学习GLSL着色语言,对于texture2D这个函数始终有点搞不明白,今天终于搞清楚了

texture2D的第一个参数是采样器(可以是sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow)

由于OPenGL是支持多重纹理的,有如下可选值

#define GL_TEXTURE0 0x84C0
#define GL_TEXTURE1 0x84C1
#define GL_TEXTURE2 0x84C2
#define GL_TEXTURE3 0x84C3
#define GL_TEXTURE4 0x84C4
#define GL_TEXTURE5 0x84C5
#define GL_TEXTURE6 0x84C6
#define GL_TEXTURE7 0x84C7
#define GL_TEXTURE8 0x84C8
#define GL_TEXTURE9 0x84C9
#define GL_TEXTURE10 0x84CA
#define GL_TEXTURE11 0x84CB
#define GL_TEXTURE12 0x84CC
#define GL_TEXTURE13 0x84CD
#define GL_TEXTURE14 0x84CE
#define GL_TEXTURE15 0x84CF
#define GL_TEXTURE16 0x84D0
#define GL_TEXTURE17 0x84D1
#define GL_TEXTURE18 0x84D2
#define GL_TEXTURE19 0x84D3
#define GL_TEXTURE20 0x84D4
#define GL_TEXTURE21 0x84D5
#define GL_TEXTURE22 0x84D6
#define GL_TEXTURE23 0x84D7
#define GL_TEXTURE24 0x84D8
#define GL_TEXTURE25 0x84D9
#define GL_TEXTURE26 0x84DA
#define GL_TEXTURE27 0x84DB
#define GL_TEXTURE28 0x84DC
#define GL_TEXTURE29 0x84DD
#define GL_TEXTURE30 0x84DE

一般咱们在使用纹理的时候,默认启动的是GL_TEXTURE0,也就是glActiveTexture(GL_TEXTURE0),所以,如果咱们用到了多重渲染的话,可以考虑使用这个,根据枚举的取值sampler2D的值可以是0~最大纹理数目





以上是关于GLSL的texture2D函数的主要内容,如果未能解决你的问题,请参考以下文章

texture2D

WebGL-Shader入门(5.着色器语言GLSL ES 内置变量和内置函数)

GLSL ES 3.0 和 2.0 的区别

任何人都知道我在哪里可以找到双边滤镜(模糊)的glsl实现?

我的OpenGL学习进阶之旅解决着色器运行报错:ERROR: 0:32: ‘texture2D‘ : type is for Vulkan api only

glsl fragmentshader 渲染对象ID