cocos creater 黑边问题原理解析

cocos黑边问题原理

图片来源:帮帮识字app

1. 为什么美术给的图没有黑边

1.1 原图:

1.2 去掉透明区域:

2. 为什么tiny压缩过以后 会出现黑边

2.1 tiny压缩完的图片(998K):

2.2 tiny压缩过的图片 去掉透明区域(165K):

3.tiny 压缩图片 和 原始图片细节对比

3.1 原始图片

3.2 tiny 压缩过后的图片细节

4. 不透明区域 用tiny压缩过的纹理。 透明 & 渐变区域用原图。

4.1 处理过的图片(497K 没有黑边)

4.2 去掉透明区域(alpha=0的区域 变成 不透明)

4.3 放大以后 (外圈 有一圈带颜色 & alpha=0的像素)

5.openGl 分析

5.1 编辑器中设置的混合模式 会通过 glBlendFuncSeparate 方法 传入 opengl 中

5.2 openGl的混合规则

GL_ZERO 因子等于0
GL_ONE 因子等于1
GL_SRC_COLOR 因子等于源颜色向量C¯source
GL_ONE_MINUS_SRC_COLOR 因子等于1−C¯source
GL_DST_COLOR 因子等于目标颜色向量C¯destination
GL_ONE_MINUS_DST_COLOR 因子等于1−C¯destination
GL_SRC_ALPHA 因子等于C¯source的alpha分量
GL_ONE_MINUS_SRC_ALPHA 因子等于1− C¯source的alpha分量
GL_DST_ALPHA 因子等于C¯destination的alpha分量
GL_ONE_MINUS_DST_ALPHA 因子等于1− C¯destination的alpha分量
GL_CONSTANT_COLOR 因子等于常数颜色向量C¯constant
GL_ONE_MINUS_CONSTANT_COLOR 因子等于1−C¯constant
GL_CONSTANT_ALPHA 因子等于C¯constant的alpha分量
GL_ONE_MINUS_CONSTANT_ALPHA 因子等于1− C¯constant的alpha分量

6. 解决黑边的方式

6.1 图片格式改成单点采样 (锯齿)

6.2 预乘 & 选择 GL_ONE 混合模式(spine 预乘模式 不支持 etc2 )

6.3 把图片的透明区域 预设带颜色的值。(spine etc2格式 待测试)

7. 图片处理方式

7.1 OpenCV简介

Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为计算机视觉领域最有力的研究工具。在这里我们要区分两个概念:图像处理和计算机视觉的区别:图像处理侧重于“处理”图像–如增强,还原,去噪,分割等等;而计算机视觉重点在于使用计算机来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS, 如今也提供对于C#、Ch、Ruby,GO的支持

8. unity实现扩展阅读

https://zhuanlan.zhihu.com/p/340754532

猜你喜欢

转载自blog.csdn.net/qq_45504161/article/details/122546721
今日推荐