Used Formats for the specific platforms

File Type Image Shader Sound Music Video Fonts
Input Formats
Windows DirectX rgba8, dxt hlsl wave ogg, mp3 spritefont
Windows OpenGL rgba8, dxt glsl wave ogg, mp3 spritefont
Windows Modern UI rgba8, dxt hlsl wave mp3 spritefont
Android etc, (rgba8), rgba4444, rgba5551 glsl es wave mp3 mp4 spritefont
PsVita png, rgba8, rgb565, rgba4444, rgba5551 cg like wave mp3 mp4 spritefont
MacOSX rgba8 glsl wave ogg spritefont
Linux rgba8 glsl wave ogg spritefont
iOS Pvr, (rgba8), rgba4444, rgba5551 glsl es wave mp3, acc mp4 spritefont

Wave is a container format for audio data, mostly used for sounds, since music files would be really large using wave.
The only container format allowed is RIFF.
Most of our platforms like Android, iOS only support mono/stereo 8/16 bit pcm wave format.
XAudio2 also supports ADPCM wave format.
All other formats must be converted to standard pcm in the content pipeline. For conversion code see the AC.AL project.

The Ogg format is used in the OpenAL audio modules for music support, using the csvorbis and csogg projects from the mono community.
On iOS it would be possible to use the csvorbis project instead of the native music player, but the code has big performance issues, so it's better to use the native music player with mp3 for now.

The mp3 format is sometimes natively supported, like on iOS or Android. On Windows for example we have to load it like the ogg format with for example Mp3Sharp (NOTE Mp3Sharp is not usable because of it's GPL license).

The pvr format is a compressed texture format used on PowerVR graphic chips, which are used in all iOS devices. Some android devices also have PowerVR chips, but on Android it's easier to use the general formats (see section below).
For generating Pvr textures we need to use the PvrTexTool.

Android Textures
Android is a difficult platform for texture formats. Since nearly every device has a different graphics chip, there are also different supported texture formats per device.
There are some formats that are shared across all devices: Etc for opaque textures, Rgba4444 for alpha textures and Rgb5551 for alpha-test textures. Rgba8 may also be used, but is not recommended, since it uses a lot of graphics memory.
Etc, Rgba4444 and Rgba5551 can also be converted by using the PvrTexTool.

For video conversion we can use ffmpeg which also runs nicely on linux and can convert to mp4 which is the target format for most platforms.

Last edited Aug 27, 2012 at 9:14 AM by Glatzemann, version 16


No comments yet.