个人认为,既然手机设备支持wp8支持dx11,那么dds的压缩纹理必然是被支持的。不过依然不保证完全如此。希望看此文章的同仁留意。
微软wp系统在内存管理上有一个不同于ios和android的地方,那就是给程序预先分配的内存是有限的。正常情况是150mb,通过设置一些标志可以允许180mb或者300mb。程序分配的内存超过限额就会分配失败抛出异常,即便这个时候手机剩余内存还剩七八百兆。所以买低端手机的劣势就是很多游戏不是没有,而是你看不到,因为那些游戏因为安全起见,申请了300mb的内存,那么只有512mb内存的手机可能就看不到这个应用了,即便它可以在这个手机上跑起来。
反过来,对游戏开发而言,内存控制就变得更加重要了。 不过这里还是要吐槽一下,wp8使用native c++进行开发的话,没有任何途径可以获取内存使用情况进行分析。一没有工具,二没有系统api。 只能靠程序员给力些了。
比如我的卡牌游戏,一开始分配内存可能达到200mb,那么就经常性的崩溃。后面使用dds的压缩纹理后,就没有出现崩溃情况了。理论上说dds跟pvrtc4一样都是4个字节表示一个像素,所以使用dds的游戏在wp8上面的运行内存情况应该跟使用pvrtc4在ios上面运行一样。
首先说转换工具,我找了半天终于找到个靠谱的工具。Nvida Texture Tools,这个有工具有代码。不过默认情况下程序不识别png jpg图片,后面我重新用源代码编译了一份。
之所以要使用这个工具而不是市面上大多数图片转换工具是因为dds图片的压缩纹理格式分很多种,常见的有dxt1 dxt3 dxt5,常用的是dxt3,dxt1色彩不足,而dxt5不是所有设备都支持,比如我的lumia920,使用dx api检测时就不支持dxt5。
较新的cocos2d-x代码里面已经包含了s3tc压缩纹理的支持。dds的压缩纹理格式就是s3tc。读取纹理可以直接使用,而不需要特别写初始化代码了(比如 CreateDDSTextureFromFile就没有必要了)
分享到:
相关推荐
通过NV_DDS类库实现OpenGL载入DDS压缩纹理
使用遗传算法压缩、解压缩和转换纹理文件。支持 KTX 和 DDS 容器,以及 DXT 系列、ETC1/2、BC6/BC7 等纹理格式。包含图形用户界面(专为 Linux 设计)。优点是通用性和可扩展性,缺点是与不太通用的纹理压缩器相比...
给大家提供几张dds格式的纹理文件,做OpenGL纹理压缩的程序员们可能会用到它。
基于MIT许可的读取TGA DDS图片文件的程序包,,可以用于三维软件的纹理贴图文件的读取
使用etcpack.exe将图片批量转成etc2纹理
支持的图像格式为PNG,而对于纹理,则支持使用ETC1,ETC2,DXT1 / 3/5或BPTC(BC7)纹理压缩的KTX,PKM和DDS。 还支持几种未压缩的纹理格式。 该程序需要安装libfgen,它也可以在SourceForge上使用。
.dds格式纹理文件查看器,可以查看、定位、缩放和调整通道,通过一个软件即可轻松查看.dds格式的纹理文件,对三维渲染,游戏制作的效率提升很有意义。
dds是DirectDraw Surface的缩写,实际上,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。DXTC减少了纹理内存消耗的50%甚至更多,有3种DXTC的格式可供使用,它们分别是DXT1,DXT3和DXT5。 在...
使用了DDS标准来进行通信,在VS08中使用QT编写了界面程序,支持图形显示,是学习DDS的典型例子
DDS问题解答 里面有DDS常见的问题的解答,帮助大家学习和使用DDS。
使用xilinx的DDS生成多项数据,主要用于高速DAC的数据生成等。
有关WebGL压缩纹理的示例,请参见 。 拉请求欢迎。例子 var parse = require ( 'parse-dds' )var buffer = new Uint8Array ( ... DDS file . . . )var dds = parse ( buffer )console . log ( dds . format ) // '...
DS是一种图片格式,是DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。由NVIDIA公司开发。大部分3D游戏引擎都可以使用DDS格式的图片用作贴图,也可以制作法线贴图
本dll可以支持.net2.0框架下对于数据分发服务DDS的运行支持,另外其中还带有一个例程,可供学习使用
介绍如何在AP AUTOSAR中使用DDS.
RTI DDS 平台使用说明文档
较为详细地介绍了Windows下使用VC编译OpenDDS的过程。
DDS资料,详细的DDS工作原理,使用方法
详细的介绍了dds的使用方法,使用了vhdl等硬件描述语言,使得dds的使用更加的详尽
RTI DDS 入门说明文档