cocos2dx 九宫格 shader失效的问题

最近一个同事使用UIImageView创建图片后,使用shader无效

经过查证发现这个图片如果是拉伸就有效,而九宫格无效

继续深挖 发现setScale9Enabled为true后,创建image的时候Scale9Sprite::createSlicedSprites()

会将原本的sprite替换为9个sprite,

可能有人会疑惑作者写这一部分的时候大部分sprite的设置会保留,

但是不知道为什么shader相关的却没有分别赋值。

其实是因为不少shader是无法全体适用的,比如流光效果,光照效果,如果分配到九个sprite上跟原本的效果就是大相径庭了。

而且可能会出现性能问题,所以还是推荐不要用九宫格来做shader,如果必须要用还是用普通的拉伸更靠谱一点。

    原文作者:九宫格问题
    原文地址: https://blog.csdn.net/wanziqin/article/details/73088009
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞