-
大小: 2.73MB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-10-02
- 語言: 其他
- 標簽: DeferShafer??
資源簡介
D3D11_DerfferredShading

代碼片段和文件信息
#include“BitmapClass.h“
BitmapClass::BitmapClass()
{
????md3dVertexBuffer=NULL;?//頂點緩存
????md3dIndexBuffer=NULL;??//索引緩存
mVertexCount?=?0;
mIndexCount?=?0;
}
BitmapClass::BitmapClass(const?BitmapClass&?other)
{
}
BitmapClass::~BitmapClass()
{
}
bool?BitmapClass::Initialize(ID3D11Device*?d3dDevice?int?ScrrenWidth?int?ScrrenHeight)
{
bool?result;
//初始化屏幕長寬,紋理長寬,坐標點
mScrrenWidth?=?ScrrenWidth;
mScrrenHeight?=?ScrrenHeight;
//初始化頂點緩存,索引緩存
result?=?InitializeBuffer(d3dDevice);
if?(!result)
{
MessageBox(NULL?L“Initialize?Buffer?failure“?L“ERROR“?MB_OK);
return?false;
}
return?true;
}
void?BitmapClass::Shutdown()
{
ShutdownBuffer();
}
bool?BitmapClass::Render(ID3D11DeviceContext*?d3dDeviceContext)
{
bool?result;
result?=?UpdateBuffers(d3dDeviceContext);
if?(!result)
{
return?false;
}
//設置渲染管線的頂點緩存和索引緩存(IA階段)
RenderBuffers(d3dDeviceContext);
return?true;
}
bool?BitmapClass::InitializeBuffer(ID3D11Device*?d3dDevice)
{
Vertex*?vertexs=NULL;
WORD*indices=NULL;??//一個字為兩個字節(jié)?
mVertexCount?=?6;
mIndexCount?=?6;
//創(chuàng)建頂點數(shù)組
vertexs?=?new?Vertex[mVertexCount];
if?(!vertexs)
return?false;
//創(chuàng)建索引數(shù)組
indices?=?new?WORD[mIndexCount];
if?(!indices)
return?false;
//初始化頂點數(shù)組為0
memset(vertexs?0?sizeof(Vertex)*mVertexCount);
//賦予索引數(shù)組數(shù)據(jù)
//注意用左手定則判定是不是背面
indices[0]?=?0;
indices[1]?=?1;
indices[2]?=?2;
indices[3]?=?3;
indices[4]?=?4;
indices[5]?=?5;
//第一填充(頂點)緩存形容結(jié)構(gòu)體和子資源數(shù)據(jù)結(jié)構(gòu)體并創(chuàng)建頂點緩存(這里用的是動態(tài)緩存)
D3D11_BUFFER_DESC?vertexBufferDesc;
vertexBufferDesc.Usage?=?D3D11_USAGE_DYNAMIC;
vertexBufferDesc.ByteWidth?=?sizeof(Vertex)?*?mVertexCount;
vertexBufferDesc.BindFlags?=?D3D11_BIND_VERTEX_BUFFER;
vertexBufferDesc.CPUAccessFlags?=?D3D11_CPU_ACCESS_WRITE;
vertexBufferDesc.MiscFlags?=?0;
vertexBufferDesc.StructureByteStride?=?0;
D3D11_SUBRESOURCE_DATA?vertexData;
vertexData.pSysMem?=?vertexs;
vertexData.SysMemPitch?=?0;
vertexData.SysMemSlicePitch?=?0;
HR(d3dDevice->CreateBuffer(&vertexBufferDesc?&vertexData?&md3dVertexBuffer));
//第二填充(索引)緩存形容結(jié)構(gòu)體和子資源數(shù)據(jù)結(jié)構(gòu)體并創(chuàng)建索引緩存
D3D11_BUFFER_DESC??indexBufferDesc;
indexBufferDesc.Usage?=?D3D11_USAGE_DEFAULT;
indexBufferDesc.ByteWidth?=?sizeof(WORD)?*?mIndexCount;
indexBufferDesc.BindFlags?=?D3D11_BIND_INDEX_BUFFER;
indexBufferDesc.CPUAccessFlags?=?0;
indexBufferDesc.MiscFlags?=?0;
indexBufferDesc.StructureByteStride?=?0;
D3D11_SUBRESOURCE_DATA?indexData;
indexData.pSysMem?=?indices;
indexData.SysMemPitch?=?0;
indexData.SysMemSlicePitch?=?0;
????HR(d3dDevice->CreateBuffer(&indexBufferDesc?&indexData?&md3dIndexBuffer));
//釋放頂點數(shù)組和索引數(shù)組(這時數(shù)據(jù)已經(jīng)載入緩存不需要這些數(shù)組了)
delete[]vertexs;
vertexs?=?NULL;
delete[]indices;
indices?=?NULL;
return?true;
}
void?BitmapClass::ShutdownBuffer()
{
//釋放頂點緩存和索引緩存
ReleaseCOM(md3dIndexBuffer);
ReleaseCOM(md3dVertexBuffer);
}
void?BitmapClass::RenderBuffers(ID3D11Devi
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1993??2016-11-15?21:19??LightShaderClass.h
?????文件????????228??2016-10-01?17:07??Macro.h
?????文件???????5955??2016-10-02?22:51??ModelClass.cpp
?????文件???????1617??2016-10-02?21:40??ModelClass.h
?????文件???????5840??2016-09-30?23:41??SystemClass.cpp
?????文件???????1196??2016-09-27?11:56??SystemClass.h
?????文件????????496??2016-10-01?17:12??TexClass.cpp
?????文件????????446??2016-10-01?17:11??TexClass.h
?????文件????????466??2016-09-27?11:37??源.cpp
?????文件???????1321??2016-11-15?20:44??MyShader\DefferredShader.fx
?????文件???????1707??2016-11-15?21:45??MyShader\LightShader.fx
?????文件???11635040??2016-10-03?01:58??Texture\food.dds
?????文件???????1427??2016-10-10?01:05??Txt\cube.txt
?????文件???????5445??2016-10-24?01:02??BitmapClass.cpp
?????文件???????1136??2016-10-23?17:50??BitmapClass.h
?????文件???????2468??2016-11-15?21:18??CameraClass.h
?????文件??????12421??2016-11-15?20:45??D3DClass.cpp
?????文件???????2289??2016-11-15?20:01??D3DClass.h
?????文件???????5432??2016-11-15?20:57??DefferredBufferClass.cpp
?????文件???????1097??2016-11-15?21:11??DefferredBufferClass.h
?????文件???????7582??2016-11-15?18:58??DefferredShaderClass.cpp
?????文件???????1707??2016-11-15?18:55??DefferredShaderClass.h
?????文件???????7186??2016-11-15?21:42??GraphicsClass.cpp
?????文件???????1292??2016-11-15?19:47??GraphicsClass.h
?????文件????????497??2016-09-27?11:27??InputClass.cpp
?????文件????????372??2016-09-27?11:11??InputClass.h
?????文件????????583??2016-10-03?02:10??LightClass.cpp
?????文件????????508??2016-10-03?02:09??LightClass.h
?????文件???????8695??2016-11-15?21:44??LightShaderClass.cpp
?????目錄??????????0??2016-11-15?21:45??MyShader
............此處省略5個文件信息
評論
共有 條評論