I have recompiled luxcore with Embree 4.2 but for some reason render is completely empty. I can see only background image. I think the ray does not hit any geometry.
To compile with Embree 4.2 I've mede following changes:
Code: Select all
diff --git a/src/luxrays/accelerators/embreeaccel.cpp b/src/luxrays/accelerators/embreeaccel.cpp
index 7e6bf39e1..387dd3619 100644
--- a/src/luxrays/accelerators/embreeaccel.cpp
+++ b/src/luxrays/accelerators/embreeaccel.cpp
@@ -226,8 +226,8 @@ bool EmbreeAccel::MeshPtrCompare(const Mesh *p0, const Mesh *p1) {
}
bool EmbreeAccel::Intersect(const Ray *ray, RayHit *hit) const {
- RTCIntersectContext context;
- rtcInitIntersectContext(&context);
+ RTCRayQueryContext context;
+ rtcInitRayQueryContext(&context);
RTCRayHit embreeRayHit;
@@ -248,8 +248,14 @@ bool EmbreeAccel::Intersect(const Ray *ray, RayHit *hit) const {
embreeRayHit.hit.geomID = RTC_INVALID_GEOMETRY_ID;
embreeRayHit.hit.primID = RTC_INVALID_GEOMETRY_ID;
embreeRayHit.hit.instID[0] = RTC_INVALID_GEOMETRY_ID;
-
- rtcIntersect1(embreeScene, &context, &embreeRayHit);
+
+ RTCIntersectArguments intersectArgs;
+ intersectArgs.context = &context;
+
+ rtcIntersect1(embreeScene, &embreeRayHit, &intersectArgs);
+
if ((embreeRayHit.hit.geomID != RTC_INVALID_GEOMETRY_ID) &&
// A safety check in case of not enough numerical precision. Embree
Code: Select all
diff --git a/cmake/Packages/FindEmbree.cmake b/cmake/Packages/FindEmbree.cmake
index 7bcee212b..447592a11 100644
--- a/cmake/Packages/FindEmbree.cmake
+++ b/cmake/Packages/FindEmbree.cmake
@@ -14,22 +14,22 @@
## limitations under the License. ##
## ======================================================================== ##
-FIND_PATH(EMBREE_INCLUDE_PATH NAMES embree3/rtcore.h PATHS
+FIND_PATH(EMBREE_INCLUDE_PATH NAMES embree4/rtcore.h PATHS
${EMBREE_ROOT}/include)
IF (NOT EMBREE_INCLUDE_PATH)
- FIND_PATH(EMBREE_INCLUDE_PATH NAMES embree3/rtcore.h PATHS
+ FIND_PATH(EMBREE_INCLUDE_PATH NAMES embree4/rtcore.h PATHS
/usr/include
/usr/local/include
/opt/local/include)
ENDIF()
-FIND_LIBRARY(EMBREE_LIBRARY NAMES embree3 libembree3.so.3 PATHS
+FIND_LIBRARY(EMBREE_LIBRARY NAMES embree4 libembree4.so.4 PATHS
${EMBREE_ROOT}/lib/x64
${EMBREE_ROOT}/lib
${EMBREE_ROOT}/build
NO_DEFAULT_PATH)
IF (NOT EMBREE_LIBRARY)
- FIND_LIBRARY(EMBREE_LIBRARY NAMES embree3 libembree3.so.3 PATHS
+ FIND_LIBRARY(EMBREE_LIBRARY NAMES embree4 libembree4.so.4 PATHS
/usr/lib
/usr/lib64
/usr/local/lib
[code]
diff --git a/include/luxrays/accelerators/embreeaccel.h b/include/luxrays/accelerators/embreeaccel.h
index b1bc9f5ab..c4f1bccc0 100644
--- a/include/luxrays/accelerators/embreeaccel.h
+++ b/include/luxrays/accelerators/embreeaccel.h
@@ -21,7 +21,7 @@
#include <boost/thread.hpp>
-#include <embree3/rtcore.h>
+#include <embree4/rtcore.h>
#include "luxrays/luxrays.h"
#include "luxrays/core/accelerator.h"
Code: Select all
diff --git a/include/luxrays/core/bvh/bvhbuild.h b/include/luxrays/core/bvh/bvhbuild.h
index bf8b7ab9b..9b762382b 100644
--- a/include/luxrays/core/bvh/bvhbuild.h
+++ b/include/luxrays/core/bvh/bvhbuild.h
@@ -22,8 +22,8 @@
#include <vector>
#include <ostream>
-#include <embree3/rtcore.h>
-#include <embree3/rtcore_builder.h>
+#include <embree4/rtcore.h>
+#include <embree4/rtcore_builder.h>
#include "luxrays/luxrays.h"
#include "luxrays/core/geometry/bbox.h"
Code: Select all
diff --git a/src/luxrays/core/bvh/bvhembreebuild.cpp b/src/luxrays/core/bvh/bvhembreebuild.cpp
index 9fe9a9e01..8f215edd7 100644
--- a/src/luxrays/core/bvh/bvhembreebuild.cpp
+++ b/src/luxrays/core/bvh/bvhembreebuild.cpp
@@ -20,8 +20,8 @@
#include <boost/foreach.hpp>
#include <boost/thread/mutex.hpp>
-#include <embree3/rtcore.h>
-#include <embree3/rtcore_builder.h>
+#include <embree4/rtcore.h>
+#include <embree4/rtcore_builder.h>
#include "luxrays/core/bvh/bvhbuild.h"
#include "luxrays/utils/atomic.h"
Code: Select all
diff --git a/src/slg/engines/caches/photongi/pgicbvh.cpp b/src/slg/engines/caches/photongi/pgicbvh.cpp
index 89bb66f03..620c2abbe 100644
--- a/src/slg/engines/caches/photongi/pgicbvh.cpp
+++ b/src/slg/engines/caches/photongi/pgicbvh.cpp
@@ -18,8 +18,8 @@
#include <algorithm>
-#include <embree3/rtcore.h>
-#include <embree3/rtcore_builder.h>
+#include <embree4/rtcore.h>
+#include <embree4/rtcore_builder.h>
#include "luxrays/core/bvh/bvhbuild.h"
#include "slg/engines/caches/photongi/photongicache.h"
Code: Select all
diff --git a/src/slg/lights/strategies/dlscacheimpl/dlscbvh.cpp b/src/slg/lights/strategies/dlscacheimpl/dlscbvh.cpp
index 96944242d..babd2fd19 100644
--- a/src/slg/lights/strategies/dlscacheimpl/dlscbvh.cpp
+++ b/src/slg/lights/strategies/dlscacheimpl/dlscbvh.cpp
@@ -17,8 +17,8 @@
***************************************************************************/
-#include <embree3/rtcore.h>
-#include <embree3/rtcore_builder.h>
+#include <embree4/rtcore.h>
+#include <embree4/rtcore_builder.h>
#include "luxrays/core/bvh/bvhbuild.h"
#include "slg/lights/strategies/dlscacheimpl/dlscacheimpl.h"
Code: Select all
diff --git a/distfiles/embree-install.sh b/distfiles/embree-install.sh
index 7b56bb2..2cce6c7 100755
--- a/distfiles/embree-install.sh
+++ b/distfiles/embree-install.sh
@@ -6,10 +6,10 @@ LIBRARY_INSTALL_DIR="$1"/lib
mkdir -p $INCLUDE_INSTALL_DIR
mkdir -p $LIBRARY_INSTALL_DIR
-cp -av include/embree3 $INCLUDE_INSTALL_DIR
+cp -av include/embree4 $INCLUDE_INSTALL_DIR
cp -av lib/lib* $LIBRARY_INSTALL_DIR
rm $LIBRARY_INSTALL_DIR/libtbb.so
rm $LIBRARY_INSTALL_DIR/libtbb.so.12
-cp $LIBRARY_INSTALL_DIR/libtbb.so.12.1 $LIBRARY_INSTALL_DIR/libtbb.so.12
+cp $LIBRARY_INSTALL_DIR/libtbb.so.12.9 $LIBRARY_INSTALL_DIR/libtbb.so.12
Code: Select all
diff --git a/distfiles/oidn-install.sh b/distfiles/oidn-install.sh
index 07d0fa6..b228998 100755
--- a/distfiles/oidn-install.sh
+++ b/distfiles/oidn-install.sh
@@ -12,4 +12,4 @@ cp -av lib/lib* $LIBRARY_INSTALL_DIR
rm $LIBRARY_INSTALL_DIR/libtbb.so
rm $LIBRARY_INSTALL_DIR/libtbb.so.12
-cp $LIBRARY_INSTALL_DIR/libtbb.so.12.1 $LIBRARY_INSTALL_DIR/libtbb.so.12
+cp $LIBRARY_INSTALL_DIR/libtbb.so.12.9 $LIBRARY_INSTALL_DIR/libtbb.so.12
Code: Select all
diff --git a/utils/install b/utils/install
index a1962e2..7c42a5f 100755
--- a/utils/install
+++ b/utils/install
@@ -23,7 +23,7 @@ if echo $LUX_TAG | grep -iq 'sdk' ; then
mkdir $TARGET/$LUX_TAG/lib
cp $LUX_TAG/lib/*.so $TARGET/$LUX_TAG/lib
- cp $TARGET/lib/libOpenImageDenoise.so.1 $TARGET/lib/libembree3.so.3 $TARGET/lib/libtbb.so.12 $TARGET/lib/libtbb.so.2 $TARGET/$LUX_TAG/lib
+ cp $TARGET/lib/libOpenImageDenoise.so.1 $TARGET/lib/libembree4.so.4 $TARGET/lib/libtbb.so.12 $TARGET/lib/libtbb.so.2 $TARGET/$LUX_TAG/lib
cp -a $TARGET/lib/libnvrtc* $TARGET/$LUX_TAG
cp $LUX_TAG/README.md $TARGET/$LUX_TAG
@@ -73,7 +73,7 @@ else
cp $LUX_TAG/bin/luxcoreui $TARGET/$LUX_TAG
cp $LUX_TAG/lib/*.so $TARGET/$LUX_TAG
- cp $TARGET/lib/libOpenImageDenoise.so.1 $TARGET/lib/libembree3.so.3 $TARGET/lib/libtbb.so.12 $TARGET/lib/libtbb.so.2 $TARGET/$LUX_TAG
+ cp $TARGET/lib/libOpenImageDenoise.so.1 $TARGET/lib/libembree4.so.4 $TARGET/lib/libtbb.so.12 $TARGET/lib/libtbb.so.2 $TARGET/$LUX_TAG
cp -a $TARGET/lib/libnvrtc* $TARGET/$LUX_TAG
cp $LUX_TAG/README.md $TARGET/$LUX_TAG
What more I have made some tricks in build script, to force using
https://github.com/embree/embree/releas ... nux.tar.gz