Rev 1979 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1979 | Rev 2024 | ||
---|---|---|---|
1 | ; DATA AREA ************************************ |
1 | ; DATA AREA ************************************ |
2 | 2 | ||
3 | i3 dw 3 |
3 | i3 dw 3 |
4 | i256 dw 256 |
4 | i256 dw 256 |
5 | i255d dd 255 |
5 | i255d dd 255 |
6 | dot_max dd 1.0 ; dot product max and min |
6 | dot_max dd 1.0 ; dot product max and min |
7 | dot_min dd 0.0 |
7 | dot_min dd 0.0 |
8 | env_const dd 1.05 |
8 | env_const dd 1.05 |
9 | correct_tex dw 255 |
9 | correct_tex dw 255 |
10 | tex_x_div2 dw TEX_X / 2 |
10 | tex_x_div2 dw TEX_X / 2 |
11 | tex_y_div2 dw TEX_Y / 2 |
11 | tex_y_div2 dw TEX_Y / 2 |
12 | xobs dw 0 ;SIZE_X / 2 ;200 ;observer = camera |
12 | xobs dw 0 ;SIZE_X / 2 ;200 ;observer = camera |
13 | yobs dw 0 ;SIZE_Y / 2 ;200 ;coordinates |
13 | yobs dw 0 ;SIZE_Y / 2 ;200 ;coordinates |
14 | zobs dw -500 |
14 | zobs dw -500 |
15 | size_x dw SIZE_X |
15 | size_x dw SIZE_X |
16 | size_y dw SIZE_Y |
16 | size_y dw SIZE_Y |
17 | 17 | ||
18 | re_alloc_flag db 0 |
18 | re_alloc_flag db 0 |
19 | angle_counter dw 0 |
19 | angle_counter dw 0 |
20 | piD180 dd 0.017453292519943295769236907684886 |
20 | piD180 dd 0.017453292519943295769236907684886 |
21 | piD128 dd 0.024544 |
21 | piD128 dd 0.024544 |
22 | const6 dw 6,6,6,6 |
22 | const6 dw 6,6,6,6 |
23 | x_offset dw SIZE_X / 2 |
23 | x_offset dw SIZE_X / 2 |
24 | y_offset dw SIZE_Y / 2 |
24 | y_offset dw SIZE_Y / 2 |
25 | z_offset dw 0 |
25 | z_offset dw 0 |
26 | rsscale dd 175.0 ; next real scale |
26 | rsscale dd 175.0 ; next real scale |
27 | vect_x dw SIZE_X / 2 |
27 | vect_x dw SIZE_X / 2 |
28 | vect_y dw SIZE_Y / 2 |
28 | vect_y dw SIZE_Y / 2 |
29 | vect_z dw 0 |
29 | vect_z dw 0 |
30 | angle_x dw 0 |
30 | angle_x dw 0 |
31 | angle_y dw 0 |
31 | angle_y dw 0 |
32 | angle_z dw 0 |
32 | angle_z dw 0 |
33 | 33 | ||
34 | 34 | ||
35 | menu: |
35 | menu: |
36 | db 2 ; button number = index |
36 | db 2 ; button number = index |
37 | db 'rotary ' ; label |
37 | db 'rotary ' ; label |
38 | db 3 ; max flag + 1 , if = 255, no flag |
38 | db 3 ; max flag + 1 , if = 255, no flag |
39 | r_flag db 1 ; flag |
39 | r_flag db 1 ; flag |
40 | dd axl_f ; offset to flags description |
40 | dd axl_f ; offset to flags description |
41 | 41 | ||
42 | db 3 |
42 | db 3 |
43 | db 'shd. model' |
43 | db 'shd. model' |
44 | db 11 |
44 | db 11 |
45 | dr_flag db 0 |
45 | dr_flag db 0 |
46 | dd shd_f |
46 | dd shd_f |
47 | 47 | ||
48 | db 4 |
48 | db 4 |
49 | db 'speed ' |
49 | db 'speed ' |
50 | db 2 |
50 | db 2 |
51 | speed_flag db 0 |
51 | speed_flag db 0 |
52 | dd spd_f |
52 | dd spd_f |
53 | 53 | ||
54 | db 5 |
54 | db 5 |
55 | db 'zoom out ' |
55 | db 'zoom out ' |
56 | db 255 |
56 | db 255 |
57 | db ? |
57 | db ? |
58 | dd ? |
58 | dd ? |
59 | 59 | ||
60 | db 6 |
60 | db 6 |
61 | db 'zoom in ' |
61 | db 'zoom in ' |
62 | db 255 |
62 | db 255 |
63 | db ? |
63 | db ? |
64 | dd ? |
64 | dd ? |
65 | 65 | ||
66 | db 7 |
66 | db 7 |
67 | db 'catmull ' |
67 | db 'catmull ' |
68 | db 2 |
68 | db 2 |
69 | catmull_flag db 1 |
69 | catmull_flag db 1 |
70 | dd onoff_f |
70 | dd onoff_f |
71 | 71 | ||
72 | db 8 |
72 | db 8 |
73 | db 'culling ' |
73 | db 'culling ' |
74 | db 2 |
74 | db 2 |
75 | culling_flag db 1 |
75 | culling_flag db 1 |
76 | dd onoff_f |
76 | dd onoff_f |
77 | 77 | ||
78 | db 9 |
78 | db 9 |
79 | db 'rand.light' |
79 | db 'rand.light' |
80 | db 255 |
80 | db 255 |
81 | db ? |
81 | db ? |
82 | dd ? |
82 | dd ? |
83 | 83 | ||
84 | db 10 |
84 | db 10 |
85 | db 'blur ' |
85 | db 'blur ' |
86 | db 6 |
86 | db 6 |
87 | blur_flag db 0 |
87 | blur_flag db 0 |
88 | dd blur_f |
88 | dd blur_f |
89 | 89 | ||
90 | db 11 |
90 | db 11 |
91 | db 'mirror x ' |
91 | db 'mirror x ' |
92 | db 2 |
92 | db 2 |
93 | mirr_x_flag db 0 |
93 | mirr_x_flag db 0 |
94 | dd onoff_f |
94 | dd onoff_f |
95 | 95 | ||
96 | db 12 |
96 | db 12 |
97 | db 'mirror y ' |
97 | db 'mirror y ' |
98 | db 2 |
98 | db 2 |
99 | mirr_y_flag db 0 |
99 | mirr_y_flag db 0 |
100 | dd onoff_f |
100 | dd onoff_f |
101 | 101 | ||
102 | db 13 |
102 | db 13 |
103 | db 'mirror z ' |
103 | db 'mirror z ' |
104 | db 2 |
104 | db 2 |
105 | mirr_z_flag db 0 |
105 | mirr_z_flag db 0 |
106 | dd onoff_f |
106 | dd onoff_f |
107 | 107 | ||
108 | db 14 |
108 | db 14 |
109 | db 'xchg ' |
109 | db 'xchg ' |
110 | db 4 |
110 | db 4 |
111 | xchg_flag db 0 |
111 | xchg_flag db 0 |
112 | dd xchg_f |
112 | dd xchg_f |
113 | 113 | ||
114 | db 15 |
114 | db 15 |
115 | db 'emboss ' |
115 | db 'emboss ' |
116 | db 2 |
116 | db 2 |
117 | emboss_flag db 0 |
117 | emboss_flag db 0 |
118 | dd onoff_f |
118 | dd onoff_f |
119 | 119 | ||
120 | db 16 |
120 | db 16 |
121 | db 'fire ' |
121 | db 'fire ' |
122 | db 3 |
122 | db 3 |
123 | fire_flag db 0 |
123 | fire_flag db 0 |
124 | dd blur_f |
124 | dd blur_f |
125 | 125 | ||
126 | db 17 |
126 | db 17 |
127 | db 'move ' |
127 | db 'move ' |
128 | db 2 |
128 | db 2 |
129 | move_flag db 0 |
129 | move_flag db 0 |
130 | dd move_f |
130 | dd move_f |
131 | 131 | ||
132 | db 18 |
132 | db 18 |
133 | db 'generate ' |
133 | db 'generate ' |
134 | db 6 |
134 | db 6 |
135 | generator_flag db 0 |
135 | generator_flag db 0 |
136 | dd blur_f |
136 | dd blur_f |
137 | 137 | ||
138 | db 19 |
138 | db 19 |
139 | db 'bumps ' |
139 | db 'bumps ' |
140 | db 2 |
140 | db 2 |
141 | bumps_flag db 0 |
141 | bumps_flag db 0 |
142 | dd bumps_f |
142 | dd bumps_f |
143 | 143 | ||
144 | db 20 |
144 | db 20 |
145 | db 'bumps deep' |
145 | db 'bumps deep' |
146 | db 4 |
146 | db 4 |
147 | bumps_deep_flag db 3 |
147 | bumps_deep_flag db 3 |
148 | dd bumps_d_f |
148 | dd bumps_d_f |
149 | 149 | ||
150 | db 21 |
150 | db 21 |
151 | db 're-map tex' |
151 | db 're-map tex' |
152 | db 255 |
152 | db 255 |
153 | map_tex_flag db ? ;1 |
153 | map_tex_flag db ? ;1 |
154 | dd ? ;bumps_d_f |
154 | dd ? ;bumps_d_f |
155 | ; db 21 |
155 | ; db 21 |
156 | ; db 'light No. ' |
156 | ; db 'light No. ' |
157 | ; db 3 |
157 | ; db 3 |
158 | ;light_no_flag db 0 |
158 | ;light_no_flag db 0 |
159 | ; dd bumps_d_f |
159 | ; dd bumps_d_f |
160 | 160 | ||
161 | ; db 22 |
161 | ; db 22 |
162 | ; db 'light comp' |
162 | ; db 'light comp' |
163 | ; db 3 |
163 | ; db 3 |
164 | ;light_comp_flag db 0 |
164 | ;light_comp_flag db 0 |
165 | ; dd light_component_f |
165 | ; dd light_component_f |
166 | 166 | ||
167 | ;; db 23 |
167 | ;; db 23 |
168 | ;; db 'col. comp' |
168 | ;; db 'col. comp' |
169 | ;; db 3 |
169 | ;; db 3 |
170 | ;;color_comp_flag db 0 |
170 | ;;color_comp_flag db 0 |
171 | ;; dd color_component_f |
171 | ;; dd color_component_f |
172 | 172 | ||
173 | 173 | ||
174 | db -1 ; end mark |
174 | db -1 ; end mark |
175 | 175 | ||
176 | 176 | ||
177 | flags: ; flags description |
177 | flags: ; flags description |
178 | shd_f: |
178 | shd_f: |
179 | db 'flat' |
179 | db 'flat' |
180 | db 'grd ' |
180 | db 'grd ' |
181 | db 'env ' |
181 | db 'env ' |
182 | db 'bump' |
182 | db 'bump' |
183 | db 'tex ' |
183 | db 'tex ' |
184 | db 'pos ' |
184 | db 'pos ' |
185 | db 'dots' |
185 | db 'dots' |
186 | db 'txgr' |
186 | db 'txgr' |
187 | db '2tex' |
187 | db '2tex' |
188 | db 'btex' |
188 | db 'btex' |
189 | db 'cenv' |
189 | db 'cenv' |
190 | spd_f: |
190 | spd_f: |
191 | db 'idle' |
191 | db 'idle' |
192 | db 'full' |
192 | db 'full' |
193 | axl_f: |
193 | axl_f: |
194 | db ' y ' |
194 | db ' y ' |
195 | db 'x+y ' |
195 | db 'x+y ' |
196 | db ' x ' |
196 | db ' x ' |
197 | onoff_f: |
197 | onoff_f: |
198 | db 'off ' |
198 | db 'off ' |
199 | db 'on ' |
199 | db 'on ' |
200 | ; light_component_f: |
200 | ; light_component_f: |
201 | ; db 'norm ' ; diffuse | |
201 | ; db 'norm ' ; diffuse | |
202 | ; db 'min' ; specular | or sth. like this |
202 | ; db 'min' ; specular | or sth. like this |
203 | ; db 'max ' ; emmisive | |
203 | ; db 'max ' ; emmisive | |
204 | 204 | ||
205 | ;; color_component_f: |
205 | ;; color_component_f: |
206 | ;; db ' r ' |
206 | ;; db ' r ' |
207 | ;; db ' g ' |
207 | ;; db ' g ' |
208 | ;; db ' b ' |
208 | ;; db ' b ' |
209 | 209 | ||
210 | blur_f: ; blur, fire |
210 | blur_f: ; blur, fire |
211 | db 'off ' |
211 | db 'off ' |
212 | bumps_d_f: db ' 1 ' |
212 | bumps_d_f: db ' 1 ' |
213 | db ' 2 ' |
213 | db ' 2 ' |
214 | db ' 3 ' |
214 | db ' 3 ' |
215 | db ' 4 ' |
215 | db ' 4 ' |
216 | db ' 5 ' |
216 | db ' 5 ' |
217 | 217 | ||
218 | xchg_f: |
218 | xchg_f: |
219 | db 'no ' |
219 | db 'no ' |
220 | db 'x<>y' |
220 | db 'x<>y' |
221 | db 'z<>x' |
221 | db 'z<>x' |
222 | db 'y<>z' |
222 | db 'y<>z' |
223 | move_f: |
223 | move_f: |
224 | db 'obj ' |
224 | db 'obj ' |
225 | db 'camr' |
225 | db 'camr' |
226 | ; db 'lght' |
226 | ; db 'lght' |
227 | bumps_f: |
227 | bumps_f: |
228 | db 'rand' |
228 | db 'rand' |
229 | db 'tex ' |
229 | db 'tex ' |
230 | ; db 'cscl' |
230 | ; db 'cscl' |
231 | base_vector: |
231 | base_vector: |
232 | labelvector: |
232 | labelvector: |
233 | db 'add vector' |
233 | db 'add vector' |
234 | labelvectorend: |
234 | labelvectorend: |
235 | labelyminus: |
235 | labelyminus: |
236 | db 'y -' |
236 | db 'y -' |
237 | labelyminusend: |
237 | labelyminusend: |
238 | labelzplus: |
238 | labelzplus: |
239 | db 'z +' |
239 | db 'z +' |
240 | labelzplusend: |
240 | labelzplusend: |
241 | labelxminus: |
241 | labelxminus: |
242 | db 'x -' |
242 | db 'x -' |
243 | labelxminusend: |
243 | labelxminusend: |
244 | labelxplus: |
244 | labelxplus: |
245 | db 'x +' |
245 | db 'x +' |
246 | labelxplusend: |
246 | labelxplusend: |
247 | labelzminus: |
247 | labelzminus: |
248 | db 'z -' |
248 | db 'z -' |
249 | labelzminusend: |
249 | labelzminusend: |
250 | labelyplus: |
250 | labelyplus: |
251 | db 'y +' |
251 | db 'y +' |
252 | labelyplusend: |
252 | labelyplusend: |
253 | 253 | ||
254 | ;navigation_size = $ - labelvector |
254 | ;navigation_size = $ - labelvector |
255 | ; db 'set color ' |
255 | ; db 'set color ' |
256 | ; db 'r -' |
256 | ; db 'r -' |
257 | ; db 'g +' |
257 | ; db 'g +' |
258 | ; db 'b -' |
258 | ; db 'b -' |
259 | ; db 'b +' |
259 | ; db 'b +' |
260 | ; db 'g -' |
260 | ; db 'g -' |
261 | ; db 'r +' |
261 | ; db 'r +' |
262 | 262 | ||
263 | labelt: |
263 | labelt: |
264 | db 'DEUS CARITAS EST' |
264 | db 'DEUS CARITAS EST' |
265 | if Ext=MMX |
265 | if Ext=MMX |
266 | db ' (MMX)' |
266 | db ' (MMX)' |
267 | end if |
267 | end if |
268 | if Ext=SSE |
268 | if Ext=SSE |
269 | db ' (SSE)' |
269 | db ' (SSE)' |
270 | end if |
270 | end if |
271 | if Ext=SSE2 |
271 | if Ext=SSE2 |
272 | db ' (SSE2)' |
272 | db ' (SSE2)' |
273 | end if |
273 | end if |
274 | db ' 0.059' |
274 | db ' 0.059',0 |
275 | labellen: |
275 | labellen: |
276 | STRdata db '-1 ' |
276 | STRdata db '-1 ' |
277 | 277 | ||
278 | all_lights_size dw lightsend-lights |
278 | all_lights_size dw lightsend-lights |
279 | 279 | ||
280 | if USE_LFN |
280 | if USE_LFN |
281 | 281 | ||
282 | file_info: |
282 | file_info: |
283 | dd 0 |
283 | dd 0 |
284 | dd 0 |
284 | dd 0 |
285 | dd 0 |
285 | dd 0 |
286 | fsize dd 0 ;180000 ; sizeof(workarea) |
286 | fsize dd 0 ;180000 ; sizeof(workarea) |
287 | fptr dd 0 ;workarea |
287 | fptr dd 0 ;workarea |
288 | file_name: |
288 | file_name: |
289 | db '/rd/1/3d/house.3ds',0 |
289 | db '/rd/1/3d/house.3ds',0 |
290 | 290 | ||
291 | else |
291 | else |
292 | 292 | ||
293 | file_info: |
293 | file_info: |
294 | dd 0 |
294 | dd 0 |
295 | dd 0 |
295 | dd 0 |
296 | fsize dd 1 |
296 | fsize dd 1 |
297 | dd workarea |
297 | dd workarea |
298 | dd hash_table |
298 | dd hash_table |
299 | file_name: |
299 | file_name: |
300 | db '/rd/1/teapot.3ds',0 |
300 | db '/rd/1/teapot.3ds',0 |
301 | end if |
301 | end if |
302 | 302 | ||
303 | I_END: |
303 | I_END: |
304 | 304 | ||
305 | rb 256 |
305 | rb 256 |
306 | 306 | ||
307 | ;============================================= |
307 | ;============================================= |
308 | lights: |
308 | lights: |
309 | .light_vector dd 0.0,0.0,-1.0 ; x,y,z Z cooficient of vector must be negative |
309 | .light_vector dd 0.0,0.0,-1.0 ; x,y,z Z cooficient of vector must be negative |
310 | .orginal_color_r db 1 ; +12 |
310 | .orginal_color_r db 1 ; +12 |
311 | .orginal_color_g db 255 ; |
311 | .orginal_color_g db 255 ; |
312 | .orginal_color_b db 1 ; +14 |
312 | .orginal_color_b db 1 ; +14 |
313 | .min_color_r db 1 ; |
313 | .min_color_r db 1 ; |
314 | .min_color_g db 1 ; +16 |
314 | .min_color_g db 1 ; +16 |
315 | .min_color_b db 1 ; |
315 | .min_color_b db 1 ; |
316 | .max_color_r db 255 ; |
316 | .max_color_r db 255 ; |
317 | .max_color_g db 255 ; |
317 | .max_color_g db 255 ; |
318 | .max_color_b db 255 ; |
318 | .max_color_b db 255 ; |
319 | .shine db 24 ; +21 |
319 | .shine db 24 ; +21 |
320 | ; LIGHT_SIZE equ ($-lights) |
320 | ; LIGHT_SIZE equ ($-lights) |
321 | 321 | ||
322 | dd -0.5,-0.5,-1.0 ; x,y,z ; .light_vector |
322 | dd -0.5,-0.5,-1.0 ; x,y,z ; .light_vector |
323 | db 5 ; .orginal_color_r |
323 | db 5 ; .orginal_color_r |
324 | db 1 ; .orginal_color_g |
324 | db 1 ; .orginal_color_g |
325 | db 135 ; .orginal_color_b |
325 | db 135 ; .orginal_color_b |
326 | db 19 ; .min_color_r |
326 | db 19 ; .min_color_r |
327 | db 19 ; .min_color_g |
327 | db 19 ; .min_color_g |
328 | db 19 ; .min_color_b |
328 | db 19 ; .min_color_b |
329 | db 255 ; .max_color_r |
329 | db 255 ; .max_color_r |
330 | db 255 ; .max_color_g |
330 | db 255 ; .max_color_g |
331 | db 255 ; .max_color_b |
331 | db 255 ; .max_color_b |
332 | db 16 ; .shine |
332 | db 16 ; .shine |
333 | 333 | ||
334 | dd 0.5,0.5,-1.0 ; x,y,z ; .light_vector |
334 | dd 0.5,0.5,-1.0 ; x,y,z ; .light_vector |
335 | db 135 ; .orginal_color_r |
335 | db 135 ; .orginal_color_r |
336 | db 1 ; .orginal_color_g |
336 | db 1 ; .orginal_color_g |
337 | db 1 ; .orginal_color_b |
337 | db 1 ; .orginal_color_b |
338 | db 19 ; .min_color_r |
338 | db 19 ; .min_color_r |
339 | db 19 ; .min_color_g |
339 | db 19 ; .min_color_g |
340 | db 19 ; .min_color_b |
340 | db 19 ; .min_color_b |
341 | db 255 ; .max_color_r |
341 | db 255 ; .max_color_r |
342 | db 255 ; .max_color_g |
342 | db 255 ; .max_color_g |
343 | db 20 ; .max_color_b |
343 | db 20 ; .max_color_b |
344 | db 16 ; .shine |
344 | db 16 ; .shine |
345 | ; ALL_LIGHTS_SIZE equ ($ - lights) |
345 | ; ALL_LIGHTS_SIZE equ ($ - lights) |
346 | ;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE |
346 | ;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE |
347 | ;=============================================== |
347 | ;=============================================== |
348 | 348 | ||
349 | lightsend: |
349 | lightsend: |
350 | 350 | ||
351 | if USE_LFN = 0 |
351 | if USE_LFN = 0 |
352 | hash_table rb 4096 |
352 | hash_table rb 4096 |
353 | SourceFile: |
353 | SourceFile: |
354 | workarea rb 180000 |
354 | workarea rb 180000 |
355 | else |
355 | else |
356 | SourceFile: |
356 | SourceFile: |
357 | workarea rb 180 |
357 | workarea rb 180 |
358 | end if |
358 | end if |
359 | EndFile dd ? |
359 | EndFile dd ? |
360 | align 8 |
360 | align 8 |
361 | sinbeta dd ?;+32 |
361 | sinbeta dd ?;+32 |
362 | cosbeta dd ? |
362 | cosbeta dd ? |
363 | 363 | ||
364 | xsub dw ? |
364 | xsub dw ? |
365 | zsub dw ?;+40 |
365 | zsub dw ?;+40 |
366 | ysub dw ? |
366 | ysub dw ? |
367 | 367 | ||
368 | xx1 dw ? |
368 | xx1 dw ? |
369 | yy1 dw ? |
369 | yy1 dw ? |
370 | zz1 dw ?;+48 xx1 + 4 |
370 | zz1 dw ?;+48 xx1 + 4 |
371 | xx2 dw ? |
371 | xx2 dw ? |
372 | yy2 dw ? |
372 | yy2 dw ? |
373 | zz2 dw ? ; xx1 + 10 |
373 | zz2 dw ? ; xx1 + 10 |
374 | xx3 dw ?;+56 |
374 | xx3 dw ?;+56 |
375 | yy3 dw ? |
375 | yy3 dw ? |
376 | zz3 dw ? ; xx1 + 16 |
376 | zz3 dw ? ; xx1 + 16 |
377 | scale dd ? ; help scale variable |
377 | scale dd ? ; help scale variable |
378 | ;== |
378 | ;== |
379 | triangles_count_var dw ? |
379 | triangles_count_var dw ? |
380 | points_count_var dw ? |
380 | points_count_var dw ? |
381 | triangles_ptr dd ? |
381 | triangles_ptr dd ? |
382 | triangles_w_z_ptr dd ? |
382 | triangles_w_z_ptr dd ? |
383 | triangles_normals_ptr dd ? |
383 | triangles_normals_ptr dd ? |
384 | points_normals_ptr dd ? |
384 | points_normals_ptr dd ? |
385 | points_normals_rot_ptr dd ? |
385 | points_normals_rot_ptr dd ? |
386 | points_ptr dd ? |
386 | points_ptr dd ? |
387 | points_rotated_ptr dd ? |
387 | points_rotated_ptr dd ? |
388 | points_translated_ptr dd ? |
388 | points_translated_ptr dd ? |
389 | screen_ptr dd ? |
389 | screen_ptr dd ? |
390 | Zbuffer_ptr dd ? |
390 | Zbuffer_ptr dd ? |
391 | 391 | ||
392 | ;=== |
392 | ;=== |
393 | 393 | ||
394 | point_index1 dw ? ;-\ |
394 | point_index1 dw ? ;-\ |
395 | point_index2 dw ? ; } don't change order |
395 | point_index2 dw ? ; } don't change order |
396 | point_index3 dw ? ;-/ |
396 | point_index3 dw ? ;-/ |
397 | temp_col dw ? |
397 | temp_col dw ? |
398 | high dd ? |
398 | high dd ? |
399 | rand_seed dw ? |
399 | rand_seed dw ? |
400 | align 8 |
400 | align 8 |
401 | buffer dq ? |
401 | buffer dq ? |
402 | errr dd ? |
402 | errr dd ? |
403 | drr dd ? |
403 | drr dd ? |
404 | xx dd ? |
404 | xx dd ? |
405 | yy dd ? |
405 | yy dd ? |
406 | xst dd ? |
406 | xst dd ? |
407 | yst dd ? |
407 | yst dd ? |
408 | ; screen_ptr dd ? |
408 | ; screen_ptr dd ? |
409 | ; Zbuffer_ptr dd ? |
409 | ; Zbuffer_ptr dd ? |
410 | 410 | ||
411 | matrix rb 36 |
411 | matrix rb 36 |
412 | cos_tab rd 360 |
412 | cos_tab rd 360 |
413 | sin_tab rd 360 |
413 | sin_tab rd 360 |
414 | 414 | ||
415 | align 16 |
415 | align 16 |
416 | 416 | ||
417 | if USE_LFN = 0 |
417 | if USE_LFN = 0 |
418 | points: |
418 | points: |
419 | rw (EndFile-SourceFile)/12*3 |
419 | rw (EndFile-SourceFile)/12*3 |
420 | points_count = ($-points)/6 |
420 | points_count = ($-points)/6 |
421 | triangles: |
421 | triangles: |
422 | rw (EndFile-SourceFile)/12*3 |
422 | rw (EndFile-SourceFile)/12*3 |
423 | triangles_count = ($-triangles)/6 |
423 | triangles_count = ($-triangles)/6 |
424 | align 16 |
424 | align 16 |
425 | real_points rd points_count*3 + 1 |
425 | real_points rd points_count*3 + 1 |
426 | align 16 |
426 | align 16 |
427 | rotated_points_r rd points_count*3 + 1 |
427 | rotated_points_r rd points_count*3 + 1 |
428 | align 16 |
428 | align 16 |
429 | points_rotated rw points_count*3 + 2 ;means translated |
429 | points_rotated rw points_count*3 + 2 ;means translated |
430 | align 16 |
430 | align 16 |
431 | triangles_normals rb triangles_count * 12 ; |
431 | triangles_normals rb triangles_count * 12 ; |
432 | align 16 |
432 | align 16 |
433 | point_normals rb points_count * 12 ;one 3dvector - triple float dword x,y,z |
433 | point_normals rb points_count * 12 ;one 3dvector - triple float dword x,y,z |
434 | align 16 |
434 | align 16 |
435 | point_normals_rotated rb points_count * 12 |
435 | point_normals_rotated rb points_count * 12 |
436 | align 16 |
436 | align 16 |
437 | triangles_normals_rotated rb triangles_count * 12 |
437 | triangles_normals_rotated rb triangles_count * 12 |
438 | 438 | ||
439 | else |
439 | else |
440 | points_count = 180000/6*3 |
440 | points_count = 180000/6*3 |
441 | triangles_count = 180000 / 6 ;($-triangles)/6 |
441 | triangles_count = 180000 / 6 ;($-triangles)/6 |
442 | end if |
442 | end if |
443 | align 16 |
443 | align 16 |
444 | label trizdd dword |
444 | label trizdd dword |
445 | label trizdq qword |
445 | label trizdq qword |
446 | triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position |
446 | triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position |
447 | align 16 |
447 | align 16 |
448 | vectors rb 24 |
448 | vectors rb 24 |
449 | ;align 16 |
449 | ;align 16 |
450 | ; points_color rb 6*points_count ; each color as word |
450 | ; points_color rb 6*points_count ; each color as word |
451 | ; sorted_triangles rw triangles_count*3 + 2 |
451 | ; sorted_triangles rw triangles_count*3 + 2 |
452 | align 16 |
452 | align 16 |
453 | bumpmap rb TEXTURE_SIZE + 1 |
453 | bumpmap rb TEXTURE_SIZE + 1 |
454 | align 16 |
454 | align 16 |
455 | bumpmap2 rb TEXTURE_SIZE + 1 |
455 | bumpmap2 rb TEXTURE_SIZE + 1 |
456 | align 16 |
456 | align 16 |
457 | envmap rb (TEXTURE_SIZE +1) * 3 |
457 | envmap rb (TEXTURE_SIZE +1) * 3 |
458 | align 16 |
458 | align 16 |
459 | envmap_cub rb TEX_X * 3 |
459 | envmap_cub rb TEX_X * 3 |
460 | align 16 |
460 | align 16 |
461 | texmap rb (TEXTURE_SIZE +1) * 3 |
461 | texmap rb (TEXTURE_SIZE +1) * 3 |
462 | align 16 |
462 | align 16 |
463 | color_map rb (TEXTURE_SIZE +1) * 3 |
463 | color_map rb (TEXTURE_SIZE +1) * 3 |
464 | align 16 |
464 | align 16 |
465 | tex_points rb points_count * 4 ; bump_map and texture coords |
465 | tex_points rb points_count * 4 ; bump_map and texture coords |
466 | ; each point word x, word y |
466 | ; each point word x, word y |
467 | align 16 |
467 | align 16 |
468 | ; SourceFile: ; source file temporally in screen area |
468 | ; SourceFile: ; source file temporally in screen area |
469 | ; workarea dd ? |
469 | ; workarea dd ? |
470 | 470 | ||
471 | ; screen rb SIZE_X * SIZE_Y * 3 ; screen buffer |
471 | ; screen rb SIZE_X * SIZE_Y * 3 ; screen buffer |
472 | ;align 16 |
472 | ;align 16 |
473 | ; Z_buffer rb SIZE_X * SIZE_Y * 4 |
473 | ; Z_buffer rb SIZE_X * SIZE_Y * 4 |
474 | I_Param rb 256 |
474 | I_Param rb 256 |
475 | memStack rb 4000 ;memory area for stack |
475 | memStack rb 4000 ;memory area for stack |
476 | align 16 |
476 | align 16 |
477 | screen:>>> |
477 | screen:>>> |