Texture Format全解析
【Texture Format全解析】
What internal representation is used for the texture. This is a tradeoff between size and quality.
纹理的压缩方式取决于大小和质量的平衡。

由上图可以看到:
1)RGB Compressed DXT1 > RGB 16 bit
2)RGBA Compressed DXT5 > RGBA 16 bit
3)非 Normal 情况下,RGBA Compressed DXT5 > RGBA 32 bit
【iOS平台】

上图可以看到,前一节中的DXT压缩无法应用于iOS设备上,取而代之的理PVRTC技术。从上图可以看出:
RGB Compressed PVRTC 4 bits > RGB 16 bit
RGB Compressed PVRTC 4 bits > RGB Compressed PVRTC 2 bits
RGBA Compressed PVRTC 4 bits > RGBA 16 bit
RGBA Compressed PVRTC 4 bits > RGBA Compressed PVRTC 2 bits
RGBA Compressed PVRTC 4 bits > RGBA 32 bit
【Android】

Unless you’re targeting a specific hardware, like Tegra, we’d recommend using ETC1 compression. If needed you could store an external alpha channel and still benefit from lower texture footprint.
If you absolutely want to store an alpha channel in a texture, RGBA16 bit is the compression supported by all hardware vendors.
RGB Compressed ETC 4 bits 适合于diffuse-map,如果图像有alpha通道,为了全平台使用,必须使用RGBA16。
If your app utilizes an unsupported texture compression, the textures will be uncompressed to RGBA 32 and stored in memory along with the compressed ones. So in this case you lose time decompressing textures and lose memory storing them twice. It may also have a very negative impact on rendering performance.
如果使用了不支持的压缩技术,那么带带来浪费解压时间,以及花费双倍内存的情况,有极大的负面影响。
【Texture Size】
If the platform or GPU does not support NPOT texture sizes, then Unity will scale and pad the texture up to next power of two size, which will use even more memory and make loading slower.
如果纹理不是2的次幂,Unity会scale、pad纹理,以使得达到2的次幂,这样会花费更多内存,让加载更慢。所以良好的建议是,所有的纹理都必须是2的次幂。
【Mip Maps】
Using mip maps uses 33% more memory, but not using them can be a huge performance loss. You should always use mipmaps for in-game textures.
Mip Map会多花费33%的内存。
【Anisotropic filtering】
Anisotropic filtering increases texture quality when viewed from a grazing angle, at some expense of rendering cost (the cost is entirely on the graphics card). Increasing anisotropy level is usually a good idea for ground and floor textures.
anisotropic filtering只花费gpu时间。
Texture Format全解析的更多相关文章
- Git全解析之用起来先
文章目录 1. Git全解析之用起来先 1.1. 先安装Git环境 1.2. 配置 1.3. 简单了解Git 1.3.1. Git对象模型 SHA 1.3.2. Git目录与工作目录 1.4. 可以开 ...
- MySQL慢日志查询全解析:从参数、配置到分析工具【转】
转自: MySQL慢日志查询全解析:从参数.配置到分析工具 - MySQL - DBAplus社群——围绕数据库.大数据.PaaS云,运维圈最专注围绕“数据”的学习交流和专业社群http://dbap ...
- syslog之二:syslog协议及rsyslog服务全解析
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- Gson全解析(上)-Gson基础
前言 最近在研究Retrofit中使用的Gson的时候,发现对Gson的一些深层次的概念和使用比较模糊,所以这里做一个知识点的归纳整理. Gson(又称Google Gson)是Google公司发布的 ...
- Caddy 源码全解析
caddy源码全解析 Caddy 源码全解析 Preface Caddy 是 Go 语言构建的轻量配置化服务器.同时代码结构由于 Go 语言的轻便简洁,比较易读,推荐学弟学妹学习 Go 的时候也去查看 ...
- Google Maps地图投影全解析(3):WKT形式表示
update20090601:EPSG对该投影的编号设定为EPSG:3857,对应的WKT也发生了变化,下文不再修改,相对来说格式都是那样,可以到http://www.epsg-registry.or ...
- C#系统缓存全解析(转载)
C#系统缓存全解析 对各种缓存的应用场景和方法做了很详尽的解读,这里推荐一下 转载地址:http://blog.csdn.net/wyxhd2008/article/details/8076105
- 【凯子哥带你学Framework】Activity界面显示全解析
前几天凯子哥写的Framework层的解析文章<Activity启动过程全解析>,反响还不错,这说明“写让大家都能看懂的Framework解析文章”的思想是基本正确的. 我个人觉得,深入分 ...
- iOS Storyboard全解析
来源:http://iaiai.iteye.com/blog/1493956 Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果, ...
随机推荐
- Tornado的入门研究
1.为啥要了解Tornado 首先,Tornado是大神写出来的,如果学习python的话,参照Tornado的源码是一件非常好的事情,属于FaceBook的开源代码 其次,Tornado就是我们在 ...
- normalizr api 转换类库使用
1. 项目初始化 yarn init yarn add normalizr 项目结构 app.js package.json user.json 2. 使用 a. app.js const userj ...
- nginx 启用http2 https 无法访问的问题
原因: 1. openssl 版本过低 解决方法:进行升级 yum update openssl 2.ssl_ciphers 配置有问题 解决方法:修改为 ssl_ci ...
- FastAdmin 中使用 Oder by if 强行将某一类放到前面
FastAdmin 中使用 Oder by if 强行将某一类放到前面 问题来源社区问题 1,查了一些资料2,做了测试. 如下表,我想把 snake 单独放到开始. 可以使用以下查询语句(默认为 AS ...
- ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程
1.副总裁需要裸恢复的严峻现实 集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复.而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rma ...
- RK3288 摄像头左右镜像
系统:Android 5.1 设置摄像头左右镜像 diff --git a/frameworks/av/services/camera/libcameraservice/api1/CameraClie ...
- laravel开启调试模式
mvim app/config/app.php 'debug' => true,
- 结合示例说明C++中const和指针结合时怎么理解
在之前随笔<C++中const使用要点(一)>中简单叙述了const int*.int* const和const int* const的区别,记住三句话就能在实际运用时用对,但是看书时发现 ...
- bzoj4353: Play with tree
Description 给你一棵包含N个节点的树,设每条边一开始的边权为0,现在有两种操作: 1)给出参数U,V,C,表示把U与V之间的路径上的边权变成C(保证C≥0) 2)给出参数U,V,C ...
- map.js
function Map() { var struct = function(key, value) { this.key = key; this.value = value; } var put = ...