我正在尝试在纹素和紫外线之间进行转换
1/width
我以为我可以通过执行or来定义纹素的大小1/height
。除以得到纹素数。
我错了。
这是我一直在尝试做的。
float4 PostPS(PostIn In) : SV_Target
{
float4 color = 0;
uint width, height;
PostTex.GetDimensions(width, height);
float2 uv = In.texCoord;
float2 texelSize = float2(1/width, 1/height);
// Convert coords to texels
uint x = (uv.x / texelSize.x);
uint y = (uv.y / texelSize.y);
// Convert back again to uv.
uv.x = x * texelSize.x;
uv.y = y * texelSize.y;
color = PostTex.Sample(pointFilter, uv);
return color;
}
我意识到可能存在某种程度的舍入误差,但我原以为它会在某种程度上起作用。
谢谢。