0,0 → 1,554 |
; DATA AREA ************************************ |
|
i3 dw 3 |
i12 dd 12 |
i256 dw 256 |
i255d dd 255 |
dot_max dd 1.0 ; dot product max and min |
dot_min dd 0.0 |
env_const dd 1.05 |
tex_x_div2 dw TEX_X / 2 |
tex_y_div2 dw TEX_Y / 2 |
xobs dw 0 ;SIZE_X / 2 ;200 ;observer = camera |
yobs dw 0 ;SIZE_Y / 2 ;200 ;coordinates |
zobs dw -1000 |
|
re_alloc_flag db 0 |
angle_counter dw 0 |
piD180 dd 0.017453292519943295769236907684886 |
piD128 dd 0.024544 |
const6 dw 6,6,6,6 |
x_offset dw SIZE_X / 2 |
y_offset dw SIZE_Y / 2 |
z_offset dw 0 |
rsscale dd 175.0 ; next real scale |
vect_x dw SIZE_X / 2 |
vect_y dw SIZE_Y / 2 |
vect_z dw 0 |
size_y_var: |
yres_var dw SIZE_Y |
|
size_x_var: |
xres_var dw SIZE_X |
|
angle_x dw 0 |
angle_y dw 0 |
angle_z dw 0 |
sin_amplitude dd 50 |
sin_frq dd 0.7 |
sin_delta dd 0.07 ; wave frequency granularity |
convert_muler: |
dd 1, 10, 100, 1000, 10000 |
XYZpartices: |
db 'X','Y','Z' |
i10 dw 10 |
offset_y: |
i25 dw 25 ; screen buff offset |
offset_x: |
i5 dw 5 |
triangles_ptr dd 0 |
triangles_w_z_ptr dd 0 |
triangles_normals_ptr dd 0 |
points_normals_ptr dd 0 |
points_normals_rot_ptr dd 0 |
points_ptr dd 0 |
points_rotated_ptr dd 0 |
points_translated_ptr dd 0 |
screen_ptr dd 0 |
Zbuffer_ptr dd 0 |
vertices_index_ptr dd 0 |
vertex_edit_no dw 0 |
edit_start_x: |
dw 0 |
edit_start_y dw 0 |
edit_end_x: |
dw 0 |
edit_end_y dw 0 |
mouse_state dd 0 |
|
|
menu: |
db 2 ; button number = index |
db 'rotary ' ; label |
db 3 ; max flag + 1 , if = 255, no flag |
r_flag db 1 ; flag |
dd axl_f ; offset to flags description |
|
db 3 |
db 'shd. model' |
if Ext >= SSE3 |
max_dr_flg db 15 |
else |
db 12 |
end if |
dr_flag db 0 ; 6 - dots |
dd shd_f |
|
db 4 |
db 'speed ' |
db 2 |
speed_flag db 0 |
dd spd_f |
|
db 5 |
db 'zoom out ' |
db 255 |
db ? |
dd ? |
|
db 6 |
db 'zoom in ' |
db 255 |
db ? |
dd ? |
|
db 7 |
db 'catmull ' |
db 2 |
catmull_flag db 1 |
dd onoff_f |
|
db 8 |
db 'culling ' |
db 2 |
culling_flag db 0 |
dd onoff_f |
|
db 9 |
db 'rand.light' |
db 255 |
db ? |
dd ? |
|
db 10 |
db 'blur ' |
db 6 |
blur_flag db 0 |
dd blur_f |
|
db 11 |
db 'mirror x ' |
db 2 |
mirr_x_flag db 0 |
dd onoff_f |
|
db 12 |
db 'mirror y ' |
db 2 |
mirr_y_flag db 0 |
dd onoff_f |
|
db 13 |
db 'mirror z ' |
db 2 |
mirr_z_flag db 0 |
dd onoff_f |
|
db 14 |
db 'xchg ' |
db 4 |
xchg_flag db 0 |
dd xchg_f |
|
db 15 |
db 'emboss ' |
db 2 |
emboss_flag db 0 |
dd onoff_f |
|
db 16 |
db 'fire ' |
db 3 |
fire_flag db 0 |
dd blur_f |
|
db 17 |
db 'move ' |
db 3 |
move_flag db 0 |
dd move_f |
|
db 18 |
db 'generate ' |
db 6 |
generator_flag db 0 |
dd blur_f |
|
db 19 |
db 'bumps ' |
db 2 |
bumps_flag db 0 |
dd bumps_f |
|
db 20 |
db 'bumps deep' |
db 4 |
bumps_deep_flag db 3 |
dd bumps_d_f |
|
db 21 |
db 're-map tex' |
db 255 |
map_tex_flag db ? ;1 |
dd ? ;bumps_d_f |
|
db 22 |
db 'bright + ' |
db 6 |
inc_bright_flag db 0 ;1 |
dd blur_f |
|
db 23 |
db 'bright - ' |
db 6 |
dec_bright_flag db 0 ;1 |
dd blur_f |
|
db 24 |
db 'wav effect' |
db 2 |
sinus_flag db 0 |
dd onoff_f |
|
|
db 25 |
db 'editor ' |
db 2 |
edit_flag db 0 |
dd onoff_f |
; db 24 |
; db 'max ' |
; db 2 |
;max_flag db 0 ;1 |
; dd blur_f |
; |
; db 25 |
; db 'min ' |
; db 2 |
;min_flag db 0 ;1 |
; dd blur_f |
|
|
|
; db 21 |
; db 'light No. ' |
; db 3 |
;light_no_flag db 0 |
; dd bumps_d_f |
|
; db 22 |
; db 'light comp' |
; db 3 |
;light_comp_flag db 0 |
; dd light_component_f |
|
;; db 23 |
;; db 'col. comp' |
;; db 3 |
;;color_comp_flag db 0 |
;; dd color_component_f |
|
|
|
|
|
db -1 ; end mark |
|
|
flags: ; flags description |
shd_f: |
db 'flat' |
db 'grd ' |
db 'env ' |
db 'bump' |
db 'tex ' |
db 'pos ' |
db 'dots' |
db 'txgr' |
db '2tex' |
db 'btex' |
db 'cenv' |
db 'grdl' |
db 'rphg' |
db 'glas' |
db 'ptex' |
spd_f: |
db 'idle' |
db 'full' |
axl_f: |
db ' y ' |
db 'x+y ' |
db ' x ' |
onoff_f: |
db 'off ' |
db 'on ' |
|
blur_f: ; blur, fire |
db 'off ' |
bumps_d_f: db ' 1 ' |
db ' 2 ' |
db ' 3 ' |
db ' 4 ' |
db ' 5 ' |
|
xchg_f: |
db 'no ' |
db 'x<>y' |
db 'z<>x' |
db 'y<>z' |
move_f: |
db 'obj ' |
db 'camr' |
db 'wave' |
; db 'lght' |
bumps_f: |
db 'rand' |
db 'tex ' |
; db 'cscl' |
base_vector: |
labelvector: |
db 'add vector' |
labelvectorend: |
labelyminus: |
db 'y -' |
labelyminusend: |
labelzplus: |
db 'z +' |
labelzplusend: |
labelxminus: |
db 'x -' |
labelxminusend: |
labelxplus: |
db 'x +' |
labelxplusend: |
labelzminus: |
db 'z -' |
labelzminusend: |
labelyplus: |
db 'y +' |
labelyplusend: |
|
|
labelt: |
db 'DEUS CARITAS EST' |
if Ext=MMX |
db ' (MMX)' |
end if |
if Ext=SSE |
db ' (SSE)' |
end if |
if Ext=SSE2 |
db ' (SSE2)' |
end if |
if Ext=SSE3 |
db ' (SSE3)' |
end if |
db ' 0.072',0 |
labellen: |
STRdata db '-1 ' |
|
all_lights_size dw lightsend-lights |
|
|
; file_info: |
; dd 0 |
; dd 0 |
; dd 0 |
; fsize dd 0 ;180000 ; sizeof(workarea) |
; fptr dd 0 ;workarea |
; file_name: |
; db '/rd/1/3d/house.3ds',0 |
; ; db '/tmp0/1/ant.3ds',0 |
; |
; rb 256 |
|
;============================================= |
lights: |
.light_vector dd 0.0,0.0,-1.0 ; x,y,z Z cooficient of vector must be negative |
.orginal_color_r db 1 ; +12 |
.orginal_color_g db 255 ; |
.orginal_color_b db 1 ; +14 |
.min_color_r db 1 ; |
.min_color_g db 1 ; +16 |
.min_color_b db 1 ; |
.max_color_r db 255 ; |
.max_color_g db 255 ; |
.max_color_b db 255 ; |
.shine db 24 ; +21 |
; LIGHT_SIZE equ ($-lights) |
|
dd -0.5,-0.5,-1.0 ; x,y,z ; .light_vector |
db 5 ; .orginal_color_r |
db 1 ; .orginal_color_g |
db 135 ; .orginal_color_b |
db 19 ; .min_color_r |
db 19 ; .min_color_g |
db 19 ; .min_color_b |
db 255 ; .max_color_r |
db 255 ; .max_color_g |
db 255 ; .max_color_b |
db 16 ; .shine |
|
dd 0.5,0.5,-1.0 ; x,y,z ; .light_vector |
db 135 ; .orginal_color_r |
db 1 ; .orginal_color_g |
db 1 ; .orginal_color_b |
db 19 ; .min_color_r |
db 19 ; .min_color_g |
db 19 ; .min_color_b |
db 255 ; .max_color_r |
db 255 ; .max_color_g |
db 20 ; .max_color_b |
db 16 ; .shine |
; ALL_LIGHTS_SIZE equ ($ - lights) |
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE |
;=============================================== |
|
lightsend: |
|
|
|
|
align 16 |
emboss_bias: |
dw 128, 128, 128, 128, 128, 128, 128, 128 |
zero_hgst_dd: |
dd -1, -1, -1, 0 |
mask_255f: |
correct_texf: |
times 4 dd 255.0 |
the_zero: |
times 4 dd 0.0 |
tex_m2: |
times 4 dd 510.0 |
the_one: |
times 4 dd 1.0 |
aprox dd 0.0001 |
|
|
file_info: |
dd 0 |
dd 0 |
dd 0 |
fsize dd 0 ;180000 ; sizeof(workarea) |
fptr dd 0 ;workarea |
file_name: |
db '/rd/1/3d/house.3ds',0 |
; db '/tmp0/1/ant.3ds',0 |
|
rb 256 |
|
|
I_END: |
SourceFile: |
workarea rb 180 |
EndFile dd ? |
align 8 |
sinbeta dd ?;+32 |
cosbeta dd ? |
|
xsub dw ? |
zsub dw ?;+40 |
ysub dw ? |
|
xx1 dw ? |
yy1 dw ? |
zz1 dw ?;+48 xx1 + 4 |
xx2 dw ? |
yy2 dw ? |
zz2 dw ? ; xx1 + 10 |
xx3 dw ?;+56 |
yy3 dw ? |
zz3 dw ? ; xx1 + 16 |
col1 dd ? |
col2 dd ? |
col3 dd ? |
scale dd ? ; help scale variable |
|
;== |
triangles_count_var dd ? |
points_count_var dd ? |
|
; size_y_var: |
; yres_var dw ? |
|
; size_x_var: |
; xres_var dw ? |
x_start: |
dw ? |
y_start: |
dw ? |
|
;=== |
|
point_index1 dd ? ;-\ |
point_index2 dd ? ; } don't change order |
point_index3 dd ? ;-/ |
temp_col dw ? |
temp1 dd ? ; > dont change |
temp2 dd ? ; > order |
high dd ? |
rand_seed dw ? |
align 8 |
buffer dq ? |
errr dd ? |
drr dd ? |
xx dd ? |
yy dd ? |
xst dd ? |
yst dd ? |
; screen_ptr dd ? |
; Zbuffer_ptr dd ? |
|
matrix rb 36 |
cos_tab rd 360 |
sin_tab rd 360 |
|
align 16 |
|
|
points_count = 180000/6*3 |
triangles_count = 180000 / 6 ;($-triangles)/6 |
align 16 |
label trizdd dword |
label trizdq qword |
triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position |
align 16 |
vectors rb 24 |
align 16 |
bumpmap rb TEXTURE_SIZE + 1 |
align 16 |
bumpmap2 rb TEXTURE_SIZE + 1 |
align 16 |
envmap rb (TEXTURE_SIZE +1) * 3 |
align 16 |
envmap_cub rb TEX_X * 3 |
align 16 |
texmap rb (TEXTURE_SIZE +1) * 3 |
align 16 |
color_map rb (TEXTURE_SIZE +100) * 3 |
align 16 |
tex_points rb points_count * 4 ; bump_map and texture coords |
; each point word x, word y |
align 16 |
lights_aligned: |
lights_aligned_end = $ + 16 * 12 |
rb 16 * 12 |
|
|
if Ext >= SSE2 |
sse_repository rb 1024 |
end if |
; SourceFile: ; source file temporally in screen area |
; workarea dd ? |
|
; screen rb SIZE_X * SIZE_Y * 3 ; screen buffer |
;align 16 |
; Z_buffer rb SIZE_X * SIZE_Y * 4 |
procinfo: |
rb 1024 ; process info |
I_Param rb 256 |
memStack: |
rb 2000 |
align 16 |
screen: |
Property changes: |
Added: svn:eol-style |
+native |
\ No newline at end of property |