*spin-off* Tessellation

Tessellation doesn't solve the LOD problem. For interesting shapes (sharp details / edges), you need LODs. In general triangles are not a good rendering primitive if you want to have perfect LOD (perfectly scaling rendering cost, memory access cost, zero popping and infinite draw distance).

I always wondered why many games using tesselation fail so brutaly to use it where it makes most difference, that is round pipes and alike!

Heck can't see why you even need tesselation for that but still. Like for example AvP 2012 where you have millions of polygons for characters and aliens yet the image quality was destroyed seeing ugly hexagonal pipes along the walls..
 
I imagine it's this. It's going to be so "standard", every game will have it, so there's no real reason to mention it in press releases and such, because it's no longer a big deal.
Well, even if it is not hugely publicized tessellation just shows how micropolygon rendering has a huge impact on today's hardware compared to older architectures, because the differences are huge. :oops:

PS3/360 games are starting to look like Atari 2600 games to me --an example I use just to illustrate my point.


I would love to see post-mortem of games in Digital Foundry articles and the like where developers showed comparison shots of textured models and environments with no tessellation and with tessellation.

It would be great if underneath each image they mentioned statistics such as overshading, fps, and polycount.

Then they could really illustrate the point that a tessellated mesh has much more detail than a non tessellated one with a tiny fraction of cost.:eek:

I expect a much more refined tessellation on consoles because they should have a lot more sense to be very judicial about where it's applied. :smile:

Because really, judging by the games mentioned in the thread the consoles don't seem to be struggling so bad, although I would love to see how these consoles perform under extreme tessellation.
 
Last edited by a moderator:

Well, even if it is not hugely publicized tessellation just shows how micropolygon rendering has a huge impact on today's hardware compared to older architectures, because the differences are huge. :oops:

Then they could really illustrate the point that a tessellated mesh has much more detail than a non tessellated one with a tiny fraction of cost.:eek:
I'm not trying to temper your enthusiasm, but tessellation does not mean micropolygon rendering. If all triangles are tessellated into micropolygons the game is likely being inefficient. Also, a tessellated surface is not a tiny fraction of the cost of a non-tessellated surface in most cases. It can be more efficient, but it's not magic.
 
Well, on my PC, I get a lot more slowdown from lighting, shaders, and resolution than I do from polygon count. Some of the demos like Unigine or Stone Giant run pretty much the same whether it's a minimal poly count, or a wireframe so thick it's almost solid. Performance hit seems to be negligible.

It may have something to do with subdivision order.. when does the tessellation occur? Before or after animation and deformation? That can make quite a difference, I would imagine, based on how many of those polygons the system actually has to compute for, or if those computations are done on the low-poly mesh which is then subdivided.
 
DX11 tessellators are programmable, and quite flexible. That's not the problem. The problem is that you practically cannot tessellate down to single pixel triangles ("micropolygons").

And so we wait for more and more generations of GPU power to get up to speed. Not being able to tessellate down to the pixel level is going to be a big problem when trying to achieve photorealism (i.e. film).

So basically our options are to add some geometry LODs, or use per pixel (ray cast) based techniques (such as POM or quadtree displacement mapping). Per pixel techniques have perfect LOD (1:1 screen pixel mapping, and around 1:1 memory access), however many of the currently used techniques are limited to height displacement only (cannot be used to form all kinds of meshes). DX11 conservative depth output improves the performance of per pixel techniques (for silhoutte cases and for real depth output), so we might also see them more in the future games.

I did not know this. So are you guys storing just 8-bit height maps? Has anyone thought of using vector displacement instead of just raising a vertex's height based on the map. You'd most certainly need 16-bit or full float textures to maintain accuracy.

-M
 
And so we wait for more and more generations of GPU power to get up to speed. Not being able to tessellate down to the pixel level is going to be a big problem when trying to achieve photorealism (i.e. film).
In many cases tessellating to pixel sized triangles is overkill and not necessary to achieve the correct pixel color. That said GPUs are certainly not powerful enough or structured properly to tessellate every object into micropolygons and achieve the frame rates gamers expect.
 
Vector based displacement is definitely possible, but it consumes more memory than height fields (and height fields are easy to compress with BC4 without much loss). Vertex tessellation can be seen as a geometry compression method (it saves memory and memory bandwidth compared to rendering similar mesh without tessellation). Storing the geometry data into a heightfield uses less memory/BW than storing the same data to vertices. Vector based displacement techniques offer worse compression ratios (not as much gain as displacement based techniques). Vector based techniques allow tessellation to generate more interesting shapes (less limitations). However if you deviate much from the normal direction, you'd need more vertices (to ensure proper density). This is of course not a problem for offline renderers (aiming for single pixel tessellated triangle sizes), but is a real problem for GPUs.

The biggest problem currently with tessellation is that you cannot aim to have smaller than 8-16 pixel triangles. Otherwise you will kill your quad efficiency (up to 75% pixel shader cycles lost) and you hurt the depth compression performance among other things (increasing bandwidth usage). GPU architecture is just not designed for tiny triangles.

As we must be targeting 8-16 pixel triangles (instead of single pixel ones), we cannot sample height maps (or vector displacement maps) at per pixel (1:1) detail level. If we do, we will have under-sampling issues. This is a similar problem that you see if you disable mip mapping for color textures (horrible shimmering). With vertex displacement mapping the under-sampling problem can be seen as wobbling. To combat this wobbling a smoothed out lower resolution height/vector field must be used (similar to color texture mip mapping). If you combine this with the 8-16 pixel triangle size minimum bound, you will realize that vertex tessellation cannot efficiently generate any details that are smaller than 8-16 pixels in screen. Details smaller than that must be blurred in the height/vector field to combat under-sampling. This affects all surfaces, no matter how far/near from the camera. It is a problem for small sharp details, especially at further away from the camera. The problem can be minimized by including all the sharp details/edges the object meshes (not try to generate these by tessellation). However this requires lots of extra triangles/vertices to the meshes, and thus decreases the potential gains of memory/BW savings gained by tessellation.

Vertex tessellation is still a good technique, but it is harder to use (more limited, requires more extra artist finetuning) and less efficient (lower compression ratio) compared to the micropolygon systems used in offline renderers. It is very good for certain shapes, but it doesn't solve the whole triangle geometry LOD problem. But that's basically true for any compression algorithm. The simpler data set, the easier it is to compress (high compression ratio + minimal loss of data quality).
 
I'm not trying to temper your enthusiasm, but tessellation does not mean micropolygon rendering. If all triangles are tessellated into micropolygons the game is likely being inefficient. Also, a tessellated surface is not a tiny fraction of the cost of a non-tessellated surface in most cases. It can be more efficient, but it's not magic.
I like sharing info, but did I say that?

It's worth noting sebbbi's words that an intelligent, smart and sensitive implementation of tessellation is the job of the developers. This will benefit both the PS4 and Xone.

Whether or not thier implementations prove valuable, adequate and worthy has yet to be seen, but I am excited to read some more information on this sometime when titles use tessellation on the PS4 and Xbox One. We are not used to it on consoles.
 
I just hope that that way low-ish resolution surfaces disappear and everything looks very smooth. Applying super high tessellation would be wasteful but that's the job of developers to choose where and when apply it now that consoles can make use of it.
 
I like sharing info, but did I say that?
Yes. I quoted what you wrote. Whether you meant it the way it read is another matter. For those that don't know I was merely stating that tessellation does necessarily mean micropolygon rendering. If you already knew that you can ignore the statement.
 
Yes. I quoted what you wrote. Whether you meant it the way it read is another matter. For those that don't know I was merely stating that tessellation does necessarily mean micropolygon rendering. If you already knew that you can ignore the statement.
Oh, huh. Yes 3dcgi, I said that, now I realise -I was thinking about the context of the quote. I thought that tessellation was some kind of triangulation where vertex become smaller. At no point did I ever say 'tessellation is only made of micropolygons' nor that I am a techie -I learn a lot here from people like sebbbi, Gipsel and many many others- or anything like that though.

But I must admit I was just following my own hunches.
 
One could almost convince me that this image is prerendered.

...snip...

Which is like a first ever with video games.

Damn, and the whole low poly character's rears its ugly head again just like KZ: SF, Destiny, MGS, etc. :(

I'm starting to think none of the next gen console titles will be attempting a less low poly look for their characters. At least some titles on PC are attempting that with tessellation on some of the more noticeable areas (shoulders, for example).

So far, nothing on next gen consoles though. Which is hugely disappointing considering the hardware capabilities available. But perhaps it's like what I speculated, for launch titles, the console dev's just haven't had time to come to grasps with how to use hardware tessellation.

Regards,
SB
 
I've told you so many times, but it seems you just don't listen, so here we go again.

Tessellation is not going to help that much on characters, especially certain types of characters, in the foreseeable future. The current implementation on nextgen consoles has two main methods:
- the hardware version is triangle based and can be combined with displacement mapping
- the software version used in COD is quad based but cannot be combined with displacement mapping, thus it creates unnaturally smooth curves on organic characters (human bodies, clothes)

Also, both versions are limited in fidelity, because fragment shading is still performed on 2x2 quads at a time and any fragment not covered by a triangle is discarded, causing a loss of performance and thus efficiency. So triangle size should remain well above 10 pixels, which is another significant limitation.

If you have any man-made mechanical elements, like belt buckles, shoes, armor pieces, tactical vests, pouches and such, those will all require very precise edges and corners, which tessellation can not provide either. So you have to model the sharp edges manually, which will cause very small triangles to appear after subdivision/tessellation.

Also, more vertices in the base model are generally preferred because they allow better control over deforming geometry when using skinning or blend shapes.


Insufficient mesh resolution in close-ups should be handled in the modeling stage by adding more vertices. The entire subdiv stuff in COD is in my opinion an overkill approach, those weapons could be modeled from less polygons at the same smoothness...
 
Whether tessellation or just increasing the base triangle density on the character model, I'd just like to see some improvement. Especially in TPS over the shoulder games where the blocky silhouette can be annoyingly "in your face" as evidenced by the shot you posted. Especially in high contrast areas like the character's head against the light colored background. Or the shoulder patch and part of the upper arm against the yellow taxi cab.

Those are some very long straight edges on what should otherwise be at least somewhat more broken up, IMO. It gives the character silhouette a very last gen look.

And this critique isn't just limited to this title, as I mentioned. It's glaring in just about all the next gen titles that have been showcased thus far.

Regards,
SB
 
Laa-Yosh and be a bit more clear on what particular types of characters won't benefit from Tessellation?

From some of the games I've played on PC character tessellations seems to make quite an improvement.

I know Crysis 2 had some very small and intricate tessellation on silly stupid things and that also worked quite well.
 
Laa-Yosh and be a bit more clear on what particular types of characters won't benefit from Tessellation?

From some of the games I've played on PC character tessellations seems to make quite an improvement.

I know Crysis 2 had some very small and intricate tessellation on silly stupid things and that also worked quite well.

As has been stated many times now over the last 4 or 5 years when discussing tessellation, the actual curvature of things matters and that usually means for things where you have a good idea of the actual shape, you end up with a VERY dense control mesh to get the right curvature, so dense in fact that in may circumstances even a single subdivision will result in too high a polygon density. So it can actually end up being more expensive that just a higher polygon count none tessellated model.

It still adds value in some places, but it isn't an all encompassing win.
 
Would it be of any use for deformable terrain? e.g. snow/sand, impact craters. Or would it be better (a lot easier) to just have a really dense mesh instead?
 
Deformable terrain is not a character in my book...

Of course it's good for any kind of terrain, and also water. It adds nice distance based LOD and all, no wonder it's been used for a long time now.
 
Well, most terrain tends to be static, not deformable by user interaction. :p Just making sure...
 
I came across a nice example that actually highlights tesselation in GT6:

12.gif
 
Back
Top