Finally, a DirectX 10 video driver for Irrlicht
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
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 . So, no doubt, when finish DX 10, in 3 hours DX 11 will be ready (sorry for the kiding)
- to slavik262, thanks once more, I understood perfectly your comments.
Thanks
- 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 . So, no doubt, when finish DX 10, in 3 hours DX 11 will be ready (sorry for the kiding)
- to slavik262, thanks once more, I understood perfectly your comments.
Thanks
Next generation for Irrlicht!!!!!
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
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:
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.
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:
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.
Next generation for Irrlicht!!!!!
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.
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.
Irrlicht Demos: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=45781
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
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:
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.
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:
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!!!!!
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
Need help? Come on the IRC!: #irrlicht on irc://irc.freenode.net
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
-
- Posts: 40
- Joined: Wed Apr 01, 2009 11:45 am
- Location: São Paulo - Brazil
Hi people.
Sorry for ausence, but I'm very busy on my job .
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.
Sorry for ausence, but I'm very busy on my job .
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!!!!!
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?
-
- Posts: 1691
- Joined: Sun May 18, 2008 9:42 pm
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
My first full game:
http://www.kongregate.com/games/3DModel ... tor#tipjar