Jump to content
  • Advertisement
Sign in to follow this  
BenS1

DX11 Are there any DX11 Tessellation Tutorials online?

This topic is 2915 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

As far as I can see, despite the fact DX11 has been around for a while now, there is very little documentation/tutorials for it.

The DirectX SDK has quite a few DX10 and DX9 tutorials but only a few very basic DX11 tutorials, which don't cover things such as tessellation. It obviously has a DX11 reference and some tessellation samples, but no simple step by step tessellation tutorials.

Also, there doesn't seem to be any DX11 books available right now or due for release within then next 6-10 months as far as I can see.

Surprisingly Google doesn't really find anything either.

Does anyone on here know of any simple step by step tessellation tutorials available anywhere?

Thanks
Ben


Share this post


Link to post
Share on other sites
Advertisement
What would you like to do with tessellation? The feature and math involved are fairly complex for the primary scenarios. The best sources are academic papers which can be supplemented with white papers from ATI and NVIDIA. So depending on what you want to do someone may be able to point towards a good starting point.

The DirectX11 tessellation API and HLSL are fully documented on msdn and in the SDK - though the documentation doesn't provide any guidance on the math or system design since that is up to the developer. There are several samples in the SDK, 3 I think. One is for a very simple single patch, the other two are for full multi-patch models with animation.

Share this post


Link to post
Share on other sites
Thanks for your reply

Sure I understand that the possabilities of what you can do are limitless, but what we have today feels a bit like trying to teach someone C++ by shoing them a C++ language reference and an example large C++ program.

Normally you'd expect to start with some kind of Hello World equivilent and then you can build on that yourself.

I'd be interested in seeing the simple single patch example in the DirectX SDK, but I can't find it (Unless you mean the "DetailTessellation11" sample?).

For me, I'm going to be implementing a terrain engine. Up until now I was planning to use multiple LOD patches and GeoMorphing to blend between them, but now I'm thinking of using a single quad per terrain segment and using my heightmap data as a displacement map and using tessellation in conjunction with the displacement map to generate the detail. That way I'll have continuously LOD as opposed to discrete LOD's and mophing between them.

Thanks
Ben

Share this post


Link to post
Share on other sites
Right, I understand that reading source code with no design manual is very challenging. This is why those papers are so important. They state the problems tessellation is trying to solve, the issues involved with implementing it in hardware, and explain why various features are necessary as well as pointing out the purpose of the various user functions and the pipeline design. They will provide a good context for understanding the samples. If nothing else it would be good to glance over those sources so that you know the issues you'll face in advance and know that there are resources that can be referenced to help solve them.

Most samples also come with documentation describing what was done.

SimpleBezier sample:
- shows the different partitioning types.
- The shader is pretty simple and has great comments explaining what everything is for. In this case nothing fancy is happening in the hull shader, it's just a pass through. The domain shader however shows how to calculate each vertex position based on analyzing the control points for the incoming Bezier patch.
- Your terrain probably won't start off with Bezier patches to represent the surface so you would instead read from a displacement map and move the vertex accordingly.
- The sample has a function for calculating the normal to go along with each vertex. You'll probably need something similar for your displaced terrain.
- The sample also shows each vertex being transformed using world/view/projection matrix in the domain shader instead of doing it in the vertex shader.
* This sample should get you started on the right path with something simple working.

DetailTessellation sample:
- Shows how to use displacement maps with tessellated patches.
- The sample includes code for having lots of patches and provides some methods for making sure there are no cracks between neighbors.
- Doesn't seem that the shaders are documented well, though the functions for adapter tessellation calculations are pretty straight forward.

PNTriangles11 sample:
- provides a good overview of all the different ways one might adapter tessellation over a surface to truly leverage the feature and improve performance.
- Shows culling, distance, screenspace, resolution, orientation ideas for improving performance. These should be just as useful for terrain as for a model.

SubD11 sample:
- Shows everything working together with animation.

I also think that this page in the documentation is a good tutorial. It describes all the parts you need and what they're used for. It also gives a good tutorial on how to write the different shaders and what to do with them.

And as always you can post specific questions about anything you get stuck on.

Share this post


Link to post
Share on other sites
Thanks again for your reply,

I have read lots of papers from Nvidia, AMD/ATI and other sources and I fully understand the theory.

Really the problem is that I have documentation that explains the theory and separate samples from the DX11 SDK that have very little documentation (And also do too much in one go).

What I really want is a simple "Hello World" equivalent. e.g. you pass in a quad and it gives out a 4x4 patch.

I also think that this page in the documentation is a good tutorial. It describes all the parts you need and what they're used for. It also gives a good tutorial on how to write the different shaders and what to do with them.[/QUOTE]

I have read through those, but I wouldn't say they are a tutorial as they don't create any functional code.

I can work it out for myself with the DXSDK documentation, but I was just hoping that there would be a simpler/quicker way to learn.

Thanks for your help, its very much appreciated.

Thanks
Ben

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.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!