x, eax @ FOFFSET szDirect3D9Error_Message
@@: clientwindow. rightBackBufferWidthclientwindow. bottomBackBufferHeightd9 CreateDevice, pd3d, D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, DCREATE_SOFTWARE_VERTEXPROCESSING, BackBufferWidth, ADDR pd3dDeviceeax, eax; Якщо виникла помилка при створенні пристрою
jzFOFFSET szD3DDevice9Error_Message
@@: Init_SceneSet_Render_Parameters_Direct3D endp
; :::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::: _ Scene proc
. DATAD3DVECTOR lt;- 500.0f, 160.0f, 730.0f gt ;; Координати камери в просторі
LookAtVector D3DVECTOR lt; 0.0f, 230.0f, 0.0f gt ;; Вказує куди дивиться камера
UpVector D3DVECTOR lt; 0.0f, 1.0f, 0.0f gt ;; Верх камери. Зазвичай береться 0.0,1.0,0.0D3DCOLORVALUE lt;- 58335.0f, 53913.0f, 0.0f, 0.0f gt; dd 0.7853981635fdd NULL; AspectRatiodd 50.0f; Передня отсекающая плоскостьdd 180000.0f; Задня отсекающая площину
. DATA? _VS1 D3DXMATRIX lt ;? gt; D3DMATRIX lt ;? gt ;; Світова матриця
ViewMatrix D3DMATRIX lt ;? gt ;; Матриця виду
ProjectionMatrix D3DMATRIX lt ;? gt ;; Матриця проекції
BackBufferP LPDIRECT3DSURFACE9?
ZStenBackBufferP LPDIRECT3DSURFACE9?
DepthTargP LPDIRECT3DSURFACE9?
. CODE
fild BackBufferWidth; Обчислення Aspect (можна просто відразу помістити 1.33 (3) f)
fild BackBufferHeight
fdiv
fstp AspectRatio
invoke D3DXMatrixRotationY, ADDR WorldMatrix, NULL; World Matrix (світова матриця)
invoke D3DXMatrixLookAtLH, ADDR ViewMatrix, ADDR EyeVector, ; View Matrix (матриця виду)
ADDR LookAtVector, ADDR UpVector
invoke D3DXMatrixPerspectiveFovLH, ADDR ProjectionMatrix, FieldOfView, ; Matrix Projection (матриця проекції)
AspectRatio, NearViewPlanZ, FarViewPlanZ
; ScreenSpace
. DATA
; Таргет розміри
SSP_XY_640_480 D3DCOLORVALUE lt; 0.0015625f, 0.002083f, 0.0f, 0.0f gt ;; КонстантиD3DVECTOR lt; 0.0f, 0.0f, - 1.0f gt ;; Координати камери в пространствеD3DVECTOR lt; 0.0f, 0.0f, 0.0f gt ;; Вказує куди дивиться камераD3DVECTOR lt; 0.0f, 1.0f, 0.0f gt ;; Верх камери. Зазвичай береться 0.0,1.0,0.0
SSFieldOfView dd 0.3926990817f; D3DX_PI4; 0.7853981635f
SSAspectRatio dd 1.0f; AspectRatio
SSNearViewPlanZ dd 0.0f; Передня отсекающая площину
SSFarViewPlanZ dd 1.0f
. DATA?
SSViewMatrix D3DMATRIX lt ;? gt; D3DMATRIX lt ;? gt; D3DMATRIX lt ;? gt; _SS D3DMATRIX lt ;? gt;
. CODED3DXMatrixLookAtLH, ADDR SSViewMatrix, ADDR SSEyeV, ; View Matrix (матриця виду) SSLookAtV, ADDR SSUpVD3DXMatrixPerspectiveFovLH, ADDR SSProjectionMatrix, SSFieldOfView, ; Matrix Projection (матриця проекції), SSNearViewPlanZ, SSFarViewPlanZD3DXMatrixMultiply, ADDR m_SS, ADDR SSViewMatrix, ADDR SSProjectionMatrix
invoke D3DXMatrixTranspose, ADDR SSViewProjection, ADDR m_SS
; початкове завантаження
; Таргетиdev9 GetRenderTarget, pd3dDevice, 0, addr BackBufferPdev9 GetDepthStencilSurface, pd3dDevice, addr ZStenBackBufferPdev9 CreateDepthStencilSurface, pd3dDevice, 1024,1024, AutoDepthStencilFormat, D3DMULTISAMPLE_NONE, 0, TRUE, ADDR DepthTargP, 0
. DATA? Dd? Dd?
. CODEdev9 CreateTexture, pd3dDevice, 1024,1024,1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, addr CartoonRen, 0
. DATAdb Create error CartoonRen , 0
. CODEeax, eax @ FOFFSET CartoonRenEERError_Message
@@: dtex9 GetSurfaceLevel, CartoonRen, 0, addr CartoonRenP
. DATAdb Create error CartoonRenP , 0
. CODEeax, eax @ FOFFSET CartoonRenPEERError_Message
@@:
. DATA? Dd? Dd?
. CODEdev9 CreateTexture, pd3dDevice, 1024,1024,1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, addr NormalRen, 0
. DATAdb Create error NormalRen , 0
. CODEeax, eax @ FOFFSET NormalRenEERError_Message
@@: dtex9 GetSurfaceLevel, NormalRen, 0, addr NormalRenP
. DATAdb Create error NormalRenP , 0
. CODEeax, eax @ FOFFSET NormalRenPEERError_Message
@@:
. DATAdb texture tefect. bmp raquo ;, 0
. DATA? Dd?
. CODED3DXCreateTextureFromFileA, pd3dDevice, addr tefect, addr tefectP
. DATAdb Create error tefect , 0
. CODEeax, eax @ FOFFSET tefectEER
jmp Error_Message
@@:
. DATAdb model Ekran. x raquo ;, 0
. DATA? Dd?
. CODED3DXLoadMeshFromXA, addr Ekran, D3DXMESH_MANAGED, pd3dDevice, 0, 0, NULL, 0, addr EkranP
. DATAdb Create error Ekran , 0
. CODEeax, eax
jzFOFFSET EkranEERError_Message
@@:
. DATA? Dd? Dd? _VB Dd? _IB Dd? _NV Dd? _NF Dd?
. CODEdxmesh GetFVF, EkranPEkranPT, eaxdxmesh G...