puts "========"
puts "OCC24130 Implementing ray tracing visualization core"
puts "========"

# custom shapes
set aShape1 [locate_data_file occ/Top.brep]
set aShape2 [locate_data_file occ/Bottom.brep]

# setup 3D viewer content
vinit name=View1 w=512 h=512
vglinfo

vvbo 0
vsetdispmode 1
vsetgradientbg 180 200 255 180 180 180 2
restore $aShape1 s1
restore $aShape2 s2
vdisplay s1 s2
vsetmaterial s1 Silver
vsetmaterial s2 Pewter
vsetlocation s1 0.0 0.1 0.0
vlight -change 0 -dir 0.577 -0.577 -0.577
vfit

# activate ray-tracing
vrenderparams -raytrace

set aModeNum 0
foreach aFSAAMode {off on} {
  foreach aReflMode {off on} {
    foreach aShadMode {off on} {
      vrenderparams -shadows $aShadMode -reflections $aReflMode -fsaa $aFSAAMode
      vdump $imagedir/${casename}_${aModeNum}.png
      incr aModeNum
    }
  }
}

vtextureenv on 5
foreach aFSAAMode {off on} {
  foreach aShadMode {off on} {
    vrenderparams -shadows $aShadMode -reflections -fsaa $aFSAAMode
    vdump $imagedir/${casename}_${aModeNum}.png
    incr aModeNum
  }
}

vsettransparency s2 0.5
for { set aDepth 2 } { $aDepth <= 5 } { incr aDepth } {
  foreach aFSAAMode {off on} {
    vrenderparams -raydepth $aDepth -shadows off -fsaa $aFSAAMode
    vdump $imagedir/${casename}_${aModeNum}.png
    incr aModeNum
  }
}
