Partitioning Modes

Published April 12, 2009
Advertisement
Had a day or two off over the Easter weekend but now giving some thought to the next 'problem' with Direct3D 11 tessellation - interpolating between tessellation factors.

If you watch either of the videos I posted you will see some quite noticeable 'popping' which is all due to the fact that it does not interpolate between factors. For the integer partitioning it will, for example, flip between 2 and 3 at 2.5 and it'll be a binary change - it's either 2 or its 3, and never a combination of the two.

- edit -

I just wrote up a possible plan for interpolation and handling the case where generated domain point didn't line up and then realised the GPU does that for me.

D'Oh.

Some diagrams I've drawn for the article I'm writing showed some very odd patterns for certain tessellation levels - especially non-uniform ones. I hadn't quite figured that out until reading a key sentence in the spec again just now.

TBC, but from what I now understand, fractional partitioning values will have their domain points interpolated to aide transitions between LOD's.

So for a [partitioning("fractional_even")] case you can get a pattern along the lines of:

+-------+-------+ LOD = 2
+------+++------+ LOD = 2.5 (rounded up to LOD = 4, 25% interpolation)
+-----+-+-+-----+ LOD = 3.0 (rounded up to LOD = 4, 50% interpolation)
+----+--+--+----+ LOD = 3.5 (rounded up to LOD = 4, 75% interpolation)
+---+---+---+---+ LOD = 4.0

Bit tricky to see I'm sure, but the domain points at the higher LOD appear to "grow" out of the lower LOD ones.

I just re-ran the video I posted with that partitioning mode instead of integer and I get no more popping. That was a lot easier than I expected [cool]
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement