Object - Oriented D3D SkinMesh example coming soon !!

Thanks Ultrano for your support (oop codebase, online hosting of project workspace, and general all - around nice guy)
Thanks NaN, Scronty, Caleb and everyone whose code I draw apon.

(Our CApp class was heavily influenced by NaN's CWindow class demo)
Posted on 2003-11-12 03:24:59 by Homer
Sounds interesting...
Posted on 2003-11-13 00:29:19 by NaN
Daily updates are available at this location
Posted on 2003-11-13 07:51:12 by Homer
I dunno what is the deal, but on my Win98SE box the API "LoadLibraryA" is not finding "abc.123". The stack is being set up correctly before the call, but the return is EAX = 0 (and GetLastError is returning ERROR_DLL_NOT_FOUND (00000485)).

I suspect its how you compiled and linked the program, since the DS:[<&KERNEL32.LoadLibrary> = 00000000
Posted on 2003-11-13 23:32:10 by NaN
Doesn't work under Wn98. :(
Crashes immediatly if abc.123 is NOT present.
Crashes a while later after creating a window if abc.123 is present.

Posted on 2003-11-14 19:59:46 by QvasiModo
I compiled an exe version two days ago, http://homer.ultrano.com/CApp0011.zip
the _CApp.exe that is. It prompts you for video mode, and then starts Homer's code.
Posted on 2003-11-15 03:57:18 by Ultrano
I think i will wait until the final release is made (ready for distribution that is... the lastest version is asking for "MSVCR70.DLL").

Posted on 2003-11-16 00:01:23 by NaN
I apologise to NaN - my batchfile used to build the DLL version renames the DLL to abc.123, and my Loader simply loads the dll renamed, and calls "main".
I've mentioned all this over in the gamecoding forum, but I'm not sure I included the build file in the zip.
Posted on 2003-11-16 02:16:55 by Homer
No appologies needed, from you source it looks like your up to some good stuff... i would rather see you put your efforts in completing it than packaging and testing prerelease versions, just for our curriousities..

Posted on 2003-11-16 09:45:08 by NaN
Just a little progress report :)
Changes implemented by Ultrano:
The current source now builds for exe or dll , selectable using a soft switch at compiletime. You can build it as an exe by default.
Basic VideoMode Enumeration and Selection code was implemented.
CLASS.inc oop support module was modified to better support class inheritance, but we lost the ability to use params in the constructor method.
However, there's a workaround for this where OnCreate params are required.

Changes implemented by Homer:
Altered the Quit code in WndProc.
Implemented the CApp_LoadSKinMesh method.
CSkinMesh.inc, CObject.inc, and all the lower classes have had some work done on them - SkinMesh Loader is correctly loading the Frames Hierarchy but is failing when attempting to LoadSkinMeshFromXof (in CMeshNode_Create).
Posted on 2003-11-16 21:55:43 by Homer
NaN - about the msvcr70.dll - its the m$ visual c runtime 7.0, and its a dependancy required by DirectX8.1 around which this example is being built.
I'm pretty sure that even DX9 includes it.
I dont use anything from it specifically myself, but DX8 does internally.
Let me know if you have issues locating any of the dependant files.
Posted on 2003-11-16 22:05:25 by Homer
Hm... I wonder if this has anything to do with how my Unreal Tournament suddenly "quit" working after years of playing it... (Graphics Engine Set up fault every time, even after re-install). My graphics card diagnostics says "Direct X Version 9.x (Build 901)". However your suggesting perhaps i dont have it *all* there ~ for whatever reason.

I guess its time to download and reinstall direct X again... :rolleyes:
Posted on 2003-11-18 22:56:53 by NaN
Just thought I'd mention that the msvcr70.dll seems mostly to be there because it provides "malloc" which is used interally by dx for most all its memory requirements - also, that it just gains access to the parent application's default process heap and shoves its mallocs on there.. I've spent a fair bit of time walking around inside the kernel lately as a result of my debugging of dx apps lol.
Posted on 2003-11-19 23:33:51 by Homer
Progress Report -

Implemented my existing Debug macros (they write lines to a text logfile)
Debugged Frames Loader
Debugged AnimationSet Loader
Debugged AnimationNode Loader

We are loading the SkinMesh 100% w00t
have not tried to Render yet..
Posted on 2003-11-20 22:36:01 by Homer
Problems are apparent in the FindBones code.. after building the frame and animationnode hierarchies, we try to walk the frames to find frames containing meshes - and we fall over - I'm reworking the CObject_AttachChild method to ensure it's not an issue with our Node Links...
Posted on 2003-11-22 00:08:44 by Homer
How is the project going? Been a while since you last posted...

Posted on 2003-12-06 12:28:03 by NaN
I've shelved the OOPSkinMesh project momentarily while translating the OOParticles demo - which I just whacked up in the gamecoding forum :)
There was a major issue in the way I was walking the link hierarchy in the SkinMesh project and to be honest I needed to just walk away from it for a while and regroup. I have put much too much effort into it to just drop it however, and will probably resume as soon as the render issues are sorted out in this ParticleEngine. Both projects are pretty much necessary modules in modern 3d games, and so I have not wasted my time in getting an oop based particle engine working methinks :)
Posted on 2003-12-06 21:01:18 by Homer
I'll be sure to bug you in a month or two then ;)

Posted on 2003-12-06 22:16:29 by NaN
Today work resumed on the OOPSkinMesh project.
I decided for my own sanity to start from scratch.
The reason why is that the c++ source I had been translating is unproven, and does not support programmable vertex shaders.
I have therefore decided to base this project on the dx8.1 sdk sample instead, which supports 4 vertex shaders by default.
I'll begin posting code in the next few days, progressively building up the classes as I translate.
OOP support will be the latest version of ATC by Ultrano, which is version 31 at the time of this posting (afaik).
See you in the funny pages :)
Posted on 2004-01-29 23:31:34 by Homer
Well I did say I'd post when I felt I'd made positive progress.
Here is a zip containing two folders.
The contents describe the CSkinMesh, CFrame, CDrawElement and CMeshContainer classes, and provide all the code for loading animated skinned meshes from xfiles, supporting the four blending methods used in the m$ SDK example. I'll begin on the Render code immediately :D
Posted on 2004-02-10 00:38:11 by Homer