12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # Script demonstrating PBR metallic-roughness material properties
- #Category: Visualization
- #Title: PBR metallic-rougness spheres
- 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"
- }
- set aColShapes {}
- for { set m 0 } { $m <= $THE_UPPER } { incr m } {
- set aRowShapes {}
- for { set r 0 } { $r <= $THE_UPPER } { incr r } {
- set aName ${aPrefix}m${m}r${r}
- copy s $aName
- lappend aRowShapes $aName
- ttranslate $aName ${r} ${i} ${m}
- }
- set aName ${aPrefix}m${m}
- compound {*}$aRowShapes $aName
- lappend aColShapes $aName
- }
- set aName ${aPrefix}spheres
- compound {*}$aColShapes $aName
- set aLabName "Gray Spheres"
- if { $i != 0 } { set aLabName "Golden Spheres" }
- set aLabComp [XAddShape D $aName 0]
- SetName D $aLabComp $aLabName
- for { set m 0 } { $m <= $THE_UPPER } { incr m } {
- set aMet [expr 100 * ${m}/$THE_UPPER]
- set aName ${aPrefix}m${m}
- XAddComponent D $aLabComp $aName
- set aLabCompCol [XFindShape D $aName]
- SetName D $aLabCompCol "${aPrefix}m${aMet}%"
- SetName D {*}[XFindComponent D $aName] "${aPrefix}m${aMet}%"
- for { set r 0 } { $r <= $THE_UPPER } { incr r } {
- set aRoug [expr 100 * ${r}/$THE_UPPER]
- set aName ${aPrefix}m${m}r${r}
- XAddComponent D $aLabCompCol $aName
- set aLab [XFindComponent D $aName]
- SetName D {*}$aLab "${aPrefix}m${aMet}%_r${aRoug}%"
- XAddVisMaterial D $aName -baseColor $aColor -metallic ${m}/$THE_UPPER -roughness ${r}/$THE_UPPER
- XSetVisMaterial D {*}$aLab $aName
- }
- }
- }
- set aLab [XFindShape D s]
- SetName D {*}$aLab "Sphere"
- 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
- compound tm tnm ts tr labs
- set aLab [XAddShape D labs 0]
- SetName D $aLab "Labels"
- XAddComponent D $aLab tm
- XAddComponent D $aLab tnm
- XAddComponent D $aLab ts
- XAddComponent D $aLab tr
- SetName D {*}[XFindComponent D tm] "Metal"
- SetName D [XFindShape D tm] "Metal"
- SetName D {*}[XFindComponent D tnm] "Non-metal"
- SetName D [XFindShape D tnm] "Non-metal"
- SetName D {*}[XFindComponent D ts] "Smooth"
- SetName D [XFindShape D ts] "Smooth"
- SetName D {*}[XFindComponent D tr] "Rough"
- SetName D [XFindShape D tr] "Rough"
- # Ray-Tracing doesn't work with Compatible Profile on macOS
- if { $::tcl_platform(os) == "Darwin" } { vcaps -core }
- vclear
- vinit View1 -width 768 -height 768
- vfront
- vrenderparams -shadingModel PBR
- vlight -change 0 -intensity 2.5
- XDisplay -dispMode 1 D
- vcamera -ortho
- vfit
|