Some thank you's first.
Ignacio Castano and Dennis Kovacs for helping out with some of the concepts from the paper for Gregory Patches last year. It would have taken me a lot longer to get this stuff together without them.
Rafael Grassetti for letting me play with his mechaGirl model.
What you are looking at:
- Full implementation of the paper: http://research.micr...cloop/sga09.pdf
- Graph based evaluation of gpu operations for skeletal -> morph -> dynamics -> tessellation.
- SS,SSS from gpu pro... Still working on this, but the results of 1.5 hrs of work look good so far.
- I got so very sick of transparency screw ups, so I implemented the OIT linked list algorithm from AMD.
- Linear lighting pipeline
- Variance shadows.
- Old version of glow system, I really need to get an anamorphic blur in there.
There are a number of R-G-B toned images in this post. Blue is regular patch, green is irregular patch, red is triangular patch).
How to do the same sort of thing for tessellation:
I started with the nvidia meshtools, so download nvidia mesh tools from google code. Everything you need is in there providing you have a good idea of what you are doing.
Download the nvidia sdk11 toolkit, this contains the quad (regular/regular) pathways for gregory patches. You will have to modify quite a bit for any stable pipeline, but it's a good start.
Derive the triangular cases from the cpu tessellation code in the nvidia mesh tools.
Write an export to your preferred format for whichever toolset you use (maya, 3dsmax, blender etc...)
Ensure to use precise keyword in your GLSL / HLSL, Ignacio mentions this ( http://www.ludicon.c...ecise/#more-275 ) in one of his blog postings. Otherwise you will get cracks in your resulting mesh.
Newer videos with slightly more correct videos but less features:
Older videos with incorrect lighting showing more features:
Questions / Comments / Criticism are welcome.
Please keep in mind I work in film pipelines professionally, not games. For this reason I have no inclination to use Phong Tessellation / PN / PM etc... I think they are awesome local evaluation schemes, but I hate cracks in my models, so I can't use them.