저는 DirectX11에서 초보자입니다. 그래서 무딘 질문에 사과드립니다.균일 한 색을 픽셀 쉐이더로 설정
struct PixelShaderInput
{
float4 pos : SV_POSITION;
float2 texCoord : TEXCOORD0;
};
Texture2D s_texture : register(t0);
SamplerState s_sampleParams
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
};
float4 main(PixelShaderInput input) : SV_TARGET
{
float4 t = s_texture.Sample(s_sampleParams, input.texCoord);
return t;
}
지금 내 쉐이더에 색상을 추가 할 :
struct PixelShaderInput
{
float4 pos : SV_POSITION;
float2 texCoord : TEXCOORD0;
};
Texture2D s_texture : register(t0);
float4 s_color;
SamplerState s_sampleParams
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = CLAMP;
AddressV = CLAMP;
};
float4 main(PixelShaderInput input) : SV_TARGET
{
float4 t = s_texture.Sample(s_sampleParams, input.texCoord);
return t * s_color;
}
나는 C++ 코드에서 s_color
을 설정하려면 어떻게 나는 픽셀 쉐이더가? m_d3dContext->PSSetConstantBuffers
을 사용해야합니까? 이 경우에는 내가 바로,
`float4 s_color;`
cbuffer ColorOnlyConstantBuffer : register(b0)
{
float4 m_color;
};
에 변경해야합니까?
아니면 간단하게 정의 float4 s_color;
을 유지하고 C++에서 설정해도됩니까?
실제로 이동하는 방법, http://msdn.microsoft.com/en-us/library/windows/desktop/ff476896(v=vs.85입니다) .aspx는 그것을 설정하는 방법을 설명합니다 (물론 당신이 말한 것처럼 픽셀 셰이더에 바인딩되어야합니다). – catflier