Crysis 2 Tessellation Article

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

96Firebird

Diamond Member
Nov 8, 2010
5,712
316
126
Nvidia's TWIMTBP employs 220 software people to go and 'help' developers make games the way they're meant to be played i.e. with a slower frame rate on AMD hardware and vast levels of tessellation on flat surfaces that can't be seen and invisible tessellated oceans swirling around below cities.
Try reading the thread from the top and you'll see it.

Oh, I've read the thread from the beginning. Still looking for that source that proves Nvidia helped lazy Crytek with the rushed DX11 patch that PC users cried was missing. You'd think after the game was released, Nvidia would not waste any more hours on a game that already has their name in it. But according to some of you, Nvidia should go into developing PC games themselves... I mean, they have all the resources to do so.

I think that is a good thing and would not argue otherwise. I don't think any sane contributor would dispute that tessellation used appropriately to improve image quality is good. I am merely saying tessellation implemented to flat or invisible surfaces has no earthly purpose that I can see other than to slow down AMD hardware a bit more than Nvidia hardware.

There is thing called laziness. Crytek developers (or whoever was in charge of tessellation) are lazy. They simply said, "They want a DX11 patch? They'll get a half-assed DX11 patch."
 
Last edited:

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
I think screenshots is the word you're looking for!

Not really:

On the other hand, while the Radeon HD 6900s are supposed to double throughput when tessellation is used (we confirmed this in theoretical tests), in practice this isn’t the case in Crysis 2. Is this due to a GPU limitation in certain cases? Are the drivers limited in terms of support for the double tessellator? Or is it a bug? As during our tests AMD had no answer other than the drivers advised for use with Crysis 2 DirectX 11 were still the Catalyst 11.6s, we don't know.

Since you're objective, why didn't you point this out?

Or,

There is a slight difference in quality when you set the MaxTessFactor at 32. It’s invisible on most elements of the image but noticeable on the walls. As of 16, quality drops more significantly on the walls but remains pretty much equivalent on other objects. Beyond 16, while some elements are still displayed with a decent level of quality, this isn't the case for the walls at all – they’re probably the objects that benefit most from tessellation.

I did hear vocal claims of how wonderful it is to have this clamping feature and nVidia should offer one as well, cause it is a good thing:

Someone posted a link to a pcgh article sonewhere in this thread. Basically the 2x tessellation throughput of 6900 goes down the drain when tessellation factor is increased beyond a certain point. Crysis 2 uses extremely high tessellation factors. AMD users can manually clamp the tessellation factor in drivers to gain back some performance. But unfortunately this results such bad aliasing that it looks worse than no tessellation.

Why would nVidia do this?

I admit, that there are some areas where more efficiency may make more sense but to blanket strongly and leave out data is very similar to what PR does. I'm for bringing all the data in, more investigations -- not just quickly blame and point fingers with blanket statements.
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
Thats good use of tessellation, this thread is about all the places where its not used well. Like the flat surfaces, and invisible oceans ect.

Besides the ocean can you tell me which objects do you mean with "flat surfaces"?

I have seen nearly 20 Objects which are affected by Tessellation.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
Those are places in the game where tessellation was used to make a visual differnce, thats noticeable.

Thats good use of tessellation, this thread is about all the places where its not used well. Like the flat surfaces, and invisible oceans ect.

I guess you're looking for idealism or perfection tessellation in every example. If it isn't perfect or ideal in all in some minds; it must be sabotage with nefarious intent.
 

NoQuarter

Golden Member
Jan 1, 2001
1,006
0
76
For what it's worth, I highly doubt there's any sort of conspiracy. They must've designed the engine in a way that a single object can only have 1 level of tessellation. At that point it would've been a lot easier to take to already existing 'barricade' object and make a tessellation map for the whole thing rather than breaking it down into separate components so that only the top would be tessellated.

Same goes for the water, they already had it invisible through the whole map, and it would've taken more work to clip the water than they were interested in doing. Tessellation was more of an addon and a bunch of models updated to use it, and the engine wasn't designed with that in mind so there wasn't much foresight into these issues.

Really the DX11 was again somewhat of an afterthought rather than the game being built ground up to take advantage of the benefits, and that's still what we need to see in a game.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
I think the key is why did one of the worlds most impressive engineering institutions feel that higher levels of tessellation are needed?

It just may -- because Crysis 2 uses more tessellation than any title to date and yet when one reduces the tessellation, there are artifacts.

Maybe if the developers used x16, it would of been full of artifacts and not worth adding at all. I would like to know the answer to this.
 

NoQuarter

Golden Member
Jan 1, 2001
1,006
0
76
I think the key is why did one of the worlds most impressive engineering institutions feel that higher levels of tessellation are needed?

Maybe because it was easier to use 1 64x tessellation map on a single object, even the parts that don't need it. Maybe nVidia only helped with the tessellation engine and Crytek just did a bad job with updating the models to take advantage of it. Maybe nVidia didn't have anything to do with the tessellation part of the patch. Maybe nVidia was trying to sabotage AMD knowing their hardware can handle useless levels of tessellation. We just don't know as there doesn't seem to be a good demonstration of the difference between 16x vs higher levels of tessellation.

Of course, the equally ridiculous appeal to authority is why did one of the world's most impressive engineering institutions feel that tessellation is only effective up to 16x?
 
Last edited:

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
That's a fair point. The other side states that but why are their artifacts and a lot of it at x16?
 

sontin

Diamond Member
Sep 12, 2011
3,273
149
106
That's a fair point. The other side states that but why are their artifacts and a lot of it at x16?

The first question ist: Why do you think Microsoft and Khronos Group specify a max level of 64x when you don't need more than 16x?

You need a higher level when your Base-Mesh has not enough triangles to create the new information out of them (ergo new control points). And a second reason is to prevent a visible lod which would result in morphing of the objects.
 

Seero

Golden Member
Nov 4, 2009
1,456
0
0
You appear to be typing nonsensical statements that do nothing but pad your posts.
It is clear that you don't like me, and I don't like you, but at the very least, we should show some respect to each other from this point on, starting with me.

You mentioned that the engine should not tessellate the ocean when it is not immediately visible through the view port, meaning to turn water tessellation off when you can't see it. Well, since tessellate object is not the same object as normal object, the engine will need to switch the 2 objects dynamically. Now, the time when the tessellated object switches out will not be the same as when it needs to be switched back in, so either recreate the entire water scene from sketches as soon as a pixel on ocean is shown through the view port or keep the wired frame behind the scene. I am not saying I know what works best, I said we need to test it out.

And there’s no ocean behind the ground. Or at least there shouldn’t be. That’s the point. Yet they’re culling the buildings but not the ocean.
There is an ocean behind the scene. Think of it as an island on top of the ocean. You believe that not to tessellate water under neath the island will increase performance. My question is, will the time saved by not tessellate the part where it is blocked more than the time required to cut out a hole in the middle of the ocean in the shape which is assembled with all the tessellated objects on top? Logic aside, tests are needed.

As to culling, its purpose is not to break up wired frames, but to eliminate the need to put texture and lighting etc on wired frames that will not be shown on the screen. Water is far complicated than most objects because it reflect light/images. In other words, if you put a mirror in a scene, then the problem with culling exposes as the viewer will detect that the mirror does not reflect objects correctly. Realtime reflection is one of the big thing about tessellated water.
It is a problem because a mesh is being generated with a workload that’s never seen

Actually it goes further than that. Those ocean polygons should never be generated regardless of whether they’re tessellated or not.

This equally applies to any other object that’s being tessellated, yet we don’t see invisible instances of those.
That is not true. Again, the polygon is always there as it represents boundary and connection. Think of it as a waving flag with a pole in front. The wave of the flag should pass through point A to B even though the pole is in between point A and B on the flag. The texture of the part where it is blocked by the pole can be skipped, but not its wired frame. In this case, we are talking about one continuous ocean, one really big flag.

Again, the map data at those points should not reference any ocean data. The engine should be instructed to not draw anything related to the ocean when it’s rendering those portions of the map.
The engine does skip the drawing of the things that are not shown on the scene, but tessellation occurs before the drawing. As I have explained, the only way to not tessellate things that are blocked is to create one single object. That is, instead of multiple objects and tessellate every one of the individually, construct one big wired frame and tessellate it. That way, tessellation won't occur on things that are blocked, but then how do you put skin on? You lost the reference from skin to wired frame. For example, one blue ball and one yellow ball in front of a wall. After tessellation, the engine will no longer be able to find out where to apply the skin of the blue ball. Look at the wired frame in question, without the art, just the resulting wired frame, will you be able to place the skin correctly if you are the computer?


If I draw a puddle on the ground should I expect an entire map to render invisible water data? Of course not, because the rest of the map doesn’t have water.
I am glad that you mentioned those puddle of water on the ground. See for yourself (Caution, once you see this, you can never forget.)
http://www.youtube.com/watch?v=1kgY1-KjckU
I don't think it need to explain that it really is a corner cutting trick that really doesn't work if realistic is what we are looking for.

Are you familiar with something basic like, say, BSP rendering? Even Doom back in 1993 was capable of not rendering things that weren’t visible.
You have to understand the chronological order of techniques applied to a scene. The skin of the ocean that got blocked is not applied, the lighting on the ocean that got blocked is not applied. In fact, after culling, everything, including the part of the ocean that is blocked by other objects, is marked as culled and will not be used in more part of the rendering process. For culling to occur, you need to object representation, which is the wired frame. The shadow from object that use pre-tessellated skin will appears to be pixelized, that is because the computer don't see the object like it is shown through the magic view port. Take out the pre-tessellation skin and the shadow is 100% correct. To viewer, it is not so. To make shadow look realistic, tessellation on the fly will do as the shape of the object is defined through run-time. In other word, the computer sees the shape of the object that you see.

Just thing of an island in the middle of the ocean and things will be simpler to see.
 

blackened23

Diamond Member
Jul 26, 2011
8,548
2
0
Nvidia fanboys abound in this thread, no wonder nvidia pays developers to cheat so much when they're shepparding a flock of sheep around that believes that nvidia can do no wrong, even when they pay developers to disable features on other cards and hijack games on non-nvidia hardware.

good stuff.
 

Jacky60

Golden Member
Jan 3, 2010
1,123
0
0
Nvidia fanboys abound in this thread, no wonder nvidia pays developers to cheat so much when they're shepparding a flock of sheep around that believes that nvidia can do no wrong, even when they pay developers to disable features on other cards and hijack games on non-nvidia hardware.

good stuff.

I just think Nvidia are far more clued up with the whole forum side of things and below the line 'PR'. There's fanboism and there's professionalism and I think much of this thread is testament to the latter.
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
I just think Nvidia are far more clued up with the whole forum side of things and below the line 'PR'. There's fanboism and there's professionalism and I think much of this thread is testament to the latter.

I don't know about that -- both are pretty good at being disingenuous at times over the years.
 

Seero

Golden Member
Nov 4, 2009
1,456
0
0
That's a fair point. The other side states that but why are their artifacts and a lot of it at x16?
I hope that I understand your question correctly.

Whether or not they are artifacts depends on the definition of artifacts itself. Removing a bone from a human hand, lay it on a table, and then compare it with another human hand and you will see differences. Putting a skin on top of a lesser detailed wireframe and then compare it with one that is putted on top of a wireframe correct detail will appears differences that appears to be artifact, which is not.

The basic idea of tessellation is not to minimize the amount of memory footprint and bandwidth required by pre-tessellated skins. This makes direct conversion from arts made with Dx9 to Dx11 tessellation impossible as the skin used and the model which the skin sits on are very different. For example, a face is more or less a round ball, in Dx11, you wrap the skin around a round ball, while in Dx9, you wrap it around a cube.

How round the ball is is governed by tessellation factor. Designer may use a number between 1 to 64 for the tessellation factor for a model. If a model uses tessellation factor of 64(i'll use 64x in short, and there are actually 2 of these factors, one for the edge and one for the interior), the model will not have the same shape as if it has 16x. Wrapping a skin that is designed to wrap around a model with 64x will not look the same if it is wrapped around the same model with 16x. This is why there is a big difference in IQ in Unigine between Dx10 and Dx11. In practice, Dx10 uses different set of skins and wireframes, which makes it impossible to have a game that maintain I.Q. between Dx10/11. To properly utilize the power of Dx11 tessellation, a game must be build from ground up using Dx11. Running this game through Dx10 will make the game looks like Sh!t. The same applies to capping the tessellation factor.
 
Last edited:

mosox

Senior member
Oct 22, 2010
434
0
0
Badly implemented tessellation favors Nvidia and cripples the AMD cards.

- Badly implemented tessellation in Hawx 2 (TWIMTBP game).

OK, s.it happens.

- Badly implemented tessellation in Crysis 2 (TWIMTBP game).


Wanna bet that BF3 will have the very same badly implemented tessellation?
 

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
You may sing a different tune when AMD has more powerful tessellation and more is added in future titles, one may imagine.
 

Genx87

Lifer
Apr 8, 2002
41,095
513
126
Badly implemented tessellation favors Nvidia and cripples the AMD cards.

- Badly implemented tessellation in Hawx 2 (TWIMTBP game).

OK, s.it happens.

- Badly implemented tessellation in Crysis 2 (TWIMTBP game).


Wanna bet that BF3 will have the very same badly implemented tessellation?

It is only considerred badly implemented because AMDs hardware isnt up to par. If both archs ran the same scene at the same fps nobody would care. I am awaiting your reaction to these games when AMD closes the performance gap in tesselation. Possibly in the 7000 series of cards set to debut in 2012.

Tessellation is in its infancy. More and more of the scene will be using tessellation. So going forward it will only become more and more demanding on the tessellation hardware. AMD knows this and why their next gen card will look more like Fermi than their previous generations.
 

mosox

Senior member
Oct 22, 2010
434
0
0
You may sing a different tune when AMD has more powerful tessellation and more is added in future titles, one may imagine.

If this happens the TWIMTBP games will suddenly have correct tessellation. Even new DX11 patches for older games that are still featured in the reviews.

I'm betting a 560Ti/HD 6950 on BF3 being overtessellated. Any takers? I need a new video card anyway.
 

Genx87

Lifer
Apr 8, 2002
41,095
513
126
If this happens the TWIMTBP games will suddenly have correct tessellation. Even new DX11 patches for older games that are still featured in the reviews.

I'm betting a 560Ti/HD 6950 on BF3 being overtessellated. Any takers? I need a new video card anyway.

Define correct tessellation.
 

Seero

Golden Member
Nov 4, 2009
1,456
0
0
Badly implemented tessellation favors Nvidia and cripples the AMD cards.

- Badly implemented tessellation in Hawx 2 (TWIMTBP game).

OK, s.it happens.

- Badly implemented tessellation in Crysis 2 (TWIMTBP game).


Wanna bet that BF3 will have the very same badly implemented tessellation?
Try not to see it through AMD's lies. The Dx11 API for tessellation allows tessellation factor between 1 to 64, while AMD craps out with anything > 12x. Why 12x you may ask, look at the tessellation scaling between 6970 and 5870. The goal is to double the tesselation performance throughout 1x to 64x.

Source from techreport.com
Which is very different from

Source from anandtech Red line is for 6970, green is 5870.

As you can see, with around 6x-9x, there are no tessellation performance between 6970 and 6870,and beyond 10x, the scaling degrades. For everything beyond 10x, 6970 should be 2x better than 5870 and teseellation ability of 6970 should start beating 6870 hard as tessellation factor exceed 12x, we don't see that happening in Crysis 2. Do you seriously think this has something to do with Nvidia?

Is it really that hard to see the design problem, or driver bugs which prevents those tessellation, or any other units within the card from being utilize correctly?

I wish it is driver bugs, because if it is, then why try to give user the ability to cap tessellation factor instead of fixing it? Hey, maybe it is simply hard to fix and will be in 11.2, who knows?
 
Last edited:

SirPauly

Diamond Member
Apr 28, 2009
5,187
1
0
If this happens the TWIMTBP games will suddenly have correct tessellation. Even new DX11 patches for older games that are still featured in the reviews.

I'm betting a 560Ti/HD 6950 on BF3 being overtessellated. Any takers? I need a new video card anyway.

I hope tessellation gets much more powerful with much more tessellation in titles.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |