DirectX 尝试创建着色器
DirectX Trying to create shader
我是 DirectX 的新手,我正在尝试编译着色器,但总是出现错误。有人可以帮我解决一下吗?
我得到的错误是..
Project1.exe 中 0x00D06A6D 处的未处理异常:0xC0000005:访问冲突读取位置 0xCCCCCCCC。
那是它到达终点的时候:
m_pDevice->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &m_pVS);
DX代码:
ID3DBlob *VS, *PS;
ID3DBlob* VSerrorBlob = nullptr;
ID3DBlob* PSerrorBlob = nullptr;
D3DCompileFromFile(L"shader.fx", 0, D3D_COMPILE_STANDARD_FILE_INCLUDE, "VShader", "vs_4_0_level_9_1",
D3DCOMPILE_ENABLE_STRICTNESS, 0, &VS, &VSerrorBlob );
D3DCompileFromFile(L"shader.fx", 0, D3D_COMPILE_STANDARD_FILE_INCLUDE, "PShader", "ps_4_0_level_9_1",
D3DCOMPILE_ENABLE_STRICTNESS, 0, &PS, &PSerrorBlob );
m_pDevice->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &m_pVS);
m_pDevice->CreatePixelShader(PS->GetBufferPointer(), PS->GetBufferSize(), NULL, &m_pPS);
着色器代码:
struct VOut
{
float4 position : SV_POSITION;
float4 color : COLOR;
};
VOut VShader(float4 position : POSITION, float4 color : COLOR)
{
VOut output;
output.position = position;
output.color = color;
return output;
}
float4 PShader(float4 position : SV_POSITION, float4 color : COLOR) : SV_TARGET
{
return color;
}
检查您调用 D3DCompileFromFile 返回的 HRESULT,它可能失败了。如果是这样,请检查错误 blob 中的字符串以找出原因。
我是 DirectX 的新手,我正在尝试编译着色器,但总是出现错误。有人可以帮我解决一下吗?
我得到的错误是..
Project1.exe 中 0x00D06A6D 处的未处理异常:0xC0000005:访问冲突读取位置 0xCCCCCCCC。
那是它到达终点的时候:
m_pDevice->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &m_pVS);
DX代码:
ID3DBlob *VS, *PS;
ID3DBlob* VSerrorBlob = nullptr;
ID3DBlob* PSerrorBlob = nullptr;
D3DCompileFromFile(L"shader.fx", 0, D3D_COMPILE_STANDARD_FILE_INCLUDE, "VShader", "vs_4_0_level_9_1",
D3DCOMPILE_ENABLE_STRICTNESS, 0, &VS, &VSerrorBlob );
D3DCompileFromFile(L"shader.fx", 0, D3D_COMPILE_STANDARD_FILE_INCLUDE, "PShader", "ps_4_0_level_9_1",
D3DCOMPILE_ENABLE_STRICTNESS, 0, &PS, &PSerrorBlob );
m_pDevice->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &m_pVS);
m_pDevice->CreatePixelShader(PS->GetBufferPointer(), PS->GetBufferSize(), NULL, &m_pPS);
着色器代码:
struct VOut
{
float4 position : SV_POSITION;
float4 color : COLOR;
};
VOut VShader(float4 position : POSITION, float4 color : COLOR)
{
VOut output;
output.position = position;
output.color = color;
return output;
}
float4 PShader(float4 position : SV_POSITION, float4 color : COLOR) : SV_TARGET
{
return color;
}
检查您调用 D3DCompileFromFile 返回的 HRESULT,它可能失败了。如果是这样,请检查错误 blob 中的字符串以找出原因。