Finally, a DirectX 10 video driver for Irrlicht

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

Well, so many answers:

- to hybrid, I really want this project to be integrated with the core of Irrlicht. The only problem is that Google Code don't support zlib licence . :?
But I can change to other repository as soon as possible, no problem with this.

- to 3DModelerMan, yes, we can have geometry shader. But compute shaders only when we finish DX 11 driver. I see some documents from DICE that they port their engine from DX 10 to DX 11 in only 3 hours :shock: . So, no doubt, when finish DX 10, in 3 hours DX 11 will be ready :lol: :lol: (sorry for the kiding)

- to slavik262, thanks once more, I understood perfectly your comments.

Thanks
Next generation for Irrlicht!!!!!
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

You could join irrExt and develop the driver there via the SourceForge infrastructure. I guess some discussion about pros and cons of the currently available implementations of DX10/DX11 drivers, and those currently being developed, could help to avoid duplicated work.
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

Sure hybrid, I will be very happy. Can you help me in the process to join irrExt?
Next generation for Irrlicht!!!!!
hybrid
Admin
Posts: 14143
Joined: Wed Apr 19, 2006 9:20 pm
Location: Oldenburg(Oldb), Germany
Contact:

Post by hybrid »

You simply have to send out a mail with your SF name to bitplane or me. We can add you to the team and you get immediate access to the repository. I guess you have to think about a proper place for such a driver in the directory layout, but that's something which can be easily solved :D
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

Hi for all.

I have good news. I solve partialy the problem of texture loading. The bad news is that I have to check all texture formats when loading data. See example of cube with stones.jpg texture from media dir:

Image

The colors are changed, due to data formats of DX 10. Is better, but there's more work to do.

Back to the drawing board. :lol:
Next generation for Irrlicht!!!!!
sio2
Competition winner
Posts: 1003
Joined: Thu Sep 21, 2006 5:33 pm
Location: UK

Post by sio2 »

Congratulations. Well done! A good starting point.

I've been working on a DX11 driver for Spintz's 3Demon port of Irrlicht. I haven't had a whole lot of time to work on it but you can see an initial demo here: http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=36732

One of the changes from DX9 to DX10/DX11 is colour swizzle. As you've found out some texture formats have been removed and channels are in a different order. Check out your vertex colours as well.

The DX Effect system has moved from an integral part of the SDK to being something you need to compile yourself, as you probably already know. I don't know about the current SDK but in the previous SDK I used I had to debug and fix the Effect code Microsoft shipped with the SDK as it wouldn't allow me to create shaders for DX10. I assume you've fixed that or it is not an issue.

I've also implemented a flexible buffer system for creation of buffers for vertices, indices, compute shaders and hardware instancing (stream support). My compute shader interface is a platform-independant interface from the Irrlicht device; it could support OpenCL from the GL driver for example, though matbe an OpenCL interface would allow for more efficient internals.

Flexible buffer formats is tricky - things like the MeshManipulator need to be rewritten to cope. The best way would probably be to give the manipulator a buffer and an output buffer declaration and have it work out what it can copy over from the input buffer and what it needs to generate (tangents, for example). With changes to Irrlicht internals to support streams you can do hardware instancing easier and more efficiently.

Anyway, when I get chance I'll look at porting my DX11 raytracer demo over as a test.
roelor
Posts: 240
Joined: Wed Aug 13, 2008 8:06 am

Post by roelor »

Cant wait 'till this is finished, I wish you the best of luck completing this..
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

Hello for all.

Hey sio2, you was right, the problem was in color swizzle in pixel shader. Applying the correct swizzle, and everything is working as expected, see below:

Image

Now, I will work in dynamic geometry and 2D. I will try to use Direct2D for 2D drawing (will be so fast), but may this will increase memory usage. I will put this in a macro (using Direct2D OR dynamic vertex buffers), and make available for tests.
Next generation for Irrlicht!!!!!
roelor
Posts: 240
Joined: Wed Aug 13, 2008 8:06 am

Post by roelor »

I think memory useage isnt a big problem nowadays, *atleast on PCs)
BlindSide
Admin
Posts: 2821
Joined: Thu Dec 08, 2005 9:09 am
Location: NZ!

Post by BlindSide »

Nice work evandromillian, are you doing this for fun or as an academic project?
ShadowMapping for Irrlicht!: Get it here
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

No BlindSide, this is only for fun. I'm using my spare time to evolve the project.

But, I hope to finish as soon as possible, I'm curious to see what funcionalities we can create with this new driver. And I have other projects too :).
Next generation for Irrlicht!!!!!
roelor
Posts: 240
Joined: Wed Aug 13, 2008 8:06 am

Post by roelor »

Any progress? :)
evandromillian
Posts: 40
Joined: Wed Apr 01, 2009 11:45 am
Location: São Paulo - Brazil

Post by evandromillian »

Hi people.

Sorry for ausence, but I'm very busy on my job :D.

I would ask something: my only reason to continue developing DX10 first (instead of go only DX11) was that Cg didn't support DX 11.

Well, NVidia listened to us and Cg 3.0 Beta supports DX11. What to do: continue DX 10 or port to DX 11 and go on?

I would like to hear opinions.
Next generation for Irrlicht!!!!!
slavik262
Posts: 753
Joined: Sun Nov 22, 2009 9:25 pm
Location: Wisconsin, USA

Post by slavik262 »

I think that even if Cg now supports DX11, I'd still do DX10 first. Since you already have a lot done for DX10, I'd finish it up. Besides, isn't DX11 very similar to DX10 (in that it doesn't have a fixed function pipe), meaning that once you finished the DX10 renderer you could (relatively) quickly turn it into a DX11 renderer?
3DModelerMan
Posts: 1691
Joined: Sun May 18, 2008 9:42 pm

Post by 3DModelerMan »

If you did the DX10 driver first, it would probably be easier to port the rest to DX11, instead of porting DX11 back to DX10.
That would be illogical captain...

My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar
Post Reply