6b3ecff8c12d07def4ecd94e70204fe6ae0f49ba
[occt.git] / tests / v3d / glsl / pbr_attenuation
1 puts "========"
2 puts "0031099: Visualization, TKOpenGl - support Point light source with artistic full cut-off distance"
3 puts "Test of point light's (positional and spot) attenuation and range in PBR"
4 puts "========"
5
6 pload XDE OCAF VISUALIZATION MODELING
7
8 # PBR doesn't work with Compatible Profile on macOS
9 if { $::tcl_platform(os) == "Darwin" } { vcaps -core }
10
11 catch { Close D }
12
13 vclear
14 vclose ALL
15 vinit View1 -w 512 -h 512
16
17 vtop
18 vrenderparams -shadingmodel pbr
19
20 box b -2 -2 -0.00001 4 4 0.00001
21 XNewDoc D
22 set bs [XAddShape D b 0]
23 XAddVisMaterial D m -baseColor WHITE -transparency 0.0 -metallic 0.0 -roughness 1.0
24 XSetVisMaterial D $bs m
25 XDisplay -dispMode 1 D
26 vfit
27
28 vlight -clear
29 vlight -add positional -pos -1 0 1 -intensity 0.5
30 vlight -add spot -pos 1 0 1 -dir 0 0 -1 -intensity 0.5 -angle 100
31
32 vdump $::imagedir/${::casename}_norange_high.png
33
34 vlight -change 0 -pos -1 0 0.5
35 vlight -change 1 -pos 1 0 0.5
36
37 vdump $::imagedir/${::casename}_norange_low.png
38
39 vlight -change 0 -range 1
40 vlight -change 1 -range 1
41
42 vdump $::imagedir/${::casename}_range1.png
43
44 vlight -change 0 -range 0.5
45 vlight -change 1 -range 0.5
46
47 vdump $::imagedir/${::casename}_range0_5.png
48
49 vlight -change 0 -range 0.6
50 vlight -change 1 -range 0.6
51
52 vdump $::imagedir/${::casename}_range0_6.png
53
54 vlight -change 0 -range 10
55 vlight -change 1 -range 10
56
57 vdump $::imagedir/${::casename}_range10.png
58
59 box b -5.0 -5.0 -0.00001 10 10 0.00001
60 XNewDoc D
61 set bs [XAddShape D b 0]
62 XAddVisMaterial D m -baseColor WHITE -transparency 0.0 -metallic 0.0 -roughness 1.0
63 XSetVisMaterial D $bs m
64 XDisplay -dispMode 1 D
65 vfit
66 vlight -clear
67 for {set i 0} {$i < 5} {incr i} {
68   for {set j 0} {$j < 5} {incr j} {
69     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]
70   }
71 }
72
73 vdump $::imagedir/${::casename}_angle_attenuation.png