着色器替换所有网格的纹理 - opengl

时间:2016-05-26 12:17:37

标签: opengl opengl-es libgdx glsl shader

图像:

http://i.imgur.com/rtlnKUO.png

嗨,我有3个物体/模型实例在我的场景中渲染:

  • 模特A. -长方形 - 蓝盒纹理

  • 模型B. -长方形 - 红盒纹理

  • 模型C. -广场 - 邋face的面部纹理

但是我的代码使它能够使用"最新的"绘制网格物体的纹理,因此为什么在图片中,所有3个都使用相同的纹理绘制。

我的片段代码:

#ifdef GL_ES 
precision mediump float;
#endif

varying vec2 v_texCoord0;
uniform sampler2D sampler;

void main() {
gl_FragColor = vec4(v_texCoord0, 0.0, 1.0);
vec4 tex = texture2D (sampler, v_texCoord0);
gl_FragColor = tex;
}

所以这是我对着色器的问题:

  • 是什么原因造成的?
  • 我是否需要每1个modelInstance实例有一个着色器实例?
  • 单个着色器是否可以渲染多个网格,其中每个网格具有不同的纹理?
  • 如果是这样的话,你如何超越着色器的32个纹理限制?

编辑:

刚刚发现每当我绑定一个纹理时,所有模型都将使用该纹理。因此,最新的绑定纹理是每个人都使用的纹理

0 个答案:

没有答案