多线程渲染解决方案分享Frankan(安柏霖)*多线程渲染背景**多线程渲染在PC机尤其是console上面的多核心(主要是2核)普及之后的标配做法主线程做第n+1帧的更新渲染线程渲染第n帧更好的利用了多核计算,比单线程有%60到%80的性能提升TheFuture:mandbuffer(dx11以及console)*多线程的邪恶初期给你一个甜枣,后期猛扇耳光简单实现比较容易性能提升很明显:渲染和逻辑cpu端耗时相当的情况下,开多线程之后性能会提升:%60+但是在长期的开发之后,缺乏整理重构的情况下,各种凌乱,bug多且难查原因:让工程变得更大更复杂增加数据和计算模型的规模和复杂度“puterprogramming”—Kernighan在大型项目里尤其凸显问题重现率低导致debug效率低高重现率的问题都不是问题解决:把视线移到多线程带来的复杂度上面系统化的解决方案*mPositionmPositionTranslationMatrixUpdateFunctionTranslationMatrixobjectUpdateRender*单线程渲染updaterender主线程mPositionTranslationMatrix*mand根据实际情况可以进行灵活的扩展**DoubleBuffer每一个object里面两套数据每帧两套数据角色互换用FrameIndex来区分主线程和渲染线程该使用哪一个SourcemPositionClonemPositionSourcemPositionClonemPosition主线程渲染线程主线程渲染线程第n帧第n+1帧*DoubleBuffer[+]实现简单[+]效率—比较好内存消耗大,内存效率-相对RingBuffer减少插入删除,效率+[-]内存消耗大—死穴
主线程渲染线程主线程渲染线程ppt幻灯片 来自淘豆网m.daumloan.com转载请标明出处.