Subversion Repositories Kolibri OS

Rev

Rev 8232 | Rev 8719 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8666 dunkaist 1
; DATA AREA  ************************************
1979 yogev_ezra 2
 
8047 leency 3
        i3              dw      3
4
        i12             dd      12
5
        i256            dw      256
6
        i255d           dd      255
7
        dot_max         dd      1.0      ; dot product max and min
8
        dot_min         dd      0.0
9
        env_const       dd      1.05
10
        tex_x_div2      dw      TEX_X  / 2
11
        tex_y_div2      dw      TEX_Y  / 2
12
        xobs            dw      0 ;SIZE_X / 2 ;200 ;observer  = camera
13
        yobs            dw      0 ;SIZE_Y / 2 ;200 ;coordinates
14
        zobs            dw      -1000
1979 yogev_ezra 15
 
8047 leency 16
        re_alloc_flag db 0
17
        angle_counter dw 0
18
        piD180        dd 0.017453292519943295769236907684886
19
        piD128        dd 0.024544
20
        const6        dw 6,6,6,6
21
        x_offset      dw SIZE_X / 2
22
        y_offset      dw SIZE_Y / 2
23
        z_offset      dw 0
24
        rsscale       dd 175.0           ; next real scale
25
        vect_x        dw SIZE_X / 2
26
        vect_y        dw SIZE_Y / 2
27
        vect_z        dw 0
8666 dunkaist 28
                size_y_var:
29
        yres_var                dw SIZE_Y
30
 
31
        size_x_var:
32
        xres_var                dw SIZE_X
33
 
8047 leency 34
        angle_x       dw 0
35
        angle_y       dw 0
36
        angle_z       dw 0
37
        sin_amplitude dd 50
38
        sin_frq       dd 0.7
39
        sin_delta     dd 0.07    ; wave frequency granularity
40
        convert_muler:
41
                      dd 1, 10, 100, 1000, 10000
42
        XYZpartices:
43
                      db 'X','Y','Z'
44
        i10           dw 10
45
        offset_y:
46
        i25           dw 25  ; screen buff offset
47
        offset_x:
48
        i5            dw 5
49
        triangles_ptr           dd 0
50
        triangles_w_z_ptr       dd 0
51
        triangles_normals_ptr   dd 0
52
        points_normals_ptr      dd 0
53
        points_normals_rot_ptr  dd 0
54
        points_ptr              dd 0
55
        points_rotated_ptr      dd 0
56
        points_translated_ptr   dd 0
57
        screen_ptr              dd 0
58
        Zbuffer_ptr             dd 0
59
        vertices_index_ptr      dd 0
60
        vertex_edit_no    dw 0
61
        edit_start_x:
62
                          dw 0
63
        edit_start_y      dw 0
64
        edit_end_x:
65
                          dw 0
66
        edit_end_y        dw 0
67
        mouse_state           dd 0
1979 yogev_ezra 68
 
8666 dunkaist 69
 
8047 leency 70
        menu:
71
               db 2                ; button number  = index
72
               db 'rotary    '     ; label
73
               db 3                ; max flag  + 1 , if = 255, no flag
74
 r_flag        db 1                ; flag
75
               dd axl_f            ; offset to flags description
76
 
77
               db 3
78
               db 'shd. model'
79
            if Ext >= SSE3
8666 dunkaist 80
 max_dr_flg    db 15
8047 leency 81
            else
82
               db 12
83
            end if
8014 leency 84
 dr_flag       db 0  ;  6 - dots
8047 leency 85
               dd shd_f
1979 yogev_ezra 86
 
8047 leency 87
               db 4
88
               db 'speed     '
89
               db 2
1979 yogev_ezra 90
 speed_flag    db 0
8047 leency 91
               dd spd_f
1979 yogev_ezra 92
 
8047 leency 93
               db 5
94
               db 'zoom out  '
95
               db 255
96
               db ?
97
               dd ?
1979 yogev_ezra 98
 
8047 leency 99
               db 6
100
               db 'zoom in   '
101
               db 255
102
               db ?
103
               dd ?
1979 yogev_ezra 104
 
8047 leency 105
               db 7
106
               db 'catmull   '
107
               db 2
1979 yogev_ezra 108
catmull_flag   db 1
8047 leency 109
               dd onoff_f
1979 yogev_ezra 110
 
8047 leency 111
               db 8
112
               db 'culling   '
113
               db 2
6619 leency 114
culling_flag   db 0
8047 leency 115
               dd onoff_f
1979 yogev_ezra 116
 
8047 leency 117
               db 9
118
               db 'rand.light'
119
               db 255
120
               db ?
121
               dd ?
1979 yogev_ezra 122
 
8047 leency 123
               db 10
124
               db 'blur      '
125
               db 6
1979 yogev_ezra 126
blur_flag      db 0
8047 leency 127
               dd blur_f
1979 yogev_ezra 128
 
8047 leency 129
               db 11
130
               db 'mirror x  '
131
               db 2
1979 yogev_ezra 132
mirr_x_flag    db 0
8047 leency 133
               dd onoff_f
1979 yogev_ezra 134
 
8047 leency 135
               db 12
136
               db 'mirror y  '
137
               db 2
1979 yogev_ezra 138
mirr_y_flag    db 0
8047 leency 139
               dd onoff_f
1979 yogev_ezra 140
 
8047 leency 141
               db 13
142
               db 'mirror z  '
143
               db 2
1979 yogev_ezra 144
mirr_z_flag    db 0
8047 leency 145
               dd onoff_f
1979 yogev_ezra 146
 
8047 leency 147
               db 14
148
               db 'xchg      '
149
               db 4
1979 yogev_ezra 150
xchg_flag      db 0
8047 leency 151
               dd xchg_f
1979 yogev_ezra 152
 
8047 leency 153
               db 15
154
               db 'emboss    '
155
               db 2
1979 yogev_ezra 156
emboss_flag    db 0
8047 leency 157
               dd onoff_f
1979 yogev_ezra 158
 
8047 leency 159
               db 16
160
               db 'fire      '
161
               db 3
1979 yogev_ezra 162
fire_flag      db 0
8047 leency 163
               dd blur_f
1979 yogev_ezra 164
 
8047 leency 165
               db 17
166
               db 'move      '
167
               db 3
1979 yogev_ezra 168
move_flag      db 0
8047 leency 169
               dd move_f
1979 yogev_ezra 170
 
8047 leency 171
                  db 18
172
                  db 'generate  '
173
                  db 6
174
generator_flag    db 0
175
                  dd blur_f
1979 yogev_ezra 176
 
8047 leency 177
                  db 19
178
                  db 'bumps     '
179
                  db 2
180
bumps_flag        db 0
181
                  dd bumps_f
1979 yogev_ezra 182
 
8047 leency 183
                  db 20
184
                  db 'bumps deep'
185
                  db 4
1979 yogev_ezra 186
bumps_deep_flag   db 3
8047 leency 187
                  dd bumps_d_f
1979 yogev_ezra 188
 
8047 leency 189
                  db 21
190
                  db 're-map tex'
191
                  db 255
192
map_tex_flag      db ? ;1
193
                  dd ?  ;bumps_d_f
2736 leency 194
 
8047 leency 195
                  db 22
196
                  db 'bright +  '
197
                  db 6
2736 leency 198
inc_bright_flag   db 0 ;1
8047 leency 199
                  dd blur_f
2736 leency 200
 
8047 leency 201
                  db 23
202
                  db 'bright -  '
203
                  db 6
2736 leency 204
dec_bright_flag   db 0 ;1
8047 leency 205
                  dd blur_f
2736 leency 206
 
8047 leency 207
                  db 24
208
                  db 'wav effect'
209
                  db 2
210
sinus_flag        db 0
211
                  dd onoff_f
2984 leency 212
 
6769 IgorA 213
 
8047 leency 214
                  db 25
215
                  db 'editor    '
216
                  db 2
217
 edit_flag        db 0
218
                  dd onoff_f
2736 leency 219
;                  db 24
220
;                  db 'max       '
221
;                  db 2
222
;max_flag          db 0 ;1
223
;                  dd blur_f
224
;
225
;                  db 25
226
;                  db 'min       '
227
;                  db 2
228
;min_flag          db 0 ;1
229
;                  dd blur_f
230
 
231
 
232
 
1979 yogev_ezra 233
;                  db 21
234
;                  db 'light No. '
235
;                  db 3
236
;light_no_flag     db 0
237
;                  dd bumps_d_f
238
 
239
;                db 22
240
;                db 'light comp'
241
;                db 3
242
;light_comp_flag db 0
243
;                dd light_component_f
244
 
245
;;                db 23
246
;;                db 'col. comp'
247
;;                db 3
248
;;color_comp_flag db 0
249
;;                dd color_component_f
250
 
251
 
252
 
253
 
8047 leency 254
 
255
               db -1       ; end mark
256
 
257
 
258
flags:             ; flags description
1979 yogev_ezra 259
 shd_f:
260
    db 'flat'
261
    db 'grd '
262
    db 'env '
263
    db 'bump'
264
    db 'tex '
265
    db 'pos '
266
    db 'dots'
267
    db 'txgr'
268
    db '2tex'
269
    db 'btex'
270
    db 'cenv'
2881 leency 271
    db 'grdl'
8047 leency 272
    db 'rphg'
8232 leency 273
    db 'glas'
8666 dunkaist 274
    db 'ptex'
1979 yogev_ezra 275
 spd_f:
276
    db 'idle'
277
    db 'full'
278
 axl_f:
279
    db ' y  '
280
    db 'x+y '
281
    db ' x  '
282
 onoff_f:
283
    db 'off '
284
    db 'on  '
285
 
8047 leency 286
          blur_f:              ; blur, fire
287
            db 'off '
1979 yogev_ezra 288
bumps_d_f:  db ' 1  '
8047 leency 289
            db ' 2  '
290
            db ' 3  '
291
            db ' 4  '
292
            db ' 5  '
1979 yogev_ezra 293
 
294
 xchg_f:
295
    db 'no  '
296
    db 'x<>y'
297
    db 'z<>x'
298
    db 'y<>z'
299
 move_f:
300
    db 'obj '
301
    db 'camr'
2984 leency 302
    db 'wave'
1979 yogev_ezra 303
;    db 'lght'
304
 bumps_f:
305
    db 'rand'
306
    db 'tex '
307
;    db 'cscl'
308
base_vector:
309
    labelvector:
8047 leency 310
        db   'add vector'
1979 yogev_ezra 311
    labelvectorend:
312
    labelyminus:
8047 leency 313
        db   'y -'
1979 yogev_ezra 314
    labelyminusend:
315
    labelzplus:
8047 leency 316
        db   'z +'
1979 yogev_ezra 317
    labelzplusend:
318
    labelxminus:
8047 leency 319
        db   'x -'
1979 yogev_ezra 320
    labelxminusend:
321
    labelxplus:
8047 leency 322
        db   'x +'
1979 yogev_ezra 323
    labelxplusend:
324
    labelzminus:
8047 leency 325
        db   'z -'
1979 yogev_ezra 326
    labelzminusend:
327
    labelyplus:
8047 leency 328
        db   'y +'
1979 yogev_ezra 329
    labelyplusend:
330
 
331
 
332
    labelt:
8047 leency 333
        db   'DEUS CARITAS EST'
1979 yogev_ezra 334
      if Ext=MMX
8047 leency 335
        db   ' (MMX)'
1979 yogev_ezra 336
      end if
337
      if Ext=SSE
8047 leency 338
        db   ' (SSE)'
1979 yogev_ezra 339
      end if
340
      if Ext=SSE2
8047 leency 341
        db   ' (SSE2)'
1979 yogev_ezra 342
      end if
8047 leency 343
      if Ext=SSE3
344
        db   ' (SSE3)'
345
      end if
8666 dunkaist 346
        db   ' 0.072',0
1979 yogev_ezra 347
    labellen:
8047 leency 348
        STRdata db '-1        '
1979 yogev_ezra 349
 
350
    all_lights_size dw lightsend-lights
351
 
352
 
8666 dunkaist 353
;        file_info:
354
;                dd      0
355
;                dd      0
356
;                dd      0
357
;         fsize  dd      0 ;180000 ; sizeof(workarea)
358
;         fptr   dd      0 ;workarea
359
;        file_name:
360
;                db      '/rd/1/3d/house.3ds',0
361
;         ;      db      '/tmp0/1/ant.3ds',0
362
;
363
;      rb 256
1979 yogev_ezra 364
 
365
;=============================================
366
lights:
8047 leency 367
     .light_vector        dd      0.0,0.0,-1.0   ; x,y,z  Z cooficient of vector must be negative
368
     .orginal_color_r     db      1              ;  +12
369
     .orginal_color_g     db      255              ;
370
     .orginal_color_b     db      1              ;  +14
371
     .min_color_r         db      1              ;
372
     .min_color_g         db      1              ;  +16
373
     .min_color_b         db      1              ;
374
     .max_color_r         db      255            ;
375
     .max_color_g         db      255            ;
376
     .max_color_b         db      255            ;
377
     .shine               db      24             ;  +21
1979 yogev_ezra 378
 ;    LIGHT_SIZE equ ($-lights)
379
 
8047 leency 380
        dd      -0.5,-0.5,-1.0   ; x,y,z ;  .light_vector
381
        db      5                ; .orginal_color_r
382
        db      1                ; .orginal_color_g
383
        db      135              ; .orginal_color_b
384
        db      19               ; .min_color_r
385
        db      19               ; .min_color_g
386
        db      19               ; .min_color_b
387
        db      255              ; .max_color_r
388
        db      255              ; .max_color_g
389
        db      255              ; .max_color_b
390
        db      16               ; .shine
1979 yogev_ezra 391
 
8047 leency 392
        dd      0.5,0.5,-1.0    ; x,y,z ;  .light_vector
393
        db      135             ; .orginal_color_r
394
        db      1               ; .orginal_color_g
395
        db      1               ; .orginal_color_b
396
        db      19              ; .min_color_r
397
        db      19              ; .min_color_g
398
        db      19              ; .min_color_b
399
        db      255             ; .max_color_r
400
        db      255             ; .max_color_g
401
        db      20              ; .max_color_b
402
        db      16              ; .shine
1979 yogev_ezra 403
;        ALL_LIGHTS_SIZE equ ($ - lights)
404
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE
405
;===============================================
406
 
407
lightsend:
8047 leency 408
 
409
 
410
 
411
 
6769 IgorA 412
align 16
413
    emboss_bias:
8047 leency 414
           dw 128, 128, 128, 128, 128, 128, 128, 128
415
    zero_hgst_dd:
416
           dd -1, -1, -1, 0
417
    mask_255f:
8666 dunkaist 418
    correct_texf:
8047 leency 419
           times 4 dd 255.0
420
    the_zero:
421
           times 4 dd 0.0
8666 dunkaist 422
    tex_m2:
423
           times 4 dd 510.0
424
    the_one:
425
           times 4 dd 1.0
426
     aprox  dd 0.0001
1979 yogev_ezra 427
 
8666 dunkaist 428
 
429
        file_info:
430
                dd      0
431
                dd      0
432
                dd      0
433
         fsize  dd      0 ;180000 ; sizeof(workarea)
434
         fptr   dd      0 ;workarea
435
        file_name:
436
                db      '/rd/1/3d/house.3ds',0
437
         ;      db      '/tmp0/1/ant.3ds',0
438
 
439
      rb 256
440
 
441
 
6769 IgorA 442
I_END:
1979 yogev_ezra 443
SourceFile:
444
workarea   rb 180
445
EndFile   dd ?
446
align 8
8047 leency 447
        sinbeta dd      ?;+32
448
        cosbeta dd      ?
1979 yogev_ezra 449
 
8047 leency 450
        xsub    dw      ?
451
        zsub    dw      ?;+40
452
        ysub    dw      ?
1979 yogev_ezra 453
 
8047 leency 454
        xx1     dw      ?
455
        yy1     dw      ?
456
        zz1     dw      ?;+48    xx1 + 4
457
        xx2     dw      ?
458
        yy2     dw      ?
459
        zz2     dw      ?      ; xx1 + 10
460
        xx3     dw      ?;+56
461
        yy3     dw      ?
462
        zz3     dw      ?      ; xx1 + 16
463
        col1    dd      ?
464
        col2    dd      ?
465
        col3    dd      ?
466
        scale   dd      ? ; help scale variable
8232 leency 467
 
1979 yogev_ezra 468
   ;==
8047 leency 469
        triangles_count_var     dd ?
470
        points_count_var        dd ?
8232 leency 471
 
8666 dunkaist 472
;        size_y_var:
473
;        yres_var                dw ?
8232 leency 474
 
8666 dunkaist 475
;        size_x_var:
476
;        xres_var                dw ?
8047 leency 477
        x_start:
478
                                dw ?
479
        y_start:
480
                                dw ?
1979 yogev_ezra 481
 
482
   ;===
483
 
8047 leency 484
        point_index1        dd ?   ;-\
485
        point_index2        dd ?   ;  }  don't change order
486
        point_index3        dd ?   ;-/
487
        temp_col            dw ?
8666 dunkaist 488
        temp1               dd ?   ; > dont change
489
        temp2               dd ?   ; >  order
8047 leency 490
        high                dd ?
491
        rand_seed           dw ?
1979 yogev_ezra 492
align 8
8047 leency 493
        buffer  dq      ?
494
        errr    dd      ?
495
        drr     dd      ?
496
        xx      dd      ?
497
        yy      dd      ?
498
        xst     dd      ?
499
        yst     dd      ?
1979 yogev_ezra 500
;        screen_ptr      dd     ?
501
;        Zbuffer_ptr     dd     ?
502
 
8047 leency 503
        matrix  rb 36
504
        cos_tab rd 360
505
        sin_tab rd 360
1979 yogev_ezra 506
 
507
align 16
508
 
509
 
510
    points_count = 180000/6*3
511
    triangles_count = 180000 / 6  ;($-triangles)/6
512
align 16
8047 leency 513
        label trizdd dword
514
        label trizdq qword
515
        triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position
1979 yogev_ezra 516
align 16
8047 leency 517
        vectors rb 24
1979 yogev_ezra 518
align 16
8047 leency 519
        bumpmap         rb      TEXTURE_SIZE + 1
1979 yogev_ezra 520
align 16
8047 leency 521
        bumpmap2        rb      TEXTURE_SIZE + 1
1979 yogev_ezra 522
align 16
8047 leency 523
        envmap          rb      (TEXTURE_SIZE +1) * 3
1979 yogev_ezra 524
align 16
8047 leency 525
        envmap_cub      rb      TEX_X * 3
1979 yogev_ezra 526
align 16
8047 leency 527
        texmap          rb      (TEXTURE_SIZE +1) * 3
1979 yogev_ezra 528
align 16
8232 leency 529
        color_map       rb      (TEXTURE_SIZE +100) * 3
1979 yogev_ezra 530
align 16
8047 leency 531
        tex_points      rb      points_count * 4  ; bump_map  and texture coords
532
                                ; each point word x, word y
1979 yogev_ezra 533
align 16
8047 leency 534
       lights_aligned:
535
       lights_aligned_end = $ + 16 * 12
536
                        rb 16 * 12
537
 
538
 
2881 leency 539
if Ext >= SSE2
8047 leency 540
        sse_repository  rb      1024
2881 leency 541
end if
1979 yogev_ezra 542
  ;      SourceFile:             ; source file temporally in screen area
543
  ;      workarea        dd      ?
544
 
545
    ;    screen          rb      SIZE_X * SIZE_Y * 3   ; screen buffer
546
;align 16
547
     ;   Z_buffer        rb      SIZE_X * SIZE_Y * 4
8047 leency 548
        procinfo:
549
                        rb     1024 ; process info
550
        I_Param         rb      256
551
        memStack:
552
        rb 2000
1979 yogev_ezra 553
align  16
6769 IgorA 554
screen: