Let me collaborate on that. It uses frustum culling, but, as 3d cards are very powerful at the moment, and the group with slower 3d cards is getting smaller, it's a good bet to do the most things at the GPU. Although, we will support fallbacks at the CPU. The amount of detail will be simple to set, so that you can scale it down to work on slower cards, and theoretically, it should even work at a NViDIA RIVA TNT2, although it's not designed to be. However that requires some serious sacrifices to detail, but that's not more than logical.
aarona wrote:What type of LOD/culling mechanism are you planning on using, ROAM, SOAR, or something more specific to this purpose?
LOD is pretty much outdated nowadays, at least on terrains, as 3d cards like the Geforce 4 TI can handle 50.000 polygons with ease (depending on how it is transfered). There will be a dedicated vertex storage system, which also handles texturing (shaders/fixed function) and a simple collision detection (OBB-Frustum). It's not the most efficient algorithm, but it's very fast, and lightweight, so the balance will be shifted more to the GPU to do the processing, testing of the previous terrain renderer proved that it was pretty efficient, even with 4 passes (to do the texture splatting the manual way). For example, the terrain renderer will spit out the chunks it generates from the heightmap, and it will be loaded in the GPU (if it fits in memory, fully handled by ARB_vertex_buffer_object, which automatically puts it in system mem if it doesn't fit), and the vertex system will automatically generate a object bounding box. For every chunk you give a shading chain, which can include fixed functions and/or shaders (multi-passing shaders will also be possible). And in the frame, everything will be computed and rendered by the vertex system with one single call. Later on it can be more perfected by adding more functions, but that's the basic idea.
aarona wrote:Using texture splatting by blending is a good idea. Are you also going to include fallbacks in case people cannot support the extra features which might not be standard?
Ofcourse, else we wouldn't be able to support geforce 3 and up, only geforce 7xxx class cards
, this will be also be handled by the vertex system, using the shaderchain. The idea is that you put a shaderchain in a shaderchain, and specify that it's a fallback chain. It automatically removes the shaders which are inferior, and unsupported, so that the best case will be selected for your card.
aarona wrote:How will Keyboard and Mouse event be handled?
XeryusTC wrote:We are using the SDL system, we let the engine handle some parts of it (like some GUI stuff), but it will mostly be handled on the "client" application.
That's correct. TRoS Engine includes a wrapper to access the SDL library in a way which is only necessary for TRoS. It's currently implemented in CSDLWrap, which includes a few functions to create a window, and automatically allocate a GL context to it, so that cross-platforming will be easy.
As for the mouse and keyboard, SDL works with SDL_EVENTS,
http://docs.mandragor.org/files/Common_ ... event.html for a full description of everything that is being spit out, and the link between SDL events and TRoS is made with bool CSDLWrap::PollEvent (SDL_Event *event), which returns true if there is a new event, and puts the event in the preallocated SDL_Event you specify. So everything of SDL is accessible to you.
aarona wrote:You have mentioned mouse/terrain collision, what else is on offer? Is it going to be a full terrain/game engine, or just the terrain part of it?
The engine will be primarily designed for a complete game (TRoS Client/Server/Mainserver), but you could even make scientific 2D/3D applications, or anything you wish. (TRoS Creator is using TRoS Engine too, ofcourse, which is actually a application to help every application that uses the TRoS Engine.)
Hope this informed you well enough,
Seniltai.