[GSoC 2012] Complete the DirectX 11 render system

Threads related to Google Summer of Code
Post Reply
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

I finished merging zerocomplex's code, task nr.1 and nr.2. I left Unicode support out, will come back to that later if it is necessary. I will show the result of the tests tomorrow. I will also upload my code to my repo tomorrow (probably morning) and will update the projects wiki page.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by Xavyiy »

Great work, waiting to see the test results!

It's pretty cool to see your weekly reports(congrats to all the students!), this year GSOC is being really interesting, even if it's yet in the early stages!
User avatar
duststorm
Minaton
Posts: 921
Joined: Sat Jul 31, 2010 6:29 pm
Location: Belgium
x 80
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by duststorm »

Agreed.
The regular updates and high motivation are a good sign.

Keep up the good work guys! :)
Developer @ MakeHuman.org
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

I've got a disturbing error of "/OgreD3D11EngineDll.cpp(37): error C2491: 'Ogre::dllStartPlugin' : definition of dllimport function not allowed" after merging (I haven't made any changes to this file), and I am losing time resolving it. I hope I can put some test results later this day, after I debug this error.
I am also getting a lot of warnings like: "inconsistent dll linkage".

I will upload my code after resolving these issues.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Rebuild all.
Watch out for my OGRE related tweets here.
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

Regenerated everything with CMake and I built again from the regenerated files and it works :). Thanks. :)
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
User avatar
duststorm
Minaton
Posts: 921
Joined: Sat Jul 31, 2010 6:29 pm
Location: Belgium
x 80
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by duststorm »

robert_sasu wrote:Regenerated everything with CMake and I built again from the regenerated files and it works :). Thanks. :)
make clean
make

Or the msvc equivalent, might have been enough, maybe.
Developer @ MakeHuman.org
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

he is working on windows... he doesn't use make...
Watch out for my OGRE related tweets here.
User avatar
duststorm
Minaton
Posts: 921
Joined: Sat Jul 31, 2010 6:29 pm
Location: Belgium
x 80
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by duststorm »

Yes that's why I said "or the msvc equivalent".
Which is, after a quick google, indeed simple the "Rebuild" button. Or "Clean" and then "Build".
I just meant that maybe the cmake was not needed.
Developer @ MakeHuman.org
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Well, if he merged a different source control - better to be on the safe side and cmake - for the case cpp files were added to cmake files - else you will get link errors.
Watch out for my OGRE related tweets here.
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

I need a little more adjusting to the test module for the first two tasks. I will finish them tomorrow morning. I have already pushed the code to my repo.

Tomorrow after I finish the test module I will start planning the tessellation support.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

We (cherlix and myself) are planning to do a GUI for testing the D3D11 Render System. I had some problems with the first testing module and I need just a little more time for it, but the next one's will be done faster. I will merge my code with cherlix tomorrow and create the testing modules also for that (tasks nr. 8, 9 and 10, some part of it, not complete). I will put all the results after the tests are done for these 5 tasks (1,2,partially (8,9,10)).

In the meantime I started planning the tessellation support for the DirectX 11 Render System, my sources are D3D11 SDK and Think DirectX 11 Tessellation presentation from Gamefest 2010. Here is my first scratch. There are 3 types of possible tesselations: PN Triangles
Detail Tessellation and Bezier with displacement, Subdivision.

I will start with PN Triangles algorithm which is the easiest and it is good for rendering characters, models. The algorithm in major parts:

Code: Select all

   Each flat triangle augmented to many subtriangles
        Vertices and normal interpolated from base flat triangle
   Hull Shader – basis transformation
        Hull Shader Constant Function
             Calculates control points for both vertex and normal
             Output control points except the original 3 verts
        Hull Shader
             Pass through the original 3 verts
    Domain shader
         Calculates position and normal by using UV and control points
         Optionally do vertex lighting as well
Detail Tessellation, bump mapping and parallax:

Code: Select all

   Break your plane into small grids
        Each grid form a tessellation patch, and each patch could have a different
        tessellation factor
   Calculate density map from height map
   Hull shader computes tessellation factor
        Hull shader: 3 base vertices pass-through
        Hull shader constant function: TessFactor, either from density or distance, 
        or a combined function of the two
   Domain shader computes position of tessellated vertex
        Sample height map correctly
   Pixel shader does the normal per-pixel shading
Bezier with Displacement is an extension of Detail Tessellation. Is for complex surface (terrain), correct adaptive tessellation (T junctions). At last will do subdivision for more natural LOD, good performance, great freedom and flexibilities in creation.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

What about starting with a much simpler sample, like the "Tessellation Pattern Viewer" on this page: http://developer.nvidia.com/nvidia-grap ... 1-direct3d ?
Watch out for my OGRE related tweets here.
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

OK. It is better for me to start with this sample. I have downloaded the newest NVidia Graphics SDK and read the documentation and started to study the tessellation samples. I am almost done with the first tests, I needed to make some modifications to the code to have propel results. Later this day I will speak with cherlix for more tests and start doing with this first tessellation sample.

I will also update the wiki page by dividing the tessellation feature in more subtasks.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Good.
Watch out for my OGRE related tweets here.
fabio71
Gnoblar
Posts: 11
Joined: Thu May 12, 2011 10:18 am

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by fabio71 »

Hi Robert and Assaf,

I have a question regarding the tessellation work. Do you think you are going to support the PatchMesh you can create with SceneManager::createBezierPatch ? This interface is already present and I think it would be very good to optionally acccelerate it with DirectX 11.

Fabio
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

Nice idea, if we won't make it as part of the summer project - I will do it after the summer project ended.
Watch out for my OGRE related tweets here.
fabio71
Gnoblar
Posts: 11
Joined: Thu May 12, 2011 10:18 am

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by fabio71 »

Great! I hope to see your work running in the next Ogre Release!
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

Thanks fabio71! If I will have no time for this on the summer I will continue to work in autumn so as to complete DX11 RS. These ideas are more than welcome :).
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
fabio71
Gnoblar
Posts: 11
Joined: Thu May 12, 2011 10:18 am

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by fabio71 »

You are welcome robert_sasu. I hope one day to be able to load and render NURBS surfaces made with Rhino without having to convert them to polygon meshes. The SDK to load the 3DM format is free and can be downloaded here: http://www.opennurbs.org/
Probably the Bezier patches aren't enough but I think are the first step in the right direction! :)
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

Nice idea, we will think about it :).

Today I continued to work on Tessellation Pattern Viewer. In a few hours cherlix will push his code to my repo, to a new branch and tomorrow morning will merge it with my work. After that I will run the test modules made so far and hopefully show you the results of merging zerocomplex's and crashym's patches to DX11 render system.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

I've got cherlix's work in the morning, after midnight at hour time, so I started merging in the morning. I finished merging his code and pushed it to my repo. I am waiting for him to send the test modulees for MRT and will show the results after I got them.

I have created the major methods for the tessellation feature and worked on the first part, the pattern tessellation, by writing major parts of tessellating triangles and quads.
I've created 2 files OgreD3D11Tessellation.h and OgreD3D11Tessellation.cpp which will contain everything which is about tessellation. I've almost finished the planning of this whole feature (by defining the major methods, variables and algorithms (ideas)).
After the first part is complete we will have methods for tessellating triangles and quads which will be used for further algorithm -> second part PN-Patches (PN-triangles and PN-quads).
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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 2012] Complete the DirectX 11 render system

Post by Assaf Raman »

I am looking at your last commit, can you explain this file: Dependencies/ois-v1-3/Win32/DemoFFTest/Debug/vc100.idb
Remember - at the end of the summer we will merge your code the the main OGRE repo - I don't want new junk files to go in...
Even if you delete files - they are still forever in the history - meaning the repo grows.
You are at the beginning of the project - we need to think if we should deal with this issue now, I don't want to deal with it last minute...
Watch out for my OGRE related tweets here.
User avatar
robert_sasu
Google Summer of Code Student
Google Summer of Code Student
Posts: 237
Joined: Mon Apr 02, 2012 11:07 am
x 42

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by robert_sasu »

Sorry for that, is was my mistake when using hg. I will clean them up, or if I can't then I will make a new repo and push everything there in the right order. (Those files are for my computer, the dependencies for ogre). I will not make any more mistake from now on and will clean those files.
Google Summer of Code 2013 Student
Topic: "DirectX 11 & Tessellation samples"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: [GSoC 2012] Complete the DirectX 11 render system

Post by jacmoe »

You can 'forget' those files, and add them to an .hgignore file and commit/push again.
It's no problem.
Mercurial is very forgiving. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Post Reply