Horde3D

Next-Generation Graphics Engine
It is currently 21.12.2024, 19:56

All times are UTC + 1 hour




Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: Occlusion culling
PostPosted: 12.05.2007, 13:19 
Offline

Joined: 05.03.2007, 19:38
Posts: 167
Location: Romania
consulting the documentation i`ve read that you can enable occlusion culling, but looking at the feature list, i see that this is a feature yet to be implemented.

so, is occlusion culling a feature available in 0.10.0?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 12.05.2007, 15:18 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Actually I planned to include occlusion culling in the first release because I had already implemented it in a previous engine. But I didn't find the time and since we didn't have any special use for that feature at that time I postponed it. Obviously I forgot to remove the parameter from the API.

Probably it will finally come with version 0.12, since my schedule for the next release (0.11) is already full with implementing the particle system and improving integration for physics and game engines.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 12.05.2007, 17:13 
Offline

Joined: 05.03.2007, 19:38
Posts: 167
Location: Romania
now i understand. still i consider that occlusion culling is a very important feature that even though it adds great performance boosts it is sometimes overlooked. i cant wait to see it integrated into horde :)

still from what i have read the next release seems to be feature packed! the particle system is great, but more important for me is physics integration. if you are going to integrate an existing lib, might i vote for Ageia`s PhysX? ;)

do you have an eta on the next release?

paul


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 04:24 
Offline

Joined: 03.05.2007, 11:26
Posts: 26
Regarding the usage of physics and game engines with Horde, how will that work? Will we have functions in the Horde api which make the physics/game engine usable directly from Horde, or will the engines be hooked to Horde somehow and require usage of functions from the physics/game engine side?

I ask because one of Horde's great features is its easy usage from non-C++ languages. If Horde uses a particular external engine dll and I need to access functions in that dll, then I'll need to wrap that dll for use with Euphoria. It would negate Horde's easy interfacing if I cant link to the physics/game engine.

I didn't realise that Nic was already working on this stuff, so I have been investigating physics engines. Both Newton and ODE appear to have regular C dll interfaces which make them usable from almost any language, in keeping with the Horde philosophy.

Do any of these physics engines do soft body/fluid simulation?

Mark


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 08:21 
Offline

Joined: 05.03.2007, 19:38
Posts: 167
Location: Romania
physX has softbody simulation (alias cloth) and fluids (but from what ive read fluids are available only on their hardware). the physics lib was commercial first with a big price tag, used in the unreal engine and many others. but since ageia release its physics hardware it is now free even for commercial use

personally i do not know about those that you are inquiring about, i havent used them, mainly because ODE is hard to implement and Newton is slow

paul


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 12:12 
Offline

Joined: 03.05.2007, 11:26
Posts: 26
Thanks for the info Paul. I hadn't heard of physX. I'll do a google.

Mark


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 14:30 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Horde is a pure graphics engine so we don't integrate physics directly. But of course some easy methods for communication between the modules are required. Basically there are two ways to do the integration. You can do the communication from a separate central instance, meaning you have your game object which stores a handle to a Horde scene node. Now if you change the position of your object you tell Horde about it and you tell the physics engine. But you also need to do some polling to check if the scene node was changed by Horde because of animation or similar things.

This should be working but it means some overhead. That's why we have developed a new concept, the Horde integration library with a node attachment. Basically that's a tiny class from which your own game classes can be derived. Now you can attach your class directly to a scene node and you get an event when the scene node changes or you can tell the scene node to change. It is a simple hook directly into the scene graph which makes integration really easy an efficient. Another cool thing is a hook into the scene graph resource parser. You can get notified when attachment data is found and can automatically construct your game classes and use XML data for configuration. But should work with physics, 3d sound, or AI and game actor classes, actually everything you need for a game.

We have tested that concept with a physics engine integration. We have used Bullet, a quite nice and powerful open source physics engine. Everything works fine so far. One of my fellow researchers has created a little C-library for that which will probably be released. The cool thing is: this library currently has two functions, for initialization and update. For configuring your physics objects you just have to add a special physics node to the scene graph files and then everything else is happening automatically. This is all easily possible with the integration library.

As far as I know Bullet doesn't support soft bodies but rigid bodies is also nice for the beginning. :) Integrating PhysX shouldn't be difficult, I had a quick look and the concepts are the same.

Ok, Mark I think I have shocked you now with having a class in the Horde interface. I have absolutely no plans to give up the interface style we have. It is only the small integration library which uses some (currently one) classes. You don't need them to use Horde but creating a fully featured game engine is made much more convenient and efficient this way. For euphoria you could use the little Horde physics DLL about which I talked about and wrap it's functions.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 15:17 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
Spooky, concerning the ETA: The integration library is done so far, now I have started work on the particle systems. Currently there is a plenty of not-Horde related other things for me to do :( so I think a month from now could be realistic.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 13.05.2007, 17:22 
Offline

Joined: 05.03.2007, 19:38
Posts: 167
Location: Romania
i can w8 a month or so ;). i was afraid that it would take more :)

anyways you are going to see me a while browsing the forums as horde is the engine that suits me. in time i hope i`ll start making some meaningful posts and even help other ppl

but now i must get back to learning :)

paul


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 14.05.2007, 12:37 
Offline

Joined: 03.05.2007, 11:26
Posts: 26
marciano wrote:
Ok, Mark I think I have shocked you now with having a class in the Horde interface. I have absolutely no plans to give up the interface style we have. It is only the small integration library which uses some (currently one) classes. You don't need them to use Horde but creating a fully featured game engine is made much more convenient and efficient this way. For euphoria you could use the little Horde physics DLL about which I talked about and wrap it's functions.


Thanks for the very comprehensive answer Nic. I am glad that you are looking at ways to make this possible for those of us who are C++ challenged :D I'm now thinking that a simple submarine sim, something like the old game "Silent Service" might be a good starting point. Particles and physics will work in well with that. I've been messing with loading my own low-poly ship models into the Chicago demo, playing with attaching the camera to one ship so that I can look at the other ships from it etc. All good fun!

Mark


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: 14.05.2007, 22:34 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
That sounds like a good idea for a first project. It isn't too complex but gives you the opportunity to experiment with some advanced stuff like creating a nice water shader (with environment mapping, some waves and so on).


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

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 16 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