yebis 和phyreengine的集成

被虐了几个礼拜阿, 暗无天日阿,花样被虐阿

设置 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

原文地址:https://www.cnblogs.com/minggoddess/p/4814251.html