0
XNA에서 진행률 표시 줄을 그리기위한 간단한 쉐이더를 만듭니다.XNA의 진행 막대 쉐이더 관련 문제
아이디어는 간단합니다. 두 개의 텍스처와 값이 있으며, X 텍스처 좌표가 작 으면 전경 텍스처의 픽셀을 사용하고 그렇지 않으면 배경 텍스처를 사용하십시오.
/* Variables */
texture BackgroundTexture;
sampler2D BackgroundSampler = sampler_state
{
Texture = (BackgroundTexture);
MagFilter = Point;
MinFilter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
texture ForegroundTexture;
sampler2D ForegroundSampler = sampler_state
{
Texture = (ForegroundTexture);
MagFilter = Point;
MinFilter = Point;
AddressU = Clamp;
AddressV = Clamp;
};
float Value;
/* Pixel shaders */
float4 PixelShader1(float4 pTexCoord : texcoord0) : color0
{
float4 texColor =
pTexCoord.x <= Value ?
tex2D(ForegroundSampler, pTexCoord) :
tex2D(BackgroundSampler, pTexCoord);
return texColor;
}
/* Techniques */
technique Technique1
{
pass Pass1
{
PixelShader = compile ps_2_0 PixelShader1();
}
}
그러나 ForegroundTexture 만 수정하십시오. BackgroundSampler는 단순히 흰색입니다. 마침내 쉐이더에서 선언 된 텍스처 만 정확하다는 것을 알게되었습니다.
이유를 이해하는 데 도움주세요.
게시물에 대한 답변은 게시물에 포함되어서는 안됩니다. 답변을 아래에 게시하십시오. :) – Jwosty
죄송합니다, 저는 여기 뉴비입니다. –