cocos2dx加载的纹理, 在不修改底层的基础上能否让它不使用premultiplied alpha

在cocos2dx3.5内嵌入了一个渲染flash的sprite。 为了统一管理纹理, 我们让这个模块调用cocos2dx的接口来加载纹理。

为了节约显存, swf里面的图片我们也使用了plist的方式来合并。 这就涉及到一个蛋疼的问题。 加载plist的时候,cocos2dx加载png文件会进行

premultiplied alpha处理, 而我们渲染flash的模块使用纹理时默认是纹理是没有进行premultiplied alpha处理的。 虽然可以通过修改渲染flash的模块的shader代码让它可以支持premultiplied alpha。

但这样会导致flash里面的各种滤镜 各种混合效果出现严重问题。

如果修改cocos2dx的底层代码。。。。 又会涉及到升级蛋碎的问题, 不知道该怎么办才好。

顺便说一下, flash用到的图片为什么要用plist来合并。 原因很简单, flash本身就有这个工具,而且还是支持cocos2dx的。 如果不用plist来合并也是有其他方法的。 但美术那边的工作量可以用恐怖来形容。

这个设计好蛋疼。。 怎么不考虑用骨骼动画:14:

— Begin quote from ____

引用第2楼ColaZhang于2015-05-20 12:39发表的 :
这个设计好蛋疼。。 怎么不考虑用骨骼动画:14: http://www.cocoachina.com/bbs/job.php?action=topost&tid=301429&pid=1311096

— End quote

flash用着舒服啊, 而且flash并不是主要用来做骨骼动画, 特效动画和UI也可以做啊

:11:我是担心你们就算最后实现了 结果又掉进更大的坑里 , 比如性能效率优化 各种兼容

— Begin quote from ____

引用第4楼ColaZhang于2015-05-20 14:25发表的 :
:11: 我是担心你们就算最后实现了 结果又掉进更大的坑里 , 比如性能效率优化 各种兼容 http://www.cocoachina.com/bbs/job.php?action=topost&tid=301429&pid=1311171

— End quote

这个并需要担心, 因为是验证过的

你图片如果是RGBA8888的png的话,引擎底层默认做了透明通道预乘,so要么你改格式,要么改源码,ios在CCImage.cpp的1148行

— Begin quote from ____

引用第6楼liuxiaoyi135于2015-05-20 23:18发表的 :
你图片如果是RGBA8888的png的话,引擎底层默认做了透明通道预乘,so要么你改格式,要么改源码,ios在CCImage.cpp的1148行 http://www.cocoachina.com/bbs/job.php?action=topost&tid=301429&pid=1311508

— End quote

谢谢, 但我并不想改源代码, 虽然这个坚持因为被各种需求打击的支离破碎。

开源引擎好处之一就是可以改源码满足自己需求,为什么不改?

— Begin quote from ____

引用第8楼liuxiaoyi135于2015-05-22 17:09发表的 回 7楼(kkvskkkk) 的帖子 :
开源引擎好处之一就是可以改源码满足自己需求,为什么不改? http://www.cocoachina.com/bbs/job.php?action=topost&tid=301429&pid=1313064

— End quote

升级版本的时候, 哭了, 咬咬牙继续用旧版本。 但有bug不得不改啊, 新版本支持新功能可以满足策划新的需求啊, 嗯, 咱们照着新版本的代码在老版本上再写一遍。

改源码吧 升级版本的时候merge 已经是熟练工了 :)
基本上大版本号不变 merge起来还是很快的 从2.x升到3.x那下才是蛋碎了一地