---
name: "rtcAttachGeometryByID"
section: "3embree4"
platform: "linux"
package: "embree"
version: "4.4.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rtcAttachGeometryByID/3embree4"
---

# rtcAttachGeometryByID(3embree4)

### NAME

-

  ```
  rtcAttachGeometryByID - attaches a geometry to the scene
    using a specified geometry ID
  ```

### SYNOPSIS

-

  ```
  #include <embree4/rtcore.h>
  void rtcAttachGeometryByID(
    RTCScene scene,
    RTCGeometry geometry,
    unsigned int geomID
  );
  ```

### DESCRIPTION

The `rtcAttachGeometryByID` function attaches a geometry (`geometry` argument) to a scene (`scene` argument) and assigns a user provided geometry ID (`geomID` argument) to that geometry. All geometries attached to a scene are defined to be included inside the scene. A geometry can get attached to multiple scenes. The passed user-defined geometry ID is used to identify the geometry when hit by a ray during ray queries. Using this function, it is possible to share the same IDs to refer to geometries inside the application and Embree.

This function is thread-safe, thus multiple threads can attach geometries to a scene in parallel.

The user-provided geometry ID must be unused in the scene, otherwise the creation of the geometry will fail. Further, the user-provided geometry IDs should be compact, as Embree internally creates a vector which size is equal to the largest geometry ID used. Creating very large geometry IDs for small scenes would thus cause a memory consumption and performance overhead.

### EXIT STATUS

On failure an error code is set that can be queried using `rtcGetDeviceError`.

### SEE ALSO

\[rtcAttachGeometry\]
