手机游戏开发如何选择和优化图象素材优化?

网页设计教程子分类手游***素材_手游***素材图片素材
当前位置: > 手游***素材
日式格斗手游火影忍者/***游戏美术资源素材/UI界面场景人设特效
全民超神 ***角色/怪物模型 3Dmax 手游素材 游戏美术资源
传奇游戏物品道具首饰装备 写实仙侠风***装备升级图标手游素材
传奇游戏物品道具首饰装备 写实风***等级 图标 手游游戏素材
火影忍者手游美术***资源素材 模型 UI界面贴图 场景 人设 参考
传奇游戏物品道具装备 写实风***等级 图标 手游游戏素材 591
梅露可物语卡牌游戏精美ui原画素材图片合集***人设图标手游场景
CG游戏原画资源页游手游场景素材 ***横版地图2D横版场景Png211p
游戏美术资源/手游全民精灵***UI素材/界面/图标/音效/特效/场景
游戏美术资源 天下HD***Q版UI界面 图标 场景 角色冒险手游素材
游戏美术资源/场景素材/2D资源横版地图手页游Q版***建筑场景PSD
2016动漫格斗手游苍翼之刃/***游戏美术资源素材/UI界面原画设定
日式格斗手游/火影忍者/***游戏美术资源素材/界面角色动作特效
游戏美术素材Q版手游酷酷爱魔兽***UI界面图标icon特效音效资源
游戏美术资源 手游Q版三国模型***角色模型 max源文件素材角色51
Q版中国风手游/仙剑奇侠传/***游戏美术资源素材/2016UI界面场景
游戏美术资源/手游天天传奇***UI素材/界面/图标/3D贴图/特效
[手游素材]全民奇迹全角色怪物场景3D模型***游戏美术资源UI素材
游戏美术资源/手游天天传奇***UI素材/界面/图标/3D贴图/特效
游戏美术资源 韩国塔防类手游素材 ***界面图标场景背景特效PNG
最近更新的...
友情链接:
& 看图网,,该页图片不可商用
在线图片处理软件开发,始创于09年,距今7年。DS:3/2/20
手游***素材素材下载手机游戏开发如何选择和优化图像素材?
关于如何优化素材来减少内存消耗。ios android各采用什么格式的图片会比较好?RGBA4444 真的比
RGBA8888 RAM 占用少一半吗?我用TexturePacker导出png RGBA4444
RGBA8888进行内存对比,好像内存占用没变化,而且图片属性的信息里面显示颜色深度都还是32bit。
谢邀。回答的前提是:使用OpenGL来渲染。分几个点来回答。1. RGBA4444真的比RGBA8888占用的RAM要少其实这里说的RAM,是指的显存而非内存。OpenGL支持以这几种形式来使用纹理资源(via ):GL_UNSIGNED_BYTE(RGBA8888或RGB888)GL_UNSIGNED_SHORT_5_6_5GL_UNSIGNED_SHORT_4_4_4_4GL_UNSIGNED_SHORT_5_5_5_1在程序将图片载入系统内存后,会根据你选择的形式(RGBA8888/RGB565 etc.)对其做一些处理(怎么处理后面说),然后就将这些纹理上传到显卡的显存,之后会把这些图片占用的内存删除掉。也就是说,载入的图片在变成了显卡能处理的纹理之后,就根本不会保存在内存中,所以你可能看不到内存占用的变化。当然,这个处理操作是由程序员自行控制(或者由你选择的框架来决定)的,你如果决定不删除它们而让它们留在内存中,那当然会占用系统内存。2. TexturePackger导出的图片是个什么情况?你可以拿一张图片尝试,在导出为RGBA8888和RGBA4444的时候,它们的文件大小确实是不同的。请看下面的图片,并注意我加亮的部分:对于同一张图片,在RGBA8888格式下,唯一颜色数是5864;而RGBA4444格式下,唯一颜色数是1454,文件大小减少了80KB左右。至于图片信息中显示的 Original Colors依然是32Bit,这是因为在图像处理软件显示图像的时候,内部使用的色彩是8888的。3. 保存的文件是个什么情况?上面的RGBA4444是否就真的使用的16bit(4x4)来保存每个像素呢?不是。我们知道,PNG格式可以保存成 8bit 、 24bit 和 24bit(with alpha channel)=32bit 三种格式。而JPEG格式只能保存为24bit。RGBA4444有16bit,无论如何是不能使用8bit格式来保存的。因此,这个RGBA4444是使用24bit(或者32bit)格式来保存的。既然同为24bit or 32bit,为什么RGBA4444的文件体积会比RGBA8888小呢?注意上面的两个 Number of unique colors。在这里,压缩算法起了作用,将相同的颜色压缩了,总颜色数量少了,文件体积就变小了。不过,即使是采用同样的色深(24bit or 32bit)保存,我仍然要说的是,RGBA4444比RGBA8888的图像质量会差一些。4. 怎么做到的?要解释最后一个下划线内容,我们需要提出一个新的问题:RGBA8888转换成RGBA4444,发生了什么变化?先来看看它们分别代表什么:RGBA8888 : R 8bit + G 8bit + B 8bit + A 8bitRGBA4444 : R 4bit + G 4bit + B 8bit + A 8bit8bit 能代表的最大数字是256,也就是说每种颜色可以表达256个级别,那么8x3=24bit(不算A)就能表现=种颜色。同样的,RGBA4444能表现的颜色是=4096种(不算A)。也就是说,进行这种转换,是一定会丢失颜色信息的。以 0xFFFFFFFF 这个RGBA8888颜色为例,转换成 RGBA4444可以这样做:unsigned int pixel32 = 0xFFFFFFFF;
unsigned short pixel16 =
((((pixel32 && 0) & 0xFF) && 4) && 12) | // R
((((pixel32 && 8) & 0xFF) && 4) &&
((((pixel32 && 16) & 0xFF) && 4) && 4) | // B
((((pixel32 && 24) & 0xFF) && 4) && 0);
最终的结果是 0xFFFF。5. iOS用什么?当然是用PVR格式。pvr是iOS设备的图形芯片
支持的专用压缩纹理格式。它在PowerVR图形芯片中效率极高,占用显存也小。性能对比可以看这里:。6. Android用什么?大部分的Android设备都支持ETC1格式,它也是受OpenGL ES 2.0标准支持的。ETC1不支持Alpha通道,但可以采用一些方法来处理:。ETC2支持Alpha通道,但需要
支持。 但由于硬件平台不统一,每个厂商的GPU可能使用不同的纹理压缩格式,极少数的GPU甚至对ETC格式支持有问题。所以在Android设备上,目前可以采用ETC1或者PNG/JPEG格式。
导出到png格式之后,不管是4444还是8888,都会变成png标准的每像素32bits也就是RGBA8888。所以内存不会减少。只有导出为pvr格式,才能正确支持RGBA4444。在iOS可观测到内存占用变少。如果针对iOS开发,RGBA4444会有色阶问题,建议使用PVRTC4,内存占用最少,对色彩丰富的纹理处理上最合算。但是PVRTC4也有缺点,就是Alpha透明有明显瑕疵。兼顾Android,我们目前推荐 pngquant 这个工具,可以高度优化png的尺寸。但是不会减少内存占用了。还有一些方案,例如将图片拆为RGB和Alpha两部分数据,RGB部分用JPG格式压缩,Alpha部分用png压缩。调用前先合并为内存中的纹理数据再载入显存。不过也有downside,就是解压缩JPG和合并Alpha通道的运算会消耗更多的CPU能源和占用更多的时间。如果素材量大时问题会更加明显。
谢邀。。。对于手游推广而言,无论是渠道推广,还是在内测阶段的手游测试而言,包体的大小直接影响推广成本的多少,就目前来看,主流渠道的高质量买量一个用户 最少在12元人民币左右,并且在渠道推广中,包体在150M这个阖值直接影响推广成本,即超过150M会影响推广成本增加一倍。那么在推广成本上,手游包体缩小后对成本的控制是怎么样的呢?如图我们进行了一次对比分析:总结:尽管手游寒冬正在经过,但对于红海变血海的策略求生之路,我们会有更多的思考,并带来更多的是技术革新来推动手游行业的发展,无论是从用户转化还是用户体验,甚至站在制作者的角度而言,爱加密包压缩和云更新技术为手游寒冬中添加更多的温暖和前行的力量。。。
内存没有变化是因为你只是把图片的存储像素格式改成了RGBA4444,在游戏中生成纹理的时候还是会转换成RGBA8888的格式,以cocos2d-x为例,你需要调用CCTexture2D::setDefaultAlphaPixelFormat(kCCTexture2DPixelFormat_RGBA4444); (2.x版本)这个方法来改变生成纹理的格式,这样内存才会变化
已有帐号?
无法登录?
社交帐号登录关于如何优化素材来减少内存消耗。ios android各采用什么格式的图片会比较好?RGBA4444 真的比
RGBA8888 RAM 占用少一半吗?我用TexturePacker导出png RGBA4444
RGBA8888进行内存对比,好像内存占用没变化,而且图片属性的信息里面显示颜色深度都还是32bit。
谢邀。回答的前提是:使用OpenGL来渲染。分几个点来回答。1. RGBA4444真的比RGBA8888占用的RAM要少其实这里说的RAM,是指的显存而非内存。OpenGL支持以这几种形式来使用纹理资源(via ):GL_UNSIGNED_BYTE(RGBA8888或RGB888)GL_UNSIGNED_SHORT_5_6_5GL_UNSIGNED_SHORT_4_4_4_4GL_UNSIGNED_SHORT_5_5_5_1在程序将图片载入系统内存后,会根据你选择的形式(RGBA8888/RGB565 etc.)对其做一些处理(怎么处理后面说),然后就将这些纹理上传到显卡的显存,之后会把这些图片占用的内存删除掉。也就是说,载入的图片在变成了显卡能处理的纹理之后,就根本不会保存在内存中,所以你可能看不到内存占用的变化。当然,这个处理操作是由程序员自行控制(或者由你选择的框架来决定)的,你如果决定不删除它们而让它们留在内存中,那当然会占用系统内存。2. TexturePackger导出的图片是个什么情况?你可以拿一张图片尝试,在导出为RGBA8888和RGBA4444的时候,它们的文件大小确实是不同的。请看下面的图片,并注意我加亮的部分:对于同一张图片,在RGBA8888格式下,唯一颜色数是5864;而RGBA4444格式下,唯一颜色数是1454,文件大小减少了80KB左右。至于图片信息中显示的 Original Colors依然是32Bit,这是因为在图像处理软件显示图像的时候,内部使用的色彩是8888的。3. 保存的文件是个什么情况?上面的RGBA4444是否就真的使用的16bit(4x4)来保存每个像素呢?不是。我们知道,PNG格式可以保存成 8bit 、 24bit 和 24bit(with alpha channel)=32bit 三种格式。而JPEG格式只能保存为24bit。RGBA4444有16bit,无论如何是不能使用8bit格式来保存的。因此,这个RGBA4444是使用24bit(或者32bit)格式来保存的。既然同为24bit or 32bit,为什么RGBA4444的文件体积会比RGBA8888小呢?注意上面的两个 Number of unique colors。在这里,压缩算法起了作用,将相同的颜色压缩了,总颜色数量少了,文件体积就变小了。不过,即使是采用同样的色深(24bit or 32bit)保存,我仍然要说的是,RGBA4444比RGBA8888的图像质量会差一些。4. 怎么做到的?要解释最后一个下划线内容,我们需要提出一个新的问题:RGBA8888转换成RGBA4444,发生了什么变化?先来看看它们分别代表什么:RGBA8888 : R 8bit + G 8bit + B 8bit + A 8bitRGBA4444 : R 4bit + G 4bit + B 8bit + A 8bit8bit 能代表的最大数字是256,也就是说每种颜色可以表达256个级别,那么8x3=24bit(不算A)就能表现=种颜色。同样的,RGBA4444能表现的颜色是=4096种(不算A)。也就是说,进行这种转换,是一定会丢失颜色信息的。以 0xFFFFFFFF 这个RGBA8888颜色为例,转换成 RGBA4444可以这样做:unsigned int pixel32 = 0xFFFFFFFF;
unsigned short pixel16 =
((((pixel32 && 0) & 0xFF) && 4) && 12) | // R
((((pixel32 && 8) & 0xFF) && 4) &&
((((pixel32 && 16) & 0xFF) && 4) && 4) | // B
((((pixel32 && 24) & 0xFF) && 4) && 0);
最终的结果是 0xFFFF。5. iOS用什么?当然是用PVR格式。pvr是iOS设备的图形芯片
支持的专用压缩纹理格式。它在PowerVR图形芯片中效率极高,占用显存也小。性能对比可以看这里:。6. Android用什么?大部分的Android设备都支持ETC1格式,它也是受OpenGL ES 2.0标准支持的。ETC1不支持Alpha通道,但可以采用一些方法来处理:。ETC2支持Alpha通道,但需要
支持。 但由于硬件平台不统一,每个厂商的GPU可能使用不同的纹理压缩格式,极少数的GPU甚至对ETC格式支持有问题。所以在Android设备上,目前可以采用ETC1或者PNG/JPEG格式。
导出到png格式之后,不管是4444还是8888,都会变成png标准的每像素32bits也就是RGBA8888。所以内存不会减少。&br&&br&只有导出为pvr格式,才能正确支持RGBA4444。在iOS可观测到内存占用变少。&br&&br&如果针对iOS开发,RGBA4444会有色阶问题,建议使用PVRTC4,内存占用最少,对色彩丰富的纹理处理上最合算。但是PVRTC4也有缺点,就是Alpha透明有明显瑕疵。&br&&br&兼顾Android,我们目前推荐 pngquant 这个工具,可以高度优化png的尺寸。但是不会减少内存占用了。&br&&br&还有一些方案,例如将图片拆为RGB和Alpha两部分数据,RGB部分用JPG格式压缩,Alpha部分用png压缩。调用前先合并为内存中的纹理数据再载入显存。不过也有downside,就是解压缩JPG和合并Alpha通道的运算会消耗更多的CPU能源和占用更多的时间。如果素材量大时问题会更加明显。
导出到png格式之后,不管是4444还是8888,都会变成png标准的每像素32bits也就是RGBA8888。所以内存不会减少。 只有导出为pvr格式,才能正确支持RGBA4444。在iOS可观测到内存占用变少。 如果针对iOS开发,RGBA4444会有色阶问题,建议使用PVRTC4,内存占用最…
&p&谢邀。。。对于手游推广而言,无论是渠道推广,还是在内测阶段的手游测试而言,包体的大小直接影响推广成本的多少,就目前来看,主流渠道的高质量买量一个用户 最少在12元人民币左右,并且在渠道推广中,包体在150M这个阖值直接影响推广成本,即超过150M会影响推广成本增加一倍。&/p&&p&那么在推广成本上,手游包体缩小后对成本的控制是怎么样的呢?&/p&&p&如图我们进行了一次对比分析:&/p&&img src=&/ebf6f43cc91a4ae198df6_b.png& data-rawwidth=&457& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&457& data-original=&/ebf6f43cc91a4ae198df6_r.png&&&br&&p&总结:尽管手游寒冬正在经过,但对于红海变血海的策略求生之路,我们会有更多的思考,并带来更多的是技术革新来推动手游行业的发展,无论是从用户转化还是用户体验,甚至站在制作者的角度而言,爱加密包压缩和云更新技术为手游寒冬中添加更多的温暖和前行的力量。。。&/p&
谢邀。。。对于手游推广而言,无论是渠道推广,还是在内测阶段的手游测试而言,包体的大小直接影响推广成本的多少,就目前来看,主流渠道的高质量买量一个用户 最少在12元人民币左右,并且在渠道推广中,包体在150M这个阖值直接影响推广成本,即超过150M会…
已有帐号?
无法登录?
社交帐号登录
zengrong.net

参考资料

 

随机推荐