tessellated subd with interpolated limit surface normals

tessellated subd with interpolated limit surface normals

Is it possible to interpolate the subd limit surface normals on the tessellated mesh? I know I can provide normals to the subd base mesh verts, but ideally I would like to interpolate the true limit surface normals if possible. Or if there is a better way to achieve this result please let me know, thanks.

4 posts / 0 new

Maybe I can do this with rtcSetGeometryDisplacementFunction? Ie, setup a vertex attribute buffer for the normals and write the geometric normal into it in the RTCDisplacementFunctionN? But it isn't obvious to me if the RTCDisplacementFunctionN can write anything other than the position.

Best Reply

No there is no way of doing this as the tessellated mesh is opaque to the user. Either you can use rtcInterpolate to calculate the smooth subdiv surface normal, or tessellate the subdivmesh yourself (e.g. through OpenSubDiv or using the Embree subdiv mesh and rtcInterpolate function) and then attach vertex normals.

Thanks, I found the ENABLE_SMOOTH_NORMALS code in displacement_geometry, I'll try that method. Eventually I plan to switch to openSubdiv but it isn't the highest priority quite yet.

Leave a Comment

Please sign in to add a comment. Not a member? Join today