mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-05 18:16:23 +03:00
Graphic3d_TypeOfShaderObject enumeration has been extended by Geometry shader object type. OpenGl_ShaderProgram::Initialize() processes new shader object types when supported by OpenGL version. Declarations.glsl has been fixed so that occFragColor is defined only for Fragment Shader object only (by handling new FRAGMENT_SHADER macros). Improved documentation of Graphic3d_ArrayOfPrimitives class. vshader Draw Harness command has been extended to support definition of Shader Object types other than Vertex and Fragment shader.
43 lines
1.3 KiB
Plaintext
43 lines
1.3 KiB
Plaintext
puts "========"
|
|
puts "0028912: Visualization, TKOpenGl - multi-texture support"
|
|
puts "========"
|
|
|
|
pload MODELING VISUALIZATION
|
|
|
|
set aShaderVert "
|
|
THE_SHADER_OUT vec2 TexCoord;
|
|
void main() {
|
|
TexCoord = occTexCoord.st;
|
|
gl_Position = occProjectionMatrix * occWorldViewMatrix * occModelWorldMatrix * occVertex;
|
|
}"
|
|
|
|
set aShaderFrag "
|
|
uniform sampler2D occSampler1;
|
|
uniform sampler2D occSampler2;
|
|
uniform sampler2D occSampler3;
|
|
THE_SHADER_IN vec2 TexCoord;
|
|
void main() {
|
|
if (TexCoord.s < 0.5 && TexCoord.t < 0.5) { occFragColor = occTexture2D(occSampler0, TexCoord.st); }
|
|
else if (TexCoord.s < 0.5 && TexCoord.t >= 0.5) { occFragColor = occTexture2D(occSampler1, TexCoord.st); }
|
|
else if (TexCoord.s >= 0.5 && TexCoord.t < 0.5) { occFragColor = occTexture2D(occSampler2, TexCoord.st); }
|
|
else { occFragColor = occTexture2D(occSampler3, TexCoord.st); }
|
|
}"
|
|
|
|
# draw a box
|
|
box b 1 2 3
|
|
vclear
|
|
vclose ALL
|
|
vinit View1
|
|
vaxo
|
|
vdisplay -dispMode 1 b
|
|
vfit
|
|
vrotate 0.2 0.0 0.0
|
|
|
|
# take snapshot with built-in shader
|
|
vtexture b -tex0 3 -tex1 4 -tex2 5 -tex3 6
|
|
vdump $::imagedir/${::casename}_normal.png
|
|
|
|
#vshaderprog b $aShaderVert $aShaderFrag
|
|
vshaderprog b -vert $aShaderVert -frag $aShaderFrag
|
|
vdump $::imagedir/${::casename}_multi.png
|