• 大小: 2.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 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;  //一个字为两个字节 

mVertexCount = 6;
mIndexCount = 6;

//创建顶点数组
vertexs = new Vertex[mVertexCount];
if (!vertexs)
return false;

//创建索引数组
indices = new WORD[mIndexCount];
if (!indices)
return false;

//初始化顶点数组为0
memset(vertexs 0 sizeof(Vertex)*mVertexCount);


//赋予索引数组数据
//注意用左手定则判定是不是背面
indices[0] = 0;
indices[1] = 1;
indices[2] = 2;
indices[3] = 3;
indices[4] = 4;
indices[5] = 5;


//第一填充(顶点)缓存形容结构体和子资源数据结构体并创建顶点缓存(这里用的是动态缓存)
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));

//第二填充(索引)缓存形容结构体和子资源数据结构体并创建索引缓存
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));

//释放顶点数组和索引数组(这时数据已经载入缓存不需要这些数组了)
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个文件信息

评论

共有 条评论

相关资源