mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-09 18:50:54 +03:00
"Range" parameter of point light sources (positional and spot) concidering in PBR has been added. Angular attenuation parameter of spot light in PBR has been reimplemented based on existing "concentration" parameter.
70 lines
1.7 KiB
Plaintext
70 lines
1.7 KiB
Plaintext
puts "========"
|
|
puts "0031099: Visualization, TKOpenGl - support Point light source with artistic full cut-off distance"
|
|
puts "Test of point light's (positional and spot) attenuation and range in PBR"
|
|
puts "========"
|
|
|
|
pload XDE OCAF VISUALIZATION MODELING
|
|
catch { Close D }
|
|
|
|
vclear
|
|
vclose ALL
|
|
vinit View1 -w 512 -h 512
|
|
|
|
vtop
|
|
vrenderparams -shadingmodel pbr
|
|
|
|
box b -2 -2 -0.00001 4 4 0.00001
|
|
XNewDoc D
|
|
set bs [XAddShape D b 0]
|
|
XAddVisMaterial D m -baseColor WHITE -transparency 0.0 -metallic 0.0 -roughness 1.0
|
|
XSetVisMaterial D $bs m
|
|
XDisplay -dispMode 1 D
|
|
vfit
|
|
|
|
vlight -clear
|
|
vlight -add positional -pos -1 0 1 -intensity 0.5
|
|
vlight -add spot -pos 1 0 1 -dir 0 0 -1 -intensity 0.5 -angle 100
|
|
|
|
vdump $::imagedir/${::casename}_norange_high.png
|
|
|
|
vlight -change 0 -pos -1 0 0.5
|
|
vlight -change 1 -pos 1 0 0.5
|
|
|
|
vdump $::imagedir/${::casename}_norange_low.png
|
|
|
|
vlight -change 0 -range 1
|
|
vlight -change 1 -range 1
|
|
|
|
vdump $::imagedir/${::casename}_range1.png
|
|
|
|
vlight -change 0 -range 0.5
|
|
vlight -change 1 -range 0.5
|
|
|
|
vdump $::imagedir/${::casename}_range0_5.png
|
|
|
|
vlight -change 0 -range 0.6
|
|
vlight -change 1 -range 0.6
|
|
|
|
vdump $::imagedir/${::casename}_range0_6.png
|
|
|
|
vlight -change 0 -range 10
|
|
vlight -change 1 -range 10
|
|
|
|
vdump $::imagedir/${::casename}_range10.png
|
|
|
|
box b -5.0 -5.0 -0.00001 10 10 0.00001
|
|
XNewDoc D
|
|
set bs [XAddShape D b 0]
|
|
XAddVisMaterial D m -baseColor WHITE -transparency 0.0 -metallic 0.0 -roughness 1.0
|
|
XSetVisMaterial D $bs m
|
|
XDisplay -dispMode 1 D
|
|
vfit
|
|
vlight -clear
|
|
for {set i 0} {$i < 5} {incr i} {
|
|
for {set j 0} {$j < 5} {incr j} {
|
|
vlight -add spot -pos [expr -4.0+2.0*$i] [expr -4.0+2.0*$j] 0.5 -dir 0 0 -1 -intensity 0.5 -angle 100 -exp [expr ($i*5+$j) / 24.0]
|
|
}
|
|
}
|
|
|
|
vdump $::imagedir/${::casename}_angle_attenuation.png
|