Subversion Repositories Kolibri OS

Rev

Rev 1777 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1777 Rev 1819
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
	db   ' 0.054'
271
	db   ' 0.055'
272
    labellen:
272
    labellen:
273
	STRdata db '-1        '
273
	STRdata db '-1        '
274
 
274
 
275
    all_lights_size dw lightsend-lights
275
    all_lights_size dw lightsend-lights
276
 
276
 
277
if USE_LFN
277
if USE_LFN
278
 
278
 
279
	file_info:
279
	file_info:
280
		dd	0
280
		dd	0
281
		dd	0
281
		dd	0
282
		dd	0
282
		dd	0
283
	 fsize	dd	0 ;180000 ; sizeof(workarea)
283
	 fsize	dd	0 ;180000 ; sizeof(workarea)
284
	 fptr	dd	0 ;workarea
284
	 fptr	dd	0 ;workarea
285
	file_name:
285
	file_name:
286
		db	'/rd/1/3d/house.3ds',0
286
		db	'/rd/1/3d/house.3ds',0
287
 
287
 
288
else
288
else
289
 
289
 
290
	file_info:
290
	file_info:
291
		dd 0
291
		dd 0
292
		dd 0
292
		dd 0
293
	 fsize	dd 1
293
	 fsize	dd 1
294
		dd workarea
294
		dd workarea
295
		dd hash_table
295
		dd hash_table
296
	file_name:
296
	file_name:
297
		db   '/rd/1/house.3ds',0
297
		db   '/rd/1/house.3ds',0
298
end if
298
end if
299
 
299
 
300
I_END:
300
I_END:
301
 
301
 
302
      rb 256
302
      rb 256
303
 
303
 
304
;=============================================
304
;=============================================
305
lights:
305
lights:
306
     .light_vector	  dd	  0.0,0.0,-1.0	 ; x,y,z  Z cooficient of vector must be negative
306
     .light_vector	  dd	  0.0,0.0,-1.0	 ; x,y,z  Z cooficient of vector must be negative
307
     .orginal_color_r	  db	  1		 ;  +12
307
     .orginal_color_r	  db	  1		 ;  +12
308
     .orginal_color_g	  db	  255		   ;
308
     .orginal_color_g	  db	  255		   ;
309
     .orginal_color_b	  db	  1		 ;  +14
309
     .orginal_color_b	  db	  1		 ;  +14
310
     .min_color_r	  db	  1		 ;
310
     .min_color_r	  db	  1		 ;
311
     .min_color_g	  db	  1		 ;  +16
311
     .min_color_g	  db	  1		 ;  +16
312
     .min_color_b	  db	  1		 ;
312
     .min_color_b	  db	  1		 ;
313
     .max_color_r	  db	  255		 ;
313
     .max_color_r	  db	  255		 ;
314
     .max_color_g	  db	  255		 ;
314
     .max_color_g	  db	  255		 ;
315
     .max_color_b	  db	  255		 ;
315
     .max_color_b	  db	  255		 ;
316
     .shine		  db	  24		 ;  +21
316
     .shine		  db	  24		 ;  +21
317
 ;    LIGHT_SIZE equ ($-lights)
317
 ;    LIGHT_SIZE equ ($-lights)
318
 
318
 
319
	dd	-0.5,-0.5,-1.0	 ; x,y,z ;  .light_vector
319
	dd	-0.5,-0.5,-1.0	 ; x,y,z ;  .light_vector
320
	db	5		 ; .orginal_color_r
320
	db	5		 ; .orginal_color_r
321
	db	1		 ; .orginal_color_g
321
	db	1		 ; .orginal_color_g
322
	db	135		 ; .orginal_color_b
322
	db	135		 ; .orginal_color_b
323
	db	19		 ; .min_color_r
323
	db	19		 ; .min_color_r
324
	db	19		 ; .min_color_g
324
	db	19		 ; .min_color_g
325
	db	19		 ; .min_color_b
325
	db	19		 ; .min_color_b
326
	db	255		 ; .max_color_r
326
	db	255		 ; .max_color_r
327
	db	255		 ; .max_color_g
327
	db	255		 ; .max_color_g
328
	db	255		 ; .max_color_b
328
	db	255		 ; .max_color_b
329
	db	16		 ; .shine
329
	db	16		 ; .shine
330
 
330
 
331
	dd	0.5,0.5,-1.0	; x,y,z ;  .light_vector
331
	dd	0.5,0.5,-1.0	; x,y,z ;  .light_vector
332
	db	135		; .orginal_color_r
332
	db	135		; .orginal_color_r
333
	db	1		; .orginal_color_g
333
	db	1		; .orginal_color_g
334
	db	1		; .orginal_color_b
334
	db	1		; .orginal_color_b
335
	db	19		; .min_color_r
335
	db	19		; .min_color_r
336
	db	19		; .min_color_g
336
	db	19		; .min_color_g
337
	db	19		; .min_color_b
337
	db	19		; .min_color_b
338
	db	255		; .max_color_r
338
	db	255		; .max_color_r
339
	db	255		; .max_color_g
339
	db	255		; .max_color_g
340
	db	20		; .max_color_b
340
	db	20		; .max_color_b
341
	db	16		; .shine
341
	db	16		; .shine
342
;        ALL_LIGHTS_SIZE equ ($ - lights)
342
;        ALL_LIGHTS_SIZE equ ($ - lights)
343
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE
343
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE
344
;===============================================
344
;===============================================
345
 
345
 
346
lightsend:
346
lightsend:
347
 
347
 
348
if USE_LFN = 0
348
if USE_LFN = 0
349
hash_table rb 4096
349
hash_table rb 4096
350
SourceFile:
350
SourceFile:
351
workarea   rb 180000
351
workarea   rb 180000
352
else
352
else
353
SourceFile:
353
SourceFile:
354
workarea   rb 180
354
workarea   rb 180
355
end if
355
end if
356
EndFile   dd ?
356
EndFile   dd ?
357
align 8
357
align 8
358
	sinbeta dd	?;+32
358
	sinbeta dd	?;+32
359
	cosbeta dd	?
359
	cosbeta dd	?
360
 
360
 
361
	xsub	dw	?
361
	xsub	dw	?
362
	zsub	dw	?;+40
362
	zsub	dw	?;+40
363
	ysub	dw	?
363
	ysub	dw	?
364
 
364
 
365
	xx1	dw	?
365
	xx1	dw	?
366
	yy1	dw	?
366
	yy1	dw	?
367
	zz1	dw	?;+48    xx1 + 4
367
	zz1	dw	?;+48    xx1 + 4
368
	xx2	dw	?
368
	xx2	dw	?
369
	yy2	dw	?
369
	yy2	dw	?
370
	zz2	dw	?      ; xx1 + 10
370
	zz2	dw	?      ; xx1 + 10
371
	xx3	dw	?;+56
371
	xx3	dw	?;+56
372
	yy3	dw	?
372
	yy3	dw	?
373
	zz3	dw	?      ; xx1 + 16
373
	zz3	dw	?      ; xx1 + 16
374
	scale	dd	?		  ; help scale variable
374
	scale	dd	?		  ; help scale variable
375
   ;==
375
   ;==
376
	triangles_count_var	dw ?
376
	triangles_count_var	dw ?
377
	points_count_var	dw ?
377
	points_count_var	dw ?
378
	triangles_ptr		dd ?
378
	triangles_ptr		dd ?
379
	triangles_w_z_ptr	dd ?
379
	triangles_w_z_ptr	dd ?
380
	triangles_normals_ptr	dd ?
380
	triangles_normals_ptr	dd ?
381
	points_normals_ptr	dd ?
381
	points_normals_ptr	dd ?
382
	points_normals_rot_ptr	dd ?
382
	points_normals_rot_ptr	dd ?
383
	points_ptr		dd ?
383
	points_ptr		dd ?
384
	points_rotated_ptr	dd ?
384
	points_rotated_ptr	dd ?
385
	points_translated_ptr	dd ?
385
	points_translated_ptr	dd ?
386
	screen_ptr		dd ?
386
	screen_ptr		dd ?
387
	Zbuffer_ptr		dd ?
387
	Zbuffer_ptr		dd ?
388
 
388
 
389
   ;===
389
   ;===
390
 
390
 
391
	point_index1	    dw ?   ;-\
391
	point_index1	    dw ?   ;-\
392
	point_index2	    dw ?   ;  }  don't change order
392
	point_index2	    dw ?   ;  }  don't change order
393
	point_index3	    dw ?   ;-/
393
	point_index3	    dw ?   ;-/
394
	temp_col	    dw ?
394
	temp_col	    dw ?
395
	high		    dd ?
395
	high		    dd ?
396
	rand_seed	    dw ?
396
	rand_seed	    dw ?
397
align 8
397
align 8
398
	buffer	dq	?
398
	buffer	dq	?
399
	err_	dd	?
399
	errr	dd	?
400
	drr	dd	?
400
	drr	dd	?
401
	xx	dd	?
401
	xx	dd	?
402
	yy	dd	?
402
	yy	dd	?
403
	xst	dd	?
403
	xst	dd	?
404
	yst	dd	?
404
	yst	dd	?
405
;        screen_ptr      dd     ?
405
;        screen_ptr      dd     ?
406
;        Zbuffer_ptr     dd     ?
406
;        Zbuffer_ptr     dd     ?
407
 
407
 
408
	matrix	rb 36
408
	matrix	rb 36
409
	cos_tab rd 360
409
	cos_tab rd 360
410
	sin_tab rd 360
410
	sin_tab rd 360
411
 
411
 
412
align 16
412
align 16
413
 
413
 
414
if USE_LFN = 0
414
if USE_LFN = 0
415
     points:
415
     points:
416
	rw (EndFile-SourceFile)/12*3
416
	rw (EndFile-SourceFile)/12*3
417
	points_count = ($-points)/6
417
	points_count = ($-points)/6
418
     triangles:
418
     triangles:
419
	rw  (EndFile-SourceFile)/12*3
419
	rw  (EndFile-SourceFile)/12*3
420
	triangles_count = ($-triangles)/6
420
	triangles_count = ($-triangles)/6
421
align 16
421
align 16
422
	real_points rd points_count*3 + 1
422
	real_points rd points_count*3 + 1
423
align 16
423
align 16
424
	rotated_points_r rd points_count*3 + 1
424
	rotated_points_r rd points_count*3 + 1
425
align 16
425
align 16
426
	points_rotated rw points_count*3 + 2 ;means translated
426
	points_rotated rw points_count*3 + 2 ;means translated
427
align 16
427
align 16
428
	triangles_normals rb triangles_count * 12 ;
428
	triangles_normals rb triangles_count * 12 ;
429
align 16
429
align 16
430
	point_normals rb points_count * 12  ;one 3dvector - triple float dword x,y,z
430
	point_normals rb points_count * 12  ;one 3dvector - triple float dword x,y,z
431
align 16
431
align 16
432
	point_normals_rotated rb points_count * 12
432
	point_normals_rotated rb points_count * 12
433
align 16
433
align 16
434
	triangles_normals_rotated rb triangles_count * 12
434
	triangles_normals_rotated rb triangles_count * 12
435
 
435
 
436
else
436
else
437
    points_count = 180000/6*3
437
    points_count = 180000/6*3
438
    triangles_count = 180000 / 6  ;($-triangles)/6
438
    triangles_count = 180000 / 6  ;($-triangles)/6
439
end if
439
end if
440
align 16
440
align 16
441
	label trizdd dword
441
	label trizdd dword
442
	label trizdq qword
442
	label trizdq qword
443
	triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position
443
	triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position
444
align 16
444
align 16
445
	vectors rb 24
445
	vectors rb 24
446
;align 16
446
;align 16
447
;        points_color rb 6*points_count    ; each color as word
447
;        points_color rb 6*points_count    ; each color as word
448
;        sorted_triangles rw triangles_count*3 + 2
448
;        sorted_triangles rw triangles_count*3 + 2
449
align 16
449
align 16
450
	bumpmap 	rb	TEXTURE_SIZE + 1
450
	bumpmap 	rb	TEXTURE_SIZE + 1
451
align 16
451
align 16
452
	bumpmap2	rb	TEXTURE_SIZE + 1
452
	bumpmap2	rb	TEXTURE_SIZE + 1
453
align 16
453
align 16
454
	envmap		rb	(TEXTURE_SIZE +1) * 3
454
	envmap		rb	(TEXTURE_SIZE +1) * 3
455
align 16
455
align 16
456
	envmap_cub	rb	TEX_X * 3
456
	envmap_cub	rb	TEX_X * 3
457
align 16
457
align 16
458
	texmap		rb	(TEXTURE_SIZE +1) * 3
458
	texmap		rb	(TEXTURE_SIZE +1) * 3
459
align 16
459
align 16
460
	color_map	rb	(TEXTURE_SIZE +1) * 3
460
	color_map	rb	(TEXTURE_SIZE +1) * 3
461
align 16
461
align 16
462
	tex_points	rb	points_count * 4  ; bump_map  and texture coords
462
	tex_points	rb	points_count * 4  ; bump_map  and texture coords
463
				; each point word x, word y
463
				; each point word x, word y
464
align 16
464
align 16
465
  ;      SourceFile:             ; source file temporally in screen area
465
  ;      SourceFile:             ; source file temporally in screen area
466
  ;      workarea        dd      ?
466
  ;      workarea        dd      ?
467
 
467
 
468
    ;    screen          rb      SIZE_X * SIZE_Y * 3   ; screen buffer
468
    ;    screen          rb      SIZE_X * SIZE_Y * 3   ; screen buffer
469
;align 16
469
;align 16
470
     ;   Z_buffer        rb      SIZE_X * SIZE_Y * 4
470
     ;   Z_buffer        rb      SIZE_X * SIZE_Y * 4
471
	I_Param 	rb	256
471
	I_Param 	rb	256
472
	memStack	rb	4000 ;memory area for stack
472
	memStack	rb	4000 ;memory area for stack
473
align  16
473
align  16
474
screen:
474
screen: