Why do we need tesselation for curved surfaces?

RussianSensation

Elite Member
Sep 5, 2003
19,458
765
126
Quake III Arena using ATI TruForm

"TruForm was an early tessellation implementation created by ATI and employed in DirectX 8 and OpenGL graphics cards, on both Mac and Windows. The technology was first employed on the Radeon 8500 in 2001. Before the adoption of pixel shader-enhanced bump mapping methods such as normal and parallax mapping that simulate higher mesh detail, curved 3D shapes in games were created with large numbers of triangles. The more triangles are used, the more detailed and thus less polygonal the surface appears. TruForm creates a curved surface using the existing triangles, and tessellates this surface to make a new, more detailed polygonal model. It is designed to increase visual quality, without significantly impacting frame rates, by utilizing hardware processing of geometry.

TruForm was not significantly accepted by game developers because it ideally required the models to be designed with TruForm in mind. To enable the feature without causing visual problems, such as ballooned-up weapons, the models had to have flags identifying which areas were to be tessellated. The lack of industry-wide support of the technique from the competition caused developers to ignore the technology.It was never accepted into the DirectX or OpenGL specifications."


ATI TruForm seems to be can be emulated
http://ogldev.atspace.co.uk/www/tutorial31/tutorial31.html

So now you know ATI had tessellation since 2001 and did little to push that feature until NV brought it back to life with Fermi and did a much better job. Chuck another one to ATi's/ AMD's mismanagement of technology that was right under their fingertips, and JHH's creative genius to truly market and exploit it first!
 
Last edited:

gorobei

Diamond Member
Jan 7, 2007
3,906
1,386
136
So now you know ATI had tessellation since 2001 and did little to push that feature until NV brought it back to life with Fermi and did a much better job. Chuck another one to ATi's/ AMD's mismanagement of technology that was right under their fingertips, and JHH's creative genius to truly market and exploit it first!

tessellation was part of dx11.

nvidia had nothing to do with bringing it back or marketing it first. hd5870 was out with tessellation before fermi and jhh and co's policy line was that tess wasn't important. after fermi came out, tess became all important.

i read somewhere in a forum that tess was supposed to be in dx10, but nv pressured ms to remove it. given ati's longer history with tess, they likely would have edged out nv on another benchmark at the time.

tess is a double edged sword, a little can do wonders but too much in the wrong places is literally a hindrance. unnecessary subdivision(ie crysis2 water) drags performance down.
game engines should be tessellating on a per object, per distance, per surface frequency basis. additionally there will be many times when tess is entirely unnecessary and simple normal mapping would perform far better.
 

Red Hawk

Diamond Member
Jan 1, 2011
3,266
169
106
Nvidia certainly prioritized and put effort into tessellation, or their cards wouldn't have blasted past AMD's first generation DirectX 11 cards when it came to tessellation performance.
 

3DVagabond

Lifer
Aug 10, 2009
11,951
204
106
We'll see the benefits of tessellation once the games are designed with it. Right now they are using it on models that are designed to work without it and are far more complex than they need to be before it's applied. Once done properly we'll actually see both an improvement in IQ and performance. Right now, it just hurts performance and is only applied to a small amount of the scene.
 

Grooveriding

Diamond Member
Dec 25, 2008
9,147
1,329
126
Honestly screw tessellation. We have nowhere near the hardware to run everything tessellated. By the time we do maybe we can have games using ray tracing.

That could deliver true to life visuals in gaming and looks to be far more promising than anything tessellation has done.
 

lamedude

Golden Member
Jan 14, 2011
1,214
19
81
GF3 has tesseslation in the form of r-patches but I think it was quickly removed from drivers and never spoken off again (all Google can find is a couple forum post about it) so ATI isn't alone in having tess since 2001 and not pushing it.
 

ViRGE

Elite Member, Moderator Emeritus
Oct 9, 1999
31,516
167
106
Quake 3:Arena managed truly curved surfaces without tesselation.
Actually it used tessellation. The purpose of B-splines was to serve as a template to create the tessellated geometry.

This is probably the best layman's explanation you'll get on the subject.

Q3 engine's curved surfaces are actually quadratic bezier spline patches (9 control points per patch). The patches had to be designed with special tools in an editor and were tessellated at runtime to an appropriate detail level based on the computer's graphics settings. The engine did not support any kind of collision detection with these surfaces so they had to be enveloped in invisible brushes to appease the BSP system for collision and culling.

While they were interesting at the time the reasons nobody really does this anymore are probably:

  • The special tools required to design curved surfaces need to be supported by the artist's tools and entire game toolchain, creating more work for artists and tool programmers
  • Quadratic bezier patches are one of the simplest types of curved surface but can still be difficult to work with. Certain shapes are hard to construct properly with them.
  • Lastly I'd say they've been kind of superseded by smooth / detail surfaces available through subdivision algorithms which can work on conventional geometry and conventional tools, and is supported on modern cards in hardware
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
tessellation was part of dx11.

nvidia had nothing to do with bringing it back or marketing it first. hd5870 was out with tessellation before fermi and jhh and co's policy line was that tess wasn't important. after fermi came out, tess became all important.

i read somewhere in a forum that tess was supposed to be in dx10, but nv pressured ms to remove it. given ati's longer history with tess, they likely would have edged out nv on another benchmark at the time.

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.

tess is a double edged sword, a little can do wonders but too much in the wrong places is literally a hindrance. unnecessary subdivision(ie crysis2 water) drags performance down.
3%. That's the impact of the water in Crysis 2 on AMD hardware.
SSAO in Dragon Age 2 drags more than 50% on nVidia hardware in scene in which it's not visible.
 
Last edited:

Arkadrel

Diamond Member
Oct 19, 2010
3,681
2
0
Why do we need tesselation for curved surfaces?
The irony.... because thats the place where IQ improves by use of tessellation
(only if its needed to do something they cant without).

What we need to stop is people useing it on flat surfaces, with no IQ gain.
That and invisible oceans :p

If you think about it: AMD's Evergreen cards are useless for Tessellation.

Are you saying a 5870's ability to do tessellation is useless?
I ll just say I beg to differ.

Using insane amounts of tessellation for almost no image quality gain is what is nuts.
 
Last edited:

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
The irony.... because thats the place where IQ improves by use of tessellation
(only if its needed to do something they cant without).

I guess you have no clue what Tessellation really means, gell?

Are you saying a 5870's ability to do tessellation is useless?
I ll just say I beg to differ.

Using insane amounts of tessellation for almost no image quality gain is what is nuts.

It's useless. The 5870 tanks in Lost Planet 2, HAWX2, Batman:AC and Crysis 2. All four games use tessellation in combination with Displacement Maps. From a technical standpoint the 5870 is like r200: One geometry pipeline with one tessellator.
 

gorobei

Diamond Member
Jan 7, 2007
3,906
1,386
136

Arkadrel

Diamond Member
Oct 19, 2010
3,681
2
0
It's useless. The 5870 tanks in Lost Planet 2, HAWX2, Batman:AC and Crysis 2.
HAWX2 @1920x1200 AAx8 DX11, avg more than ~65 fps. (not as high as 480's 100+ fps)

Lost Planet 2 @1920x1200; AMD Radeon 5870 = 39.6 fps Nvidia Geforce 480 = 51,6 fps.

Batman:AC @1920x1200 (4xAA/16xAF) 5870 = ~35 fps vs 570 = 46 fps
(was no 480 on this graph, was from a resent 670 review from computerbase.de, so used the 570)

Crysis 2 @1920x1200 (ULTRA + HQ textures) 5870 = 33 fps vs 480 = 45 fps


Its still playable... I wouldnt call the 5870 useless, I think thats way to harsh.
 

-Slacker-

Golden Member
Feb 24, 2010
1,563
0
76
Show me where this is done...outside AMD blog posts...

http://www.youtube.com/watch?v=IYL07c74Jr4

1:50

3:00

etc

not counting the instances where tess is used to place tiny bumps on objects with low contour geometry, for which a similar effect could be achieved by using simple bump mapping.




You know this. You have made the same argument several times in the past and were corrected but, for some reason, you keep coming back with the same shtick. Odd.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
HAWX2 @1920x1200 AAx8 DX11, avg more than ~65 fps. (not as high as 480's 100+ fps)

Lost Planet 2 @1920x1200; AMD Radeon 5870 = 39.6 fps Nvidia Geforce 480 = 51,6 fps.

Batman:AC @1920x1200 (4xAA/16xAF) 5870 = ~35 fps vs 570 = 46 fps
(was no 480 on this graph, was from a resent 670 review from computerbase.de, so used the 570)

Crysis 2 @1920x1200 (ULTRA + HQ textures) 5870 = 33 fps vs 480 = 45 fps


Its still playable... I wouldnt call the 5870 useless, I think thats way to harsh.

It's useless for Tessellation, not for scenes without it.
 

Bobisuruncle54

Senior member
Oct 19, 2011
333
0
0
Wow there's some Nvidia fanboy crap in this thread. I expect more of Anandtech members to be perfectly honest.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
Quake III Arena using ATI TruForm

"TruForm was an early tessellation implementation created by ATI and employed in DirectX 8 and OpenGL graphics cards, on both Mac and Windows. The technology was first employed on the Radeon 8500 in 2001. Before the adoption of pixel shader-enhanced bump mapping methods such as normal and parallax mapping that simulate higher mesh detail, curved 3D shapes in games were created with large numbers of triangles. The more triangles are used, the more detailed and thus less polygonal the surface appears. TruForm creates a curved surface using the existing triangles, and tessellates this surface to make a new, more detailed polygonal model. It is designed to increase visual quality, without significantly impacting frame rates, by utilizing hardware processing of geometry.

TruForm was not significantly accepted by game developers because it ideally required the models to be designed with TruForm in mind. To enable the feature without causing visual problems, such as ballooned-up weapons, the models had to have flags identifying which areas were to be tessellated. The lack of industry-wide support of the technique from the competition caused developers to ignore the technology.It was never accepted into the DirectX or OpenGL specifications."


ATI TruForm seems to be can be emulated
http://ogldev.atspace.co.uk/www/tutorial31/tutorial31.html

So now you know ATI had tessellation since 2001 and did little to push that feature until NV brought it back to life with Fermi and did a much better job. Chuck another one to ATi's/ AMD's mismanagement of technology that was right under their fingertips, and JHH's creative genius to truly market and exploit it first!

The showcase title for TruForm was in Half-life, to me, and enjoyed it in Myth 3.
 

Meghan54

Lifer
Oct 18, 2009
11,684
5,225
136
Wow there's some Nvidia fanboy crap in this thread. I expect more of Anandtech members to be perfectly honest.


Dude, the video card forum is damned near as partisan as P&N with darned near as bad a set of instigators, sometimes worse. And that's funny because the two opposing camps are so strident about defending "their" gpu company, so dead set against anything "good" being spoken about their arch nemesis gpu company, and all this going on despite the fact both gpu companies simply want to empty both sides' wallets and that's all.
 

Lonbjerg

Diamond Member
Dec 6, 2009
4,419
0
0
http://techreport.com/review/21404/crysis-2-tessellation-too-much-of-a-good-thing/1

ocean aside. the barrier and the window frame bricks are absolutely wasting polygons and resources. the displacement to generate the mortar recess can be done at 2 or 3 subdivision setting vs the apparent 10-12 divisions used. the rest of the high frequency detail should be done with normal and parallax maps.

I see no subpixel tesselation...so I ask again...where does this take place...outside AMD blog posts?!
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
Nvidia certainly prioritized and put effort into tessellation, or their cards wouldn't have blasted past AMD's first generation DirectX 11 cards when it came to tessellation performance.

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.
 
Last edited:

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
Written by John Mcdonald on a message board that he frequents: i'll PM the source

I wasn't specifically involved with the Crytek stuff, so I don't know any firsthand information about it. Which, as it turns out, is a good thing--because if I knew anything about it I certainly couldn't talk about it.

What I can do is talk about tessellation more generally. But before we get to that, let's talk a little about history.

For most of the previous generation "big chips" (the first one to come out on the market of a particular architecture), there have been one or more features tied specifically to those big chips. For example, with geForce 3, programmable shaders were added--but they were very limited in what they could do. With geForce FX (the 5000 series), long shaders were added, and for the first time you could perform math operations in your shader before you did a texture lookup. With the 8000 series, Geometry Shaders were added. With the 4xx series, tessellation was added.

Sometimes ATI/AMD released these chips/features a little before NVIDIA--that's not the point here. The point is that with the exception of tessellation, every one of those first generation chips had something in common: the first chips that came out with a new feature were fucking terrible at it. Geometry Shaders were so bad in the 8800 that both us and AMD literally told developers "please don't use this." This was true for long shaders in the geForce FX series, and even way back in the geForce 3 days developers were told to keep their shaders as simple as possible.

Along came tessellation. As it turned out, we were good at this. Amazing, actually. Unfortunately, AMD was not. The reasons are somewhat boring, but the truth is that we're significantly better at tessellation--for this generation--than AMD is. And it's not surprising that they're not. Every generation of hardware ever suggested that when the feature came out, we'd be bad at it, too. (As it turns out, it's really hard to get a complex feature right when you have absolutely no practical use cases that take advantage of that feature).

Now here's the dilemma for tessellation: how do you make comparisons between the vendors fair? Selling visual fidelity is hard. It's hard to tell a user: "look, our framerate is lower but our picture is prettier." Consumers don't listen even when it's true. Consumers long ago indicated that FPS was their one true metric for "I bought card A over card B". That means that when something like this comes along, the developer can either hobble the fair comparison between two cards by significantly reducing the workload on one GPU or the other, or they can make the comparison fair and people will cry that the performance on the losing vendor has been intentionally hobbled.

Tessellation can significantly improve the visual fidelity and realism of a scene. I think we all remember crazy octagon head in Doom 3. Tessellation helps improve silhouettes that are both inside geometry and outside geometry. (Silhouettes inside geometry are the result of material changes or lighting discontinuities--both of which can be significantly improved with tessellation).

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.