Tôi đang làm việc trên ứng dụng Silverlight. Tôi đang cố gắng để làm cho sàn được phủ bằng gạch. Mặc dù tôi đang sử dụng bản đồ mip nhưng tôi vẫn nhận được các mẫu Moire khủng khiếp, khi cố gắng hiển thị diện tích lớn.
Những gì tôi đang làm là tạo ra hình khối và sau đó che nó bằng một ô duy nhất:
Trong pixel shader của tôi, tôi nhân các tọa độ kết cấu để tạo sàn lát gạch (nếu không tôi sẽ có một ô được kéo dài trên hình khối của mình). Mã pixel shader:
float Width : register(c3); //Width of cuboid
float Height : register(c4); //Height of cuboid
texture texTexture;
sampler textureSampler : register(s0) = sampler_state {
Texture = (texTexture);
};
struct VsOutput
{
float4 position : POSITION;
float3 dirLightPosition : COLOR;
float2 texCoord : TEXCOORD0;
float3 normal : TEXCOORD1;
float3 view : TEXCOORD2;
};
float4 main(VsOutput IN) : COLOR
{
float2 texCoord = float2(IN.texCoord.x * Width / 4.0f,
IN.texCoord.y * Height / 4.0f); //multiplying texture coordinates
float4 texColor = tex2D(textureSampler, texCoord);
return float4(color.r, color.g, color.b, 1.0f);
}
Đầu ra của tôi là:
Tôi có thể làm gì khác để ngăn chặn việc tạo các mẫu Moires trên kết cấu?