2
나는 내 xna 게임에서 안개 효과를 추가하기 위해 얼마간 고생했다. 파일 (.Fx)에서 사용자 정의 셰이더 효과로 작업합니다. "PixelShaderFunction"은 오류없이 작동합니다. 그러나 문제는 내 모든 땅이 동일한 방법으로 색칠되어 있다는 것입니다.. 카메라와 모델 사이의 거리가 인 계산에서 오는 문제라고 생각합니다. 당신의 input.TextureCoordinate 정말 질감 당신이 거리를 잘못 계산하기 위해 시도하는 방법보다, 샘플러 좌표를 나타내는 경우xna에서 안개 효과 모델의 거리를 계산하는 방법은 무엇입니까?
float distance = length(input.TextureCoordinate - cameraPos);
여기에 "PixelShaderFunction"
// Both techniques share this same pixel shader.
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
float distance = length(input.TextureCoordinate - cameraPos);
float l = saturate((distance-fogNear)/(fogFar-fogNear));
return tex2D(Sampler, input.TextureCoordinate) * lerp(input.Color, fogColor, l);
}
대단히 감사합니다. 귀하의 예는 제 문제에 완벽하게 부합합니다. –