forked from KolibriOS/kolibrios
Updated 'View3ds' sources till ver. 0.055. Added revision history file. Added some more 3DS example objects.
git-svn-id: svn://kolibrios.org@1819 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
3cdfb117d6
commit
b96f90fcb5
BIN
programs/demos/3DS/3ds_objects/03.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/03.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/House.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/House.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/UV_Cyl.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/UV_Cyl.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/cone.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/cone.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/cube.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/cube.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/face.3DS
Normal file
BIN
programs/demos/3DS/3ds_objects/face.3DS
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/fighter.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/fighter.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/iron.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/iron.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/knight.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/knight.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/knot.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/knot.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/opacity2.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/opacity2.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/second-A.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/second-A.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/shield1.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/shield1.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/sink.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/sink.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/surf32.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/surf32.3ds
Normal file
Binary file not shown.
BIN
programs/demos/3DS/3ds_objects/torus0.3ds
Normal file
BIN
programs/demos/3DS/3ds_objects/torus0.3ds
Normal file
Binary file not shown.
@ -88,6 +88,8 @@ bump_tex_triangle_z:
|
||||
.dtx23 equ dword[ebp-(52+4*15)]
|
||||
.dty23 equ [ebp-(52+4*16)]
|
||||
|
||||
if Ext < SSE
|
||||
|
||||
.cx1 equ dword[ebp-(52+4*17)] ; current variables
|
||||
.cz1 equ [ebp-(52+4*18)]
|
||||
.cx2 equ dword[ebp-(52+4*19)]
|
||||
@ -106,6 +108,27 @@ bump_tex_triangle_z:
|
||||
.ctx2 equ dword[ebp-(52+4*31)]
|
||||
.cty2 equ [ebp-(52+4*32)]
|
||||
|
||||
else
|
||||
|
||||
.cx1 equ dword[ebp-(52+4*17)] ; current variables
|
||||
.cz1 equ [ebp-(52+4*18)]
|
||||
.cbx1 equ dword[ebp-(52+4*19)]
|
||||
.cby1 equ [ebp-(52+4*20)]
|
||||
.cex1 equ dword[ebp-(52+4*21)]
|
||||
.cey1 equ [ebp-(52+4*22)]
|
||||
.ctx1 equ dword[ebp-(52+4*23)]
|
||||
.cty1 equ [ebp-(52+4*24)]
|
||||
|
||||
.cx2 equ dword[ebp-(52+4*25)]
|
||||
.cz2 equ [ebp-(52+4*26)]
|
||||
.cbx2 equ dword[ebp-(52+4*27)]
|
||||
.cby2 equ [ebp-(52+4*28)]
|
||||
.cex2 equ dword[ebp-(52+4*29)]
|
||||
.cey2 equ [ebp-(52+4*30)]
|
||||
.ctx2 equ dword[ebp-(52+4*31)]
|
||||
.cty2 equ [ebp-(52+4*32)]
|
||||
|
||||
end if
|
||||
cld
|
||||
mov ebp,esp
|
||||
push edx ; store bump map
|
||||
@ -180,18 +203,9 @@ bump_tex_triangle_z:
|
||||
.bt_dx12_make:
|
||||
movsx ebx,bx
|
||||
|
||||
mov ax,.x2
|
||||
sub ax,.x1
|
||||
cwde
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx12,eax
|
||||
push eax
|
||||
|
||||
if Ext>=SSE
|
||||
|
||||
sub esp,28
|
||||
sub esp,32
|
||||
; mov eax,256
|
||||
cvtsi2ss xmm4,[i255d]
|
||||
cvtsi2ss xmm3,ebx ;rcps
|
||||
@ -220,6 +234,7 @@ if Ext>=SSE
|
||||
|
||||
shufps xmm1,xmm1,10110001b
|
||||
;xmm1--> | dbx | dby | dex | dey |
|
||||
;1 movups .dey12,xmm1
|
||||
cvtps2pi mm0,xmm1 ;mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
movhlps xmm1,xmm1
|
||||
cvtps2pi mm1,xmm1 ;mm1,xmm1
|
||||
@ -235,6 +250,11 @@ if Ext>=SSE
|
||||
mov ax,.z2
|
||||
sub ax,.z1
|
||||
cwde
|
||||
|
||||
mov dx,.x2
|
||||
sub dx,.x1
|
||||
movsx edx,dx
|
||||
|
||||
;/ movd mm1,eax
|
||||
|
||||
;/ punpcklwd mm0,mm4
|
||||
@ -256,17 +276,40 @@ if Ext>=SSE
|
||||
;/ cvtpi2ps xmm1,mm1
|
||||
cvtsi2ss xmm1,eax
|
||||
movlhps xmm1,xmm1
|
||||
cvtsi2ss xmm1,edx
|
||||
; movss xmm1,xmm4
|
||||
shufps xmm1,xmm1,00101111b
|
||||
cvtpi2ps xmm1,mm3
|
||||
|
||||
divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx |
|
||||
divps xmm1,xmm3 ; xmm1--> | dx | dz | dty | dtx |
|
||||
|
||||
shufps xmm1,xmm1,11100001b
|
||||
; xmm1--> | xxx | dz | dtx | dty |
|
||||
; xmm1--> | dx | dz | dtx | dty |
|
||||
;1 movlps .dty12,xmm1
|
||||
;1 movhps .dz12,xmm1
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty |
|
||||
movhlps xmm1,xmm1
|
||||
cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz |
|
||||
cvtps2pi mm1,xmm1
|
||||
movq .dty12,mm0
|
||||
mov .dz12,eax
|
||||
movq .dz12,mm1
|
||||
;temporaly conversion to keep upside down
|
||||
; fninit
|
||||
; fld .dx12
|
||||
; fistp .dx12
|
||||
; fld dword .dz12
|
||||
; fistp dword .dz12
|
||||
; fld .dbx12
|
||||
; fistp .dbx12
|
||||
; fld dword .dby12
|
||||
; fistp dword .dby12
|
||||
; fld .dex12
|
||||
; fistp .dex12
|
||||
; fld dword .dey12
|
||||
; fistp dword .dey12
|
||||
; fld .dtx12
|
||||
; fistp .dtx12
|
||||
; fld dword .dty12
|
||||
; fistp dword .dty12
|
||||
;----
|
||||
; mov ax,.z2
|
||||
; sub ax,.z1
|
||||
@ -317,6 +360,15 @@ if Ext>=SSE
|
||||
; movq .dty12,mm0
|
||||
; movq .dz12,mm1
|
||||
else
|
||||
mov ax,.x2
|
||||
sub ax,.x1
|
||||
cwde
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx12,eax
|
||||
push eax
|
||||
|
||||
mov ax,.z2
|
||||
sub ax,.z1
|
||||
cwde
|
||||
@ -361,8 +413,6 @@ else
|
||||
; mov .dey12,eax
|
||||
push eax
|
||||
|
||||
;end if
|
||||
|
||||
mov ax,word[.t_x2]
|
||||
sub ax,word[.t_x1]
|
||||
cwde
|
||||
@ -393,20 +443,12 @@ end if
|
||||
loop @b
|
||||
jmp .bt_dx13_done
|
||||
.bt_dx13_make:
|
||||
mov ax,.x3
|
||||
sub ax,.x1
|
||||
cwde
|
||||
movsx ebx,bx
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx13,eax
|
||||
push eax
|
||||
|
||||
if Ext>=SSE
|
||||
|
||||
sub esp,28
|
||||
; mov eax,255
|
||||
sub esp,32
|
||||
; mov eax,256
|
||||
cvtsi2ss xmm4,[i255d]
|
||||
cvtsi2ss xmm3,ebx ;rcps
|
||||
divss xmm3,xmm4
|
||||
@ -434,16 +476,22 @@ if Ext>=SSE
|
||||
|
||||
shufps xmm1,xmm1,10110001b
|
||||
;xmm1--> | dbx | dby | dex | dey |
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
;1 movups .dey13,xmm1
|
||||
|
||||
cvtps2pi mm0,xmm1 ;mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
movhlps xmm1,xmm1
|
||||
cvtps2pi mm1,xmm1
|
||||
cvtps2pi mm1,xmm1 ;mm1,xmm1
|
||||
movq .dey13,mm0
|
||||
movq .dby13,mm1
|
||||
;----------
|
||||
|
||||
mov ax,.z3
|
||||
sub ax,.z1
|
||||
cwde
|
||||
|
||||
mov dx,.x3
|
||||
sub dx,.x1
|
||||
movsx edx,dx
|
||||
|
||||
movd mm2,[.t_x1]
|
||||
movd mm3,[.t_x3]
|
||||
|
||||
@ -453,18 +501,53 @@ if Ext>=SSE
|
||||
|
||||
cvtsi2ss xmm1,eax
|
||||
movlhps xmm1,xmm1
|
||||
cvtsi2ss xmm1,edx
|
||||
shufps xmm1,xmm1,00101111b
|
||||
cvtpi2ps xmm1,mm3
|
||||
|
||||
divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx |
|
||||
divps xmm1,xmm3 ; xmm1--> | dx | dz | dty | dtx |
|
||||
|
||||
shufps xmm1,xmm1,11100001b
|
||||
; xmm1--> | xxx | dz | dtx | dty |
|
||||
; xmm1--> | dx | dz | dtx | dty |
|
||||
;1 movlps .dty13,xmm1
|
||||
;1 movhps .dz13,xmm1
|
||||
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty |
|
||||
movhlps xmm1,xmm1
|
||||
cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz |
|
||||
cvtps2pi mm1,xmm1
|
||||
movq .dty13,mm0
|
||||
mov .dz13,eax
|
||||
movq .dz13,mm1
|
||||
|
||||
;temporaly conversion to keep upside down
|
||||
; fninit
|
||||
; fld .dx13
|
||||
; fistp .dx13
|
||||
; fld dword .dz13
|
||||
; fistp dword .dz13
|
||||
; fld .dbx13
|
||||
; fistp .dbx13
|
||||
; fld dword .dby13
|
||||
; fistp dword .dby13
|
||||
; fld .dex13
|
||||
; fistp .dex13
|
||||
; fld dword .dey13
|
||||
; fistp dword .dey13
|
||||
; fld .dtx13
|
||||
; fistp .dtx13
|
||||
; fld dword .dty13
|
||||
; fistp dword .dty13
|
||||
|
||||
else
|
||||
|
||||
mov ax,.x3
|
||||
sub ax,.x1
|
||||
cwde
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx13,eax
|
||||
push eax
|
||||
|
||||
mov ax,.z3
|
||||
sub ax,.z1
|
||||
cwde
|
||||
@ -541,20 +624,12 @@ end if
|
||||
loop @b
|
||||
jmp .bt_dx23_done
|
||||
.bt_dx23_make:
|
||||
mov ax,.x3
|
||||
sub ax,.x2
|
||||
cwde
|
||||
movsx ebx,bx
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx23,eax
|
||||
push eax
|
||||
|
||||
if Ext>=SSE
|
||||
|
||||
sub esp,28
|
||||
; mov eax,255
|
||||
sub esp,32
|
||||
; mov eax,256
|
||||
cvtsi2ss xmm4,[i255d]
|
||||
cvtsi2ss xmm3,ebx ;rcps
|
||||
divss xmm3,xmm4
|
||||
@ -582,16 +657,22 @@ if Ext>=SSE
|
||||
|
||||
shufps xmm1,xmm1,10110001b
|
||||
;xmm1--> | dbx | dby | dex | dey |
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
;1 movups .dey23,xmm1
|
||||
|
||||
cvtps2pi mm0,xmm1 ;mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
movhlps xmm1,xmm1
|
||||
cvtps2pi mm1,xmm1
|
||||
cvtps2pi mm1,xmm1 ;mm1,xmm1
|
||||
movq .dey23,mm0
|
||||
movq .dby23,mm1
|
||||
;----------
|
||||
|
||||
mov ax,.z3
|
||||
sub ax,.z2
|
||||
cwde
|
||||
|
||||
mov dx,.x3
|
||||
sub dx,.x2
|
||||
movsx edx,dx
|
||||
|
||||
movd mm2,[.t_x2]
|
||||
movd mm3,[.t_x3]
|
||||
|
||||
@ -601,18 +682,50 @@ if Ext>=SSE
|
||||
|
||||
cvtsi2ss xmm1,eax
|
||||
movlhps xmm1,xmm1
|
||||
cvtsi2ss xmm1,edx
|
||||
shufps xmm1,xmm1,00101111b
|
||||
cvtpi2ps xmm1,mm3
|
||||
|
||||
divps xmm1,xmm3 ; xmm1--> | xxx | dz | dty | dtx |
|
||||
divps xmm1,xmm3 ; xmm1--> | dx | dz | dty | dtx |
|
||||
|
||||
shufps xmm1,xmm1,11100001b
|
||||
; xmm1--> | xxx | dz | dtx | dty |
|
||||
; xmm1--> | dx | dz | dtx | dty |
|
||||
; movlps .dty23,xmm1
|
||||
; movhps .dz23,xmm1
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords | dtx | dty |
|
||||
movhlps xmm1,xmm1
|
||||
cvtss2si eax,xmm1 ; eax --> 1 delta dword | dz |
|
||||
cvtps2pi mm1,xmm1 ; mm1 --> 2 delta dwords | dx | dz |
|
||||
movq .dty23,mm0
|
||||
mov .dz23,eax
|
||||
movq .dz23,mm1
|
||||
|
||||
|
||||
;temporaly conversion to keep upside down
|
||||
; fninit
|
||||
; fld .dx23
|
||||
; fistp .dx23
|
||||
; fld dword .dz23
|
||||
; fistp dword .dz23
|
||||
; fld .dbx23
|
||||
; fistp .dbx23
|
||||
; fld dword .dby23
|
||||
; fistp dword .dby23
|
||||
; fld .dex23
|
||||
; fistp .dex23
|
||||
; fld dword .dey23
|
||||
; fistp dword .dey23
|
||||
; fld .dtx23
|
||||
; fistp .dtx23
|
||||
; fld dword .dty23
|
||||
; fistp dword .dty23
|
||||
else
|
||||
mov ax,.x3
|
||||
sub ax,.x2
|
||||
cwde
|
||||
shl eax,ROUND
|
||||
cdq
|
||||
idiv ebx
|
||||
; mov .dx23,eax
|
||||
push eax
|
||||
|
||||
mov ax,.z3
|
||||
sub ax,.z2
|
||||
@ -681,6 +794,58 @@ end if
|
||||
; sub esp,40
|
||||
.bt_dx23_done:
|
||||
sub esp,64
|
||||
;if Ext>=SSE
|
||||
; movsx eax,.x1
|
||||
; shl eax,ROUND
|
||||
; cvtsi2ss xmm0,eax
|
||||
; movss .cx1,xmm0
|
||||
; movss .cx2,xmm0
|
||||
;
|
||||
; movsx ebx,word[.b_x1]
|
||||
; shl ebx,ROUND
|
||||
; cvtsi2ss xmm0,ebx
|
||||
; movss .cbx1,xmm0
|
||||
; movss .cbx2,xmm0
|
||||
;
|
||||
; movsx ecx,word[.b_y1]
|
||||
; shl ecx,ROUND
|
||||
; cvtsi2ss xmm0,ecx
|
||||
; movss .cby1,xmm0
|
||||
; movss .cby2,xmm0
|
||||
|
||||
; movsx edx,word[.e_x1]
|
||||
; shl edx,ROUND
|
||||
; cvtsi2ss xmm0,edx
|
||||
; movss .cex1,xmm0
|
||||
; movss .cex2,xmm0
|
||||
;
|
||||
; movsx eax,word[.e_y1]
|
||||
; shl eax,ROUND
|
||||
; cvtsi2ss xmm0,eax
|
||||
; movss .cey1,xmm0
|
||||
; movss .cey2,xmm0
|
||||
;
|
||||
|
||||
; movsx ebx,.z1
|
||||
; shl ebx,CATMULL_SHIFT
|
||||
; cvtsi2ss xmm0,ebx
|
||||
; movss .cz1,xmm0
|
||||
; movss .cz2,xmm0
|
||||
;
|
||||
; movsx ecx,word[.t_x1]
|
||||
; shl ecx,ROUND
|
||||
; cvtsi2ss xmm0,ecx
|
||||
; movss .ctx1,xmm0
|
||||
; movss .ctx2,xmm0
|
||||
|
||||
; movsx edx,word[.t_y1]
|
||||
; shl edx,ROUND
|
||||
; cvtsi2ss xmm0,edx
|
||||
; movss .cty1,xmm0
|
||||
; movss .cty2,xmm0
|
||||
|
||||
;else
|
||||
|
||||
movsx eax,.x1
|
||||
shl eax,ROUND
|
||||
mov .cx1,eax
|
||||
@ -737,13 +902,36 @@ end if
|
||||
mov .cty2,edx
|
||||
; push edx
|
||||
; push edx
|
||||
|
||||
;end if
|
||||
|
||||
movsx ecx,.y1
|
||||
cmp cx,.y2
|
||||
jge .loop12_done
|
||||
.loop12:
|
||||
call .call_line
|
||||
;if Ext >= SSE
|
||||
; movups xmm0,.cby1
|
||||
; movups xmm1,.cty1
|
||||
; movups xmm2,.cby2
|
||||
; movups xmm3,.cty2
|
||||
; movups xmm4,.dby13
|
||||
; movups xmm5,.dty13
|
||||
; movups xmm6,.dby12
|
||||
; movups xmm7,.dty12
|
||||
; addps xmm0,xmm4
|
||||
; addps xmm1,xmm5
|
||||
; addps xmm2,xmm6
|
||||
; addps xmm3,xmm7
|
||||
;
|
||||
;; addps xmm0,.dby12
|
||||
;; addps xmm1,.dty12
|
||||
;; addps xmm2,.dby13
|
||||
;; addps xmm3,.dty13
|
||||
; movups .cby1,xmm0
|
||||
; movups .cty1,xmm1
|
||||
; movups .cby2,xmm2
|
||||
; movups .cty2,xmm3
|
||||
;end if
|
||||
|
||||
if Ext >= MMX
|
||||
movq mm0,.cby2
|
||||
@ -770,7 +958,8 @@ if Ext >= MMX
|
||||
movq .cty2,mm5
|
||||
movq .cz1,mm6
|
||||
movq .cz2,mm7
|
||||
else
|
||||
end if
|
||||
if Ext = NON
|
||||
mov edx,.dbx13
|
||||
add .cbx1,edx
|
||||
mov eax,.dbx12
|
||||
@ -816,6 +1005,8 @@ end if
|
||||
cmp cx,.y3
|
||||
jge .loop23_done
|
||||
|
||||
;if Ext < SSE
|
||||
|
||||
movsx eax,.z2
|
||||
shl eax,CATMULL_SHIFT
|
||||
mov .cz2,eax
|
||||
@ -847,10 +1038,76 @@ end if
|
||||
movzx ebx,word[.t_y2]
|
||||
shl ebx,ROUND
|
||||
mov .cty2,ebx
|
||||
;else
|
||||
; movsx eax,.z2
|
||||
; shl eax,CATMULL_SHIFT
|
||||
; cvtsi2ss xmm0,eax
|
||||
; movss .cz2,xmm0
|
||||
;
|
||||
; movsx ebx,.x2
|
||||
; shl ebx,ROUND
|
||||
; cvtsi2ss xmm1,ebx
|
||||
; movss .cx2,xmm1
|
||||
;
|
||||
; movzx edx,word[.b_x2]
|
||||
; shl edx,ROUND
|
||||
; cvtsi2ss xmm2,edx
|
||||
; movss .cbx2,xmm2
|
||||
;
|
||||
; movzx eax,word[.b_y2]
|
||||
; shl eax,ROUND
|
||||
; cvtsi2ss xmm0,eax
|
||||
; movss .cby2,xmm0
|
||||
;
|
||||
; movzx ebx,word[.e_x2]
|
||||
; shl ebx,ROUND
|
||||
; cvtsi2ss xmm1,ebx
|
||||
; movss .cex2,xmm1
|
||||
;
|
||||
; movzx edx,word[.e_y2]
|
||||
; shl edx,ROUND
|
||||
; cvtsi2ss xmm2,edx
|
||||
; movss .cey2,xmm2
|
||||
;
|
||||
; movzx eax,word[.t_x2]
|
||||
; shl eax,ROUND
|
||||
; cvtsi2ss xmm0,eax
|
||||
; movss .ctx2,xmm0
|
||||
;
|
||||
; movzx ebx,word[.t_y2]
|
||||
; shl ebx,ROUND
|
||||
; cvtsi2ss xmm1,ebx
|
||||
; movss .cty2,xmm1
|
||||
|
||||
;end if
|
||||
|
||||
.loop23:
|
||||
call .call_line
|
||||
|
||||
;if Ext >= SSE
|
||||
|
||||
; movups xmm0,.cby1
|
||||
; movups xmm1,.cty1
|
||||
; movups xmm2,.cby2
|
||||
; movups xmm3,.cty2
|
||||
; movups xmm4,.dby13
|
||||
; movups xmm5,.dty13
|
||||
; movups xmm6,.dby23
|
||||
; movups xmm7,.dty23
|
||||
; addps xmm0,xmm4
|
||||
; addps xmm1,xmm5
|
||||
; addps xmm2,xmm6
|
||||
; addps xmm3,xmm7
|
||||
; ; addps xmm0,.dby13
|
||||
; ; addps xmm1,.dty13
|
||||
; ; addps xmm2,.dby23
|
||||
; ; addps xmm3,.dty23
|
||||
; movups .cby1,xmm0
|
||||
; movups .cty1,xmm1
|
||||
; movups .cby2,xmm2
|
||||
; movups .cty2,xmm3
|
||||
;
|
||||
;end if
|
||||
if Ext >= MMX
|
||||
movq mm0,.cby2
|
||||
movq mm1,.cby1
|
||||
@ -876,7 +1133,8 @@ if Ext >= MMX
|
||||
movq .cty2,mm5
|
||||
movq .cz1,mm6
|
||||
movq .cz2,mm7
|
||||
else
|
||||
end if
|
||||
If Ext = NON
|
||||
mov edx,.dbx13
|
||||
add .cbx1,edx
|
||||
mov eax,.dbx23
|
||||
@ -912,7 +1170,6 @@ else
|
||||
add .cty1,edx
|
||||
mov eax,.dty23
|
||||
add .cty2,eax
|
||||
|
||||
end if
|
||||
inc ecx
|
||||
cmp cx,.y3
|
||||
@ -923,24 +1180,107 @@ end if
|
||||
ret 50
|
||||
|
||||
.call_line:
|
||||
;if Ext >= SSE
|
||||
; pushad
|
||||
; push .tex_ptr
|
||||
; fninit
|
||||
; fld dword .cty1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push dword .cty1
|
||||
; fld .ctx1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push .ctx1
|
||||
; fld dword .cz1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; ; push dwod .cz1
|
||||
; fld dword .cty2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; ; push .cty2
|
||||
; fld .ctx2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; ; push dword .ctx2
|
||||
; fld dword .cz2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push dword .cz2
|
||||
;
|
||||
; push .z_buff
|
||||
; push .t_emap
|
||||
; push .t_bmap
|
||||
;--------------------------------------
|
||||
; fld dword .cey2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push dword .cey2
|
||||
;
|
||||
; fld .cex2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push .cex2
|
||||
;
|
||||
; fld dword .cby2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; ; push dword .cby2
|
||||
|
||||
; fld .cbx2
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; push .cbx2
|
||||
;------------------------------------
|
||||
; fld dword .cey1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push dword .cey1
|
||||
; fld .cex1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
; ; push .cex1
|
||||
; fld dword .cby1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push dword .cby1
|
||||
; fld .cbx1
|
||||
; fistp dword [esp-4]
|
||||
; sub esp,4
|
||||
;; push .cbx1
|
||||
; push ecx
|
||||
|
||||
; fld .cx1
|
||||
; fistp dword [esp-4]
|
||||
; mov eax,[esp-4]
|
||||
; sar eax,ROUND
|
||||
; fld .cx2
|
||||
; fistp dword [esp-4]
|
||||
; mov ebx,[esp-4]
|
||||
; sar ebx,ROUND
|
||||
|
||||
; call bump_tex_line_z
|
||||
;
|
||||
; popad
|
||||
;else
|
||||
pushad
|
||||
push .tex_ptr
|
||||
push dword .cty2
|
||||
push .ctx2
|
||||
push dword .cty1
|
||||
push .ctx1
|
||||
push dword .cz1
|
||||
push dword .cty2
|
||||
push .ctx2
|
||||
push dword .cz2
|
||||
push .z_buff
|
||||
push .t_emap
|
||||
push .t_bmap
|
||||
push dword .cey2
|
||||
push .cex2
|
||||
push dword .cey1
|
||||
push .cex1
|
||||
push dword .cby2
|
||||
push .cbx2
|
||||
push dword .cey1
|
||||
push .cex1
|
||||
push dword .cby1
|
||||
push .cbx1
|
||||
push ecx
|
||||
@ -953,6 +1293,7 @@ ret 50
|
||||
call bump_tex_line_z
|
||||
|
||||
popad
|
||||
;end if
|
||||
ret
|
||||
bump_tex_line_z:
|
||||
;--------------in: eax - x1
|
||||
@ -960,62 +1301,46 @@ bump_tex_line_z:
|
||||
;-------------- edi - pointer to screen buffer
|
||||
;stack - another parameters :
|
||||
.y equ dword [ebp+4]
|
||||
.bx1q equ [ebp+8]
|
||||
.bx2q equ [ebp+16]
|
||||
.ex1q equ [ebp+24]
|
||||
.ex2q equ [ebp+32]
|
||||
.tx1q equ [ebp+60]
|
||||
.tx2q equ [ebp+68]
|
||||
;.bx1q equ [ebp+8]
|
||||
;.bx2q equ [ebp+16]
|
||||
;.ex1q equ [ebp+24]
|
||||
;.exyq equ [ebp+32]
|
||||
.bx1 equ dword [ebp+8] ; ---
|
||||
.by1 equ dword [ebp+12] ; |
|
||||
.bx2 equ dword [ebp+16] ; |
|
||||
.by2 equ dword [ebp+20] ; |> b. map and e. map coords
|
||||
.ex1 equ dword [ebp+24] ; |> shifted shl ROUND
|
||||
.ey1 equ dword [ebp+28] ; |
|
||||
.ex2 equ dword [ebp+32] ; |
|
||||
.ey2 equ dword [ebp+36] ; ---
|
||||
.bmap equ dword [ebp+40] ; bump map offset
|
||||
.emap equ dword [ebp+44] ; env map offset
|
||||
.z_buff equ dword [ebp+48]
|
||||
.z2 equ dword [ebp+52] ; -- |> z coords shifted
|
||||
.z1 equ dword [ebp+56] ; -- shl CATMULL_SHIFT
|
||||
|
||||
.tx1 equ dword [ebp+60] ; -----
|
||||
.ty1 equ dword [ebp+64] ; |> shifted shl ROUND
|
||||
.tx2 equ dword [ebp+68] ; |
|
||||
.ty2 equ dword [ebp+72] ; ---
|
||||
.bx1 equ [ebp+8] ; ---
|
||||
.by1 equ [ebp+12] ; |
|
||||
.ex1 equ [ebp+16] ; |
|
||||
.ey1 equ [ebp+20] ; |
|
||||
.bx2 equ [ebp+24] ; |
|
||||
.by2 equ [ebp+28] ; |> b. map and e. map coords
|
||||
.ex2 equ [ebp+32] ; |> shifted shl ROUND
|
||||
.ey2 equ [ebp+36] ; ---
|
||||
.bmap equ [ebp+40] ; bump map offset
|
||||
.emap equ [ebp+44] ; env map offset
|
||||
.z_buff equ [ebp+48]
|
||||
.z2 equ [ebp+52]
|
||||
.tx2 equ [ebp+56]
|
||||
.ty2 equ [ebp+60]
|
||||
.z1 equ [ebp+64]
|
||||
.tx1 equ [ebp+68]
|
||||
.ty1 equ [ebp+72]
|
||||
.tex_map equ dword [ebp+76] ; texture offset ( pointer )
|
||||
|
||||
|
||||
.x1 equ dword [ebp-4]
|
||||
.x2 equ dword [ebp-8]
|
||||
.dbx equ dword [ebp-12]
|
||||
.dby equ dword [ebp-16]
|
||||
.dbyq equ qword [ebp-16] ; - new
|
||||
.dex equ dword [ebp-20]
|
||||
.dey equ dword [ebp-24]
|
||||
.deyq equ qword [ebp-24] ; - new
|
||||
.dz equ dword [ebp-28]
|
||||
.dtx equ dword [ebp-32]
|
||||
.dty equ dword [ebp-36]
|
||||
.dtyq equ qword [ebp-36]
|
||||
.x1 equ [ebp-4]
|
||||
.x2 equ [ebp-8]
|
||||
.dbx equ [ebp-12]
|
||||
.dby equ [ebp-16]
|
||||
.dex equ [ebp-20]
|
||||
.dey equ [ebp-24]
|
||||
.dz equ [ebp-28]
|
||||
.dtx equ [ebp-32]
|
||||
.dty equ [ebp-36]
|
||||
|
||||
.cbx equ dword [ebp-40]
|
||||
.cby equ dword [ebp-44]
|
||||
.cbyq equ qword [ebp-44] ; - new
|
||||
.cex equ dword [ebp-48]
|
||||
.cey equ dword [ebp-52]
|
||||
.ceyq equ qword [ebp-52] ; - new
|
||||
.cz equ dword [ebp-56]
|
||||
.czbuff equ dword [ebp-60]
|
||||
.ctx equ dword [ebp-64]
|
||||
.cty equ dword [ebp-68]
|
||||
.ctyq equ qword [ebp-68]
|
||||
.c_scr equ dword [ebp-72]
|
||||
.cbx equ [ebp-40]
|
||||
.cby equ [ebp-44]
|
||||
.cex equ [ebp-48]
|
||||
.cey equ [ebp-52]
|
||||
.cz equ [ebp-56]
|
||||
.czbuff equ [ebp-60]
|
||||
.ctx equ [ebp-64]
|
||||
.cty equ [ebp-68]
|
||||
.c_scr equ [ebp-72]
|
||||
|
||||
.temp1 equ ebp-80
|
||||
.temp2 equ ebp-88
|
||||
@ -1025,8 +1350,6 @@ bump_tex_line_z:
|
||||
|
||||
mov ebp,esp
|
||||
|
||||
|
||||
|
||||
mov ecx,.y
|
||||
or ecx,ecx
|
||||
jl .bl_end
|
||||
@ -1059,19 +1382,30 @@ if Ext=NON
|
||||
mov edx,.ty1
|
||||
xchg edx,.ty2
|
||||
mov .ty1,edx
|
||||
else
|
||||
movq mm0,.bx1q
|
||||
movq mm1,.bx2q
|
||||
movq mm2,.ex1q
|
||||
movq mm3,.ex2q
|
||||
movq mm4,.tx1q
|
||||
movq mm5,.tx2q
|
||||
movq .bx2q,mm0
|
||||
movq .bx1q,mm1
|
||||
movq .ex1q,mm3
|
||||
movq .ex2q,mm2
|
||||
movq .tx1q,mm5
|
||||
movq .tx2q,mm4
|
||||
end if
|
||||
if Ext = MMX
|
||||
movq mm0,.bx1
|
||||
movq mm1,.bx2
|
||||
movq mm2,.ex1
|
||||
movq mm3,.ex2
|
||||
movq mm4,.tx1
|
||||
movq mm5,.tx2
|
||||
movq .bx2,mm0
|
||||
movq .bx1,mm1
|
||||
movq .ex1,mm3
|
||||
movq .ex2,mm2
|
||||
movq .tx1,mm5
|
||||
movq .tx2,mm4
|
||||
end if
|
||||
if Ext>=SSE
|
||||
movups xmm0,.bx1
|
||||
movups xmm1,.bx2
|
||||
movups .bx1,xmm1
|
||||
movups .bx2,xmm0
|
||||
movq mm0,.tx1
|
||||
movq mm1,.tx2
|
||||
movq .tx1,mm1
|
||||
movq .tx2,mm0
|
||||
end if
|
||||
|
||||
mov edx,.z1
|
||||
@ -1080,9 +1414,9 @@ end if
|
||||
.bl_ok:
|
||||
push eax
|
||||
push ebx ;store x1, x2
|
||||
cmp .x1,SIZE_X
|
||||
cmp dword .x1,SIZE_X
|
||||
jge .bl_end
|
||||
cmp .x2,0
|
||||
cmp dword .x2,0
|
||||
jle .bl_end
|
||||
|
||||
mov ebx,.x2
|
||||
@ -1093,43 +1427,51 @@ if Ext>=SSE
|
||||
sub esp,28
|
||||
cvtsi2ss xmm3,ebx ;rcps
|
||||
shufps xmm3,xmm3,0
|
||||
; float using SSE variant ::-->
|
||||
; movups xmm0,.bx1 ; new
|
||||
; movups xmm1,.bx2 ; new
|
||||
|
||||
cvtpi2ps xmm0,.bx1q ;mm0
|
||||
cvtpi2ps xmm0,.bx1 ;mm0 ; variant fixed point
|
||||
movlhps xmm0,xmm0
|
||||
cvtpi2ps xmm0,.ex1q ;mm2
|
||||
cvtpi2ps xmm1,.bx2q ;mm1
|
||||
cvtpi2ps xmm0,.ex1 ;mm2
|
||||
cvtpi2ps xmm1,.bx2 ;mm1
|
||||
movlhps xmm1,xmm1
|
||||
cvtpi2ps xmm1,.ex2q ;mm3
|
||||
cvtpi2ps xmm1,.ex2 ;mm3
|
||||
subps xmm1,xmm0
|
||||
|
||||
divps xmm1,xmm3
|
||||
|
||||
shufps xmm1,xmm1,10110001b
|
||||
; movups .dey,xmm1 ; new
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
movhlps xmm1,xmm1
|
||||
cvtps2pi mm1,xmm1
|
||||
movq .deyq,mm0
|
||||
movq .dbyq,mm1
|
||||
movq .dey,mm0
|
||||
movq .dby,mm1
|
||||
|
||||
movd mm2,.z1
|
||||
movd mm3,.z2
|
||||
|
||||
cvtpi2ps xmm0,.tx1q ;mm0
|
||||
cvtpi2ps xmm0,.tx1 ;mm0
|
||||
movlhps xmm0,xmm0
|
||||
cvtpi2ps xmm0,mm2
|
||||
cvtpi2ps xmm1,.tx2q ;mm1
|
||||
cvtpi2ps xmm1,.tx2 ;mm1
|
||||
movlhps xmm1,xmm1
|
||||
cvtpi2ps xmm1,mm3
|
||||
; movups xmm0,,z1 ; new
|
||||
; movups xmm1,.z2 ; new
|
||||
subps xmm1,xmm0
|
||||
|
||||
divps xmm1,xmm3
|
||||
|
||||
; movups .dz,xmm1 ;new
|
||||
|
||||
shufps xmm1,xmm1,10110100b
|
||||
cvtps2pi mm0,xmm1 ; mm0 -> 2 delta dwords
|
||||
movhlps xmm1,xmm1
|
||||
cvtps2pi mm1,xmm1
|
||||
movd .dz,mm0
|
||||
movq .dtyq,mm1
|
||||
movq .dty,mm1
|
||||
|
||||
else
|
||||
|
||||
@ -1177,14 +1519,27 @@ else
|
||||
push eax
|
||||
|
||||
end if
|
||||
cmp .x1,0 ; set correctly begin variable
|
||||
cmp dword .x1,0 ; set correctly begin variable
|
||||
jge @f ; CLIPPING ON FUNCTION
|
||||
; cutting triangle exceedes screen
|
||||
mov ebx,.x1
|
||||
neg ebx
|
||||
|
||||
;if Ext >= SSE
|
||||
|
||||
; cvtsi2ss xmm0,ebx
|
||||
; shufps xmm0,xmm0,0
|
||||
; movups xmm1,.dey
|
||||
; mulps xmm1,xmm0
|
||||
; shufps xmm1,xmm1,00011011b
|
||||
; movups xmm2,.bx1
|
||||
; addps xmm2,xmm1
|
||||
; movups .bx1,xmm2
|
||||
|
||||
mov eax,.dz
|
||||
imul ebx ; eax = .dz * abs(.x1)
|
||||
add .z1,eax
|
||||
mov .x1,0
|
||||
mov dword .x1,0
|
||||
|
||||
mov eax,.dbx
|
||||
imul ebx
|
||||
@ -1211,9 +1566,9 @@ end if
|
||||
add .ty1,eax
|
||||
|
||||
@@:
|
||||
cmp .x2,SIZE_X
|
||||
cmp dword .x2,SIZE_X
|
||||
jl @f
|
||||
mov .x2,SIZE_X
|
||||
mov dword .x2,SIZE_X
|
||||
@@:
|
||||
mov eax,SIZE_X ;calc memory begin in buffers
|
||||
mul .y
|
||||
@ -1227,21 +1582,21 @@ end if
|
||||
mov ecx,.x2
|
||||
sub ecx,.x1
|
||||
; init current variables
|
||||
push .bx1 ; current b, e and t shifted shl ROUND .cbx
|
||||
push .by1 ; .cby
|
||||
push .ex1 ; .cex
|
||||
push .ey1 ; .cey
|
||||
push dword .bx1 ; current b, e and t shifted shl ROUND .cbx
|
||||
push dword .by1 ; .cby
|
||||
push dword .ex1 ; .cex
|
||||
push dword .ey1 ; .cey
|
||||
|
||||
push .z1 ; current z shl CATMULL_SHIFT ; .cz
|
||||
push dword .z1 ; current z shl CATMULL_SHIFT ; .cz
|
||||
push esi ; .czbuff
|
||||
|
||||
push .tx1 ; .ctx
|
||||
push .ty1 ; .cty
|
||||
push dword .tx1 ; .ctx
|
||||
push dword .ty1 ; .cty
|
||||
push edi ; .c_scr
|
||||
if Ext>=MMX
|
||||
movq mm7,.ctyq
|
||||
movq mm6,.cbyq
|
||||
movq mm5,.ceyq
|
||||
movq mm7,.cty
|
||||
movq mm6,.cby
|
||||
movq mm5,.cey
|
||||
; movq mm4,.dtyq
|
||||
; movq mm3,.dbyq
|
||||
end if
|
||||
@ -1266,7 +1621,6 @@ else
|
||||
end if
|
||||
|
||||
|
||||
|
||||
shl eax,TEX_SHIFT
|
||||
add esi,eax ;- ; esi - current bump map index
|
||||
|
||||
@ -1296,6 +1650,7 @@ end if
|
||||
movzx ebx,byte [ebx]
|
||||
sub edx,ebx
|
||||
|
||||
|
||||
; eax - horizontal sub modificated x coord
|
||||
; edx - vertical sub modificated y coord
|
||||
if Ext=NON
|
||||
@ -1400,8 +1755,8 @@ end if
|
||||
stosd
|
||||
|
||||
.skip:
|
||||
add .czbuff,4
|
||||
add .c_scr,3
|
||||
add dword .czbuff,4
|
||||
add dword .c_scr,3
|
||||
|
||||
if Ext=NON
|
||||
mov eax,.dbx
|
||||
@ -1420,9 +1775,9 @@ if Ext=NON
|
||||
add .cty,edx
|
||||
|
||||
else
|
||||
paddd mm7,.dtyq
|
||||
paddd mm6,.dbyq
|
||||
paddd mm5,.deyq
|
||||
paddd mm7,.dty
|
||||
paddd mm6,.dby
|
||||
paddd mm5,.dey
|
||||
end if
|
||||
mov eax,.dz
|
||||
add .cz,eax
|
||||
|
96
programs/demos/3DS/History.txt
Normal file
96
programs/demos/3DS/History.txt
Normal file
@ -0,0 +1,96 @@
|
||||
View3ds 0.055 - January 2011.
|
||||
1. SSE optimizations (file BUMP_TEX.INC).
|
||||
2. Compiles correctly in newest FASM.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.054 - December 2009 (Updated January 2010).
|
||||
1. Skinned window by Leency.
|
||||
2. Optimizations.
|
||||
3. Re map texture, bumps option - allow spherical mapping around each axle (X,Y,Z).
|
||||
4. Problem with too small memory to generate object fixed. (Problem ocurred with
|
||||
house.3ds object and others objects contains less than 1000 faces and points).
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.053 - (?) 2009
|
||||
1. Optimizations.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.052 - November 2007.
|
||||
1. Memory for file is allocated dynamically.
|
||||
2. Optimizations.
|
||||
Note: compiling correct only for KolibriOS.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.051 - October 2007.
|
||||
1. More smooth texture mapping in tex and txgr shading model and others based on
|
||||
tex3.inc, tex_cat.inc shading models.
|
||||
2. Predefined three, I hope, nice lights.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.05 - (?) 2007
|
||||
1. New shading model: cubic environment mapping with 1.5 kb light buffer.
|
||||
2. Bumps optionally according to texture. ( It gives so called texture with
|
||||
shifts in bumps + texture shading model. )
|
||||
3. Bumps depth button.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.04 - March 2007.
|
||||
1. New shading model: bump + texture. Only version with z coordinate
|
||||
interpolation.
|
||||
2. SSE optimizations ( files: two_tex.inc and bump_tex.inc )
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.03 - March 2007.
|
||||
1. Two shading models: smooth + texture, spherical environment mapping + texture.
|
||||
Version only with z coordinate interpolation.
|
||||
2. Bit changed rotary. I took attempt in SSE instuctions. ( matrix multiplication )
|
||||
3. Color position depend drawing model instead spot light ( I hope,spot light come
|
||||
back in future ).
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
View3ds 0.02 - December 2006.
|
||||
1. New shading models - "spot" - spot light (only one, it's very CPU hungry model,
|
||||
and there is no easy way to implement buffer) with light attenuation (In my
|
||||
implmentation works not perfect); "dots" - app draws only points (with no culling).
|
||||
2. Some loseless operations "mirror": according to each axis, rotary 90 degrees.
|
||||
3. Postprocesing efects: Emboss (use blur to make edges more visable), fire ( be
|
||||
carefull during `fire + embos`parallel using).
|
||||
4. "Move" - Changes meaning of 'add vector' buttons:
|
||||
used "obj" move object, "camr" move camera (in this option use culling = 'off'
|
||||
I must make culling procedure bit advanced).
|
||||
5. Generate button. Few objects generating (with bad normals)
|
||||
6. Some optimizations on MMX.
|
||||
7. I took an attempt to memory managing functions, but it decreased speed (no aligned
|
||||
memory in Menuet functions?)
|
||||
|
||||
There is really much work to do and I see disorder in app code.
|
||||
Greetings for all, especially Madis Kalme for .3ds files support and good vibrations. ;)
|
||||
Merry Christmas and happy new year.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
App View3ds ver 0.01 - November 2006.
|
||||
1. Object generating (for now only one). When no parameter specified or error occured
|
||||
during reading file from disk, app generate object. No teapot.3ds needed on ramdrive,
|
||||
but, if this file exist it would be read as default.
|
||||
2. Bug in read_from_file procedure fixed. (In May, when I made shading light vector
|
||||
depend, I demaged bit Madis' procedure.)
|
||||
3. Backface culling on/off option. (Some objects need culling off - they have mismatched
|
||||
normal vectors. Example: iron.3ds, sink.3ds, the generated one.)
|
||||
4. Random lights procedure.
|
||||
5. Spherical (instead old - planar ) bump, texture mapping.
|
||||
6. Bit improved menu.
|
||||
7. Blur.
|
||||
-----------------------------------------------------------------------------------
|
||||
|
||||
App "View3ds" - it's very early, still unfinished version but I want show you it.
|
||||
Based on earlier demos.
|
||||
1. 3ds object import as a parameter ( for now only short names supported )
|
||||
I updated Kfar app - it can run view3ds with parameter. You must copy it on
|
||||
ramdrive. You could do such funny thing: Run updated Kfar in KolbrInWin,
|
||||
before them set in KolInWin.ini file path to ramdrive, where yo have "view3ds",
|
||||
choose 3ds file ... Emulator will run View3ds with selected file.
|
||||
If no parameter specified, app try open tpot.3ds from ramdrive. If tpot.3ds
|
||||
don't exist on rd, app hang.
|
||||
2. Many lights. Every light - unlinear model ( Phong illumination ). For now
|
||||
no light setting option.
|
||||
3. Light buffer for grd, flat model.
|
@ -1,10 +1,10 @@
|
||||
|
||||
; application : View3ds ver. 0.054 - tiny .3ds files viewer.
|
||||
; compiler : FASM 1.67.11
|
||||
; system : KolibriOS/MenuetOS
|
||||
; application : View3ds ver. 0.055 - tiny .3ds files viewer.
|
||||
; compiler : FASM
|
||||
; system : KolibriOS
|
||||
; author : Macgub aka Maciej Guba
|
||||
; email : macgub3@wp.pl
|
||||
; web : www.menuet.xt.pl
|
||||
; web : www.macgub.hekko.pl
|
||||
; Fell free to use this intro in your own distribution of KolibriOS/MenuetOS.
|
||||
; Special greetings to all MenuetOS maniax in the world.
|
||||
; I hope because my intros Christian Belive will be near to each of You.
|
||||
@ -34,7 +34,7 @@ LIGHT_SIZE equ 22 ; | |
|
||||
NON = 0 ; -/ \-
|
||||
MMX = 1
|
||||
SSE = 2
|
||||
Ext = MMX ;Ext={ NON | MMX | SSE}
|
||||
Ext = MMX ;Ext={ NON | MMX | SSE}
|
||||
|
||||
; 0 for short names (Menuet-compatible), 1 for long names (Kolibri features)
|
||||
USE_LFN = 1
|
||||
|
@ -268,7 +268,7 @@ base_vector:
|
||||
if Ext=SSE
|
||||
db ' (SSE)'
|
||||
end if
|
||||
db ' 0.054'
|
||||
db ' 0.055'
|
||||
labellen:
|
||||
STRdata db '-1 '
|
||||
|
||||
@ -396,7 +396,7 @@ align 8
|
||||
rand_seed dw ?
|
||||
align 8
|
||||
buffer dq ?
|
||||
err_ dd ?
|
||||
errr dd ?
|
||||
drr dd ?
|
||||
xx dd ?
|
||||
yy dd ?
|
||||
|
@ -1,11 +1,8 @@
|
||||
View3ds 0.054 - tiny viewer to .3ds files.
|
||||
View3ds 0.055 - tiny viewer to .3ds files.
|
||||
|
||||
What's new?
|
||||
1. Skinned window by Leency.
|
||||
2. Optimizations.
|
||||
3. Re map texture, bumps option - allow spherical mapping around each axle (X,Y,Z).
|
||||
4. Problem with too small memory to generate object fixed. (Problem ocurred with
|
||||
house.3ds object and others objects contains less than 1000 faces and points).
|
||||
1. SSE optimizations (file BUMP_TEX.INC).
|
||||
3. Compiles correctly in newest FASM.
|
||||
|
||||
Buttons description:
|
||||
1. rotary: choosing rotary axle: x, y, x+y.
|
||||
@ -33,5 +30,4 @@ Buttons description:
|
||||
18. re-map tex -> re-map texture and bump map coordinates, to change spherical mapping
|
||||
around axle use 'xchg' and 'mirror' buttons, then press 're-map tex' button.
|
||||
|
||||
Macgub december 2009
|
||||
Last edited Jan 2010
|
||||
Macgub Jan 2011
|
||||
|
Loading…
Reference in New Issue
Block a user