Some patches to fix or enhance Image and Mesh File Formats in Irrlicht 1.0
For a proper introduction of what this page is all about please refer
to the Main patch page. On this page you'll find
several patches to fix bugs of file loaders of Irrlicht, or even add completely
new ones. Please note that these patches might easily show up errors during patching of
CSceneManager.cpp or CNullDriver.cpp. This is because after applying the first new loader the
initialization section in the scene manager or null driver has changed. Thus, any further patch
won't find the code it is expecting. You can manually add the header file and the init method,
just check the patch files for the correct parameters.
What is a patch ?
Ogre
- Added in 1.1
Add Ogre mesh and material file format 1.30. This is currently supporting only a few features of the Ogre mesh file format (esp. no animation) and might easily run into infinite loops (though partialy also due to errors in the mesh files...).
Included some bugfixes and additions from Niko.
I have added better material support (only structures though, so probably not visible with actual meshes), but enhancements will become much simpler.
DirectX (.x)
- Included in 1.1:dotXBBox.patch. Fix parsing of strings with spaces. Partial fix for bounding box of animated mesh.
- Included in 1.1: binaryX.patch. Add support for binary X format by Tiberius. Completely overhauled to better integrate with the normal loader.
- Included in 1.1: AnimXNormals.patch. CXAnimationPlayer normals fix by yin nadie.
3DS
- 3ds.patch Fix displacement of meshes in Irrlicht 1.1 Irrlicht forum thread
- Included in 1.1: 3ds.patch. Fix some bugs and limitations of the 3ds loader. Now transparency, vertex colors and other things are supported. Added support for an undocumented but quite often found version chunk which prevented to load most 3ds files found on the web. Some more rather severe problems fixed, and in the same time new features added. If any material had more than one texture defined, only the last one was taken, although this is usually for bump mapping etc. Now all extra textures are stored and some of them can already be used (I don't know if I use the correct Irrlicht materials, though). Ambient color is now stored as ambient in Irrlicht, not as emissive as before. Seems to be better. Added OpaqueMap support and keyframe reading. No animations yet, and no real benefits from this structure (due to missing understanding of the data found).
My3D
Obj
- Included in 1.1: objmtl.patch. Add MTL file support for OBJ files. Original version by looneychewy. Added several new texture map features, fixed the color inversion, enabled transparency, fixed some file parsing glitches. Multiple materials per group and even materials without groups etc. now supported, also negative indices. Added a patch by mandrav to fix some path issues while loading material files and textures. Added a second one by mandrav fixing the coordinate system.
MD2
- md2.patchFix typo in MD2 animations. Load skin names and add texture if possible. Load OpenGL commands (not used yet).
MD3
- md3.patch Add MD3 file format, submitted by madinitaly. Irrlicht forum thread
New files: CAnimatedMeshMD3.cpp, CMD3MeshFileLoader.cpp
If you use the 32bit patch you must manually change u16 to u32 for the indices.
COB
LWO
- lwo.patch Add LWO file format, supports several versions of lwo, including lwob, lwlo and lwo2. Only working on x86 machines as it uses hardcoded bswap statements (LWO is big endian encoded so mac users just have to remove the bswap statements). New file: CLWOMeshFileLoader.cpp
DXF
- dxf.patch Add DXF file format, support for 3d elements only (3DFACE, VERTEX, POLYLINE). Fixed parsing problems with DOS line ends. Irrlicht forum thread New file: CDXFMeshFileLoader.cpp
ASE
- aseLoader.zip Add ASE file format, now without libase and plain zlib license. Added ASK format (just ignoring animation blocks for the moment). This initial version is provided as a zip file containing CASEMeshFileLoader.cpp and CASEMeshFileLoader.h. Please add them to your Irrlicht directory and project file/makefile, and change the SceneManager to add the mesh file loader, too. These files supersede the ase.patch. The next versions will be provided as patch files using the files contained in this zip file.
- ase.patch Add ASE file format, support for 3d faces only (no lights etc.). Basic material features including all colors, first texture and transparency included.
Needs libase (LGPL).
Irrlicht forum thread New file: CASEMeshFileLoader.cpp
Image Loader patches
- 8bitcolor.patch Add support for 8bit Bitmaps. From IrrSpintz.
- rdtarga.patch An enhancement to libjpeg which becomes necessary if libjpeg is used for Targa support
- newTGA.patch Adds a new possibility to load TGA files using libjpeg. Seems to have some problems since 0.10 so avoid! Needs rdtarga.patch
Image Loader patches with new files for Project/Makefile
Misc enhancements
VideoTexture.cpp A small code snippet that allows to play an avi movie on a texture. Full example code including a rotating quad for the video. Based on Emil Halim's video texture interface, but fully portable using the avifile library.
image.patch Add some details to Image class by festini. Now with fix from CuteAlien included.Irrlicht forum thread
compressedTexLinux.patch Fix missing OpenGL pointer for Linux. Irrlicht forum thread
compressedTexture.patch Add support for compressed textures by festini. Needs image.patch and LinuxDevice*.patch (to avoid patch failure). Irrlicht forum thread Not yet working
[Back to ParSys]
Christian Stehno (hybrid)
E-Mail
(last updated: September 6th, 2006)