Hello I am trying to have ospTutorial exists by on the oneAPI repo as another example on how to use OSPRAY but I am running into to some issues.
In ospTutorialGLM.cpp it originally imports #include "ospray/ospray_cpp/ext/glm.h" but I was running into trouble finding the glm package:
/usr/bin/ld: cannot find -lglm
I changed that line and I got:
In file included from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Camera.h:6,
from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp.h:8,
from /home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:23:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/ManagedObject.h: In instantiation of ‘void ospray::cpp::ManagedObject<HANDLE_T, TYPE>::setParam(const string&, const T&) const [with T = glm::vec<3, float, glm::packed_highp>; HANDLE_T = osp::Camera*; OSPDataType TYPE = OSP_CAMERA; std::string = std::__cxx11::basic_string<char>]’:
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:67:40: required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/ManagedObject.h:122:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as parameters on OSPRay objects. NOTE: Math types (vec, box, linear, affine) are expected to come from rkcommon::math.
122 | static_assert(OSPTypeFor<T>::value != OSP_UNKNOWN,
| ~~~~~~^~~~~~~~~~~~~~
In file included from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp.h:9,
from /home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:23:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<3, float, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<3, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<3, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34: required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<3, float, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<3, float, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:74:68: required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
184 | static_assert(OSPTypeFor<T>::value != OSP_UNKNOWN,
| ~~~~~~^~~~~~~~~~~~~~
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<4, float, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<4, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<4, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34: required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<4, float, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<4, float, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:75:64: required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<3, unsigned int, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36: required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34: required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<3, unsigned int, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:76:57: required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
make[2]: *** [CMakeFiles/ospTutorialGLM.dir/build.make:63: CMakeFiles/ospTutorialGLM.dir/ospTutorialGLM.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ospTutorialGLM.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
I'm pretty sure I have glm package being added in the CMakeLists.txt:
If someone has some insight as to why either approach is wrong or if there is a separate component of the ospray build that I should include to get it to work standalone, it'd be greatly appreciated.
Hello I am trying to have ospTutorial exists by on the oneAPI repo as another example on how to use OSPRAY but I am running into to some issues.
In ospTutorialGLM.cpp it originally imports
#include "ospray/ospray_cpp/ext/glm.h"
but I was running into trouble finding the glm package:/usr/bin/ld: cannot find -lglm
I changed that line and I got:
I'm pretty sure I have glm package being added in the CMakeLists.txt:
And I link it in the file as well.
If someone has some insight as to why either approach is wrong or if there is a separate component of the ospray build that I should include to get it to work standalone, it'd be greatly appreciated.
I am running this on Ubuntu WSL