2016-07-07 69 views
0

我想重新使用HLSL和UV渲染通道在一系列图像上重新纹理图像,但生成的图像有一些伪像(总体像素化图像,图像中的混叠伪像)。HLSL重新纹理

背景和UV通可以在相册here

找到生成的图像:

我猜测,这个问题是与MIP水平,而我无论如何都必须计算它们对于每一帧,我的问题只是一个人会怎么做,可以在pixelshader中完成吗?

下面是我在做什么的简要介绍:

float4 UVPass = UVSRV.Sample(SamplerWrap, input.Tex); 
float4 Background = backgroundSRV.Sample(SamplerWrap, input.Tex); 
float4 Composit = compositImageSRV.Sample(SamplerWrap, saturate(UVPass)); 

然后使用UVPass的阿尔法作为掩模,我决定我是否应该返回组合大或背景。

我的采样器使用D3D11_FILTER_MIN_MAG_MIP_LINEAR。

+0

你的意思是什么文物?为什么不使用标准的alpha混合而不是选择任何一个图层? –

+0

与源图像相比,合成图像严重像素化和混叠。显然,当某种形式的alpha混合被用来消除它们时,边缘看起来会更好,但我关注的问题是可以在例如遮阳帽和胡子上看到的混叠。 – Konglobemeralt

+0

您可以验证纹理是否以正确的大小上传,并且创建了mipmap吗?如果以传统方式渲染图像会发生什么? –

回答

0

解决了它。问题不是由代码引起的,而是由Maya对UV通道进行色调映射来产生伪像。代码本身起作用。