Discussion on the implementation of tessellation in the Xbox 360.

Basicly the same yes, exactly, no.
The tessellation algorithm is identical for Xenos, R600, and RV770. RV770 has additional functionality such that the tessellator can feed the Geometry Shader.

Isn't it possible to tag certain parts of the geometry, like hard edges and small-detail sections so they won't be modified by the tesselation process?
With adaptive tessellation the first pass calculates tessellation factors. If the factor is 1 for an edge it won't be tessellated. I've never implemented this, but presumably you could set the tessellation factor to 1 if the angle between normals is greater than a threshold.
 
That is not correct; proper modeling techniques can guarantee flat surfaces and nice edges

I wasn't clear: I meant that tessellation is not a good fit for flat surfaces when there is no point to tessellating them into visually identical flat surfaces. For example, the ceiling in my room can be adequately represented by 2 triangles and a normal map for fine detail. If it were tessellated, there would be no gain.
 
I wasn't clear: I meant that tessellation is not a good fit for flat surfaces when there is no point to tessellating them into visually identical flat surfaces. For example, the ceiling in my room can be adequately represented by 2 triangles and a normal map for fine detail. If it were tessellated, there would be no gain.

Well, viewing such a flat surface at an acute angle would show a difference in the silhouette - probably not likely for ceilings, but could for a rough brick wall for example.
 
There's algorithms that deal with that, so that important features/contours get preserved with no artist involvement.
..
stuff
...
The beauty of their method is that it doesn't need normal maps or anything esoteric. The bulk of the processing can be done offline in the art export tool. I tweaked it to just write out 'hint data' that is very small. Runtime side, this hint data, which is just well packed/optimized edge collapse data, can be ripped thru realtime very fast to lod the mesh anyway I want.

Impressive work!

I remember this post by you.

joker454 said:
nAo said:
edit: it's also quite easy to throw a lot of geometry to a unified shading architecture without paying a huge perf cost for it, but I stopped getting excited about vertices/triangles per second figures this gen cause those numbers are not really representative of what you see on screen. As I stated many time we should get better at distributing geometry on
screen, we often manage insane polycounts (2-3M triangles per frame or even more) without having a good return in term
of image quality.
Fair enough, I'd agree with that. But...until someone has figured out a way to adjust polygon distribution in realtime that is suitable for games, then we're kind of stuck using the more tried and true methods. Maybe you're ahead of us in that regard, as we don't have any such system in house. Progressive mesh, as described at PS3Devcon, isn't a solution for us either, partly because it doesn't really redistribute polys from where they aren't needed, and party because it's a nightmare to setup/maintain. So for now for us that means using polygons, and lots of them. We have no choice in this, and I don't really see that changing much in the next couple of years, for us anyways. I'd wager that many other studios are in the same predicament though as I can still spot polygons in just about every title out there, even the uber ones.

I guess my point is that while the argument of poor poly distribution is noble and correct, it just doesn't matter much in the current reality of the situation. And hence we are still stuck with 4+ million triangle counts (in replay mode, 30fps but still 4xmsaa) because our silhouettes must look perfect for the replay camera which inevitably gets zoomed in close enough to see if a superstar players shoes are accurate.

Now, if you have already built a realtime polygon distribution system that works on PS3 then message me. Our parent company has deep pockets, they would be interested in buying and/or licensing it. No joke, just let me know and I'll get you in touch with the big wigs here that make these choices, then you guys can sort out the legal details. Just make the interface easy, since I'll probably be the one implementing it
I guess you did it all by yourself in the end. :smile:
 
Well...the brainiacs that originally wrote that paper did most of the work, I just implemented and tweaked it :) But yeah it's something I've been wanting to try for a while now.
But it's tessellation at the end, isn't it? I love the idea behind this technique, it sounds great. Tessellation is like saying "less is more" except in this case it works
 
Well...the brainiacs that originally wrote that paper did most of the work, I just implemented and tweaked it :) But yeah it's something I've been wanting to try for a while now.

I have always wanted to ask u is the title you are working on a multiplatform if so how is your technique implemented on the 360.
 
But it's tessellation at the end, isn't it? I love the idea behind this technique, it sounds great. Tessellation is like saying "less is more" except in this case it works

Yeah it is, or I guess you could call it a de-tesselator since it starts with the best mesh generated by art, and yanks stuff out after that.


I have always wanted to ask u is the title you are working on a multiplatform if so how is your technique implemented on the 360.

It is multi platform, I'm only involved on the PS3 side though. Some of the stuff I do inevitable trickles over to 360 if it benefits from it. I don't know if the 360 guys will need the mesh stuff I'm working on, I think they are primarily pixel shader bound. But if they do, I think it will be possible to run it on 360 as well. The bulk of the processing gets done offline tool side, in the game it just uses that hint data to rebuild index lists, which mostly amounts to shuffling a small bit of memory around.
 
I don't know if the 360 guys will need the mesh stuff I'm working on,

What, the 360 isn't good enough to get your fancy schmancy algorithm? ;) :p

I think they are primarily pixel shader bound. The bulk of the processing gets done offline tool side, in the game it just uses that hint data to rebuild index lists, which mostly amounts to shuffling a small bit of memory around.
But more seriously, wouldn't this help reduce time spent on vertex shading and thus allowing the unified shaders to focus on pixel shaders :?: (I'm possibly missing something :p) What are the implications on tiling cost?
 
But more seriously, wouldn't this help reduce time spent on vertex shading and thus allowing the unified shaders to focus on pixel shaders :?: (I'm possibly missing something :p) What are the implications on tiling cost?

You're right, but I'm out of the loop on the 360 build at the moment so I really don't know what their priorities are. I'm sure it'll get considered, but I still have a lot of work to do on that mesh code anyways before they can lay their hands on it.
 
But more seriously, wouldn't this help reduce time spent on vertex shading and thus allowing the unified shaders to focus on pixel shaders :?: (I'm possibly missing something :p)

All work reduced from vertex shader can be used on pixel shading. It's just a matter of finding the best compromise. Fortunately it's much easier on closed platform, as you have more control over the hardware resource allocation... Unfortunately more control = more work if you want a perfect result :)

If I remember correctly, the few devs on B3D who have commented on the 360's tesselator sort of implied that its inflexibility reduces its usefulness.

It's more like a content creation / tool chain issue than hardware issue really.
 
Thanks for creating this discussion. It's great to bring this topic up at least once a year otherwise very few people would know if there has been any progress made or is this feature something that that will go largely unused...and it kind of looks that way.

The last game on the 360 to use it that was publicly known was the Viva Piñata series. It looks like there has only been one other IP to be known to make use of it.

What's up Sebbbi...doac right?
 
Thanks for creating this discussion. It's great to bring this topic up at least once a year otherwise very few people would know if there has been any progress made or is this feature something that that will go largely unused...and it kind of looks that way.

The last game on the 360 to use it that was publicly known was the Viva Piñata series. It looks like there has only been one other IP to be known to make use of it.

What's up Sebbbi...doac right?

The reason why I brought this up is because there had been progress made. If you look through theres links here:

http://www.microsoft.com/downloads/...6F-12BF-4E8F-AC41-97B4440C3B90&displaylang=en
http://www.microsoft.com/downloads/...92-0E5C-4317-8170-E952DCA10D46&displaylang=en
http://www.microsoft.com/downloads/...76-FDB1-48E6-A6B5-F4BA5DFC907A&displaylang=en

Maybe not the last one as they relate to tools. They are 3 presentations from Gamefest 2008 which deal in some way with tesselation.

What interested me was when they said that the SDK for direct3d 11 was directly applicable to the Xbox 360's Xenos. IIRC software developed to render using direct3d 11 tessellation can/could easily be ported and used on the Xbox 360 if I understood what they were saying correctly.
 
I think that Galopin hinted that the tesselator was used in Alone in the dark to generate height map.
(My memory can be wrong).
 
There's algorithms that deal with that, so that important features/contours get preserved with no artist involvement.

im very interested to know how you deal with this, as with any subdivision technique ive used over the years, it has ALWAYS involved an artist to place the nessacary geometry to constrain the rounding.

there is the way renderman deals with subd, by edge hardness, but even thats hit and miss without the right geometry in place. (not to mention rman tessalates to the subpixel level...)

also, an artist needs visual feedback while modelling, unless you can get your technique into the modelling application, then the artist has no way of knowing how his model with look subdivided until exported.

so until im shown somthing thats workflow / toolchain usuable, with man-hour and reasonable hardware savings...then tessalation to me is restricted to a very small set of usuable scene elements.
 
What's up Sebbbi...doac right?

Haven't played doa that much lately, except learning to play with Ein after Offbeat Ninja beat Master in the CGS :). Sad thing that the sequel is likely never released because of Team Ninja's and Itagaki's problems...
 
I was talking only about the 360 when I was talking about progress. It's great that all DX11 GPUs will supposedly have it but I'm more interested in it being used currently rather than theoretically in future titles. That is all I was saying. I've made two threads about this tech in the past mostly because Microsoft has been giving presentations at Gamefeast on the subject since the system launched and so far there has been only on official confirmation of it's real world usage. The other evidence of it's use is nice to hear about as well if the info is correct.
 
It's great move for MS (to have the tesselator within the 360 somewhat compliant with version in future directx11 compliant hardware), it's something likely to add some legs to the system.
 
I think that Galopin hinted that the tesselator was used in Alone in the dark to generate height map.
(My memory can be wrong).

I confirm :) One issue is that Pix does'nt supporte vertex sahder debuging on tesselated draws!

Also, nvidia present the same technique than mine (except a silhouet detection that i could do on x360 also) at siigraph 2008 in a DX11 presentation.

and x360 tesselator is not fully compliant to DX11 specs, some can be emulated, some not.
 
I was talking only about the 360 when I was talking about progress. It's great that all DX11 GPUs will supposedly have it but I'm more interested in it being used currently rather than theoretically in future titles. That is all I was saying. I've made two threads about this tech in the past mostly because Microsoft has been giving presentations at Gamefeast on the subject since the system launched and so far there has been only on official confirmation of it's real world usage. The other evidence of it's use is nice to hear about as well if the info is correct.

They are making tessellation and tools available for the PC platform with direct3d 11. These tools also work with the Xbox 360 GPU as well. By providing tools and increasing the market penetration of the technology it certainly gives incentives to developers to at least start working with the technology.

Likely we won't see anything until next holiday season at the earliest unfortunately unless we get a developer to come out and talk about how they are using the technology.
 
Back
Top