Introducing libDTShape
by James Urquhart · 12/27/2013 (3:49 pm) · 3 comments
One of the great constants of Torque is its "DTS" format. For over a decade its been there, happily allowing game developers to load and animate 3d models in Torque. While in the beginning this content pipeline was lacking in support, over the years people have written exporters, and in Torque3D we even got immensely useful Collada support. Its grown into quite a capable content pipeline!
When Torque3D was open sourced last year I was quite excited. Quite often in the past I have thought "wouldn't it be useful to have <feature x from torque> in my project?". The trouble is due to licensing it was not possible to extract any of this stuff from Torque. With the open sourcing however, it was now possible to do so.
One day I was looking around for a solution to render 3d animated models in a project. I didn't want to use a fully fledged 3d engine as it would introduce too much baggage. I looked for a while, but I either found solutions where you need to include a whole abstracted rendering library (e.g. ogre3d), or solutions with pretty viral licensing (e.g. cal3d). There wasn't really anything that fitted the bill, until I realized something...
Torque3D had a pretty capable 3d content pipeline, and it had pretty liberal licensing. If it could just be extracted, it would fit the requirements I had in mind perfectly!
So I set to work on this little side-project. After a few weeks of ripping out 90% Torque3D I finally had something which worked as an embeddable library!
At that point to be honest I realized I didn't really want to continue with the original project I had envisioned, so I sat on the code for a year. Last week however I decided I might as well try and tidy it up and release it publicly. And thus libDTShape was born.

So you may be wondering... "what does libDTShape include?". Simply put, it contains the entire DTS code from Torque3D, along with the Collada import code (which can be omitted if not required). It also includes a stripped down platform layer omitting most of the non-useful code from Torque3D (e.g. threading, vfs layer, events).
For rendering, it uses an abstracted interface which can be implemented by your application, which is largely renderer-agnostic.
For those wondering how on earth to use the library, an example SDL 2.0 application is included which uses a basic OpenGL renderer to load, render, and animate the soldier model.
Admittedly as it currently stands libDTShape is a bit of an experiment, but still I hope it can be useful to others.
libDTShape can be found here: github.com/jamesu/libdtshape
When Torque3D was open sourced last year I was quite excited. Quite often in the past I have thought "wouldn't it be useful to have <feature x from torque> in my project?". The trouble is due to licensing it was not possible to extract any of this stuff from Torque. With the open sourcing however, it was now possible to do so.
One day I was looking around for a solution to render 3d animated models in a project. I didn't want to use a fully fledged 3d engine as it would introduce too much baggage. I looked for a while, but I either found solutions where you need to include a whole abstracted rendering library (e.g. ogre3d), or solutions with pretty viral licensing (e.g. cal3d). There wasn't really anything that fitted the bill, until I realized something...
Torque3D had a pretty capable 3d content pipeline, and it had pretty liberal licensing. If it could just be extracted, it would fit the requirements I had in mind perfectly!
So I set to work on this little side-project. After a few weeks of ripping out 90% Torque3D I finally had something which worked as an embeddable library!
At that point to be honest I realized I didn't really want to continue with the original project I had envisioned, so I sat on the code for a year. Last week however I decided I might as well try and tidy it up and release it publicly. And thus libDTShape was born.

So you may be wondering... "what does libDTShape include?". Simply put, it contains the entire DTS code from Torque3D, along with the Collada import code (which can be omitted if not required). It also includes a stripped down platform layer omitting most of the non-useful code from Torque3D (e.g. threading, vfs layer, events).
For rendering, it uses an abstracted interface which can be implemented by your application, which is largely renderer-agnostic.
For those wondering how on earth to use the library, an example SDL 2.0 application is included which uses a basic OpenGL renderer to load, render, and animate the soldier model.
Admittedly as it currently stands libDTShape is a bit of an experiment, but still I hope it can be useful to others.
libDTShape can be found here: github.com/jamesu/libdtshape
About the author
#3
I always thought of separating game engine code and create a core framework.
12/30/2013 (4:16 am)
A very interesting work.I always thought of separating game engine code and create a core framework.

Associate Steve Acaster
[YorkshireRifles.com]
Windows AND Mac OSX ... but ... no love for Amstrad 464? :P