0
이유가 무엇이든간에 렌더러는 첫 번째 인수에 대한 의미를 무시하고 항상 픽셀 위치를 전달합니다. 다른 인수가 SV_POSITION
의 의미를 가지고 있더라도 위치는 여전히 첫 번째 인수로 전달됩니다. 이것에 대한 이유가 있습니까?HLSL 픽셀 셰이더의 첫 번째 인수
버텍스 쉐이더 :
cbuffer transforms
{
float4x4 view, projection;
};
void main(
in float4 inPos : POSITION, in float3 inNorm : NORMAL,
out float4 outPos : SV_POSITION, out float3 outNorm : TEXCOORD0
)
{
outPos = mul(projection, mul(view, inPos));
outNorm = inNorm;
}
픽셀 쉐이더 : POSITION
및 SV_Position
은 기본적으로 동일한 것을 의미하기 때문이다
void main(
float4 inPos : SV_POSITION, in float3 inNorm : TEXCOORD0,
out float4 outClr : SV_TARGET
)
{
outClr.xyz = inNorm * 0.5 + 0.5;
outClr.w = 1.0;
}
그래서 입력 요소 기술자가''POSITION ", 0"을 사용하더라도 여전히 VS에'SV_Position'을 지정해야합니까? –