[GSoC 2009] Draft proposal for enhancing DX10 support

Threads related to Google Summer of Code
Post Reply
AdN
Gnoblar
Posts: 5
Joined: Fri Mar 27, 2009 5:16 pm
Location: France

[GSoC 2009] Draft proposal for enhancing DX10 support

Post by AdN »

Hello everyone,

You can find here a draft of my proposal, hoping for comments

Project Proposal
In order to contribute to DirectX 10 render system, I propose implementing full DX10 Geometry Shader support for OGRE. DirectX10, latest release of Microsoft SDK, is partially supported, and adding Geometry Shader could be a great step in achieving this goal. Here are some of my first ideas. I really hope for feedbacks in order to refine them and adapt them to community expectations.

* Generic entry point for HLSL programms acting on Geometry [Layer n]
* Predefined techniques : Level of Detail and displacement mapping. (Implementations already exist in OGRE, but a one based on SM4 would be an improvment) [Layer n+1]
* Demo : Realistic water effects based on Geometry Amplification.

A special attention will be given to fallback mechanisms. My intuitive approach would be throwing exception and executing a 'default' DX9 method, but I first have to study which practices are already in use : )

About me
I am Adrien, 22 years old. I am a final year student obtaining a Master degree of engineering in Computer Sciences and Telecommunications (at INSA de Lyon, France).
I am new to OGRE, but I had a strong passion for 3D computer vision and video games for years. I wrote a basic software 3D engine (no lightning, was not so realistic :\) in Pascal when I was 18, so I have a good basis in vision mathematics. I am currently working on my final school project, that is "Generating a 3D model based on several pictures of an object". For this project, I wrote an image synthesizer (projecting 3D models onto pictures) that relies on Vertex Shader to simulate different kinds of lenses.
I am fluent in C/C++ and Java (even if I feel a bit ashamed about the last one ^^). Last year, I released a professional project written in C++ named Jegnet (interface between serial and Ethernet protocols, used for car maintenance) : I focused my efforts on producing maintainable code.
I feel ready to get involved in a 3D programming community, and a lot a free time this summer in combination with my strong will to develop a real world DX10 application make it the perfect time for participating !

Timeline (remember it's a draft, I am waiting for community remarks to refine it)
Please note that until May 30, I will still be at school, so I would only be able to provide 15h/week for OGRE.
Past this date, I could provide full dedication to the project (approx. 45h/week).


[-> May 22]
Discussing with the community and mentors for feedbacks. Refining the objectives with them, and thus interfaces.
For me : gaining sufficient understanding of the HEAD version of OGRE (reading code and documentation, experiencing on my own) in order to get into the design and code as soon as possible.

[May 23 - May 31]
Finding where I exactly fit into existing code, and prototyping main functions (no actual code).
Coding fallback mechanisms.
[June 1 - June 21 ]
Coding generic entry point for HLSL programs
Testing
Writing documentation
[June 22 - July 19]
Implementing predefined techniques (LoD, displacement mapping, etc ...)
Testing
Writing documentation
[July 20 - August 2]
coding some Demos
[-> 10 August]
Refactoring to stick as much as possible to community expectations
realistic buffering : )

[10 August - deadline]
Refining documentation
Testing
Code revision

Future Extensions
After GSoC deadline, there will still be a lot to do to provide users with a convenient level of abstraction for some DX10 capabilities. I would be proud continuing some work on the DX10 code for OGRE, some important techniques being candidate for implementation, such as calculating shadow maps with single pass cube map. Another interesting aspect could be implementing a GPU-only material system, Geometry Shaders allowing GPU to modify materials properties (such as aspect, or more abstract ones).

Biblio
'Introduction to 3D Game Programming with DirectX 10', by Frank D Luna

Thank you a lot for reading

User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2009] Draft proposal for enhancing DX10 support

Post by Assaf Raman »

Have you looked at last year project on this topic (geometry shaders) and it results?
Watch out for my OGRE related tweets here.

AdN
Gnoblar
Posts: 5
Joined: Fri Mar 27, 2009 5:16 pm
Location: France

Re: [GSoC 2009] Draft proposal for enhancing DX10 support

Post by AdN »

Thank you for your answer.

I rapidly read this topic before posting my proposal, and seen that Geometry Shader has successfully been implemented for OpenGL, but not yet for DX10.
I also noticed that the Geometry Shader support has been added to OGRE's scripting interface, letting more room for another project to implement techniques such as displacement mapping.

A look at the ideas list confirmed to me that a Shader support for DX10 render system was still missing, and would constitute an important release for OGRE's core. This would allow to add support for HLSL4 too.

User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2009] Draft proposal for enhancing DX10 support

Post by Assaf Raman »

Have you downloaded our code and looked at what we have already in the d3d10 render system?
Watch out for my OGRE related tweets here.

Post Reply