GLoadX is a 3DS model viewer that was developed over several months as the core
of my CV (my demo). It is comprised of two identical windows that
simultaneously render in OpenGL and DirectX. It should give artists a good idea
of what their models will look like when rendered in-game without needing to
export to and load from an arbitrary format.
You can download GLoadX at http://www.skullbonez.com/gloadx/downloads.htm
Handles many of the intricacies in the 3DS model format resulting in a
high success rate loading models.
Supports keyframe animation.
Supports smoothing groups.
Simultaneously displays models in OpenGL and DirectX.
Simple uncluttered resizable user interface.
Supports multisampling (for cards that support it).
Support single pass texturing with BMP, JPEG and TGA images.
Menu options to change light mode, primitive, show normal vectors,
display model and loading information.
Performs many optimisations during load time (removing duplicate
vertices, animation nodes and materials, removing superfluous keys
from the keyframe hierarchy, splitting complex facelists etc).
Can render with or with out keyframes to support 3DS models without
animation that contain key frames but do not use them to locate
model elements (these models will look wrong in 3D Studio Max but
correct in Bryce).
I have put a lot of work into trying get GLoadX models to match 3D Studio Max.
I've tested 354 models and about 95% of these are correct. Of the 5% of models
that don't match, most of the problems are minor^ eg smoothing group errors or
material differences. I will be investigating these problems further over the
next few weeks.
Beyond that, I am planning on adding support for bump-mapped models (assuming I
can find any) and adding stencil shadow volumes.
I am keen to hear any feedback, particularly from those that have battled with
the insides of the 3ds format before. As this is also my 'demo' I would also
welcome any comments regarding its appropriateness for the task (keep in mind I
am aiming for an entry level programming position).