Skip to main content
GameDev.net gamedev.net
🔒 Locked

DirectMesh SDK

Started by circlesoft Sep 6, 2004 at 5:42 PM 101 replies 23.4k views
Original Post
circlesoft
circlesoft
I am pleased to announce the release of the DirectMesh SDK 1.0 Beta. DirectMesh is a keyframed file format that is designed with the end-user in mind. Even with the improvement of the animation interfaces in the D3DX library, animation with the DirectX API is still no easy task. The goal of DirectMesh is to simplify that task to a level where fully rendering and animating a mesh takes minutes (or even seconds) - not hours. Gone are the headaches associated with importing and rendering animated meshes! Some of the features of DirectMesh are as follows: - Keyframe animation - Import and render in only 4 easy steps - Holds texture information internally (texture filename and type) - Named animation sets - Animations with different playback rates (frames per second) - Complete documentation - Compatible with both the Fixed-Function pipeline and the Programmable pipeline - Interfaces for automated loading, rendering, and updating. The SDK includes all DirectMesh source code, complete documentation, samples, and tutorials. It is completely free to use for all private, public, and commercial projects. You can find the DMSDK here. Online Documentation is also available. Any feedback, bug reports, or feature requests are greatly appreciated!
pex22
pex22
sounds useful
but what file formats does it support? (3ds, md2, md3, x, dm (?)..there are more?)
pex.
Namethatnobodyelsetook
Namethatnobodyelsetook
The file format is easily determined by clicking the documentation link, choose table of contents, then file format specification.

Which comes to a minor issue... I hold a grudge against every app which does this in their file format spec... You have a magic number for format verification, but you don't say what it is. Although this app doesn't have a checksum, I feel compelled to point out that I also hate when something has a checksum, but doesn't bother to explain their summing method.
circlesoft
circlesoft
Sorry ntnet, I forgot about that. [wink]

The default version and magicNumber values are as follows:

version = 1
magicNumber = 2323

If you want to use your own magicNumber just change that number in the exporter (Exporter\DMExport.ms) and in CDMLoader's constructor (Core\MeshLoader.cpp).
circlesoft
circlesoft
Quote:
Original post by pex22
sounds useful
but what file formats does it support? (3ds, md2, md3, x, dm (?)..there are more?)


DirectMesh is the file format - hence the 'DirectMesh SDK'. There are basically two parts to the SDK:

- The file format
- The mesh classes

If you don't like the mesh classes, you can very easily write your own. You have sample code, as well as a detailed file specification.
vajuras
vajuras
I downloaded the sdk and ran the examples. GJ man, I'm sure this tool will get put to good use by folks.
Pipo DeClown
Pipo DeClown
Ooh La La!!

I hope Direct3D will die and Longhorn/Avalon will die and OpenGL will rule the world, and I retire.

Ooh La La!!

Nice SDK circlesoft, neato demo's.
circlesoft
circlesoft
Okay, I updated the docs with the new info about the magic number. Also, I had to move the DMSDK download itself to a different server (I used 3.2gb of my 5gb of alloted bandwidth in 24 hours :O ). Luckily, this free webhost allows for ultimited data transfer [smile].

Quote:
Ooh La La!!

I hope Direct3D will die and Longhorn/Avalon will die and OpenGL will rule the world, and I retire.

Ooh La La!!

Pipo...isn't it time for your pills again!?!?
Mille
Mille
Nice work circlesoft ... just one question:

For the animation there is a .cfg file - dose that come with the .dm export or do you just make it yourself ?

Plan on using your code, its great stuff !!


www.pokersniffer.org
Muhammad Haggag
Muhammad Haggag
Given how important and helpful I think this topic is, I've stuck it. If someone disagrees, please PM me.

circlesoft
circlesoft
Quote:
Original post by Mille
Nice work circlesoft ... just one question:

For the animation there is a .cfg file - dose that come with the .dm export or do you just make it yourself ?

Plan on using your code, its great stuff !!
You must make the individual configuration files for each mesh that you wish to export. Check out this page.
Washu
Washu
Looks nice, My only beef with it is this: Do you HAVE to have it create a new window for each link in the TOC?
In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.
Muhammad Haggag
Muhammad Haggag
Quote:
Original post by circlesoft
Any feedback, bug reports, or feature requests are greatly appreciated!

I want a stripped down version, pleaaaaaaaaaaase [smile]
I only need the source code - no samples or anything, and there's no way I'm going to download 12MBs anytime this week.

circlesoft
circlesoft
Quote:
Original post by Washu
Looks nice, My only beef with it is this: Do you HAVE to have it create a new window for each link in the TOC?


No - how would you prefer it?


Quote:
I want a stripped down version, pleaaaaaaaaaaase
I only need the source code - no samples or anything, and there's no way I'm going to download 12MBs anytime this week.
Check your email [smile]
circlesoft
circlesoft
Check out this documentation page. Those features are planned for some future releases. Skinning will probably be a DirectMesh 2.0 feature, since it will require a major file specification change, unfortunately.
Pipo DeClown
Pipo DeClown
I love the Legal Stuff-page. It's how I really want to see OSS licenses like; use as you want!

BTW: @GDOD-homepage, the link to this forum is misspelled. (Gamdev)
Mille
Mille

In MeshLoader.cpp, there is

"redefinition; multiple initialization" of i and c
(where you copy the index buffer)

.. you said we should report bugs :)
www.pokersniffer.org
DrunkenHyena
DrunkenHyena
G'day!

I've only had time to take a quick peek at it, but so far it looks pretty good.

But more importantly, it's people releasing stuff like this that makes the game development community what it is. Indie and hobby developers need all the tools they can get and this particular project targets a significant void in the DX SDK.

Way to go Dustin! I'll be checking it out in more detail as soon as I can find the time.
Stay Casual,KenDrunken Hyena</FON
Muhammad Haggag
Muhammad Haggag
Quote:
Original post by Mille

In MeshLoader.cpp, there is

"redefinition; multiple initialization" of i and c
(where you copy the index buffer)

.. you said we should report bugs :)

Seems like you're using VC++6, where the scope of for-loop counters is from their point of definition to the end of the scope in which the loop exists. However, ANSI C++ says their scope should be the loop body.

i.e.
for(int i = 0; i < 5; i++)
{
}
/* i should be no longer visible here. In VC++ 6 it is visible, and thus you get the redifinition error on the next loop */
for(int i = 0; i < 4; i++)
{
}

On top of everything else in the file (and perhaps your project files in general, if you want VC++ to be a tiny bit more standards compliant):
#define for if(0); else for

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.