Manual
Examples
Multitexture
The following code sample shows how shaders can access two different textures simultaneously using two sampler2D uniform variables.
The command to run this example would be:
gander multitexture.xml
multitexture.xml
<texture file="crate.jpg" name="crate"> <texture file="stone.jpg" name="stone"> <program> <shader file="multitexture.vert" /> <shader file="multitexture.frag" /> <translate x="-1.0"> <box> <uniform type="mat4" name="MVPMatrix" /> <uniform type="sampler2D" name="left" link="crate" /> <uniform type="sampler2D" name="right" link="stone" /> </box> </translate> <translate x="+1.0"> <box> <uniform type="mat4" name="MVPMatrix" /> <uniform type="sampler2D" name="left" link="stone" /> <uniform type="sampler2D" name="right" link="crate" /> </box> </translate> </program> </texture> </texture>multitexture.vert
#version 130 uniform mat4 MVPMatrix; in vec4 MCVertex; in vec3 TexCoord0; out vec3 TexCoord; void main() { TexCoord = TexCoord0; gl_Position = MVPMatrix * MCVertex; }multitexture.frag
#version 130 uniform sampler2D left, right; in vec3 TexCoord; out vec4 FragColor; void main() { if (TexCoord.s < 0.5) { FragColor = texture(left, TexCoord.st); } else { FragColor = texture(right, TexCoord.st); } }