Introducing Cheetah3DParser (updated)

I've been working on writing Java code to read and decode the binary format of Cheetah3D's .jas files with the goal of eventually writing an importer for JavaFx. I'm still working on the importer, but I'm making my code that can decode .jas files available on Github so that others might, hopefully, derive some benefit from it, too. Please see the README file on the Github page, and the notes in the source code for more details but, in brief, Cheetah3DParser can read, decode and display the following information:

- Materials list with texture files
- Vertex information (x,y,x coords)
- Polygon face windings (a list of indexes into the vertex data)
- UVs texture coords
- Weighting values for animated polygon meshes
- Joint coordinates and bindings
- Joint Hierarchies (joint tree)
- Keyframe values (for joints and objects)

I designed Cheetah3DParser to primarily help me process files containing animated, 3D characters based on polygon meshes and using a joint hierarchy to animated and warp the meshes. So, this means it only pays attention to a subset of the data contained in .jas files. However, Cheetah3DParser's "raw" mode can be used to dump an indented, hierarchical listing of the pList format that Cheetah3D uses to save its data. And, for certain sections of data, raw mode also attempts to decode, display and annotate the text to make it easier to understand. I actually wrote the code for raw mode first and then used it to slowly work out how the various kinds of data are encoded and stored.

Update: 3/24/2020 - Added the ability for Cheetah3DParser to export .obj and .mtl files. Cheetah3D already does this, but only exports diffuse texture maps in the .mtl file. Cheetah3DParser will also export the specular and normals maps, if defined. Note: export to .obj format is still a work in progress, so it may not work for all Cheetah3D files.

Wayne
 
Last edited:
Back
Top