@@ -265,19 +265,6 @@ A configuration string (``config`` argument) can be passed to the device
265265construction. This configuration string can be ``NULL `` to use the
266266default configuration.
267267
268- When creating the device, Embree reads configurations for the device
269- from the following locations in order:
270-
271- 1) ``config `` string passed to the ``rtcNewDevice `` function
272- 2) ``.embree3 `` file in the application folder
273- 3) ``.embree3 `` file in the home folder
274-
275- Settings performed later overwrite previous settings. This way the
276- configuration for the application can be changed globally (either
277- through the ``rtcNewDevice `` call or through the ``.embree3 `` file in
278- the application folder), and each user has the option to modify the
279- configuration to fit their needs.
280-
281268The following configuration is supported:
282269
283270- ``threads=[int] ``: Specifies a number of build threads to use. A
@@ -316,9 +303,6 @@ The following configuration is supported:
316303 ignored on other platforms. See Section [Huge Page Support] for more
317304 details.
318305
319- - ``ignore_config_files=[0/1] ``: When set to 1, configuration files are
320- ignored. Default is 0.
321-
322306- ``verbose=[0,1,2,3] ``: Sets the verbosity of the output. When set to
323307 0, no output is printed by Embree, when set to a higher level more
324308 output is printed. By default Embree does not print anything on the
@@ -1189,11 +1173,15 @@ The ``rtcGetGeometry`` function returns the geometry that is bound to
11891173the specified geometry ID (``geomID `` argument) for the specified scene
11901174(``scene `` argument). This function just looks up the handle and does
11911175*not * increment the reference count. If you want to get ownership of the
1192- handle, you need to additionally call ``rtcRetainGeometry ``. For this
1193- reason, this function is fast and can be used during rendering. However,
1194- it is generally recommended to store the geometry handle inside the
1195- application’s geometry representation and look up the geometry handle
1196- from that representation directly.
1176+ handle, you need to additionally call ``rtcRetainGeometry ``.
1177+
1178+ This function is not thread safe and thus can be used during rendering.
1179+ However, it is generally recommended to store the geometry handle inside
1180+ the application’s geometry representation and look up the geometry
1181+ handle from that representation directly.
1182+
1183+ If you need a thread safe version of this function please use
1184+ `rtcGetGeometryThreadSafe <#rtcgetgeometrythreadsafe >`__.
11971185
11981186EXIT STATUS
11991187^^^^^^^^^^^
@@ -1205,7 +1193,59 @@ SEE ALSO
12051193^^^^^^^^
12061194
12071195`rtcAttachGeometry <#rtcattachgeometry >`__,
1208- `rtcAttachGeometryByID <#rtcattachgeometrybyid >`__
1196+ `rtcAttachGeometryByID <#rtcattachgeometrybyid >`__,
1197+ `rtcGetGeometryThreadSafe <#rtcgetgeometrythreadsafe >`__
1198+
1199+ .. raw :: latex
1200+
1201+ \pagebreak
1202+
1203+ rtcGetGeometryThreadSafe
1204+ ------------------------
1205+
1206+ NAME
1207+ ^^^^
1208+
1209+ .. code :: cpp
1210+
1211+ rtcGetGeometryThreadSafe - returns the geometry bound to
1212+ the specified geometry ID
1213+
1214+ SYNOPSIS
1215+ ^^^^^^^^
1216+
1217+ .. code :: cpp
1218+
1219+ #include <embree3/rtcore.h>
1220+
1221+ RTCGeometry rtcGetGeometryThreadSafe(RTCScene scene, unsigned int geomID);
1222+
1223+ DESCRIPTION
1224+ ^^^^^^^^^^^
1225+
1226+ The ``rtcGetGeometryThreadSafe `` function returns the geometry that is
1227+ bound to the specified geometry ID (``geomID `` argument) for the
1228+ specified scene (``scene `` argument). This function just looks up the
1229+ handle and does *not * increment the reference count. If you want to get
1230+ ownership of the handle, you need to additionally call
1231+ ``rtcRetainGeometry ``.
1232+
1233+ This function is thread safe and should NOT get used during rendering.
1234+ If you need a fast non-thread safe version during rendering please use
1235+ the `rtcGetGeometry <#rtcgetgeometry >`__ function.
1236+
1237+ EXIT STATUS
1238+ ^^^^^^^^^^^
1239+
1240+ On failure ``NULL `` is returned and an error code is set that can be
1241+ queried using ``rtcGetDeviceError ``.
1242+
1243+ SEE ALSO
1244+ ^^^^^^^^
1245+
1246+ `rtcAttachGeometry <#rtcattachgeometry >`__,
1247+ `rtcAttachGeometryByID <#rtcattachgeometrybyid >`__,
1248+ `rtcGetGeometry <#rtcgetgeometry >`__
12091249
12101250.. raw :: latex
12111251
@@ -1555,7 +1595,7 @@ flags are:
15551595 more details.
15561596
15571597Multiple flags can be enabled using an ``or `` operation,
1558- e.g. \ ``RTC_SCENE_FLAG_COMPACT | RTC_SCENE_FLAG_ROBUST ``.
1598+ e.g. ``RTC_SCENE_FLAG_COMPACT | RTC_SCENE_FLAG_ROBUST``.
15591599
15601600EXIT STATUS
15611601^^^^^^^^^^^
@@ -1948,7 +1988,7 @@ A triangle whose vertices are laid out counter-clockwise has its
19481988geometry normal pointing upwards outside the front face, like
19491989illustrated in the following picture:
19501990
1951- | image0 |
1991+ .. image :: images/triangle_uv.png
19521992
19531993For multi-segment motion blur, the number of time steps must be first
19541994specified using the ``rtcSetGeometryTimeStepCount `` call. Then a vertex
@@ -2033,7 +2073,7 @@ A quad whose vertices are laid out counter-clockwise has its geometry
20332073normal pointing upwards outside the front face, like illustrated in the
20342074following picture.
20352075
2036- | image1 |
2076+ .. image :: images/quad_uv.png
20372077
20382078For multi-segment motion blur, the number of time steps must be first
20392079specified using the ``rtcSetGeometryTimeStepCount `` call. Then a vertex
@@ -3590,8 +3630,8 @@ required.
35903630
35913631Sharing buffers can significantly reduce the memory required by the
35923632application, thus we recommend using this feature. When enabling the
3593- ``RTC_SCENE_COMPACT `` scene flag, the spatial index structures index
3594- into the vertex buffer, resulting in even higher memory savings.
3633+ ``RTC_SCENE_FLAG_COMPACT `` scene flag, the spatial index structures
3634+ index into the vertex buffer, resulting in even higher memory savings.
35953635
35963636EXIT STATUS
35973637^^^^^^^^^^^
@@ -3732,7 +3772,7 @@ buffers provided to Embree using the
37323772The ``RTC_FORMAT_UINT/2/3/4 `` format are used to specify that data
37333773buffers store unsigned integers, or unsigned integer vectors of size 2,3
37343774or 4. This format has typically to get used when specifying index
3735- buffers, e.g. \ ``RTC_FORMAT_UINT3 `` for triangle meshes.
3775+ buffers, e.g. ``RTC_FORMAT_UINT3`` for triangle meshes.
37363776
37373777The ``RTC_FORMAT_FLOAT/2/3/4... `` format are used to specify that data
37383778buffers store single precision floating point values, or vectors there
@@ -5442,7 +5482,7 @@ half edge belonging to the specified face (``faceID`` argument). For
54425482instance in the following example the first half edge of face ``f1 `` is
54435483``e4 ``.
54445484
5445- | image2 |
5485+ .. image :: images/half_edges.png
54465486
54475487This function can only be used for subdivision geometries. As all
54485488topologies of a subdivision geometry share the same face buffer the
@@ -5504,7 +5544,7 @@ specified half edge (``edgeID`` argument) belongs to. For instance in
55045544the following example the face ``f1 `` is returned for edges ``e4 ``,
55055545``e5 ``, ``e6 ``, and ``e7 ``.
55065546
5507- | image3 |
5547+ .. image :: images/half_edges.png
55085548
55095549This function can only be used for subdivision geometries. As all
55105550topologies of a subdivision geometry share the same face buffer the
@@ -5558,7 +5598,7 @@ The ``rtcGetGeometryNextHalfEdge`` function returns the ID of the next
55585598half edge of the specified half edge (``edgeID `` argument). For instance
55595599in the following example the next half edge of ``e10 `` is ``e11 ``.
55605600
5561- | image4 |
5601+ .. image :: images/half_edges.png
55625602
55635603This function can only be used for subdivision geometries. As all
55645604topologies of a subdivision geometry share the same face buffer the
@@ -5613,7 +5653,7 @@ previous half edge of the specified half edge (``edgeID`` argument). For
56135653instance in the following example the previous half edge of ``e6 `` is
56145654``e5 ``.
56155655
5616- | image5 |
5656+ .. image :: images/half_edges.png
56175657
56185658This function can only be used for subdivision geometries. As all
56195659topologies of a subdivision geometry share the same face buffer the
@@ -5669,7 +5709,7 @@ opposite half edge of the specified half edge (``edgeID`` argument) in
56695709the specified topology (``topologyID `` argument). For instance in the
56705710following example the opposite half edge of ``e6 `` is ``e16 ``.
56715711
5672- | image6 |
5712+ .. image :: images/half_edges.png
56735713
56745714An opposite half edge does not exist if the specified half edge has
56755715either no neighboring face, or more than 2 neighboring faces. In these
@@ -8294,13 +8334,7 @@ SEE ALSO
82948334.. raw :: latex
82958335
82968336 \pagebreak
8297- \pagebreak
82988337
8299- .. |image0 | image :: images/triangle_uv.png
8300- .. |image1 | image :: images/quad_uv.png
8301- .. |image2 | image :: images/half_edges.png
8302- .. |image3 | image :: images/half_edges.png
8303- .. |image4 | image :: images/half_edges.png
8304- .. |image5 | image :: images/half_edges.png
8305- .. |image6 | image :: images/half_edges.png
8338+ .. raw :: latex
83068339
8340+ \pagebreak
0 commit comments