Page 1 of 2

Creating solid base framework for 3d engine

Posted: Fri Feb 13, 2009 11:13 pm
by Revan1985
I want to know if there is some tutorials on the net to how create a solid based framework, something like irrlicht, but for more specific game type....
i want to use irrlicht, but is too limited, or better, too "generalizzed", for my pourpose...
someone know how do them?

sorry for my bad english ^^'

Posted: Sat Feb 14, 2009 2:41 pm
by FuzzYspo0N
perhaps removing pieces you dont need, and add what you want. (seeing as irrlicht is free to do that)

if you want to reinvent the wheel... i dont kno. checkout ogre, horde, nvision, theres tons of "advanced engines" for your type of "request" but to be honest in dont ever see any games being made if thats your mentality ;P

Hope you find what you are looking for

Posted: Sat Feb 14, 2009 3:03 pm
by Revan1985
my idea was to reuse irrlicth for that...
but i have only one problem...
it's not in dx10...
i need to use dx10, to experiment them...
and i can't with it...
don't you know an engine that usa dx10 free?
i found only at payment, in the order of 500+ €... :cry:

Posted: Sat Feb 14, 2009 3:15 pm
by sudi

Posted: Sat Feb 14, 2009 4:13 pm
by Dorth
Or just copy the dx9 section of Irr and adapt it. It'll give you great insights and teach you how the inside works.

Posted: Sat Feb 14, 2009 5:45 pm
by Revan1985
Dorth wrote:Or just copy the dx9 section of Irr and adapt it. It'll give you great insights and teach you how the inside works.
eheheh, i've seen all the source code of irrlicht, and had a base structure unable to use d3d10 without a great modification...
d3d10 is all based on shaders, and the structure of irrlicht is not "shader-side" :P

this sis my idea, than, is possible that i'm saying a great poop, but i think this...

Posted: Sat Feb 14, 2009 8:21 pm
by bitplane
Revan1985 wrote:
Dorth wrote:Or just copy the dx9 section of Irr and adapt it. It'll give you great insights and teach you how the inside works.
eheheh, i've seen all the source code of irrlicht, and had a base structure unable to use d3d10 without a great modification...
d3d10 is all based on shaders, and the structure of irrlicht is not "shader-side" :P

this sis my idea, than, is possible that i'm saying a great poop, but i think this...
Irrlicht is a cross platform rendering engine, if you want to use only DirectX 10 then you should probably choose an XNA based engine instead.
What features do you need that only DX10 can provide? 3D engines are supposed to abstract the rendering, so you should be more interested in what you can do with them rather than what API they use.

Posted: Sat Feb 14, 2009 9:38 pm
by Revan1985
sorry for last post, i mean that irrlicht is one of the best framework i've never used, it had an astraction level very high, but the rendering options are poor...
i don't know, but i see the irrlicht projects poor of graphics...
i'm searching to use directx10 to use the last graphical innovation i've seen...
i know, i can obtain the same things in dx9, but is a mine idea to study dx10, but the tutorials i get had not a good base where to start, and i wanted to try to use irrlicht for it, but there are not the d10 :P

Posted: Sat Feb 14, 2009 10:09 pm
by hybrid
Yes, there's no DX10 driver in Irrlicht. However, I've made an initial OpenGL-ES 2.x driver (with only proper shader implementations of the materials missing) in a few hours. I don't see why DX10 would be much harder.
So you have exactly two options: Either try to do the DX10 driver in Irrlicht on your own, or take a different engine. If you can't handle option one than quit here and go away now. Otherwise ask for support for the DX10 driver, but only after you've started and can show some things.

Posted: Sat Feb 14, 2009 11:41 pm
by Revan1985
ok, i've started the d3d10 driver, but is so difficult to do...
i don't understand why irrlicht use so many drivers, as CNullDriver as derived class...
mah, i'll let you know how will go in few days, because this monday i start to work as programmer at milan, and i'll have little time the evening to code...
believing will be possible to do it ^^'

p.s. i'll never quit irrlicht, because is a great engine, only thing is the d3d10 support not yet implemented :wink:

Posted: Sat Feb 14, 2009 11:53 pm
by sudi
i posted the easiest option with using http://www.3demon.net/
its a irrlicht fork geaed towards d3d10.

Posted: Sun Feb 15, 2009 12:14 am
by Revan1985
i know you have posted it, and i'm glad "i believe is the right term", for it, but is a "challenge" with myself...

if only i understood how use a svn, i could download those engine...
sigh...

Posted: Sun Feb 15, 2009 6:27 pm
by Nox
http://subversion.tigris.org/ download client for our OS. Follow the instruction for a checkout. (For Windows, you can use Tortoise. Just install, reboot, rightclick on desktop SVNCheckout, put svn address in, hit ok).

Posted: Sun Feb 15, 2009 6:59 pm
by bitplane
Making a DirectX 10 driver will be a pain because you'll have to get rid of all the fixed function stuff from the 2d drawing. I may be wrong but I think spintz adapted the GUI to draw all at once in a buffer.

Posted: Sun Feb 15, 2009 8:12 pm
by Halifax
bitplane wrote:Making a DirectX 10 driver will be a pain because you'll have to get rid of all the fixed function stuff from the 2d drawing. I may be wrong but I think spintz adapted the GUI to draw all at once in a buffer.
He did in fact adapt it to use VBO/IBOs, but he didn't put every GUI object into a single vertex and index buffer. In fact, if I recall correctly, he created 6 separate buffers for every single CGUIButton object. 1 VBO/IBO pair for button left up state, pressed state, and then 1 pair for the image. So you are most certainly getting VBO/IBOs created on a per GUI object basis if it's still how he is doing it.

Although it would be way better to do as you said bitplane, with batching. At least that's how my 2D engine does it for all static sprite objects.

Also, writing a DX10 driver probably will be a pain. If I were to do it, I would probably pick one of the following: write, for all intensive purposes, a wrapper so that the user has to create whatever shaders he needs, do it the Ogre way and mimic the fixed-functionality with shaders, do it the Leadwerks way by providing a standard deffered renderer and allow the user access to the buffers, do it the CryEngine2, documented in "Finding Next-Gen", by making the users request certain features that are then compiled on the fly (I don't like this option), or do it the Source engine way by putting boolean variables into the shaders to make them configurable at run-time.

My favorite options are implementing the deferred renderer, or the nothing at all and make the user do all the shaders. Making the user do all the shaders probably doesn't fit into the "Irrlicht-way" though.

When I get my new computer from newegg, and load up the 8800GT, I might take a stab at implementing a basic D3D10 driver with the first option of deferred rendering. There are quite a few great papers out there on the subject: Guerilla Software's for Killzone 2, Leadwerks, S.T.A.L.K.E.R in GPU Gems 2, etc. So I definitely see what I can do. The only thing is that it will require quite a few hacks into Irrlicht, which wouldn't be "release-friendly", but seeing as it's just a tech demo, I would save the cleaning up for later, or possibly someone else.