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

Function addTerrain

tutorials/forest/forest_device.cpp:91–116  ·  view source on GitHub ↗

adds a ground plane to the scene */

Source from the content-addressed store, hash-verified

89
90/* adds a ground plane to the scene */
91unsigned int addTerrain(RTCScene scene_i)
92{
93 /* create a triangulated plane with 2 triangles and 4 vertices */
94 RTCGeometry mesh = rtcNewGeometry (g_device, RTC_GEOMETRY_TYPE_TRIANGLE);
95
96 /* set vertices */
97 RTCBuffer vertex_buffer = rtcNewSharedBufferHostDevice(g_device, (void *)terrain_vertices, 3*terrain_num_vertices*sizeof(float));
98 rtcSetGeometryBuffer(mesh, RTC_BUFFER_TYPE_VERTEX, 0, RTC_FORMAT_FLOAT3, vertex_buffer, 0, 3*sizeof(float), terrain_num_vertices);
99 rtcCommitBuffer(vertex_buffer);
100 rtcReleaseBuffer(vertex_buffer);
101
102 /* set triangles */
103 RTCBuffer index_buffer = rtcNewSharedBufferHostDevice(g_device, (void *)terrain_indices, 3*terrain_num_triangles*sizeof(unsigned int));
104 rtcSetGeometryBuffer(mesh, RTC_BUFFER_TYPE_INDEX, 0, RTC_FORMAT_UINT3, index_buffer, 0, 3*sizeof(unsigned int), terrain_num_triangles);
105 rtcCommitBuffer(index_buffer);
106 rtcReleaseBuffer(index_buffer);
107 data.terrain_triangles = (Triangle*)rtcGetBufferDataDevice(index_buffer);
108
109 g_memory_consumed += terrain_num_vertices * 3 * sizeof(float);
110 g_memory_consumed += terrain_num_triangles * 3 * sizeof(unsigned int);
111
112 rtcCommitGeometry(mesh);
113 unsigned int geomID = rtcAttachGeometry(scene_i,mesh);
114 rtcReleaseGeometry(mesh);
115 return geomID;
116}
117
118bool monitorMemoryFunction(void* ptr, ssize_t bytes, bool post)
119{

Callers 2

device_initFunction · 0.85
device_renderFunction · 0.85

Calls 8

rtcSetGeometryBufferFunction · 0.85
rtcCommitBufferFunction · 0.85
rtcReleaseBufferFunction · 0.85
rtcGetBufferDataDeviceFunction · 0.85
rtcCommitGeometryFunction · 0.85
rtcAttachGeometryFunction · 0.85
rtcReleaseGeometryFunction · 0.85

Tested by

no test coverage detected