MCPcopy Create free account
hub / github.com/RenderKit/embree / convertSubdivMesh

Function convertSubdivMesh

tutorials/buildbench/buildbench_device.cpp:55–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53 }
54
55 void convertSubdivMesh(ISPCSubdivMesh* mesh, RTCScene scene_out, RTCBuildQuality quality)
56 {
57 RTCGeometry geom = rtcNewGeometry(g_device, RTC_GEOMETRY_TYPE_SUBDIVISION);
58 rtcSetGeometryTimeStepCount(geom, mesh->numTimeSteps);
59 rtcSetGeometryBuildQuality(geom, quality);
60 for (size_t i=0; i<mesh->numEdges; i++) mesh->subdivlevel[i] = 16.0f;
61 for (size_t t=0; t<mesh->numTimeSteps; t++) {
62 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX, (unsigned int)t, RTC_FORMAT_FLOAT3, mesh->positions[t], 0, sizeof(Vec3fa), mesh->numVertices);
63 }
64 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_LEVEL, 0, RTC_FORMAT_FLOAT, mesh->subdivlevel, 0, sizeof(float), mesh->numEdges);
65 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_INDEX, 0, RTC_FORMAT_UINT, mesh->position_indices, 0, sizeof(unsigned int), mesh->numEdges);
66 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_FACE, 0, RTC_FORMAT_UINT, mesh->verticesPerFace, 0, sizeof(unsigned int), mesh->numFaces);
67 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_HOLE, 0, RTC_FORMAT_UINT, mesh->holes, 0, sizeof(unsigned int), mesh->numHoles);
68 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_EDGE_CREASE_INDEX, 0, RTC_FORMAT_UINT2, mesh->edge_creases, 0, 2*sizeof(unsigned int), mesh->numEdgeCreases);
69 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_EDGE_CREASE_WEIGHT, 0, RTC_FORMAT_FLOAT, mesh->edge_crease_weights, 0, sizeof(float), mesh->numEdgeCreases);
70 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_CREASE_INDEX, 0, RTC_FORMAT_UINT, mesh->vertex_creases, 0, sizeof(unsigned int), mesh->numVertexCreases);
71 rtcSetSharedGeometryBuffer(geom, RTC_BUFFER_TYPE_VERTEX_CREASE_WEIGHT, 0, RTC_FORMAT_FLOAT, mesh->vertex_crease_weights, 0, sizeof(float), mesh->numVertexCreases);
72 rtcSetGeometrySubdivisionMode(geom, 0, mesh->position_subdiv_mode);
73 rtcCommitGeometry(geom);
74 rtcAttachGeometry(scene_out,geom);
75 rtcReleaseGeometry(geom);
76 }
77
78 void convertCurveGeometry(ISPCHairSet* hair, RTCScene scene_out, RTCBuildQuality quality)
79 {

Callers 1

convertSceneFunction · 0.85

Calls 7

rtcCommitGeometryFunction · 0.85
rtcAttachGeometryFunction · 0.85
rtcReleaseGeometryFunction · 0.85

Tested by

no test coverage detected