Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DLL Talk / ODE plug-in

Author
Message
IanM
Retired Moderator
22
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Jan 2006 13:56
I've posted this plug-in before in individual threads when requested, but it's difficult to find - This is just to make the hunt a little easier.

For free Plug-ins and source code http://www.matrix1.demon.co.uk

Attachments

Login to view attachments
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 30th Jan 2006 18:36
Cool, isn't this in U5.9? Any command lists or tuts to go with this at all, I mean the only code I got is in the U5.9 example,

cheers,
Sepp


"I want to put a bullet through my head everytime I think of you!!!"- Slayer
Milkman
18
Years of Service
User Offline
Joined: 30th Nov 2005
Location: United States
Posted: 30th Jan 2006 21:12 Edited at: 30th Jan 2006 21:40
Thank you IanM
I'm continuing development on my project with ode now.

I do have one question though: I was reading the ode documentation on ode.org, and it says that the ode physics engine has ray casting and joints support. When the ode wrapper for dbpro was written, were these features excluded?

For ray casting right now I guess I will have to stick with sparky's dll, but it would be great if I could have integerated ray casting...

EDIT:
When trying to compile BatVink's ode tutorial code with this, I get a "MSVCP71.dll not found" error, and a "Failed to load DLL (2: DBProODEDebug.dll)" error
any advice?

EDIT2:
I tracked down the msvcp71 dll, and apperently it's the Microsoft Visual C++ runtime library. I put it in my windows system directory and in the dbro compiler directory, and now ODE works like a charm! Thank's IanM!

formerly xMik
BatVink
Moderator
21
Years of Service
User Offline
Joined: 4th Apr 2003
Location: Gods own County, UK
Posted: 30th Jan 2006 22:56
The ODE plugin is what was required by FPSC Physics. So it doesn't have joints or raycasting. They won't be implemented officially either. Your only hope is that someone else adds them to the Open Source wrapper.


Seppuku, there's a tutorial here:

http://members.thegamecreators.com/tutorialcity/html/newsletter.html

Milkman
18
Years of Service
User Offline
Joined: 30th Nov 2005
Location: United States
Posted: 31st Jan 2006 20:40 Edited at: 1st Feb 2006 00:39
Even with IanM's update, I have not had a lot of luck with mesh-to-mesh collision. It seems to be very dependent on erp/cfm settings. Has anyone else made any progress with it?

IanM, since you seem to understand the ODE code, could you give me some insight as to whether mesh-to-mesh will actually work, or is it bugged? FPSC doesn't even use mesh-to-mesh, so I doubt it actually works.


EDIT:
I was searching through the ode dll source, and came across this comment regarding mesh to mesh:
Quote: "// ALAS ODE CANNOT CHECK COLLISION OF CYLINDER AGAINST TRI-MESH (NOR TRIMESH vs TRIMESH) "


Yet, in the ODE documentation, it is clearly stated that ode can do mesh to mesh!
Quote: "Trimesh/Trimesh collisions, perform quite well, but there are three minor caveats"


However this is stated in the ode documentation:
Quote: "In order to efficiently resolve collisions, dCollideTTL needs the positions of the colliding trimeshes in the previous timestep. This is used to calculate an estimated velocity of each colliding triangle, which is used to find the direction of impact, contact normals, etc. This requires the user to update these variables at every timestep. This update is performed outside of ODE, so it is not included in ODE itself. The code to do this looks something like this:
const double *DoubleArrayPtr =
Bodies[BodyIndex].TransformationMatrix->GetArray();
dGeomTriMeshDataSet( TriMeshData,
TRIMESH_LAST_TRANSFORMATION,
(void *) DoubleArrayPtr );"


I searched the ode dll code for "dGeomTriMeshDataSet" and the search came up dry. This must mean that Lee (or whoever wrote the ode plugin) must not have included the code for updating trimeshes, therefore meaning no dynamic trimeshes!

My only hope is that someone knowledgable would update ode to allow mesh to mesh collision, or tell me I must not be feeling well, and it already works. Otherwise, mesh to mesh is broken

formerly xMik
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 31st Jan 2006 23:16
@Batvink, thanks dude


"I want to put a bullet through my head everytime I think of you!!!"- Slayer
IanM
Retired Moderator
22
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 1st Feb 2006 00:24
@xMilk,
You are right - mesh to mesh doesn't work, but in a lot of cases you don't really need it.

I was at one point planning on trying to add limbs to the system, but as the new Physics plugin that was shown at the convention was due to come out by Christmas, I decided not to bother...

BTW, just because I can fix a few bugs in the plugin code, doesn't mean that I fully understand ODE - I understand whats already used in the plugin, but the rest is a puzzle for me to work out in the future.

@Seppuku,
The 'official' release of the plugin contained a few bugs, and had one or two obvious commands missing. This plugin tries to fix that a little, and replace some of the hard-coded values with parameters.

Here's the full list of commands in the above plugin.


For free Plug-ins and source code http://www.matrix1.demon.co.uk
Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 1st Feb 2006 19:29
k kewl, I've download this one, cheers dude


"I want to put a bullet through my head everytime I think of you!!!"- Slayer
Gnomes Games
18
Years of Service
User Offline
Joined: 25th Dec 2005
Location: FRANCE
Posted: 7th Mar 2006 18:38
IanM can you tell me if the ode create static triangle mesh command work well with this update,because when i use it with my version and a cshop level in .x the collision is very buggy ...
thank

MY PC: Pentium II 400 Mhz/8 Mb 3d graphic card(only support 3d with 640*480 16Bit)/160 Mb Ram/6 GB HD/Win98
IT'S HORRIBLE
But ... DBPRO 5.9 !!!
IanM
Retired Moderator
22
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 8th Mar 2006 14:27
The code for static meshes only accepts vertex-only meshes ...

Here's a suggestion: load your object as a mesh, make a memblock from it (converting to vertex only), convert back to mesh, then make an object from that.

You'll have try this yourself to see if it works for you. If the physics plug-in takes much longer to release, then I'll start working with ODE again.

For free Plug-ins and source code http://www.matrix1.demon.co.uk
Gnomes Games
18
Years of Service
User Offline
Joined: 25th Dec 2005
Location: FRANCE
Posted: 8th Mar 2006 15:27
thank IanM i will try it !

MY PC: Pentium II 400 Mhz/8 Mb 3d graphic card(only support 3d with 640*480 16Bit)/160 Mb Ram/6 GB HD/Win98
IT'S HORRIBLE
But ... DBPRO 5.9 !!!
Gnomes Games
18
Years of Service
User Offline
Joined: 25th Dec 2005
Location: FRANCE
Posted: 11th Mar 2006 16:39
This run
Ianm your are fantastic !!!

MY PC: Pentium II 400 Mhz/8 Mb 3d graphic card(only support 3d with 640*480 16Bit)/160 Mb Ram/6 GB HD/Win98
IT'S HORRIBLE
But ... DBPRO 5.9 !!!

Login to post a reply

Server time is: 2024-11-21 23:43:31
Your offset time is: 2024-11-21 23:43:31