Horde3D

Next-Generation Graphics Engine
It is currently 28.04.2024, 10:18

All times are UTC + 1 hour




Post new topic Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 14.01.2010, 13:32 
Offline

Joined: 09.09.2009, 18:58
Posts: 107
This is something that has crossed my mind a few times while I was developing my engine around H3D, and I have come across a snag. I want level geometry to be modeled in a modeling tool like 3DS Max, and distributed in Hordes native format. I understand the algorithms behind generating these datastructures. But I know that in order to actually render such geometry at a playable level and implement things like AI pathfinding (a la A*, I will probably use Bullets bounding volumes for this one to be generated alongside Hordes graph), some sort of spatial scenegraph has to be generated using the given mesh data. I have looked at the terrain extension, but that works off of height maps and works wonders for large landscapes, but not as well for what I have planned. I am going to continue studying the API for some sort of solution, but what is youralls input on this type of problem?

As for when the tree would be generated, I was thinking either at load time or generate the structure with an external tool and store the results in XML.

Who knows, I may decide to release what I make as an extension.

By the way, if I am overthinking this and Horde already handles this for me, tell me otherwise this is going to drive me nuts.


Top
 Profile  
Reply with quote  
PostPosted: 14.01.2010, 14:03 
Offline
Tool Developer

Joined: 13.11.2007, 11:07
Posts: 1150
Location: Germany
Did you see the posts of zoombapub?
http://horde3d.org/forums/viewtopic.php?f=4&t=930

Maybe that helps you concerning your pathfinding problems.


Top
 Profile  
Reply with quote  
PostPosted: 14.01.2010, 14:53 
Offline

Joined: 09.09.2009, 18:58
Posts: 107
That is quite possibly one of the sexiest libraries I have ever seen. (next to Horde3D of course) However, that does not solve my problem as far as level rendering in Horde is concerned. What I don't understand is why isn't there a set of functions that let you obtain data about a specific node, such as the geometry, vertices, indices, texture data, etc... Anyway, thanks for linking me to that. No doubt I will find that to be of use, but problems still remain.


Top
 Profile  
Reply with quote  
PostPosted: 14.01.2010, 15:45 
Offline
Tool Developer

Joined: 13.11.2007, 11:07
Posts: 1150
Location: Germany
Orm wrote:
What I don't understand is why isn't there a set of functions that let you obtain data about a specific node, such as the geometry, vertices, indices, texture data, etc...

h3dMapResStream gives you access to the triangle index data, vertex position data, tangent frame data and static attribute data.
Index, Vertex count etc, can be retrieved using getResParamI. Do you missing something specific?


Top
 Profile  
Reply with quote  
PostPosted: 14.01.2010, 15:56 
Offline

Joined: 09.09.2009, 18:58
Posts: 107
No, not really. That pretty much covers it. :shock: All I need to do is figure out a way to apply the algorithm and insert the broken up level data into separate H3D nodes. That's where the Bullet bounding volumes might come in handy... or I could roll my own. I don't know. Now I need to figure out how to use the streams.


Top
 Profile  
Reply with quote  
PostPosted: 14.01.2010, 23:29 
Offline

Joined: 08.11.2006, 03:10
Posts: 384
Location: Australia
At work (not using Horde3D) we use 3DS max to render different rooms as different models, then in our level editor we place down each room separately.

On my "race of death" (Horde3D demo), I used horde's group nodes to group together all the models that made up each "room" (section of the race track). I then use a PVS system to enable/disable these group nodes depending on where the camera is (only enable visible sections of track).


Top
 Profile  
Reply with quote  
PostPosted: 07.02.2010, 11:09 
Offline

Joined: 16.05.2009, 12:43
Posts: 207
In general, you dont want to tie your navigation representation into your visual scene. In fact, you might well have a visual scene, a physics scene and an AI scene for the same level. The Physics scene is a physics engine representation of the visual geometry, simplified a lot to allow faster collision checks. Often you then process the physics scene to create the AI scene (the logic being that the physics scene is what you can actually walk on, so using that for navigation is correct).

Right now in my engine I'm using recast to take the visual scene and voxelize it and turn it into the AI scene directly, which isnt efficient but given my test scenes its ok.

I'd recommend working out the physics scene first. Make a world that you can "walk" around with your player character properly and then once you have that, work on making the AI work on the physics data.

The main thing is to forget the visual scene, because it really isnt used beyond rendering. Of course you can do some coarse culling to get rid of some of the drawing if you hit framerate issues, but I'd concentrate on the other scenes first.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 7 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group