• We should now be fully online following an overnight outage. Apologies for any inconvenience, we do not expect there to be any further issues.

Why do we need tesselation for curved surfaces?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Lonbjerg

Diamond Member
Dec 6, 2009
4,419
0
0
This part was a fun read:

The article claims that the flat surfaces are tessellated heavily and that this is just waste. This is false. The interiors must be tessellated to match the exteriors for precision reasons. Without doing so, you would get--best case--shadow acne. There are significant other problems that make their solution of "just don't tessellate the interior" ludicrous to anyone who has spent any amount of time with actually writing tessellation shaders.

Moreover, tessellation allows artists to more easily get the look they want while allowing them to trivially scale their content back to some sane minimum that they decide upon.

Now it's true, some users won't be able to tell the difference. So what? Others can. Silhouettes are one of the most jarring features to me on modern games. I cannot ignore them and fixing them with a traditional at pipeline is prohibitively expensive. It's also wasteful.

tldr; Crytek was neither lazy nor did they set out to unfairly screw over AMD. They implemented Tessellation. For this round of chips, it turns out that NVIDIA is significantly better at it than AMD.

PS: I fully expect that for the next generation of hardware, AMD will kick ass at tessellation. And for this generation, they've provided their users a workaround that (while unfair from a competitive standpoint is totally great from a consumer standpoint): they've allowed their users a way to clamp tessellation factors to a level where AMD doesn't fall off a performance cliff.

So the anti-nvidia crowd got their shoes in the mouth...who would have guessed? ^^
 

NTMBK

Lifer
Nov 14, 2011
10,455
5,842
136

exar333

Diamond Member
Feb 7, 2004
8,518
8
91
I googled chunks of that quote, and the first hit I got was this: http://forums.anandtech.com/showpost.php?p=32966209&postcount=61 So either you're John Mcdonald, you quoted his words and took credit, or you've put words in his mouth? :S (Especially confusing since that version is missing the starting and ending paragraphs.)

So because you 'Googled something', that makes him a plagiarizer? That's a pretty serious allegation. More proof here please, or shut up...
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
Its been cross linked on other forums discussing the Crysis 2 tessellation issue and was likely jumbled in transition. You can PM me for the source if you wish, i'm not posting it publicly here.
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
I found out that he doesn't mind being known as the nvidia guy, so here's the source:

http://www.shacknews.com/chatty?id=26549250#item_26549250

That is him posting there, although he doesn't usually talk specifically about such matters. Scroll down to the post with a blue star to the left of it. He has done various seminars at GDC, I believe he did one this year and he did one in 2011 as well.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
That was a nice post and offers some insight on why things are done, specifically in Crysis. Sure beats conspiracy theories and finger pointing!
 

zlatan

Senior member
Mar 15, 2011
580
291
136
Actually, this is not true - the excellent tessellation performance of Fermi was an accident. In prior years ATI and nvidia added new features to next gen GPUs as a form of a "checklist" - I don't think anyone expected Fermi to perform tessellation as well as it did. I can dig up some interviews if you want but there are a few programmers at nvidia who basically stated tessellation on the Fermi was a glorious accident - meaning that both ATI and nvidia added the feature as a checkbox. It was certainly an accident that paid off very well for nvidia- once they realized how well their part was doing, they urged developers to take advantage of it. I remember reading a bit from John Mcdonald (a programmer at nvidia) regarding tessellation on GF100, high tessellation performance was not something that nvidia initially sought out with the Fermi, it was unintentional. But even being a glorious accident, it was a good thing since it drove development even if slightly. Nvidia basically realized that they were sitting on a gold mine and at this point, they urged developers to add tessellation to various PC titles.

Technically it was not an accident. They designed to get high geometry throughput, but they don't count on rasterizer efficiency. This is very important, because today's GPUs rasterize 2x2 grid of pixels, which are always processed as a group. The minimal triangle size should be around 16 pixels, which will guarantee 90+ percent rasterizer efficiency. If a triangle size lower than 8-10 pixels the rasterizer will process too much unnecessary work.
Also Microsoft implemented the NoSplit tessellation model, which is the worst of all. It's very limited in adaptive tessellation, and mostly produce cracks along patch boundaries. I think the next step is to replace this with DiagSplit, which is performs adaptive crack-free tessellation . Also we need the quad-fragment merging pipeline to boost rasterizer efficiency with small triangles.

NVIDIA can make advantage from they tessellation approach, but only if the program use very low-poly models. This is not typical for today's use case.
 

NTMBK

Lifer
Nov 14, 2011
10,455
5,842
136
So because you 'Googled something', that makes him a plagiarizer? That's a pretty serious allegation. More proof here please, or shut up...

How do you need mroeproof? Just follow the link I posted there. He uses those words as his own in that thread, without giving any credit to Mcdonald.

Its been cross linked on other forums discussing the Crysis 2 tessellation issue and was likely jumbled in transition. You can PM me for the source if you wish, i'm not posting it publicly here.

Fair enough, that was a quote from him. Still confused why you reposted it a large chunk of it as if it were your own words in "HD5870 vs GTX480 two years later" without giving any credit though.
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
I didn't do that. I found the quote somewhere else many months ago and copy pasted it here, changed from transitions maybe. But that is the original source.
 

cmdrdredd

Lifer
Dec 12, 2001
27,052
357
126
He was right though. Nvidia was better last gen and now AMD is on par with nvidia's tessellation performance and might even surpass it sometimes.

I used to always think, from my searching on forums, that crysis 2 had hidden oceans of tessellation either on purpose or by laziness and that was the problem with 6970 performance in that title. Now what was quoted about it bwing by accident makes sense because as was mentioned there is no real world test for new features so a lot of times it is added to a gpu as a check on the list of features they want to have on the new cards.

Either way the performance is similar on both AMD and nvidia gpus today if you look at the higher end
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
Yeah, the truth of the matter is that GF100 was signifigantly better at tessellation than the 5870. I'll admit that I jumped on the "why the heck did crytek do this?" train when the tessellation news came out, but the explanation from McDonald makes complete sense. Tessellation performance isn't really an issue with either side now with current gen chips at least.

My main concern is next gen consoles adopting tessellation, since consoles are driving game development these days.
 

NTMBK

Lifer
Nov 14, 2011
10,455
5,842
136
I didn't do that. I found the quote somewhere else many months ago and copy pasted it here, changed from transitions maybe. But that is the original source.

Ahhh. I was misreading dates- I'm used to British style. Thought that you only posted that in August, not February. I guess it somehow could have been mangled by board software updates. :sneaky:
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
Technically it was not an accident. They designed to get high geometry throughput, but they don't count on rasterizer efficiency. This is very important, because today's GPUs rasterize 2x2 grid of pixels, which are always processed as a group. The minimal triangle size should be around 16 pixels, which will guarantee 90+ percent rasterizer efficiency. If a triangle size lower than 8-10 pixels the rasterizer will process too much unnecessary work.

Minimum size of a triangle for Fermi+ chips is 8 pixel.

NVIDIA can make advantage from they tessellation approach, but only if the program use very low-poly models. This is not typical for today's use case.

Nearly every object in today games is low poly. It's start with walls and end with small objects like cups. The only reason we don't see so many games using Tessellation Crysis 2 and HAWX2 is because of AMD's useless hardware. There is not one Gaming Evolved title on the market which is showcasing Tessellation.
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
because of AMD's useless hardware. There is not one Gaming Evolved title on the market which is showcasing Tessellation.

I was under the impression that all Square Enix games used tessellation extensively. I know some people here don't play PC games whatsoever but speaking as a PC gamer, let me fill you in: DE:HR, Sleeping Dogs, Dirt 3, Dirt Showdown, Aliens vs Predator, Nexuiz, yep, no AMD titles have tessellation, there you have it folks. Useless hardware, that definitely isn't an inflammatory remark.

Secondly, your reason is wrong. Consoles drive the gaming industry, not PC's, that is a fact. Consoles don't have tessellation yet thus most titles do not have tessellation.
 
Last edited:

Arkadrel

Diamond Member
Oct 19, 2010
3,681
2
0
I dont get why Tessellation has to be show cased.
Ultimately its up to graphics/art design guys that make the games.

There are games without tessellation that can "look" better than games that do use it.
It comes down to how skilled the developers are at graphics.

Dispite this people make it sound like we should just throw endless tessellation at things... thats bound to make a game look better right? wrong.

That said, the technology is there. You would hope developers made use of it.
 

zlatan

Senior member
Mar 15, 2011
580
291
136
Minimum size of a triangle for Fermi+ chips is 8 pixel.
And the rasterizer efficiency will be 50-60 percent with that, which is to low. NVIDIA just said that we can use triangle size around 8 pixels, but it will be inefficient on all GPUs.

Nearly every object in today games is low poly. It's start with walls and end with small objects like cups. The only reason we don't see so many games using Tessellation Crysis 2 and HAWX2 is because of AMD's useless hardware. There is not one Gaming Evolved title on the market which is showcasing Tessellation.
This is not true. Developers won't create different content for PC and consoles, especially not for models. So we just tessellate high poly console models to very high poly (and also create higher quality textures). That's all, and we won't change this just for NVIDIA. I understand that they made some bad decisions, but this is not our problems.
Tessellation is not a bad thing, nobody said this, but if you use it wrong than it will kill performance, without adding real detail to the game. AMD just want to use it in a useful way. And for the games: 11 GE titles use tessellation, but only 8 in the TWIMTBP titles.
NVIDIA's biggest problem is that implementing tessellation is not easy. They want to help us/developers with algorithms. I can write the code, but some help is always good. The problem is that we don't have time and resources to design a game that looks good with and without tessellation. If NVIDIA want more tessellation in games, than send us artists and not programers. Writing a code is much easier than designing a world for it.
 
Last edited:

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
Yeah, the truth of the matter is that GF100 was signifigantly better at tessellation than the 5870. I'll admit that I jumped on the "why the heck did crytek do this?" train when the tessellation news came out, but the explanation from McDonald makes complete sense. Tessellation performance isn't really an issue with either side now with current gen chips at least.

My main concern is next gen consoles adopting tessellation, since consoles are driving game development these days.

Personally was grateful in a way to see DirectX 11 content considering how Crysis 2 started only as DirectX 9, with much more focus on multi-platform. It was great see AMD win in Crysis 2 benches and see their hardware improve in tessellation, too.
 

RussianSensation

Elite Member
Sep 5, 2003
19,458
765
126

Wow! I've never seen that video before. The tessellation looks overdone there, a total waste of GPU resources in some of those places. Perhaps developers need to learn how to use it better. In that video, it looks like they threw tessellation at a problem that didn't exist and the end result is a huge performance hit with hardly any noticeable increase in visuals. Crysis 2's focus on tessellation out of the blue is odd indeed after removing complex light shafts, physics effects, and higher textures of Crysis 1, they spent all their time on tessellated assets as sprinkled DX11 effects? That was not great honestly. Still it could be much much worse such as The Secret World where it makes the game look worse with it or Metro 2033 (where you can barely notice it).

Tessellation needs to become adaptive for it to take off. Otherwise, the GPUs are just tessellating the game's assets right off the bat and hampering performance, but the end user often cannot see any visual gain until he/she zooms in on a rock like 5 inches from it.

Tessellation was no part of DX10. That the typical NV-bash nonsense. If you think about it: AMD's Evergreen cards are useless for Tessellation. Even AMD would not have DX10 hardware with the performance to use it.

How did you already manage to turn this thread into AMD vs. NV when no one was bashing NV for anything before your post? :eek:

3%. That's the impact of the water in Crysis 2 on AMD hardware.

The tessellation wasn't just in the water but in places it shouldn't have been at all like concrete barriers. AMD HD5800/6900 series suffered a huge performance penalty due to tessellation in Crysis 2. That's not really the question the OP asked, which is why we need tessellation for curved surfaces in games?

SSAO in Dragon Age 2 drags more than 50% on nVidia hardware in scene in which it's not visible.

Dragon Age 2 runs faster on NV hardware. What was the point of this example that SSAO is graphically intensive on modern videocards? Yes, that's known already and it's not just a case for Dragon Age 2.

I agree with Grooveriding that tessellation still needs to improve:

1) Right now it requires pre-tessellated assets from game artists (that's very costly); in other words all the tessellation is currently scripted,

2) Modern GPUs aren't able to run a game with a lot of tessellation (I bet Crysis 3 will show us even more heavy tessellation and bring modern GPUs to their knees) yet. Because of this only some parts of the game can be tessellated to maintain reasonable performance on current high-end GPUs.

That's not to say that tessellation is not a good feature or that it doesn't have a lot of potential long-term. Based on the main square/dragon scene from Unigine Heaven 3.0, and the resulting frame rate drop, it's pretty obvious we need another 3-4 generations of GPUs before we even think about widespread use of adaptive tessellation.

Right now not many games use tessellation widely simply because it requires pre-tessellated assets and that's really what's stopping it from taking off I feel. Tessellation was supposed to improve scene complexity, while simplifying things for the artists, but so far it did the opposite, requiring them to do extra work.
 
Last edited:

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
And the rasterizer efficiency will be 50-60 percent with that, which is to low. NVIDIA just said that we can use triangle size around 8 pixels, but it will be inefficient on all GPUs.

Fermi+ Rasterizer only puts out 8 pixels per clock.

This is not true. Developers won't create different content for PC and consoles, especially not for models. So we just tessellate high poly console models to very high poly (and also create higher quality textures). That's all, and we won't change this just for NVIDIA. I understand that they made some bad decisions, but this is not our problems.
Flat walls are not high poly. Flat weels are not high poly. Flat surfaces are not high poly. This is an example from Crysis 2:
http://forums.anandtech.com/showpost.php?p=33846779&postcount=85

You see we don't need new assets, what we want is the high poly you designed for the game.

Tessellation is not a bad thing, nobody said this, but if you use it wrong than it will kill performance, without adding real detail to the game. AMD just want to use it in a useful way. And for the games: 11 GE titles use tessellation, but only 8 in the TWIMTBP titles.
That's the typical PR nonsense i hear from AMD. How can you say this without proof? AMD is only using PN-Triangle for nearly all of their latest games with Tessellation. There is no game which have the same terrain detail like HAWX2 or object detail like crysis 2.

NVIDIA's biggest problem is that implementing tessellation is not easy. They want to help us/developers with algorithms. I can write the code, but some help is always good. The problem is that we don't have time and resources to design a game that looks good with and without tessellation. If NVIDIA want more tessellation in games, than send us artists and not programers. Writing a code is much easier than designing a world for it.
We would not need tessellation if games would look good without it. But as long as games have only flat surfaces with a texture showing "depth and height" details then we need it.

Wow! I've never seen that video before. The tessellation looks overdone there, a total waste of GPU resources in some of those places. Perhaps developers need to learn how to use it better. In that video, it looks like they threw tessellation at a problem that didn't exist and the end result is a huge performance hit with hardly any noticeable increase in visuals. Crysis 2's focus on tessellation out of the blue is odd indeed after removing complex light shafts, physics effects, and higher textures of Crysis 1, they spent all their time on tessellated assets as sprinkled DX11 effects? That was not great honestly. Still it could be much much worse such as The Secret World where it makes the game look worse with it or Metro 2033 (where you can barely notice it).

Tessellation needs to become adaptive for it to take off. Otherwise, the GPUs are just tessellating the game's assets right off the bat and hampering performance, but the end user often cannot see any visual gain until he/she zooms in on a rock like 5 inches from it.

I guess Crytek learned nothing from Crysis 2 (starts at 3:30): http://nvidia.fullviewmedia.com/gdc2012/03-crytek.html

The tessellation wasn't just in the water but in places it shouldn't have been at all like concrete barriers. AMD HD5800/6900 series suffered a huge performance penalty due to tessellation in Crysis 2. That's not really the question the OP asked, which is why we need tessellation for curved surfaces in games?
And it makes it not more true. And how many times will you repeat it? :\

Dragon Age 2 runs faster on NV hardware. What was the point of this example that SSAO is graphically intensive on modern videocards? Yes, that's known already and it's not just a case for Dragon Age 2.
Who cares if it runs faster now? And what has this to do with AMD? Maybe they lost the same performance or less: This is about a Gaming Evolved title with a graphics effect costing performance without a visual impact.

I agree with Grooveriding that tessellation still needs to improve:

1) Right now it requires pre-tessellated assets from game artists (that's very costly); in other words all the tessellation is currently scripted,
It will always need "pre-tessellated assets". Tessellation doesn't create new Control Points out of nothing.

2) Modern GPUs aren't able to run a game with a lot of tessellation (I bet Crysis 3 will show us even more heavy tessellation and bring modern GPUs to their knees) yet. Because of this only some parts of the game can be tessellated to maintain reasonable performance on current high-end GPUs.
Yeah, because "Tessellation" is the only effect games offer. Funny fact: Tessellation is the only useful effect in HAWX2 and this game runs with over 100fps on a GTX480...

Right now not many games use tessellation widely simply because it requires pre-tessellated assets and that's really what's stopping it from taking off I feel. Tessellation was supposed to improve scene complexity, while simplifying things for the artists, but so far it did the opposite, requiring them to do extra work.
Wow - sry, but you have no understanding of Tessellation. It makes it not easier for the designer or artists. The reason why Tessellation exists to make it possible to improve the geometry complexity without a huge performance impact.
 
Last edited:

Lonbjerg

Diamond Member
Dec 6, 2009
4,419
0
0
I dont get why Tessellation has to be show cased.
Ultimately its up to graphics/art design guys that make the games.

There are games without tessellation that can "look" better than games that do use it.
It comes down to how skilled the developers are at graphics.

Dispite this people make it sound like we should just throw endless tessellation at things... thats bound to make a game look better right? wrong.

That said, the technology is there. You would hope developers made use of it.

http://blogs.amd.com/play/2009/06/02/why-we-should-get-excited-about-directx-11/ :sneaky:

More here:
http://www.bit-tech.net/bits/2008/09/17/directx-11-a-look-at-what-s-coming/3

Tesselation is the future...that is why it matters.
 
Last edited:

zlatan

Senior member
Mar 15, 2011
580
291
136
Fermi+ Rasterizer only puts out 8 pixels per clock.
That's a bad thing for efficiency, but acceptable. 4 rasterizer with 8 pixel/clock is nearly identical what you can get from 2 rasterizer with 16 pixel/clock. Of course less rasterizer with more throughput is better, but not much.
But the problem is not here. No matter what you can get from the hardware. The rasterizer efficiency is a problem that created by the group based pixel processing.

Flat walls are not high poly. Flat weels are not high poly. Flat surfaces are not high poly. This is an example from Crysis 2:
http://forums.anandtech.com/showpost.php?p=33846779&postcount=85

You see we don't need new assets, what we want is the high poly you designed for the game.

For the pictures ... this is a good way to use tessellation. But the time is still a problem. I can code the function to the engine really fast, but for what ... one asset, or two? It just not worth it.

That's the typical PR nonsense i hear from AMD. How can you say this without proof? AMD is only using PN-Triangle for nearly all of their latest games with Tessellation. There is no game which have the same terrain detail like HAWX2 or object detail like crysis 2.

If AMD said this, then they told the truth. I dealt with tessellation a lot, and it's not that simple as it seems. It's really hard to code a good adaptive approach for the terrain. With DX11 is almost impossible.
HAWX 2 is easy. It's a flight game. The plane won't contact with the tessellated surface. For games like Dragon Age 2 is much different. Just see for yourself: http://i2.photobucket.com/albums/y30/borcth/fdsa-1.jpg
The tessellated surface with displacement map is just a virtual surface, it won't interact. This is a major problem for artists, because they can't design the game both for tessellated and non-tessellated surface.
Crysis 2 is easier. It tessellate a lot of surface without adding a displacement map, so the surface is still flat. Developers can do it, but it makes sense?

We would not need tessellation if games would look good without it. But as long as games have only flat surfaces with a texture showing "depth and height" details then we need it.

I think it's not secret that a class AAA game development is expensive. Most of the money goes for creating content. In theory we would be able to make better content, but nobody finance it, and also we won't have extra one year for this work.
 
Last edited:

RussianSensation

Elite Member
Sep 5, 2003
19,458
765
126
Wow - sry, but you have no understanding of Tessellation. It makes it not easier for the designer or artists. The reason why Tessellation exists to make it possible to improve the geometry complexity without a huge performance impact.

Oh really? Here is my side.

Your opinion about how Tessellation works and discounting dynamic/adaptive tessellation shows you have not followed the topic at all or understand its benefits should adaptive/dynamic tessellation enter game development in its proper form. Pre-tessellated assets was not at all how tessellation breakthrough was marketed when it debuted during Fermi launch. Need I remind you from Nvidia directly:

http://www.nvidia.com/object/tessellation.html

Seamless Level of Detail

"In games with large, open environments you have probably noticed distant objects often pop in and out of existence. This is due to the game engine switching between different levels of detail, or LOD, to keep the geometric workload in check. Up until this point, there has been no easy way to vary the level of detail continuously since it would require keeping many versions of the same model or environment. Dynamic tessellation solves this problem by varying the level of detail on the fly. For example, when a distant building first comes into view, it may be rendered with only ten triangles. As you move closer, its prominent features emerge and extra triangles are used to outline details such as its window and roof. When you finally reach the door, a thousand triangles are devoted to rendering the antique brass handle alone, where each groove is carved out meticulously with displacement mapping. With dynamic tessellation, object popping is eliminated, and game environments can scale to near limitless geometric detail."

and on reducing the amount of work artists would need to do for their models:

Scalable Artwork

"For developers, tessellation greatly improves the efficiency of their content creation pipeline. In describing their motivation for using tessellation, Jason Mitchell of Valve says: “We are interested in the ability to author assets which allow us to scale both up and down. That is, we want to build a model once and be able to scale it up to film quality…Conversely, we want to be able to naturally scale the quality of an asset down to meet the needs of real-time rendering on a given system.”

This is exactly why Cavet Yerli criticized the current implementation of tessellation in games that do require pre-tessellated assets. Dynamic/adaptive tessellation does not, which makes it easier on the artists and was the whole point of Tessellation being the break-through. The current implementation of tessellation is very basic and inefficient, requiring extra art assets and models, which was the opposite of what tessellation was supposed to accomplish.

It will always need "pre-tessellated assets". Tessellation doesn't create new Control Points out of nothing.

•Revamped DirectX 11 Tessellation - Introducing Adaptive Tessellation
DX11 support and tessellation has come a long way since Crysis 2. Phong, PN triangles and displacement maps, along with no need for pre-tessellated assets. What the video demonstrates is that CryEngine 3.4.0 can now vary the tessellation for 3D models depending on camera distance. Though the video seems to suggest it’s creating new polygons to a model, it’s actually altering what is there to give the impression of detail. In other words, the closer you are the more detail will be rendered while models further way will require much less processing - the end result is more graphics, without new assets!

This is the opposite of how tessellation works right now: The GPU is asked to render pre-tessellated assets in full, regardless how close or far the tessellated asset is from the screen. If you want to add more detail up close, you have to design yet another pre-tessellated model. Then what ends up happening is 1 extremely over-tessellated model such as the Dragon in the Unigine Heaven 3.0 since that is the most cost-effective method currently. What that invokes is a massive waste of geometry resources for the GPU. The alternative is designing many models of the same pre-tessellated dragon and changing them on the fly as you get closer to the dragon, but that increases artistic costs of game development.

And now, your response why there is no such thing as adaptive tessellation and why we should like the current implementation of excessive tessellated assets.
 
Last edited:

zlatan

Senior member
Mar 15, 2011
580
291
136
RussianSensation: These articles are just for PR.
It's true in an ideal world where developers just make games for the PC. But most games are multi-platform.

There are some situations when you don't need pre-tessellated assets, but mostly this is not the case. Also adaptive approach will produce cracks along patch boundaries.

I'm sure that tessellation is a way to the future but now there are too many problems with it. Some of the problems are solvable with Ptex and vector displacement mapping. Ptex also a really interesting technique, but GCN is the only architecture designed for hardware-based virtual texturing.
 
Last edited:

Spjut

Senior member
Apr 9, 2011
932
162
106
Do devs with experience from tessellation on the 360 have any advantage when moving to DX11 tessellation?