Creating solid base framework for 3d engine

Discussion about everything. New games, 3d math, development tips...
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Creating solid base framework for 3d engine

Post 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 ^^'
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post 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
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Post 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:
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post 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.
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Post 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...
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
bitplane
Admin
Posts: 3204
Joined: Mon Mar 28, 2005 3:45 am
Location: England
Contact:

Post 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.
Submit bugs/patches to the tracker!
Need help right now? Visit the chat room
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Post 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
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post 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.
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Post 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:
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
sudi
Posts: 1686
Joined: Fri Aug 26, 2005 8:38 pm

Post by sudi »

i posted the easiest option with using http://www.3demon.net/
its a irrlicht fork geaed towards d3d10.
We're programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We're not excited by renovation:tinkering,improving,planting flower beds.
Revan1985
Posts: 89
Joined: Tue May 08, 2007 4:11 pm
Location: Italy

Post 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...
CPU: AMD PHENOMII X6 1090T BE 3,2GHZ
RAM : OCZ 8GB 2*4GB DDR3 LOW VOLTAGE 1333
VGA: GeForce GTX680 2GB
HD : 500GB + 500GB + 2x1TB Raid Edition + 500GB External
Motherboard: ASUS CROSSHAIR FORMULA 4 890FX AM3
PSU: Corsair 750W
CPU Cooling: Katana 2
Nox
Posts: 304
Joined: Wed Jan 14, 2009 6:23 pm

Post 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).
bitplane
Admin
Posts: 3204
Joined: Mon Mar 28, 2005 3:45 am
Location: England
Contact:

Post 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.
Submit bugs/patches to the tracker!
Need help right now? Visit the chat room
Halifax
Posts: 1424
Joined: Sun Apr 29, 2007 10:40 pm
Location: $9D95

Post 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.
TheQuestion = 2B || !2B
Post Reply