RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization

Home Page:http://ospray.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Trying to import only ospTutorial but failing

carlosd-29 opened this issue · comments

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:

find_package(glm REQUIRED)
if(TARGET glm::glm)
  set(GLM_TARGET glm::glm)
else()
  set(GLM_TARGET glm)
endif()

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