MRT与AlphaTest

2018-05-23 16:37:50 浏览数 (2)

想把DeferredShading的MRT改成A8R8G8B8的, 于是把Normal和Depth做了一下压缩

然后问题就来了, 有很多像素丢失了:

当时想了很久没想明白, 后来还是用GPA看了一下pixel history才知道alphatest失败了

看了下render state的确是alpha test开启了, 关掉就正常了.

查了一下资料原来固定管线的alpha test使用rendertarget0的alpha做test, 而这里的0是normal depth的RTT

于是乎就悲剧了.

关掉alphatest的state, 在PS里使用clip/discard做alphatest, 解决.

另外, 这里有一些关于early z culling的讨论, 没想到能在哪里用上:

http://www.opengpu.org/bbs/forum.php?mod=viewthread&tid=3098&page=1

0 人点赞