Optix 7 return shape ID

optixGetPrimitiveIndex()is able to return the triangle ID for each shape in cuda. Is there way to return the shape ID in cuda? for example I have three mesh build in optix, and when I reach closehit I want to know the ID of the current shape.

Hi @kyan8, you may be looking for optixGetInstanceId():

https://raytracing-docs.nvidia.com/optix7/guide/index.html#device_side_functions#intersection-information

https://raytracing-docs.nvidia.com/optix7/api/html/group__optix__device__api.html#ga4d70272186506b1a5cb4813f1047021f


David

I tried this but it seems the value is always -1
btw all the mesh are triangle_mesh and I didn’t use Instance build inputs

In that case you should also have three Shader Binding Table entries, and that would be the place where you could store your shape ID.