目录

警报描写:

在网上找了一下资料,整理如下:

吐槽一下:

原文链接:


警报描写:

导入一张纹理,设置成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.相关推荐

  1. multiple of 4 can be compressed to DXT5 format

    导入一张纹理,设置成GUI各式后,报个了警告: 错误其实很简单:"纹理的长宽都是4的倍数,才能被压缩成DXT5 格式".看着这个提示,想到了unity的一次大会上,说纹理贴图推荐大 ...

  2. pygame中Rect(left, top, width, height)的参数详解

    今天终于把一个问题弄明白了,那就是pygame.Rect(left, top, width, height)中参数的问题.当遇到问题后,我上网上找了大量的资料,但是并没有详细的答案,于是开始思考最终得 ...

  3. as3:sprite作为容器使用时,最好不要指定width,height

    官方解释: 除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将 height 设置为其它值,也是这样. 如果您设置了 heigh ...

  4. 【目标检测】xmin,ymin,width,height 转为 xmin,ymin,xmax,ymax

    1.xmin,ymin,width,height 转为 xmin,ymin,xmax,ymax 前2个坐标不需要动,只需要动后2个,规则如下: xmax= xmin+width-1ymax= ymin ...

  5. unity ugui改变pos,width,height

    1.改变RectTransform的topGetComponent<RectTransform>().offsetMax = new Vector2(GetComponent<Rec ...

  6. Unity获取Ui的Posx与Posy以及Width Height和Top Bottom

    获取Posx,Posx,通过anchoredPosition GetComponent<RectTransform>().anchoredPosition.x; 获取Width Heigh ...

  7. unity ugui改变width,height,pos

    1.改变RectTransform的bottom   GetComponent<RectTransform>().offsetMin = new Vector2(GetComponent& ...

  8. css - width / height

    本文主要对<CSS世界>3.2节 width/height 作用的具体细节 的内容进行一些摘取和概括.更多资料可查阅<CSS世界>. 一.深藏不露的width: auto 一般 ...

  9. 如何将div上下居中,左右居中 有五种(width height定,width height不定 尺寸不固定)

    width height定 1.绝对定位 top50% left50% margin-top 负值定为自身高一半 margin-left负值定为自身宽一半 2.定位拉伸 定位父relative子abs ...

最新文章

  1. 【廖雪峰python入门笔记】切片
  2. 第八章 软件项目质量计划
  3. 10远程连接连接不上华为云_从云手机到云游戏,5G会在多大程度上改变我们的生活?...
  4. MFC中CArray类原理及其应用
  5. PHP学习笔记二: 面向对象设计
  6. android中layout、drawable及styles的xml文件加载探索
  7. Linux下C语言串口应用编程,Linux下串口C语言编程
  8. centos编译安装LNMP
  9. linux7.1怎么安装vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  10. mysql的常用引擎
  11. VS2008 SP1安装失败
  12. 智方8000系进销存管理系统 杀毒软件下载
  13. 1.3 三种交换方式:电路交换、分组交换、报文交换
  14. 2018 网易校招题目
  15. 每日学英语之041104
  16. 多媒体 || GIF压缩与JPEG压缩的对比
  17. vi 的完整指令说明 -- YenYen 整理
  18. xbox360链接pc_如何在Windows PC上使用Xbox 360控制器
  19. c++ value categories
  20. 【日志分析】Linux日志分析

热门文章

  1. 【Python_Xpath学习笔记(一)】 Xpath选择器基础用法介绍
  2. libfuse install error: fusermount.c:295:44: error: ‘CLONE_NEWNS’ undeclared (first use in this funct
  3. 银行面试着装攻略分享(二)银行着装要点归纳
  4. 物有所不足,智有所不明
  5. 如何用eclipse将本地项目上传至github
  6. 《腾讯传》的四个小故事读懂职场进阶之道
  7. Zigbee变电站智能门禁系统设计
  8. AD9 在 Board Shape的时候遇到了”Could not find board outline using primitives......”解决办法
  9. (学习个输出方法)POJ 1929 Calories from Fat(没啥算法,就是比较复杂还有个输出问题)
  10. html5 图片流,Html5之webcoekt播放JPEG图片流