Intel® Embree Ray Tracing Kernels
Discussion forum on the open source ray tracing kernels for fast photo-realistic rendering on Intel® CPU(s)

variable interpolation in subdivs

J_E_
Beginner
398 Views

Hi,

I'm currently trying to figure out how to go about the interpolation of per-face-point variables in subdivision surfaces. My input data consists of 3, 4 and 5 side faces describing the polygon cage. Because my data is not per vertex, I understand this prevents me from using the rtInterpolate2 function with a user vertex buffer, and instead I'm looking at the sample code in the pathtracer tutorial (getTextureCoordinatesSubdivMesh) handling the first two cases.

So far so good, however I'm a bit confused about how to interpret the UV information on non-quadrilaterals - I understand from the docs that we can unpack the barycentric coordinates into subpatch index and per-patch-uv. Since the subdivision of the input N-gon will produce quads, am I right to understand that we would then have to figure out the quad resulting from the subpatch our evaluated point lies in, and from there on revert to the bilinear interpolation by manually generating the additional interpolated vertices? sounds like this could get complicated quickly when considering creases and edges, so I was wondering if perhaps I'm missing something out and there's an alternative method.

Thanks in advance for your help

0 Kudos
2 Replies
SvenW_Intel
Moderator
398 Views

You would have to generate a second structurally compatible subdivision mesh and use that for interpolation only. The interpolate tutorial show an example of this. In this second subdivision mesh, you would set the index buffer to the indices of the per-face vertex data, and the RTC_USER_VERTEX_BUFFER0 to the data to interpolate. When you hit the subdivision mesh, you can use this second mesh with the rtcInterpolate function to get the proper result.

0 Kudos
J_E_
Beginner
397 Views

Thanks Sven, that gives me something to look into.

0 Kudos
Reply