资源简介
D3D11_SpecularMap
代码片段和文件信息
#include“ColorShaderClass.h“
ColorShaderClass::ColorShaderClass()
{
md3dVertexShader = NULL;
md3dPixelShader = NULL;
md3dInputLayout = NULL;
mCBMatrixBuffer = NULL;
mCBLightBuffer = NULL;
}
ColorShaderClass::ColorShaderClass(const ColorShaderClass&)
{
}
ColorShaderClass::~ColorShaderClass()
{
}
bool ColorShaderClass::Initialize(ID3D11Device* d3dDevice HWND hwnd)
{
bool result;
result = InitializeShader(d3dDevice hwnd L“MyShader/ColorShader.fx“ L“MyShader/ColorShader.fx“);
if (!result)
return false;
return true;
}
void ColorShaderClass::Shutdown()
{
ShutdownShader();
}
bool ColorShaderClass::Render(ID3D11DeviceContext* d3dDeviceContext int indexCount CXMMATRIX worldMatrix CXMMATRIX viewMatrix CXMMATRIX ProjMatrix ID3D11ShaderResourceView**TextureArray FXMVECTOR diffuseColor FXMVECTOR LightDirection FXMVECTOR AmbientColor CXMVECTOR SpecularColor float SpecularPow CXMVECTOR CameraPos)
{
bool result;
//设置Shader常量缓存和纹理资源
result = SetShaderParameter(d3dDeviceContext worldMatrix viewMatrix ProjMatrix TextureArray diffuseColor LightDirection AmbientColorSpecularColorSpecularPowCameraPos);
if (!result)
return false;
//设置VertexShader PixelShader InputLayout SamplerState
RenderShader(d3dDeviceContext indexCount);
return true;
}
bool ColorShaderClass::InitializeShader(ID3D11Device* d3dDevice HWND hwnd WCHAR* VSFileName WCHAR* PSFileName)
{
HRESULT result;
ID3D10Blob* errorMessage;
ID3D10Blob* VertexShaderBuffer;
ID3D10Blob* PixelShaderBuffer;
//第一初始化参数
errorMessage = NULL;
VertexShaderBuffer = NULL;
PixelShaderBuffer = NULL;
//第二编译VertexShader代码并创建VertexShader
result = D3DX11CompileFromFile(VSFileName NULL NULL “VS“ “vs_5_0“ D3DCOMPILE_ENABLE_STRICTNESS 0 NULL &VertexShaderBuffer &errorMessage NULL);
if (FAILED(result))
{
//存在错误信息
if (errorMessage)
{
OutputShaderErrorMessage(errorMessage hwnd VSFileName);
}
//不存在错误信息也就是没有找到Shader文件
else
{
MessageBox(hwnd L“can not find VS file“ L“error“ MB_OK);
}
}
HR(d3dDevice->CreateVertexShader(VertexShaderBuffer->GetBufferPointer() VertexShaderBuffer->GetBufferSize() NULL &md3dVertexShader));
//第三编译PixelShader并创建PixelShader
result = D3DX11CompileFromFile(PSFileName NULL NULL “PS“ “ps_5_0“ D3DCOMPILE_ENABLE_STRICTNESS 0 NULL &PixelShaderBuffer &errorMessage NULL);
if (FAILED(result))
{
//存在错误信息
if (errorMessage)
{
OutputShaderErrorMessage(errorMessage hwnd PSFileName);
}
//不存在错误信息也就是没有找到Shader文件
else
{
MessageBox(hwnd L“can not find PS file“ L“error“ MB_OK);
}
}
HR(d3dDevice->CreatePixelShader(PixelShaderBuffer->GetBufferPointer() PixelShaderBuffer->GetBufferSize() NULL &md3dPixelShader));
//第四填充输入布局形容结构体创建输入布局
D3D11_INPUT_ELEMENT_DESC VertexInputLayout[] =
{
{ “POSITION“0DXGI_FORMAT_R32G32B32_FLOAT00D3D11_INPUT_PER_VERTEX_DATA0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13920 2016-10-11 16:17 D3DClass.cpp
文件 2262 2016-10-05 22:51 D3DClass.h
文件 1134 2016-10-05 21:26 FontClass.h
文件 3652 2016-10-06 20:28 FontlClass.cpp
文件 8694 2016-10-10 22:32 FontShaderClass.cpp
文件 1556 2016-10-06 01:28 FontShaderClass.h
文件 460 2016-10-07 17:08 FPSClass.cpp
文件 390 2016-10-07 16:59 FPSClass.h
文件 5848 2016-10-11 16:14 GraphicsClass.cpp
文件 1240 2016-10-09 22:54 GraphicsClass.h
文件 3904 2016-10-06 20:24 InputClass.cpp
文件 995 2016-10-06 18:47 InputClass.h
文件 1234 2016-10-10 22:37 LightClass.cpp
文件 877 2016-10-10 22:36 LightClass.h
文件 228 2016-10-01 17:07 Macro.h
文件 10753 2016-10-11 03:34 ModelClass.cpp
文件 2237 2016-10-10 00:48 ModelClass.h
文件 6655 2016-10-07 19:45 SystemClass.cpp
文件 1298 2016-10-07 19:20 SystemClass.h
文件 10265 2016-10-10 22:34 TextClass.cpp
文件 1910 2016-10-07 19:36 TextClass.h
文件 1040 2016-10-08 00:29 TextureArray.cpp
文件 586 2016-10-08 00:29 TextureArray.h
文件 540 2016-10-05 00:46 TextureClass.cpp
文件 474 2016-10-05 00:46 TextureClass.h
文件 466 2016-09-27 11:37 源.cpp
文件 3744 2016-10-12 17:24 MyShader\ColorShader.fx
文件 1045 2016-10-06 02:00 MyShader\FontShader.fx
文件 19477 2016-10-08 00:18 Texture\AlphaMap.png
文件 95098 2016-10-10 22:39 Texture\ba
............此处省略23个文件信息
- 上一篇:天气预报简易版第一行代码里的
- 下一篇:信号与系统-安大最新试卷
评论
共有 条评论