0030700: Visualization, TKOpenGl - support PBR Metallic-Roughness shading model
[occt.git] / tests / v3d / glsl / pbr_spheres
diff --git a/tests/v3d/glsl/pbr_spheres b/tests/v3d/glsl/pbr_spheres
new file mode 100644 (file)
index 0000000..5d96c80
--- /dev/null
@@ -0,0 +1,74 @@
+puts "========"
+puts "0030700: Visualization, TKOpenGl - support PBR Metallic-Roughness shading model"
+puts "Spheres grid with different roughness values"
+puts "========"
+
+pload XDE OCAF MODELING VISUALIZATION
+psphere s 0.35
+
+catch { Close D }
+XNewDoc D
+
+# grid of spheres
+set THE_UPPER 6
+foreach i [list 0 3] {
+  set aPrefix ""
+  set aColor "GRAY80"
+  if { $i != 0 } {
+    set aPrefix "g_";
+    set aColor "CCB11D"
+  }
+  for { set m 0 } { $m <= $THE_UPPER } { incr m } {
+    for { set r 0 } { $r <= $THE_UPPER } { incr r } {
+      set aName ${aPrefix}m${m}r${r}
+      copy s $aName
+      ttranslate $aName ${r} ${i} ${m}
+      set aLab [XAddShape D $aName]
+      SetName D $aLab $aName
+      XAddVisMaterial D $aName -baseColor $aColor -metallic ${m}/$THE_UPPER -roughness ${r}/$THE_UPPER
+      XSetVisMaterial D $aLab $aName
+    }
+  }
+}
+XGetAllVisMaterials D
+
+# labels
+text2brep tm  "Metal"     -plane 0 -1 0 0 0 -1 -height 0.5 -pos -0.5 0  6.5 -halign left  -valign top -font monospace
+text2brep tnm "Non-metal" -plane 0 -1 0 0 0 -1 -height 0.5 -pos -0.5 0 -0.5 -halign right -valign top -font monospace
+text2brep ts  "Smooth"    -plane 0 -1 0 1 0  0 -height 0.5 -pos -0.5 0 -0.5 -halign left  -valign top -font monospace
+text2brep tr  "Rough"     -plane 0 -1 0 1 0  0 -height 0.5 -pos  6.5 0 -0.5 -halign right -valign top -font monospace
+set aLab [XAddShape D tm]
+SetName D $aLab "Metal"
+set aLab [XAddShape D tnm]
+SetName D $aLab "Non-metal"
+set aLab [XAddShape D ts]
+SetName D $aLab "Smooth"
+set aLab [XAddShape D tr]
+SetName D $aLab "Rough"
+
+vclear
+vinit View1 -width 768 -height 768
+vfront
+vrenderparams -shadingModel PBR
+vlight -change 0 -intensity 2.5
+XDisplay -dispMode 1 D
+vcamera -ortho
+vfit
+vlight -change 1 -intensity 0.0001
+vdump $::imagedir/${::casename}_ortho0.png
+vlight -change 1 -intensity 0.3
+vdump $::imagedir/${::casename}_ortho30.png
+vcamera -persp
+vfit
+vlight -change 1 -intensity 0.0001
+vdump $::imagedir/${::casename}_persp0.png
+vlight -change 1 -intensity 0.3
+vdump $::imagedir/${::casename}_persp30.png
+
+set aCubeMap [locate_data_file Circus_CubeMap_V.png]
+vlight -change 1 -intensity 1
+vbackground -cubemap $aCubeMap
+vcamera -ortho
+vdump $::imagedir/${::casename}_orthoenv.png
+vcamera -persp
+vdump $::imagedir/${::casename}_perspenv.png