subdivision surfaces and UV interpolation problem

January 10th, 2007 by Bramz

I’m trying to use the subdivision surfaces I’ve implemented to get a smoother surface for car i’m rendering for PHD Motorsports. The original model has UV coordinates that need to be interpolated as well. As each triangle is split in four, each edge is split two. I’ve been using the naive assumption that for the UV coordinates of the new vertices, I can use the average of the two original vertices of the edge. As can be seen from the following renders, that doesn’t quite work. The UV mapping gets severely distorted.

distorition of UV coordinates when using naive UV interpolation in subdivision surfaces

So, I’ll have to search for something more clever. Probably something similar as for the vertex coordinates. However, I wonder what to do with seams in the texture mapping … To be continued …

2 Responses to “subdivision surfaces and UV interpolation problem”

  1. Tom Says:

    Go Bramz go :) This looks like a “long winters-eve” of work, so pick your evening and have a go ;)

  2. bramz Says:


    Well, I’ve found my long winters-eve, and made some good progress. I was able to clean up the code to the point that tackling the UV coordinate problem has become … well … possible =) I’ve splitted the algorithm in two parts. The first does the does the triangle splitting (using simple averages for new edge vertices), the second does the actual smoothing using a single mask for all vertices (except for the borders). This seems trivial, but the original algorithm is described as doing subidivision and smoothing at the same time, using different masks for odd and even vertices.

    Anyway, I’m still facing some problems, but I promise I’ll post the results when I’m done =)