資源簡介
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個文件信息
- 上一篇:天氣預報簡易版第一行代碼里的
- 下一篇:信號與系統-安大最新試卷
評論
共有 條評論