1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2 | //
|
---|
3 | // ## ######
|
---|
4 | // ###### ###
|
---|
5 | // ## ############### Shark 3D Engine (www.shark3d.com)
|
---|
6 | // ########## # # #
|
---|
7 | // ######## Copyright (c) 1996-2006 Spinor GmbH.
|
---|
8 | // ######### # # # All rights reserved.
|
---|
9 | // ## ##########
|
---|
10 | // ##
|
---|
11 | //
|
---|
12 | ///////////////////////////////////////////////////////////////////////////////
|
---|
13 |
|
---|
14 | // Definition of the shaders.
|
---|
15 | // A shader is an object responsible for drawing objects.
|
---|
16 |
|
---|
17 | shader_array
|
---|
18 | {
|
---|
19 | name "spotlight_shmap"
|
---|
20 | sort "light_projshmap"
|
---|
21 | ident "eng_shader_std.group"
|
---|
22 | param
|
---|
23 | {
|
---|
24 | env "shaderenv"
|
---|
25 | init_method "init_method"
|
---|
26 | child_array
|
---|
27 | {
|
---|
28 | ident "eng_shader_std.lightparam"
|
---|
29 | param
|
---|
30 | {
|
---|
31 | env "shaderenv"
|
---|
32 | methods "main_method"
|
---|
33 |
|
---|
34 | diffuse .6 .8 1.
|
---|
35 | ambient 0. 0. 0.
|
---|
36 | specular 0. 0. 0.
|
---|
37 | range 100.
|
---|
38 | multiplier 1.0
|
---|
39 |
|
---|
40 | diffuse_var "light_diffuse"
|
---|
41 | ambient_var "light_ambient"
|
---|
42 | specular_var "light_specular"
|
---|
43 | cenrange_var "light_cenrange"
|
---|
44 | }
|
---|
45 | }
|
---|
46 | {
|
---|
47 | ident "eng_shader_std.projmat"
|
---|
48 | param
|
---|
49 | {
|
---|
50 | env "shaderenv"
|
---|
51 | methods "main_method"
|
---|
52 |
|
---|
53 | proj_ortho 0
|
---|
54 | proj_open_x 0.75
|
---|
55 | proj_open_y 0.75
|
---|
56 | //proj_open_x 0.2
|
---|
57 | //proj_open_y 0.2
|
---|
58 | proj_center_x 0.0
|
---|
59 | proj_center_y 0.0
|
---|
60 | proj_neg_z 0.5
|
---|
61 | proj_pos_z 20.0
|
---|
62 |
|
---|
63 | apply_view_to_obj 1
|
---|
64 | projmat_var "light_projmat"
|
---|
65 | }
|
---|
66 | }
|
---|
67 | {
|
---|
68 | ident "eng_shader_std.directtexchan"
|
---|
69 | param
|
---|
70 | {
|
---|
71 | env "shaderenv"
|
---|
72 | methods "main_method"
|
---|
73 | tex "tex:level_shmap/texture/spotbright_clamp.tga"
|
---|
74 | texchan_var "light_projtex"
|
---|
75 | samplermode_clamp 1
|
---|
76 | samplermode_filter 1
|
---|
77 | }
|
---|
78 | }
|
---|
79 | {
|
---|
80 | ident "eng_shader_std.lightenter"
|
---|
81 | param
|
---|
82 | {
|
---|
83 | env "shaderenv"
|
---|
84 | cenrange_var "light_cenrange"
|
---|
85 | projmat_var "light_projmat"
|
---|
86 | enter_array
|
---|
87 | {
|
---|
88 | triggers "main_trigger" "mirror_trigger"
|
---|
89 | method "main_method"
|
---|
90 | }
|
---|
91 | }
|
---|
92 | }
|
---|
93 | {
|
---|
94 | ident "eng_shader_special.projtotex"
|
---|
95 | param
|
---|
96 | {
|
---|
97 | env "shaderenv"
|
---|
98 | methods "main_method"
|
---|
99 | enum_trigger "gen_shmap_trigger"
|
---|
100 | rank -99999
|
---|
101 |
|
---|
102 | z_shift 0.0
|
---|
103 | depth_bias_overlay 1.5
|
---|
104 | depth_bias_offs 1.5
|
---|
105 | max_map_width 2048
|
---|
106 | max_map_height 2048
|
---|
107 | //max_map_width 256
|
---|
108 | //max_map_height 256
|
---|
109 | destprop_antialias 0
|
---|
110 | dest_array
|
---|
111 | {
|
---|
112 | from_var ""
|
---|
113 | to_var "light_shmap"
|
---|
114 | texprop_restrusage 0
|
---|
115 | texprop_depth 1
|
---|
116 | texprop_float 0
|
---|
117 | texprop_comp 1
|
---|
118 | texprop_bitspercomp 0
|
---|
119 | samplermode_filter 0
|
---|
120 | samplermode_clamp 1
|
---|
121 | }
|
---|
122 |
|
---|
123 | projmat_var "light_projmat"
|
---|
124 | }
|
---|
125 | }
|
---|
126 | {
|
---|
127 | ident "eng_shader_std.lightenum"
|
---|
128 | param
|
---|
129 | {
|
---|
130 | env "shaderenv"
|
---|
131 | methods "main_method"
|
---|
132 | rank 32000
|
---|
133 | cenrange_var "light_cenrange"
|
---|
134 | projmat_var "light_projmat"
|
---|
135 | coll_var "receivers"
|
---|
136 | }
|
---|
137 | }
|
---|
138 | {
|
---|
139 | ident "eng_shader_std.collexec"
|
---|
140 | param
|
---|
141 | {
|
---|
142 | env "shaderenv"
|
---|
143 | methods "main_method"
|
---|
144 | coll_var "receivers"
|
---|
145 | rank 32000
|
---|
146 | exec_trigger "lightshmap_trigger"
|
---|
147 | exec_param_array
|
---|
148 | {
|
---|
149 | src_var "light_cenrange"
|
---|
150 | dest_extvar "ext_light_cenrange"
|
---|
151 | }
|
---|
152 | {
|
---|
153 | src_var "light_ambient"
|
---|
154 | dest_extvar "ext_light_ambient"
|
---|
155 | }
|
---|
156 | {
|
---|
157 | src_var "light_diffuse"
|
---|
158 | dest_extvar "ext_light_diffuse"
|
---|
159 | }
|
---|
160 | {
|
---|
161 | src_var "light_specular"
|
---|
162 | dest_extvar "ext_light_specular"
|
---|
163 | }
|
---|
164 | {
|
---|
165 | src_var "light_projtex"
|
---|
166 | dest_extvar "ext_light_projtex"
|
---|
167 | }
|
---|
168 | {
|
---|
169 | src_var "light_projmat"
|
---|
170 | dest_extvar "ext_light_projmat"
|
---|
171 | }
|
---|
172 | {
|
---|
173 | src_var "light_shmap"
|
---|
174 | dest_extvar "ext_light_shmap"
|
---|
175 | }
|
---|
176 | {
|
---|
177 | src_var "light_projmat"
|
---|
178 | dest_extvar "ext_light_shmapmat"
|
---|
179 | }
|
---|
180 | }
|
---|
181 | }
|
---|
182 | }
|
---|
183 | }
|
---|
184 | {
|
---|
185 | name "inactive"
|
---|
186 | ident ""
|
---|
187 | param
|
---|
188 | {
|
---|
189 | }
|
---|
190 | }
|
---|