被虐了几个礼拜阿, 暗无天日阿,花样被虐阿
设置 backbuffer commandbuffer这种问题还在其次,和他们的support要phyreengine 的sample就可以了
虐我千百遍的就是msaa和depther target 之间的冲突了
这个问题的表现是这样的,setDepthFactorSource之后并没有什么卵用,
在razor里面看特别诡异,我画到自己申请的depth target上面,并没有画到backbuffer上面,
我把自己的depthtarget 传进去,写入command buffer.但在razor里面看到这块target 的地址 永!远!指!向! bcakbuffer depth target
关掉msaa 后 razor里就可以看到,只有一块depth target
开了msaa, razor 里有三块depth target ,我说的bcakbuffer depth target是没有aa的那块
/*
yebis 有一个flag可以设置成相应的aatype
initParam.m_nMultisamples = 4; mPfxContext->Initialize();
对应target->setMSAAType(4);
*/
在target 在使用的时候可以看到,他的gpuaddress一开始就被初始化成 bcakbuffer depth target
(写到这里的时候,我意识到,我一直讲的这个 bcakbuffer depth target 也许不是back buffer 的,而是一块没有aa的在gpu那边没有被写的 buffer ,
而正好 backbuffer也没有被写)
我的解决方案是这样的,在写这个gpuAddress的时候 传入aaDepthTarget的地址
在PhyreTextureStateGNM.cpp
PostProcessInternal()
if(DepthTarget)里面
至此,yebis 就被加到phyreengine里面啦,depth 相关effect也实现啦
yebis支持,自定义
source colortarget
source depthtarget
destination target