Jump to content
  • Advertisement
Sign in to follow this  
16bit_port

Tessellation papers

This topic is 2923 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Does anyone know of any good resources (white papers, academic papers, books, videos, etc) on tessellation that explains how it works (describing control points, patches, etc)?

I want to be able to subdivide a single quad with the use of the hull and domain shaders.

This is good and all but without any understanding of how exactly tessellation works, its of no help.

Thank you.

Share this post


Link to post
Share on other sites
Advertisement
I thought that this was a pretty good overview. Nvidia and ATI should also have some presentations from GDC or gamefest.

Share this post


Link to post
Share on other sites
Thanks for the link. What exactly are patches? They don't really explain what they are. Are they just a collection of primitives or something?

Also, after reading these two papers AMD1 and AMD2, and looking at the How to's, none of them really explained what I should be doing in the Hull and Domain shaders and/or provide any examples doing so. Does anyone have any resources on that?

Share this post


Link to post
Share on other sites
Thanks, amerkoleci. Excellent read (minus some of the broken English and typos)!

Regarding the pipeline : Both the two AMD papers say that the tessellation stage occurs BEFORE the vertex (HULL->TESSELLATOR->DOMAIN->VS), but the paper that amerkoleci referred to, says quite the opposite (VS->HULL->TESSELLATOR->DOMAIN), which one is right?

EDIT : Okay, I re-read the first AMD paper (the one that MJP suggested), it occurs BEFORE the vertex shader in the 9 and 10 pipeline. It occurs AFTER in the 11 pipeline.

Regarding the control points : If I specify control points of more than 4, what do I specify for the domain attribute, since it only takes in tri, quad, and isoline?

[Edited by - 16bit_port on December 14, 2010 5:09:09 PM]

Share this post


Link to post
Share on other sites
Right, AMD had their own tessellation solution specific to their hardware and it was available in dx9 and dx10 using a special AMD API in conjunction with DirectX.

DX11 redesigns this with a different approach which is now supported by all new hardware.

The domain attribute specifies what the tessellated patch is going to be. You can have a line, a triangular patch, or a quad patch as you know, but control points are not the same as vertices. The patche shape is not decided by the number of control points the hull shader expects. There is no requirement that the input control points with a count of 16 could not describe a triangle. The hull shader is programmable which allows you to decide the meaning of the incoming control points. So one input control point could be used to generate a quad for instance, or 32 control points could be used to tessellate a line. The approach is flexible so that it may fit the problem you're trying to solve.

What the domain attribute does is tell the tessellator what shape it is tessellating. The domain attribute also decides how many tessellation factors have to be filled in. So the hull shader will analyze the incoming control points, however many there are, and use the resulting analysis to set the tessellation factor values.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!