国内很多引擎都是挂羊头卖狗肉,用国外开源引擎,改一改,转身一变就成为自研引擎了,然后去招摇撞骗。
国内靠谱的游戏引擎我只听过四个,做2D游戏的Cocos,做3D游戏的白鹭和layabox,还有既可以做3D游戏也可以做VR和AR游戏的C2engine引擎,C2engine在国产中算是顶尖的吧,即使和国外的开发软件相比,画面效果也可以媲美U3D,仅输于虚幻引擎。在游戏中,纹理不仅占据大量的包体,也占据了大量的内存。传统的图片压缩格式(如JPEG、PNG等)虽能减少资源大小,但是不能被GPU直接识别,还是需要先加载到内存通过CPU解码,转换成RGB/RGBA等能被GPU识别的格式,才能传送到GPU进行渲染。
为避免这些问题,压缩纹理,指的是一种针对GPU的纹理压缩方案,使纹理能够直接被GPU识别并进行渲染,它具有以下优点。
传统的图片压缩主要目的是存储和传输,为了尽可能的高效压缩,使用了可变的压缩比率,因此在解压时需要解压更多的像素位才能读取某个像素的位置,不适合随机和快速读取,也发挥不了GPU的并行处理优势。
而压缩纹理使用一个固定的压缩比率,将纹理划分成多个像素块,每个像素块包含 2*2或 4*4个像素,然后对每个像素块进行压缩,被压缩的像素信息存储在一个像素集合中,每个像素块的索引位置存储在一个块索引图中。读取时,首先将纹理坐标转化为块索引值,然后在像素集合中查找对应的像素块,最后在这个像素块中找到纹理颜色值。
因为采用了固定的压缩比率,GPU内部可以并行处理,从而快速的解压缩。与之相对的是,纹理的压缩过程发生在程序运行之前,并不在意编码速度,因此在压缩时会遍历所有可能性,找到和原始像素差值最小的编码,这也是纹理压缩耗时较久的原因。
顺便说一下,普通图片格式中,PNG是无损压缩,JPEG是有损压缩。而压缩纹理都是有损压缩,只是在绝大部分情况下,手机上看不出来而已。
手机上使用压缩纹理依赖于OpenGL ES的支持,OpenGL ES 2.0本身并没有定义任何纹理压缩格式,它仅提供 glCompressTexImage2D()方法供应用程序上传压缩纹理,压缩纹理的格式由各个GPU厂商定义和实现。
OpenGL ES 3.0提供了压缩纹理标准,使各个平台都可以使用同一种压缩纹理,但市面上的设备还需要很长时间才会全部过渡到OpenGL ES 3.0。因此,仍然需要对不同的平台和设备使用不同的压缩纹理格式。
手机游戏中常用的有以下格式。
ETC1把 4*4的像素块压缩成固定的64位编码(8个字节), 4*4像素块是16个像素,每个像素4字节,一共占64个字节,所以压缩比是 64/8=8。但是ETC1只能存储RGB信息,不适用带透明度的纹理,为解决这个问题,Creator在ETC1文件中额外写入了透明度信息,即ETC1+A格式,它的压缩比是 64/16=4。
ETC1/ETC1+A需要OpenGL ES 2.0(对应WebGL 1.0)环境,目前几乎所有Android手机都支持ETC1,但是iOS不支持。
ETC1/ETC1+A纹理的长宽可以不相等,但要求是2的幂次方。
ETC2是ETC1的扩展,压缩比率一样,但压缩质量更高,而且支持透明通道,能完整存储RGBA信息。
ETC2需要OpenGL ES 3.0(对应WebGL 2.0)环境,目前还有不少低端Android手机不兼容,iOS方面从 iPhone5S开始都支持OpenGL ES 3.0。
ETC2和ETC1一样,长宽可以不相等,但要求是2的幂次方。
Creator中常用的是PVRTC4+A,压缩比和ETC一样,iOS全系列支持,但是Android不支持。另外PVR要求纹理长宽相等(正方形)且是2的幂次方,例如 1280*720的PNG图片,转换后变成 2048*2048,这一点会大大增加内存消耗。在实测中还发现转换后的图片质量不如ETC1,存在模糊、毛边现象,对画面要求高的游戏不适合。
压缩纹理的使用非常简单,根据构建平台添加需要的格式即可,具体参见Creator官方文档,本文不再重复了。
Creator编辑器还提供了转换压缩纹理的选项,根据转换速度分为Fast、Slow等好几档,速度越慢则画面质量越好。但不管选哪个,只影响显示效果和转换时长,显存占用都是一样的。一般情况下,显存占用就是压缩纹理的文件大小,例如文件大小是1.5M,则它占用的显存也是1.5M。
在设置压缩纹理格式时,目前Creator 2.x版本还需手动一个一个设置。如果想一次性设置所有或部分资源,自己写个脚本遍历修改对应的.meta文件也比较方便,这里是一个我写好的脚本一键自动化设置压缩纹理格式
在实际项目中的测试结果是,单图、自动图集、TexturePack合图加起来超过两千张图片的Creator工程,使用PNG时打出来的apk包大小近500M,内存占用1.3G。采用压缩纹理后,包体大小降到150M,内存占用降到600M。
今年前11月企业需求增长11%。
+11%
增长速度
2022年较2021年
2022-11:增长3300%
2022-10:增长2800%
2022-09:增长25%
2022-08:下降30%
cocos游戏开发工程师近两年招聘职位量/就业形势对比
查看近2年招聘趋势
cocos游戏开发工程师今年就业形势怎么样?好就业吗?数据统计依赖于各大平台发布的公开数据,系统稳定性会影响客观性,仅供参考。
#查看所在地区情况
近年企业需求趋势,2021较2020增长62%
+62%
增长速度
2021年较2020年
2020:增长23%
2019:下降34%
2018:增长156%
2017:增长259%
cocos游戏开发工程师历年就业情况
查看历年招聘趋势
cocos游戏开发工程师发展前景怎么样?就业难吗?曲线越向上代表市场需求量越大,就业情况相对较好。数据由各地招聘网站统计而来,仅检索职位名称。
哪个城市好找工作:北京,广州需求最高
招聘需求量地区排名:全国
北京 108,19.2%
广州 103,18.3%
深圳 96,17.1%
上海 68,12.1%
杭州 38,6.7%
成都 30,5.3%
武汉 30,5.3%
厦门 21,3.7%
南京 12,2.1%
天津 6,1.1%
福州 6,1.1%
长沙 6,1.1%
cocos游戏开发工程师去哪个城市工作好?cocos游戏开发工程师去北京工作好还是广州好?北京cocos游戏开发工程师招聘需求量最高,占19.2%,在全国中排名第1。其次是广州占18.3%,深圳占17.1%,上海占12.1%。统计依赖于各平台发布的公开数据,系统稳定性会影响客观性,仅供参考。
加班情况调查
经常加班:(
0
不用或偶尔:)
0
cocos游戏开发工程师经常加班吗?加班严重不?暂无反馈
工资待遇2022较2021下降21%
更多
-21%
增长速度
2022年较2021年
2021:增长21%
2020:增长18%
2019:下降5%
2018:增长17%
历年工资变化(月薪,单位¥)
查看历年工资变化
cocos游戏开发工程师今年工资怎么样?
哪个城市工资高:北京,上海
更多
工资待遇地区排名:全国
北京¥23.5K
上海
深圳
南京
杭州
福州
成都
广州
武汉
长沙
厦门
天津
cocos游戏开发工程师工资高吗?平面设计去哪个城市工资高?北京cocos游戏开发工程师工资最高,平均¥23.5K,其次是上海,深圳,南京,杭州,福州,成都,广州,武汉,长沙,厦门,天津
学历要求:本科最多
更多
本科 71.6%
大专 24.3%
不限学历 3.9%
cocos游戏开发工程师要求学历吗?本科占比最多达71.6%,其次是大专占24.3%,不限学历占3.9%
查看高学历人才需求
高学历人才需求
硕士 0.19%
cocos游戏开发工程师学历要求高吗?硕士占0.19%
经验要求:3-5年最多
更多
3-5年 33.6%
1-3年 26.5%
5-10年 9.9%
10年以上 0.71%
cocos游戏开发工程师经验要求高吗?cocos游戏开发工程师经验要求:3-5年占33.6%,1-3年占26.5%,5-10年占9.9%,10年以上占0.71%
零经验占比
不限经验 25.8%
应届毕业生 3.6%
没有经验可以做cocos游戏开发工程师吗?不限经验占25.8%,应届毕业生占3.6%
职业信心调查
嗯,有信心
0
准备转行
0
cocos游戏开发工程师行业现状?就业难吗?暂无反馈
推荐岗位
cocos开发工程师
游戏开发工程师
游戏客户端开发工程师
h5游戏开发工程师
cocos2dx开发工程师
游戏前端开发工程师
前端开发工程师
小游戏开发工程师
c++客户端开发工程师
客户端开发工程师
高级游戏开发工程师
展开更多
cocos游戏开发工程师与其他岗位就业前景PK
PK cocos开发工程师
PK游戏开发工程师
PK游戏客户端开发工程师
PK h5游戏开发工程师
PK cocos2dx开发工程师
PK游戏前端开发工程师
PK前端开发工程师
PK小游戏开发工程师
PK c++客户端开发工程师
PK客户端开发工程师
PK高级游戏开发工程师
展开更多
当前地区职位量比例变化
cocos游戏开发工程师就业形势分析图
*此图为cocos游戏开发工程师就业前景分析相对比例图,代表cocos游戏开发工程师职位占当前地区总职位量的比例变化,它通常能反应一个地区的产业变化。
上一篇:club家庭游戏排行榜
下一篇:cocos制作游戏排行榜