DDS文件格式
来源:互联网 发布:简单的java程序代码 编辑:程序博客网 时间:2024/05/01 02:22
DX中开发的游戏DDS是首选,就类似ios中的pvr格式一样强大,因为那是显卡支持的。
一、DX下DDS文件的优点:
1.cpu上运算速度快,不需要解析为RGB数据就可以直接由DX函数加载提交给显卡渲染贴图。
2.内存占用少效率高,因为不需要创建临时的内存来存放解析的数据,所以避免了内存和申请释放和内存飙升。
3.压缩效率高,通过更少为位数有损压缩,但是画质也非常好,压缩效率比同等画质的jpg还高。
4.可以从文件格式内部支持mipMap/CubeMap/VolumeMap纹理特性,比在内存中才构造这些纹理效率高。
二、DDS文件格式
有3种DXTC的格式可供使用,分别是DXT1,DXT3和DXT5。
DXT1 压缩比例:1:8 压缩比最高,它只有1Bit Alpha,Alpha通道信息几乎完全丧失。一般将不带Alpha通道的图片压缩成这种格式。如Worldwind 用的卫星图片。
DXT3 压缩比例:1:4 使用了4Bit Alpha,可以有16个Alpha值,可很好地用于alpha通道锐利、对比强烈的半透和镂空材质。
DXT5 压缩比例:1:4 使用了线形插值的4Bit Alpha,特别适合Alpha通道柔和的材质,比如高光掩码材质。
大部分3D游戏引擎都可以使用DDS格式的图片用作贴图,也可以制作法线贴图。dds压缩比率见:http://www.poopinmymouth.com/tutorial/dds_types.html
DDS文件格式文档:
https://msdn.microsoft.com/en-us/library/bb172993.aspx
DDS文件格式:
通过文档可以了解到:
1.dds可以是DDPF_FOURCC压缩的或DDPF_RGB非压缩的,一般使用压缩的dds文件格式,DWORD dwFourCC用DXT1,DXT3,DXT5等。
2.DDS头部是dwMagic 和 DDSURFACEDESC2,前面的dwMagic和dwSize用来标识是一个dds文件。
3.DDSURFACEDESC2结构体定义了贴图宽高,像素格式(非压缩)或者压缩形式,以及它内部的DDPIXELFORMAT ddpfPixelFormat,DDCAPS2 ddsCaps都定义了它的dwFlags贴图的特性,后面的如果存在特性则有值,否则就是0。
4.数据部分,可以有一个或多个Surface Data,因为DDS是支持mipMap/Cubemap/volume Texture的,所以内部数据还是比较复杂的,如果是非压缩的DDS直接根据DDS图片格式特性访问就可以读取到数据,如果说是压缩的DDS那么还需要DXTi类型的解码,然后用DDS图片指定的格式特性解析才能得到像素数据。除非是非DX的环境下使用DDS否则是没有这个必要的。
三、DDS插件和DirectX Texture Tool 使用
ps查看和导出dds插件:
https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop
3dsmax现在的版本都应该支持dds贴图作为才材质的了,不过通过http://www.nvidia.cn/object/3dsmax_dds_plugins.html下载的原码可以窥探一下nvidia写的导入dds的插件代码。
dds文件格式编辑DirectX Texture Tool 可以编辑dds文件使用的压缩格式DXT1,DXT3,DXT5等,可以编辑文件的mipMap/CubeMap/VolumeMap纹理特性。可以查看alpha通道信息等,具体使用见https://msdn.microsoft.com/en-us/library/bb219744.aspx。
0 0
- DDS 文件格式
- DDS文件格式
- DDS文件格式解析
- DDS纹理文件格式
- 关于DDS文件格式的说明
- dds
- DDS
- dds
- DDS
- DDS
- DDS 文件
- RTI DDS
- 关于DDS
- DDS程序
- DDS格式
- dds纹理
- DDS作业
- DDS作业
- 那个女孩
- POJ 2762 — Going from u to v or from v to u? 强连通+拓扑
- 每天一个学习一个新的php函数(2) fgetcsv()/fgets()
- 2015年05月02日 问题
- leetcode 日经贴,Cpp code -Populating Next Right Pointers in Each Node II
- DDS文件格式
- 第57题 Sum Root to Leaf Numbers
- IO学习笔记
- shader 入门 《顶点着色器 的输出 和 片段着色器的 输入》
- DDS支持的Mipmap Texture/Cubemap Texture/Volume Texture 纹理理解
- Choose the best route
- POJ 题目2449 Remmarguts' Date(K短路,A*+spfa)
- kbuild makefile
- Strange Way to Express Integers(中国剩余定理+不互质)