Only textures with width/height being multiple of 4 can be compressed to DXT5 format.
目录
警报描写:
在网上找了一下资料,整理如下:
吐槽一下:
原文链接:
警报描写:
导入一张纹理,设置成GUI各式后,报个了警告:
错误其实很简单:“纹理的长宽都是4的倍数,才能被压缩成DXT5 格式”。看着这个提示,想到了unity的一次大会上,说纹理贴图推荐大小是256、512、1024等。当然,只要是4的倍数就行。当时就那么一听。现在想想,还是查一下吧,为啥要压缩成DXT5呢,DXT5是什么东西?
在网上找了一下资料,整理如下:
核心关键词:压缩的DXT5格式,使用较少的内存。
在DirectX中,使用一种叫做DXT的纹理压缩技术,目前这种技术被大部分显卡所支持。 DXT是一种DirectDraw表面,它以压缩形式存储图形数据,该表面可以节省大量的系统带宽和内存。即使不直接使用DXT表面渲染,也可以通过 DXT格式创建纹理的方法节省磁盘空间。
DXT4、DXT5
DXT4、DXT5也是用于表示具有复杂的透明信息的贴图,与2和3不同的是4和5的Alpha信息是通过线性插值计算所得,类似于DXT1的颜色信息。同样的,每4×4的像素块的透明信息占用64位,所不同的是,64位中采用了2个8位的alpha值和16个3位的索引值,既然每个像素的索引占3位,那么可以表示8种不同的透明状态。
在这里插值的方法有两种,一种用于表示具有完全透明和完全不透明的状态,另一种则是仅在给出的极端值alpha_0和alpha_1中进行插值。区分的方法也是通过比较alpha_0和alpha_1的大小来实现的,如果alpha_0大于alpha_1,则通过插值计算剩下的6个中间alpha值;否则,只通过插值计算4个中间alpha值,alpha_6直接赋值0,alpha_7直接赋值255。
DXT4和DXT5的区别同DXT2和DXT3的区别相同,DXT4的颜色值是理解为已经完成Premultiplied by alpha操作的。
另外需要注意的是,所有的压缩纹理格式都是2的幂,因为纹理压缩的单位是4×4像素,所以如果贴图的大小位16×2或者8×1这样的比例,系统会同样采用4×4的单位进行压缩,会造成一定的空间浪费,同样的大小会被占用,只是不会参与使用而已。
吐槽一下:
unity4以下的原生GUI,效率比较低下,而且各种难用。再加上运行才能看效果,开发效率也较低。但是,如果用NGUI等插件,又不太合适,因为unity正在开发一套新的UI系统。学了NGUI,有点走弯路的感觉。真是青黄不接的时代啊。据说,kabam对于UI技术的选用,也是同样处于这种尴尬的状态,也在等unity新版的UI系统。
原文链接:
https://blog.csdn.net/chenggong2dm/article/details/25186953
Only textures with width/height being multiple of 4 can be compressed to DXT5 format.相关推荐
- multiple of 4 can be compressed to DXT5 format
导入一张纹理,设置成GUI各式后,报个了警告: 错误其实很简单:"纹理的长宽都是4的倍数,才能被压缩成DXT5 格式".看着这个提示,想到了unity的一次大会上,说纹理贴图推荐大 ...
- pygame中Rect(left, top, width, height)的参数详解
今天终于把一个问题弄明白了,那就是pygame.Rect(left, top, width, height)中参数的问题.当遇到问题后,我上网上找了大量的资料,但是并没有详细的答案,于是开始思考最终得 ...
- as3:sprite作为容器使用时,最好不要指定width,height
官方解释: 除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将 height 设置为其它值,也是这样. 如果您设置了 heigh ...
- 【目标检测】xmin,ymin,width,height 转为 xmin,ymin,xmax,ymax
1.xmin,ymin,width,height 转为 xmin,ymin,xmax,ymax 前2个坐标不需要动,只需要动后2个,规则如下: xmax= xmin+width-1ymax= ymin ...
- unity ugui改变pos,width,height
1.改变RectTransform的topGetComponent<RectTransform>().offsetMax = new Vector2(GetComponent<Rec ...
- Unity获取Ui的Posx与Posy以及Width Height和Top Bottom
获取Posx,Posx,通过anchoredPosition GetComponent<RectTransform>().anchoredPosition.x; 获取Width Heigh ...
- unity ugui改变width,height,pos
1.改变RectTransform的bottom GetComponent<RectTransform>().offsetMin = new Vector2(GetComponent& ...
- css - width / height
本文主要对<CSS世界>3.2节 width/height 作用的具体细节 的内容进行一些摘取和概括.更多资料可查阅<CSS世界>. 一.深藏不露的width: auto 一般 ...
- 如何将div上下居中,左右居中 有五种(width height定,width height不定 尺寸不固定)
width height定 1.绝对定位 top50% left50% margin-top 负值定为自身高一半 margin-left负值定为自身宽一半 2.定位拉伸 定位父relative子abs ...
最新文章
- 【廖雪峰python入门笔记】切片
- 第八章 软件项目质量计划
- 10远程连接连接不上华为云_从云手机到云游戏,5G会在多大程度上改变我们的生活?...
- MFC中CArray类原理及其应用
- PHP学习笔记二: 面向对象设计
- android中layout、drawable及styles的xml文件加载探索
- Linux下C语言串口应用编程,Linux下串口C语言编程
- centos编译安装LNMP
- linux7.1怎么安装vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- mysql的常用引擎
- VS2008 SP1安装失败
- 智方8000系进销存管理系统 杀毒软件下载
- 1.3 三种交换方式:电路交换、分组交换、报文交换
- 2018 网易校招题目
- 每日学英语之041104
- 多媒体 || GIF压缩与JPEG压缩的对比
- vi 的完整指令说明 -- YenYen 整理
- xbox360链接pc_如何在Windows PC上使用Xbox 360控制器
- c++ value categories
- 【日志分析】Linux日志分析
热门文章
- 【Python_Xpath学习笔记(一)】 Xpath选择器基础用法介绍
- libfuse install error: fusermount.c:295:44: error: ‘CLONE_NEWNS’ undeclared (first use in this funct
- 银行面试着装攻略分享(二)银行着装要点归纳
- 物有所不足,智有所不明
- 如何用eclipse将本地项目上传至github
- 《腾讯传》的四个小故事读懂职场进阶之道
- Zigbee变电站智能门禁系统设计
- AD9 在 Board Shape的时候遇到了”Could not find board outline using primitives......”解决办法
- (学习个输出方法)POJ 1929 Calories from Fat(没啥算法,就是比较复杂还有个输出问题)
- html5 图片流,Html5之webcoekt播放JPEG图片流