首页 > 其他分享 >MaterialPropertyBlock

MaterialPropertyBlock

时间:2024-01-05 18:44:37浏览次数:21  
标签:mpb SetFloat SRPBatch GPU MaterialPropertyBlock 材质

MaterialPropertyBlock mpb = new MaterialPropertyBlock();//最好全局唯一静态对象

Render(MeshRenderer、SpriteRenderer).GetPropertyBlock(mpb);

mpb.SetFloat(...)//类似material.SetFloat使用

Render(MeshRenderer、SpriteRenderer).SetPropertyBlock(mpb);

 这样更改材质属性不会产生新的材质实例,而是会产生一个新的存储区域在CPU,它配合GPU Instancing使用。

因为GPU Instancing要求同网格同材质,而且不支持SRPBatch(凡是使用MPB的则不可能生效SRPBatch,理由是SRPBatch必须所有改动属性都在GPU的CBuffer中,不然会打破Batch)

标签:mpb,SetFloat,SRPBatch,GPU,MaterialPropertyBlock,材质
From: https://www.cnblogs.com/mcyushao/p/17947844

相关文章