star-3d

Surface structuring for efficient 3D geometric queries
git clone git://git.meso-star.fr/star-3d.git
Log | Files | Refs | README | LICENSE

commit 6e6566d07b8a7bbdad0b428142e796d434aeb485
parent 3c39f86c8874711f2b0ecf74a72620b42122e9c3
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 17 Mar 2023 15:47:07 +0100

Use Embree 4 rather than Embree 3 as a RT backend

Fix a minor API flaw introduced by Embree 4

Diffstat:
Mcmake/CMakeLists.txt | 2+-
Msrc/s3d_backend.h | 2+-
Msrc/s3d_scene_view_trace_ray.c | 9++++++---
3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -39,7 +39,7 @@ option(NO_TEST "Disable the test" OFF) ################################################################################ # Check dependencies ################################################################################ -find_package(Embree 3.6 REQUIRED) +find_package(Embree 4.0 REQUIRED) find_package(RCMake 0.2.2 REQUIRED) find_package(RSys 0.6 REQUIRED) diff --git a/src/s3d_backend.h b/src/s3d_backend.h @@ -41,7 +41,7 @@ #pragma warning(disable: 4324) #endif -#include <embree3/rtcore.h> +#include <embree4/rtcore.h> #ifdef COMPILER_CL #pragma warning(pop) diff --git a/src/s3d_scene_view_trace_ray.c b/src/s3d_scene_view_trace_ray.c @@ -43,7 +43,7 @@ #include <limits.h> struct intersect_context { - struct RTCIntersectContext rtc; + struct RTCRayQueryContext rtc; struct s3d_scene_view* scnview; void* data; /* Per ray user defined data */ float ws_org[3]; /* World space ray origin */ @@ -161,6 +161,7 @@ s3d_scene_view_trace_ray struct s3d_hit* hit) { struct RTCRayHit ray_hit; + struct RTCIntersectArguments intersect_args; struct intersect_context intersect_ctx; size_t i; @@ -210,7 +211,9 @@ s3d_scene_view_trace_ray } /* Initialise the intersect context */ - rtcInitIntersectContext(&intersect_ctx.rtc); + rtcInitIntersectArguments(&intersect_args); + intersect_args.context = &intersect_ctx.rtc; + rtcInitRayQueryContext(&intersect_ctx.rtc); intersect_ctx.ws_org[0] = org[0]; intersect_ctx.ws_org[1] = org[1]; intersect_ctx.ws_org[2] = org[2]; @@ -223,7 +226,7 @@ s3d_scene_view_trace_ray intersect_ctx.data = ray_data; /* Here we go! */ - rtcIntersect1(scnview->rtc_scn, &intersect_ctx.rtc, &ray_hit); + rtcIntersect1(scnview->rtc_scn, &ray_hit, &intersect_args); hit_setup(scnview, &ray_hit, hit); return RES_OK;