dds纹理格式

来源:互联网 发布:中国地质大学网络教学 编辑:程序博客网 时间:2024/05/01 03:49

转自http://pppboy.blog.163.com/blog/static/30203796200910141161767/

dds纹理格式  

2009-11-14 01:16:17|  分类:[三维/OGRE] |  标签:|字号 订阅

 3d场景中的纹理,把烘焙后的tag转成dds加进来,可以减少很多很多的内存使用,下面是对dds的一点学习引用。

//--------------------------------------------------------------------------------------------------------------------------------------
//下面部分引用 :http://www.csinx.org/IBlog/article.asp?id=8
//---------------------------------------------------------------------------------------------------------------------------------------
        DDS文件格式要追述到S3(Silicon & Software Systems)公司提出的一种纹理压缩格式S3TC(S3 Texture Compression), 其目的是通过对纹理的压缩, 以达到节约系统带宽并提高效能的目的. S3TC就是通过压缩方式, 利用有限的纹理缓存空间来存储更多的纹理, 因为它支持6:1的压缩比例, 所以6M的纹理可以被压缩为1M存放在材质缓存中, 从而在节约了缓存的同时也提高了显示性能. 后来的DXTC和FXT1都是与S3TC类似的技术, 它们分别是微软和3dfx开发的纹理压缩标准, FXT1能提供比S3TC更高的压缩比, 达到8:1, 同时它也在3DFX新版本的Glide中得到支持. DXTC是1999年微软从S3公司取得S3TC的授权后更名而来的, 并在DirectX6中提供了支持, 即使用户的图形硬件不能支持S3TC, DirectX API会自动解码压缩后的纹理贴图. 压缩纹理贴图可以使用高品质的离线压缩器, 不会造成加载程序时有很多延时, 而DDS文件就可以使用DXTC方式压缩或是存储未压缩的像素格式.

      注: S3TC是一种有损压缩方式, 纹理被压缩到每单元4点(不透明纹理或简单透明纹理)或每单元8点(复杂透明纹理), 压缩后的纹理品质保持良好.

      DDS(DirectDraw Surface)文件格式是微软为DirectX开发的一种图片格式, 它是可以使用类似S3TC标准提供的一种压缩纹理格式. DDS文件可以有很多不同的格式, 可以含有 Mipmap 或不保存 Mipmap 信息, 可以使用压缩或非压缩的像素格式,  常见的压缩数据方式有 DXTn(DXT1~DXT5), DDS文件的结构见MSDN: DDS File Reference.

      DXT1压缩格式可以提供高达8:1的压缩比例, 它可以支持1 bit 的 Alpha 通道, 每个 4x4 的块可以根据需要有或没有这个透明通道. 不需要 alpha 通道时, 每个块可以有四种颜色(其中两个是插值得到的). 需要 alpha 通道时, 只能有三种颜色, 另一个被保留用来描述是否透明, 因为只有一位 Alpha 信息, 所以只能表示透明或不透明, 因此DXT1的透明其实是一种镂空, 利用网孔达到的透明效果. 我们一般对画面质量要求不高并且不需要透明信息的图片使用这种格式.

      DXT3压缩格式可以提供4:1的压缩比例, 可以支持4 bit 的 Alpha 通道, 主要用于Alpha通道较锐利, 对比强烈的材质, 比如镂空, 以及部分半透材质等.

      DXT5压缩格式也可以提供4:1的压缩比例, 支持4 bit 的 Alpha 通道, 保存的上插值Alpha信息. 主要用于Alpha通道比较柔和的材质. 如用作镜面光屏蔽材质等.

      至于 DXT2 和 DXT4 压缩格式并不常用, 与 DXT3 和 DXT5 压缩格式很相似, DXT2 与 DXT3 的区别在于 DXT2 使用带有预乘 Alpha 的压缩格式, DXT3 使用无预乘 Alpha 的压缩格式, DXT4 与 DXT5 的区别在于 DXT4 使用带有预乘插补 Alpha 的压缩格式, DXT5 使用插补Alpha 的压缩格式, 无预乘.
关于压缩信息见MSDN: Textures with Alpha(http://msdn2.microsoft.com/en-us/library/bb206238.aspx)

//----------------------------------------------------------------------------------------------------------------------------------------
//转dds格式的方式
//----------------------------------------------------------------------------------------------------------------------------------------
1. Photoshop
Adobe Photoshop Normal Map and DDS Authoring Plug-ins Installer(.exe) (photoshop的DDS插件)
http://www.nvidia.com/object/photoshop_dds_plugins.html

2.Windows Texture Viewer (DDS图片观看工具)
http://developer.nvidia.com/object/windows_texture_viewer.html

3.NVIDIA Texture Tools (DDS专用工具)
http://developer.nvidia.com/object/texture_tools.html

4.DDS Thumbnail Viewer(有了这个在WINDOWS的缩略图察看下面可以直接察看dds文件了)
http://developer.nvidia.com/object/dds_thumbnail_viewer.html

5.安装Microsoft DirectX SDK 后,有一个DirectX Texture Tool可以使用,或者在图片右键的时候会有一个转换图片格式的选项。

6.同样在安装Microsoft DirectX SDK 后,在sdk\Utilities\bin\x86下有一个 texconv.exe的工具,在最新的里面还有一个texconv10.exe,可以批量转
用法如下:

//---------------------------------------------------------------------------------------------------------------------------------------
//部分内容来源于网络,这里仅供本人学习,谢谢作者
//---------------------------------------------------------------------------------------------------------------------------------------

//像素格式:http://baike.baidu.com/view/1220149.htm?fr=ala0
//图片格式:http://baike.baidu.com/view/19666.htm
原创粉丝点击