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

資源簡介

該程序示例包含了一些基本幾何體的繪制方法,包括網格、立方體、圓柱體、球。 網格在水面渲染、地形渲染中應用十分廣泛,因此學習其相關的繪制方法很有用。圓柱和球有著相似的繪制方法,通過指定的精細等級(slice和stack)來繪制。示例代碼包含了所有的繪制算法,以及通過一個程序來展示繪制效果。

資源截圖

代碼片段和文件信息

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

using?namespace?std;

struct?Vertex
{
XMFLOAT3?pos;
XMFLOAT4?color;
};

class?GeoDraw:?public?WinApp
{
public:
GeoDraw(HINSTANCE?hInst?std::wstring?title?=?L“D3D11基本幾何體繪制“?int?width?=?640?int?height?=?480);
~GeoDraw();

bool?Init(); //重寫
bool?Update(float?delta); //必須重寫
bool?Render(); //必須重寫

//重寫鼠標操作函數
void?onmousedown(WPARAM?btnState?int?x?int?y);
void?onmouseup(WPARAM?btnState?int?x?int?y);
void?onmousemove(WPARAM?btnState?int?x?int?y);

private:
//讀取Effect文件,創建Effect接口
bool?BuildFX();
//創建InputLayout
bool?BuildInputLayout();
//創建頂點、索引緩沖區
bool?BuildBuffers();

private:
ID3D11InputLayout *m_inputLayout;

//頂點、索引緩沖區
//在這個程序中,我們把所有圖形的頂點/索引放在一個緩沖區中
//在繪制相應圖形時,指定通過該圖形在緩沖區中的起始位置和索引個數來找到對應的緩沖區位置
ID3D11Buffer *m_VB;
ID3D11Buffer *m_IB;

ID3DX11Effect *m_fx;
ID3DX11EffectMatrixVariable *m_fxWorldViewProj;

//該程序中繪制的幾種幾何圖形:網格、立方體、球、圓柱
GeoGen::MeshData m_grid;
GeoGen::MeshData m_box;
GeoGen::MeshData m_sphere;
GeoGen::MeshData m_cylinder;

//每個幾何體在頂點、索引緩沖區中的起始位置
UINT m_gridVStart m_gridIStart;
UINT m_boxVStart m_boxIStart;
UINT m_sphereVStart m_sphereIStart;
UINT m_cylinderVStart m_cylinderIStart;

//每個幾何體的世界變換矩陣:
//網格
XMFLOAT4X4 m_gridWorld;
//立方體
XMFLOAT4X4 m_boxWorld;
//5個球
XMFLOAT4X4 m_sphereWorld[5];
//4個圓柱
XMFLOAT4X4 m_cylinderWorld[4];

//視角矩陣和投影矩陣
XMFLOAT4X4 m_view;
XMFLOAT4X4 m_proj;

POINT m_lastPos; //上一次鼠標位置,用于跟蹤鼠標位移

float m_theta?m_phy; //用于控制相機位置(相機處于一個球面上)
float m_radius; //相機所處球面半徑
};

GeoDraw::GeoDraw(HINSTANCE?hInst?std::wstring?title?int?width?int?height):WinApp(hInsttitlewidthheight)
m_inputLayout(NULL)
m_VB(NULL)
m_IB(NULL)
m_fx(NULL)
m_fxWorldViewProj(NULL)
m_theta(XM_PI*1.5f)
m_phy(XM_PI*0.4f)
m_radius(20.f)
{
//在這里初始化各個物體的世界變換矩陣
//網格
XMMATRIX?gridWorld?=?XMMatrixIdentity();
XMStoreFloat4x4(&m_gridWorldgridWorld);
//立方體
XMMATRIX?boxWorld?=?XMMatrixTranslation(0.f0.75f0.f);
XMStoreFloat4x4(&m_boxWorldboxWorld);
//第5個球
XMMATRIX?sphereWorld?=?XMMatrixTranslation(0.f3.5f0.f);
XMStoreFloat4x4(&m_sphereWorld[4]sphereWorld);
//4個圓柱和4個球(位于4個對稱點上)
for(UINT?i=0;?i<2;?++i)
{
for(UINT?j=0;?j<2;?++j)
{
XMMATRIX?cylinderWorld?=?XMMatrixTranslation(-5.f+i*10.f1.f-5.f+j*10.f);
XMStoreFloat4x4(&m_cylinderWorld[i*2+j]cylinderWorld);
XMMATRIX?sphereWorld?=?XMMatrixTranslation(-5.f+i*10.f4.f-5.f+j*10.f);
XMStoreFloat4x4(&m_sphereWorld[i*2+j]sphereWorld);
}
}
}

GeoDraw::~GeoDraw()
{
SafeRelease(m_inputLayout);
SafeRelease(m_IB);
SafeRelease(m_VB);
SafeRelease(m_fx);
}

bool?GeoDraw::Init()
{
//這里重寫了父類中的Init()函數
//WinApp::Init(),這句話必須加上
if(!WinApp::Init())
return?false;

//這后面添加程序所需的初始化
if(!BuildFX())
retur

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-12-23?20:33??D3D11基本幾何體繪制\
?????目錄???????????0??2012-12-23?20:30??D3D11基本幾何體繪制\Common\
?????文件??????????24??2012-12-22?20:53??D3D11基本幾何體繪制\Common\AppUtil.cpp
?????文件?????????924??2012-12-23?08:37??D3D11基本幾何體繪制\Common\AppUtil.h
?????文件????15088652??2012-11-12?01:02??D3D11基本幾何體繪制\Common\Effects11.lib
?????文件?????5698762??2012-11-12?01:01??D3D11基本幾何體繪制\Common\Effects11d.lib
?????文件???????13662??2012-12-23?03:08??D3D11基本幾何體繪制\Common\GeometryGens.cpp
?????文件????????1529??2012-12-23?03:08??D3D11基本幾何體繪制\Common\GeometryGens.h
?????文件????????2458??2012-12-13?22:20??D3D11基本幾何體繪制\Common\Timer.cpp
?????文件?????????908??2012-12-13?21:41??D3D11基本幾何體繪制\Common\Timer.h
?????文件???????11395??2012-12-23?07:32??D3D11基本幾何體繪制\Common\WinApp.cpp
?????文件????????2337??2012-12-23?07:36??D3D11基本幾何體繪制\Common\WinApp.h
?????目錄???????????0??2012-12-23?08:40??D3D11基本幾何體繪制\FX\
?????文件????????4557??2012-12-23?07:53??D3D11基本幾何體繪制\FX\BasicColor.cod
?????文件?????????575??2012-12-23?08:29??D3D11基本幾何體繪制\FX\BasicColor.fx
?????文件????????1620??2012-12-23?08:38??D3D11基本幾何體繪制\FX\BasicColor.fxo
?????文件??????268288??2012-12-23?20:32??D3D11基本幾何體繪制\GeoDraw.exe
?????文件?????????880??2012-12-23?03:22??D3D11基本幾何體繪制\GeoDraw.sln
?????文件????????7108??2012-12-23?20:32??D3D11基本幾何體繪制\GeoDraw.vcxproj
?????文件????????2104??2012-12-23?08:55??D3D11基本幾何體繪制\GeoDraw.vcxproj.filters
?????文件???????12717??2012-12-23?20:26??D3D11基本幾何體繪制\Main.cpp
?????文件?????????382??2012-12-23?20:38??D3D11基本幾何體繪制\readme.txt

評論

共有 條評論