0028912: Visualization, TKOpenGl - multi-texture support
[occt.git] / tests / v3d / glsl / texture_multi1
1 puts "========"
2 puts "0028912: Visualization, TKOpenGl - multi-texture support"
3 puts "========"
4
5 pload MODELING VISUALIZATION
6
7 set aShaderVert "
8 THE_SHADER_OUT vec2 TexCoord;
9 void main() {
10   TexCoord    = occTexCoord.st;
11   gl_Position = occProjectionMatrix * occWorldViewMatrix * occModelWorldMatrix * occVertex;
12 }"
13
14 set aShaderFrag "
15 uniform sampler2D occSampler1;
16 uniform sampler2D occSampler2;
17 uniform sampler2D occSampler3;
18 THE_SHADER_IN vec2 TexCoord;
19 void main() {
20   if      (TexCoord.s <  0.5 && TexCoord.t <  0.5) { occFragColor = occTexture2D(occSampler0, TexCoord.st); }
21   else if (TexCoord.s <  0.5 && TexCoord.t >= 0.5) { occFragColor = occTexture2D(occSampler1, TexCoord.st); }
22   else if (TexCoord.s >= 0.5 && TexCoord.t <  0.5) { occFragColor = occTexture2D(occSampler2, TexCoord.st); }
23   else                                             { occFragColor = occTexture2D(occSampler3, TexCoord.st); }
24 }"
25
26 # draw a box
27 box b 1 2 3
28 vclear
29 vinit View1
30 vaxo
31 vdisplay -dispMode 1 b
32 vfit
33 vrotate 0.2 0.0 0.0
34
35 # take snapshot with built-in shader
36 vtexture b -tex0 3 -tex1 4 -tex2 5 -tex3 6
37 vdump $::imagedir/${::casename}_normal.png
38
39 vshaderprog b $aShaderVert $aShaderFrag
40 vdump $::imagedir/${::casename}_multi.png