12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- # Script demonstrating Global illumination materials
- # using path tracing rendering engine in 3D view
- #Category: Visualization
- #Title: Path tracing - Ball
- set aBallPath [locate_data_file occ/Ball.brep]
- pload MODELING VISUALIZATION
- # Ray-Tracing doesn't work with Compatible Profile on macOS
- if { $::tcl_platform(os) == "Darwin" } { vcaps -core }
- # Setup 3D viewer
- vclear
- vinit name=View1 w=512 h=512
- vglinfo
- vvbo 0
- vsetdispmode 1
- # Setup view parameters
- vcamera -persp
- vviewparams -scale 18 -eye 44.49 -0.15 33.93 -at -14.20 -0.15 1.87 -up -0.48 0.00 0.88
- # Load the model from disk
- puts "Importing shape..."
- restore $aBallPath ball
- # Tessellate the model
- incmesh ball 0.01
- # Display the model and assign material
- vdisplay -noupdate ball
- vsetmaterial -noupdate ball glass
- # Create a sphere inside the model
- psphere s 8
- incmesh s 0.01
- vdisplay -noupdate s
- vsetlocation -noupdate s 0 0 13
- vsetmaterial -noupdate s plaster
- # Create chessboard-style floor
- box tile 10 10 0.1
- eval compound [lrepeat 144 tile] tiles
- explode tiles
- for {set i 0} {$i < 12} {incr i} {
- for {set j 1} {$j <= 12} {incr j} {
- ttranslate tiles_[expr 12 * $i + $j] [expr $i * 10 - 90] [expr $j * 10 - 70] -0.15
- vdisplay -noupdate tiles_[expr 12 * $i + $j]
- vsetmaterial -noupdate tiles_[expr 12 * $i + $j] plaster
- if {($i + $j) % 2 == 0} {
- vbsdf tiles_[expr 12 * $i + $j] -kd 0.85
- } else {
- vbsdf tiles_[expr 12 * $i + $j] -kd 0.45
- }
- }
- }
- # Configure light sources
- vlight -change 0 -headLight 0
- vlight -change 0 -direction -0.25 -1 -1
- vlight -change 0 -smoothAngle 17
- vlight -change 0 -intensity 10.0
- # Load environment map
- vtextureenv on 1
- puts "Trying path tracing mode..."
- vrenderparams -ray -gi -rayDepth 10
- # Start progressive refinement mode
- #vprogressive
- puts "Make several path tracing iterations to refine the picture, please wait..."
- vfps 100
- puts "Done. To improve the image further, or after view manipulations, give command:"
- puts "vfps \[nb_iteratons\] or vrepaint -continuous"
|