Intel® Embree Ray Tracing Kernels
Discussion forum on the open source ray tracing kernels for fast photo-realistic rendering on Intel® CPUs.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
265 Discussions

tessellated subd with interpolated limit surface normals

Burr__Adam
Beginner
490 Views

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.

0 Kudos
1 Solution
SvenW_Intel
Moderator
490 Views

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.

View solution in original post

3 Replies
Burr__Adam
Beginner
489 Views

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.

SvenW_Intel
Moderator
491 Views

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.

Burr__Adam
Beginner
489 Views

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.

Reply