DDS文件格式

DDS文件在DX中被广泛使用,因其CPU运算速度快、内存占用少、压缩效率高而备受青睐。DDS支持DXT1、DXT3、DXT5三种压缩格式,常用于3D游戏引擎的贴图。文章介绍了DDS文件的格式结构、特性以及相关工具的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件格式文档:

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插件:
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值