91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 46KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-06
  • 語言: 其他
  • 標簽: 游戲編程??

資源簡介

1、創建Win32工程,實現基本的程序框架。渲染邏輯、清除資源各占5分 2、讀取高度圖3、將高度圖數據加載到緩沖區 4、在網格中使用高度圖 5.正確渲染地形網格對象 6、計算網格法線7、設置材質 8、設置點光源。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?

#pragma?comment?(lib“winmm.lib“)
#pragma?comment?(lib“d3d9.lib“)
#pragma?comment?(lib“d3dx9.lib“)
LPDIRECT3D9 g_pD3D;
LPDIRECT3DDEVICE9 g_pD3DDevice;

#include?“Terrain.h“
CTerrain?*g_pTerrain;


#define?SAFE_DELETE(p)???????{?if(p)?{?delete?(p);?????(p)=NULL;?}?}
#define?SAFE_DELETE_ARRAY(p)?{?if(p)?{?delete[]?(p);???(p)=NULL;?}?}
#define?SAFE_RELEASE(p)??????{?if(p)?{?(p)->Release();?(p)=NULL;?}?}


LRESULT?CleanUp()
{
SAFE_DELETE(g_pTerrain);
SAFE_RELEASE(g_pD3DDevice);
SAFE_RELEASE(g_pD3D);

return?S_OK;
}



LRESULT?SetLight(int?nD3DVECTOR?*vDir)
{


return?D3D_OK;
}

LRESULT?Update()
{

float?fTimeNow=timeGetTime()/1000.0f;

D3DXMATRIX?matViewmatWorldmatRotXmatRotYmatRotZmatProj;
D3DXMatrixRotationX(&matRotXD3DX_PI*0.5f*fTimeNow);
D3DXMatrixRotationY(&matRotYD3DX_PI*0.5f*fTimeNow);
D3DXMatrixRotationZ(&matRotZD3DX_PI*0.5f*fTimeNow);
D3DXMatrixMultiply(&matWorld&matRotX&matRotY);

D3DXMatrixMultiply(&matWorld&matWorld&matRotY);


D3DXMatrixLookAtLH(&matView&D3DXVECTOR3(300*sinf(fTimeNow*D3DX_PI*0.1f)
200300*cosf(fTimeNow*D3DX_PI*0.1f))
&D3DXVECTOR3(0500)
&D3DXVECTOR3(010));

D3DXMatrixPerspectiveFovLH(&matProjD3DX_PI/41.333f1.0f5000);

g_pD3DDevice->SetTransform(D3DTS_VIEW&matView);
g_pD3DDevice->SetTransform(D3DTS_PROJECTION&matProj);


D3DVECTOR?vDir={cosf(fTimeNow)-0.2fsinf(fTimeNow)};
SetLight(0&vDir);

return?D3D_OK;
}

LRESULT?Render()
{ //頂點數據

g_pD3DDevice->Clear(00D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER0x001.0f0); //清除背景
g_pD3DDevice->BeginScene(); //開始繪制
//繪制原始單元

Update();?
g_pTerrain->Render();??

g_pD3DDevice->EndScene(); //結束繪制
g_pD3DDevice->Present(0000); //翻屏
return?D3D_OK;
}


//初始化函數,創建Direct3D和設備對象
LRESULT?InitD3D(HWND?hwnd)
{
g_pD3D= Direct3DCreate9(D3D_SDK_VERSION); //創建Direct3D9對象

D3DPRESENT_PARAMETERS?d3dpp; //設備翻屏參數
memset(&d3dpp0sizeof(d3dpp)); //初始化
d3dpp.BackBufferCount=1; //后備緩沖區數量
d3dpp.SwapEffect=?D3DSWAPEFFECT_DISCARD; //交換模式
d3dpp.hDeviceWindow=hwnd;
d3dpp.Windowed=TRUE; //使用窗口模式
d3dpp.EnableAutoDepthStencil=TRUE;
d3dpp.AutoDepthStencilFormat=D3DFMT_D16;
HRESULT?ret=
g_pD3D->CreateDevice(D3DADAPTER_DEFAULT //創建默認物理設備相關的Direct3DDevice對象
D3DDEVTYPE_HAL //使用硬件抽象層
hwnd //顯示窗口
D3DCREATE_SOFTWARE_VERTEXPROCESSING //軟件處理頂點
&d3dpp //設備相關參數的描述
&g_pD3DDevice); //要保存對象地址的指針的地址
if(ret!=D3D_OK)
{ MessageBox(hwnd“創建創建Direct3DDeviece對象失敗!““創建Direct3DDeviece!“
MB_OK|MB_IConerror);
}


//采樣方式
g_pD3DDevice->SetSamplerState(0?D3DSAMP_MAGFILTER??D3DTEXF_ANISOTROPIC);
g_pD3DDevice->SetSamplerState(0?D3DSAMP_MINFILTER??D3DTEXF_ANISOTROPIC);
g_pD3DDevice->SetSamplerState(0?D3DSAMP_MIPFILTER??D3DTEXF_LINEAR);

g_pD3DDevice->SetRenderState(D3DRS_LIGHTINGTRUE);


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????20941??2004-03-28?22:48??8.Normal\bin\grass.jpg

?????文件??????47734??2005-09-07?09:47??8.Normal\bin\Terrain_256.bmp

?????文件????????905??2008-04-30?10:12??8.Normal\src\D3DStart.sln

????..A..H.??????9216??2008-04-30?12:29??8.Normal\src\D3DStart.suo

?????文件???????5133??2008-04-30?11:19??8.Normal\src\D3DStart.vcproj

?????文件???????2579??2008-04-30?11:22??8.Normal\src\Debug\BuildLog.htm

?????文件???????5351??2008-04-30?11:50??8.Normal\src\Main.cpp

?????文件???????2658??2008-04-30?12:29??8.Normal\src\Terrain.cpp

?????文件???????1031??2008-04-30?11:21??8.Normal\src\Terrain.h

?????目錄??????????0??2008-05-04?14:19??8.Normal\src\Debug

?????目錄??????????0??2008-05-04?14:19??8.Normal\bin

?????目錄??????????0??2008-05-04?14:19??8.Normal\src

?????目錄??????????0??2008-05-04?14:19??8.Normal

-----------?---------??----------?-----??----

????????????????95548????????????????????13


評論

共有 條評論