Jump to content
  • Advertisement
Sign in to follow this  
leonard2012

OpenGL What's D3D equivalent to OpenGL tessellation?

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

I am new D3D programming and surprised to find that there is no tessellation in D3D 9/10. Maybe Microsoft give it another terminology. So what's D3D equivalent to OpenGL tessellation? I also search the term "tessellation" in this forum but find no results.

Share this post


Link to post
Share on other sites
Advertisement
Are the N-patches computed and processed on CPU, not on GPU, right? Like GLU library tesselation functions for OpenGL.

Share this post


Link to post
Share on other sites

Are the N-patches computed and processed on CPU, not on GPU, right? Like GLU library tesselation functions for OpenGL.

Depends on the GPU some DX9 hardware had this in hardware but it was never a really popular feature so not every card supports it, current level hardware no longer supports this(HD6970, HD4850). Look at the devcaps2 structure to see if your hardware supports this feature.Flags to look at
This is from a HD4850:

D3DDEVCAPS2_DMAPNPATCH NO
D3DDEVCAPS2_ADAPTIVETESSRTPATCH NO
D3DDEVCAPS2_ADAPTIVETESSNPATCH NO
D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH YES

Share this post


Link to post
Share on other sites

[quote name='Martins Mozeiko' timestamp='1334605214' post='4931832']
Are the N-patches computed and processed on CPU, not on GPU, right? Like GLU library tesselation functions for OpenGL.

Depends on the GPU some DX9 hardware had this in hardware but it was never a really popular feature so not every card supports it, current level hardware no longer supports this(HD6970, HD4850). Look at the devcaps2 structure to see if your hardware supports this feature.Flags to look at
This is from a HD4850:

D3DDEVCAPS2_DMAPNPATCH NO
D3DDEVCAPS2_ADAPTIVETESSRTPATCH NO
D3DDEVCAPS2_ADAPTIVETESSNPATCH NO
D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH YES

[/quote]
It's hard to believe such a widely-used feature on OpenGL is not popular on D3D. So you mean N-patches is obsolete.

Share this post


Link to post
Share on other sites

It's hard to believe such a widely-used feature on OpenGL is not popular on D3D. So you mean N-patches is obsolete.


The tesselation offered by GLU is done in software and isn't a part of OpenGL itself, the comparable functionality in D3D is probably:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174094%28v=vs.85%29.aspx from the D3DX library.

For proper hardware tesselation in both APIs you need D3D11/OpenGL 4 tesselation shaders. (or lower OpenGL versions if the GL_ARB_tesselation_shader extension is available)

There is also an ATI extension GL_ATI_pn_triangles that does the n-patch tesselation on some radeon cards (some will do it in software and IIRC it was supported by some nvidia drivers aswell (software only) and a GL_AMD_vertex_shader_tesselator that provides hardware tesslation similar to that used on the xbox360, (The 2nd one has no equivalent in D3D and AFAIK was never supported by any vendor other than AMD.

Share this post


Link to post
Share on other sites

[quote name='leonard2012' timestamp='1334623655' post='4931968']
It's hard to believe such a widely-used feature on OpenGL is not popular on D3D. So you mean N-patches is obsolete.


The tesselation offered by GLU is done in software and isn't a part of OpenGL itself, the comparable functionality in D3D is probably:
http://msdn.microsof...4(v=vs.85).aspx from the D3DX library.

For proper hardware tesselation in both APIs you need D3D11/OpenGL 4 tesselation shaders. (or lower OpenGL versions if the GL_ARB_tesselation_shader extension is available)

There is also an ATI extension GL_ATI_pn_triangles that does the n-patch tesselation on some radeon cards (some will do it in software and IIRC it was supported by some nvidia drivers aswell (software only) and a GL_AMD_vertex_shader_tesselator that provides hardware tesslation similar to that used on the xbox360, (The 2nd one has no equivalent in D3D and AFAIK was never supported by any vendor other than AMD.
[/quote]
Thank you for your further help.
Though GLU is not part of GL, these two libraries are often regarded as one by many developers. Software tessellation is OK as long as this feature is provided. When I refer to OpenGL tessellation, I mean the group of OpenGL 1.2 functions like gluNewTess, gluTessBeginPolygon, gluTessBeginContour and so on. Did you mean the ID3DXPatchMesh::Tessellate method is equivalent to these OpenGL functions and implemented in software?

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!