commit 621fd10db062778b1fa9c736e5950c84696be020
parent bc7670c6e92b9f937f334bf21afc95c21cfd0f07
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Fri, 28 Apr 2023 11:49:18 +0200
Merge branch 'release_0.9'
Diffstat:
5 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/README.md b/README.md
@@ -120,6 +120,10 @@ with `<STAR3D_INSTALL_DIR>` the install directory of Star-3D and
## Release notes
+### Version 0.9
+
+Upgrading the ray-tracing backend from Embree3 to Embree4
+
### Version 0.8.1
Fix compilation warnings with GCC 11
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)
@@ -57,8 +57,8 @@ endif()
# Configure and define targets
################################################################################
set(VERSION_MAJOR 0)
-set(VERSION_MINOR 8)
-set(VERSION_PATCH 1)
+set(VERSION_MINOR 9)
+set(VERSION_PATCH 0)
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH})
set(S3D_FILES_SRC
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;
diff --git a/src/test_s3d_closest_point.c b/src/test_s3d_closest_point.c
@@ -1074,7 +1074,7 @@ test_single_triangle(struct s3d_device* dev)
f3_mulf(tmp, BC, -MMIN(1, MMAX(0, -f3_dot(CP, BC) / lbc2))));
}
}
- else { ASSERT(0); }
+ else { FATAL("Unreachable code\n"); }
dist = f3_len(f3_sub(tmp, pos, closest));
}
CHK(eq_epsf(hit.distance, dist, eps));