您当前的位置: 首页 >  unity

VT LI

暂无认证

  • 14浏览

    0关注

    126博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

unity spritemask实现

VT LI 发布时间:2022-07-15 17:59:03 ,浏览量:14

执行流程:

在SpriteMask::InitializeClass时执行,注册模板测试的状态SpriteMaskInitializeStencilStates,如果开启了则模板测试要开启

然后执行SpriteMaskJobs.cpp的SetupSpriteMaskPrepareCallbacks,执行mask的回调SpriteMaskPrepareRendererNodes,在这里会拿到spritemask的node和render执行SpriteMaskSetupRenderNode,并在这里注册了渲染mask和清理mask的回调

在DrawSpriteMaskRawFromNodeQueue里面执行PrepareSpriteMeshBuffersAndDrawRange准备数据,然后执行SetStencilState来设置模板测试数据

然后执行device.DrawBuffers,比如opengles会执行GfxDeviceGLES::DrawBuffers执行渲染。

他的材质在SpriteMask.cpp中InitializeMaterial设置到render中

绑定的shader是Sprites-Mask.shader,遮罩的区域方式就是裁剪。

模板测试是在设置材质时写好的。

关注
打赏
1649603425
查看更多评论
立即登录/注册

微信扫码登录

0.1805s