请问,texture2D(tex, texcoord)第一个参数怎么感觉都是多余的,有点迷惑

欣爸爸 2014-02-25 10:49:19

private final String mFragmentShader =
"precision mediump float;\n" +
"varying vec2 vTextureCoord;\n" +
"uniform sampler2D sTexture2;\n" +
"uniform sampler2D sTexture1;\n" +
"void main() {\n" +
" gl_FragColor = texture2D(sTexture1, vTextureCoord);\n" +
"}\n";


如上一段代码GLSL代码,总感觉texture2D第一个参数完全可以省略吧?
...全文
2994 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
maoenpei002 2015-03-03
  • 打赏
  • 举报
回复
glActiveTexture(GL_TEXTURE0); glBindTexture(tex0); glActiveTexture(GL_TEXTURE1); glBindTexture(tex1); 对应shader:         "uniform sampler2D sTexture2;\n"          "uniform sampler2D sTexture1;\n"  为uniform赋值的时候 l = glGetUniformLocation(u, "sTexture1"); glUniform1i(l, 0);// 代表GL_TEXTURE0 l = glGetUniformLocation(u, "sTexture2"); glUniform1i(l, 1); 这样使用sTexture1的时候用的就是tex0,使用sTexture2的时候用的就是tex1。
zephyr3d 2014-03-01
  • 打赏
  • 举报
回复
第一个参数决定你使用哪一个采样器进行纹理采样。每个采样器有自己的一套状态,例如绑定纹理过滤参数什么的
彩阳 2014-02-27
  • 打赏
  • 举报
回复
引用 2 楼 Simbaba 的回复:
[quote=引用 1 楼 jiangcaiyang123 的回复:] 多纹理的时候这个参数代表着纹理的层。
也就是一种通用写法,在多纹理的时候就能体现出来用途了吗[/quote] 我也不知道还有其它哪些用途,这个参数通常配合glActiveTexture()函数使用。
欣爸爸 2014-02-27
  • 打赏
  • 举报
回复
引用 1 楼 jiangcaiyang123 的回复:
多纹理的时候这个参数代表着纹理的层。
也就是一种通用写法,在多纹理的时候就能体现出来用途了吗
彩阳 2014-02-25
  • 打赏
  • 举报
回复
多纹理的时候这个参数代表着纹理的层。

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧