GithubHelp home page GithubHelp logo

renderkit / openvkl Goto Github PK

View Code? Open in Web Editor NEW
189.0 189.0 22.0 6.74 MB

Intel(R) Open Volume Kernel Library

License: Apache License 2.0

CMake 5.17% Shell 0.71% Batchfile 0.05% C++ 84.35% C 9.31% PowerShell 0.41%

openvkl's People

Contributors

ahota avatar demarle avatar dmnemshi avatar freibold avatar gregjohnson avatar jeffamstutz avatar johguenther avatar jomeng avatar knolla avatar kraszkow avatar krishnancr avatar m-kim avatar rscohn2 avatar scmcduffee avatar timrowley avatar trevorthomson avatar twinklebear avatar zhongruoyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openvkl's Issues

question: multi-attribute unstructured queries?

I hope my nomenclature is correct....

I'm wondering if there will be support for sampling vec3f on an unstrctured volume similar to structured....
[I know this is may be hard]

i.e. vec3f v = VKLUnstructuredVolume_sample(...)

We could use this, for example, to sample a vector field, useful for particle advection in unstructured volumes...

Otherwise, it seems like we'd have to create a volume/sampler for each component... could be expensive for us memorywise...

I do see some internal use of with particle sampling but nothing exposed by the api... any hope?

Thanks in advance for help/suggestions, openvkl/ospray remains fairly essential for our group.
-Tim

// sample (multiple attributes)
unsigned int M = 3;
unsigned int attributeIndices[] = {0, 1, 2};
float samples[3];
vklComputeSampleM(&sampler, &coord, samples, M, attributeIndices, time);
printf("\tsampling (multiple attributes)\n");
printf("\t\tsamples = %f %f %f\n\n", samples[0], samples[1], samples[2]);

unresolvable R_X86_64_TOFF32

I now get a new error, when building the examples :

[ 53%] Linking CXX executable ../../vklExamples
cd /tmp/ebuser/avx2/OpenVKL/0.10.0/iccifort-2020.1.217/easybuild_obj/examples/interactive && /cvmfs/soft.computecanada.ca/gentoo/2020/usr/bin/cmake -E cmake_link_script CMakeFiles/vklExamples.dir/link.txt --verbose=1
/tmp/eb-gm8eeave/tmpgggvr06h/icpc  -O2 -march=core-avx2 -axCore-AVX512 -ftz -fp-speculation=safe -fp-model source -no-ansi-alias -O3 -DNDEBUG  -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/blosc/1.17.1/lib -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/openexr/2.5.2/lib64 -L/cvmfs/soft.computecanada.ca/easybuild/software/    2020/avx2/Compiler/intel2020/openvdb/7.0.0/lib64 -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/openvdb/7.0.0/lib -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/rkcommon/1.4.2/lib -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/boost/1.72.0/lib -L/cvmfs/soft.computecanada.ca/       easybuild/software/2020/avx2/Compiler/intel2020/embree/3.11.0/lib64 -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/glfw/3.3.2/lib64 -L/cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/tbb/2020.2/lib -L/cvmfs/restricted.computecanada.ca/easybuild/software/2020/Core/intel/2020.1.217/lib/intel64 -rdynamic CMakeFiles/vklExamples.dir/  window/ArcballCamera.cpp.o CMakeFiles/vklExamples.dir/window/VKLWindow.cpp.o CMakeFiles/vklExamples.dir/AppInit.cpp.o CMakeFiles/vklExamples.dir/vklExamples.cpp.o CMakeFiles/vklExamples.dir/imgui/imgui.cpp.o CMakeFiles/vklExamples.dir/imgui/imgui_draw.cpp.o CMakeFiles/vklExamples.dir/imgui/imgui_demo.cpp.o CMakeFiles/vklExamples.dir/window/GLFWVKLWindow.cpp.o   CMakeFiles/vklExamples.dir/window/imgui_impl_glfw_gl3.cpp.o CMakeFiles/vklExamples.dir/window/TransferFunctionWidget.cpp.o  -o ../../vklExamples  -Wl,-rpath,/tmp/ebuser/avx2/OpenVKL/0.10.0/iccifort-2020.1.217/easybuild_obj: /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/glfw/3.3.2/lib64/libglfw.so.3.3 ../../libvkl_example_renderers.a -lGL -lGLU /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/openvdb/7.0.0/lib/libopenvdb.so /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/boost/1.72.0/lib/libboost_iostreams-mt.so /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/boost/1.72.0/lib/libboost_regex-mt.so /cvmfs/soft.          computecanada.ca/easybuild/software/2020/avx2/Compiler/intel2020/boost/1.72.0/lib/libboost_system-mt.so /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/openexr/2.5.2/lib64/libHalf.so ../../libopenvkl.so.0.10.0 /cvmfs/soft.computecanada.ca/easybuild/software/2020/avx2/Core/rkcommon/1.4.2/lib/librkcommon.so.1.4.2 -pthread -ltbb -ltbbmalloc -ldl
/cvmfs/soft.computecanada.ca/gentoo/2020/usr/x86_64-pc-linux-gnu/binutils-bin/2.33.1/ld: CMakeFiles/vklExamples.dir/vklExamples.cpp.o(.text+0x108a5): unresolvable R_X86_64_TPOFF32 relocation against symbol `_ZSt15__once_callable@@GLIBCXX_3.4.11'
/cvmfs/soft.computecanada.ca/gentoo/2020/usr/x86_64-pc-linux-gnu/binutils-bin/2.33.1/ld: final link failed: nonrepresentable section on output
make[2]: *** [examples/interactive/CMakeFiles/vklExamples.dir/build.make:235: vklExamples] Error 1
make[2]: Leaving directory '/tmp/ebuser/avx2/OpenVKL/0.10.0/iccifort-2020.1.217/easybuild_obj'
make[1]: *** [CMakeFiles/Makefile2:1271: examples/interactive/CMakeFiles/vklExamples.dir/all] Error 2

This sounds like there is a missing -fPIC somewhere ?

can not find "rkcommon" ?

I am getting this error when trying to build OpenVKL :

CMake Error at CMakeLists.txt:51 (find_package):
  By not providing "Findrkcommon.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "rkcommon",
  but CMake did not find one.

  Could not find a package configuration file provided by "rkcommon"
  (requested version 1.4.1) with any of the following names:

    rkcommonConfig.cmake
    rkcommon-config.cmake

  Add the installation prefix of "rkcommon" to CMAKE_PREFIX_PATH or set
  "rkcommon_DIR" to a directory containing one of the above files.  If
  "rkcommon" provides a separate development package or SDK, be sure it has
  been installed.

what is rkcommon ? I could not find that online.

openvkl tests cant find libraries on windows.

I am trying to build and use openvkl on a windows system (forgive me father... ). I got the superbuild to complete but when I try to run one of the examples in the bin directory I get

C:\Users\Dave Semeraro>vklMinimal_03.exe
[openvkl] Load of openvkl_module_cpu_device_4 failed due to: 'could not open module lib >openvkl_module_cpu_device_4: The specified module could not be found.
'
[openvkl] Load of openvkl_module_cpu_device_8 failed due to: 'could not open module lib >openvkl_module_cpu_device_8: The specified module could not be found.
'
[openvkl] Load of openvkl_module_cpu_device_16 failed due to: 'could not open module lib >openvkl_module_cpu_device_16: The specified module could not be found.
'
[openvkl] INITIALIZATION ERROR: Could not find device of type: cpu_8. Make sure you have the >correct VKL libraries linked.

I have added the full path to the device dll files to my windows path environment but still no luck. Setting the Path works for the tbb and rkcommon dll files that are also needed by the openvkl examples but not for the cpu device itself. I am running on windows 11 with v msvc 2022 release. Any windows gurus out there?

This isnt really a bug but I didnt know where else to ask the question.

Fails on i386 and possibly other 32-bit architectures: use of overloaded operator '[]' is ambiguous

/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:202:20: note: built-in candidate operator[](float *, int)
        hit.epsilon[0] = hitW.epsilon[0];
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:202:20: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:202:20: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:202:20: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:203:15: error: use of overloaded operator '[]' is ambiguous (with operand types 'vintn<1>' and 'int')
        result[0]      = resultW[0];
        ~~~~~~^~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:36:10: note: candidate function
    int &operator[](std::size_t index)
         ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:41:16: note: candidate function
    const int &operator[](std::size_t index) const
               ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:203:15: note: built-in candidate operator[](int *, int)
        result[0]      = resultW[0];
              ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:203:15: note: built-in candidate operator[](const int *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:203:15: note: built-in candidate operator[](volatile int *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/Iterator.h:203:15: note: built-in candidate operator[](const volatile int *, int)
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:7:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/Volume.h:10:
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/Sampler.h:184:14: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<1>' and 'int')
      samples[0] = samplesW[0];
      ~~~~~~~^~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/Sampler.h:184:14: note: built-in candidate operator[](float *, int)
      samples[0] = samplesW[0];
             ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/Sampler.h:184:14: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/Sampler.h:184:14: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/Sampler.h:184:14: note: built-in candidate operator[](const volatile float *, int)
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:4:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.h:8:
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:76:11: error: use of overloaded operator '[]' is ambiguous (with operand types 'vintn<16>' and 'int')
          validW[i] = i == 0 ? -1 : 0;
          ^~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:49:20: note: in instantiation of member function 'openvkl::cpu_device::IntervalIterator<16>::initializeIntervalU' requested here
    template class DefaultIntervalIterator<VKL_TARGET_WIDTH>;
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:36:10: note: candidate function
    int &operator[](std::size_t index)
         ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:41:16: note: candidate function
    const int &operator[](std::size_t index) const
               ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:76:11: note: built-in candidate operator[](int *, int)
          validW[i] = i == 0 ? -1 : 0;
          ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:76:11: note: built-in candidate operator[](const int *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:76:11: note: built-in candidate operator[](volatile int *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:76:11: note: built-in candidate operator[](const volatile int *, int)
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:4:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.h:8:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:7:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/IteratorBase.h:6:
In file included from /wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/../api/Device.h:9:
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:212:9: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<16>' and 'int')
        newVec.x[i] = x[i];
        ^~~~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:78:57: note: in instantiation of function template specialization 'openvkl::vvec3fn<1>::operator vvec3fn<16>' requested here
        vvec3fn<W> originW    = static_cast<vvec3fn<W>>(origin);
                                                        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:49:20: note: in instantiation of member function 'openvkl::cpu_device::IntervalIterator<16>::initializeIntervalU' requested here
    template class DefaultIntervalIterator<VKL_TARGET_WIDTH>;
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:212:9: note: built-in candidate operator[](float *, int)
        newVec.x[i] = x[i];
        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:212:9: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:212:9: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:212:9: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:213:9: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<16>' and 'int')
        newVec.y[i] = y[i];
        ^~~~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:213:9: note: built-in candidate operator[](float *, int)
        newVec.y[i] = y[i];
        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:213:9: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:213:9: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:213:9: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:214:9: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<16>' and 'int')
        newVec.z[i] = z[i];
        ^~~~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:214:9: note: built-in candidate operator[](float *, int)
        newVec.z[i] = z[i];
        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:214:9: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:214:9: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:214:9: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:100:16: error: use of overloaded operator '[]' is ambiguous (with operand types 'const vfloatn<16>' and 'int')
        v[i] = o[i];
               ^ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:189:39: note: in instantiation of member function 'openvkl::vfloatn<16>::vfloatn' requested here
    vvec3fn<W>(const vvec3fn<W> &v) : x(v.x), y(v.y), z(v.z) {}
                                      ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:78:33: note: in instantiation of member function 'openvkl::vvec3fn<16>::vvec3fn' requested here
        vvec3fn<W> originW    = static_cast<vvec3fn<W>>(origin);
                                ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:49:20: note: in instantiation of member function 'openvkl::cpu_device::IntervalIterator<16>::initializeIntervalU' requested here
    template class DefaultIntervalIterator<VKL_TARGET_WIDTH>;
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:100:16: note: built-in candidate operator[](const float *, int)
        v[i] = o[i];
               ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:100:16: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:172:9: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<16>' and 'int')
        newRange.lower[i] = lower[i];
        ^~~~~~~~~~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:80:59: note: in instantiation of function template specialization 'openvkl::vrange1fn<1>::operator vrange1fn<16>' requested here
        vrange1fn<W> tRangeW  = static_cast<vrange1fn<W>>(tRange);
                                                          ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:49:20: note: in instantiation of member function 'openvkl::cpu_device::IntervalIterator<16>::initializeIntervalU' requested here
    template class DefaultIntervalIterator<VKL_TARGET_WIDTH>;
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:172:9: note: built-in candidate operator[](float *, int)
        newRange.lower[i] = lower[i];
        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:172:9: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:172:9: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:172:9: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:173:9: error: use of overloaded operator '[]' is ambiguous (with operand types 'vfloatn<16>' and 'int')
        newRange.upper[i] = upper[i];
        ^~~~~~~~~~~~~~ ~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:77:12: note: candidate function
    float &operator[](std::size_t index)
           ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:82:18: note: candidate function
    const float &operator[](std::size_t index) const
                 ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:173:9: note: built-in candidate operator[](float *, int)
        newRange.upper[i] = upper[i];
        ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:173:9: note: built-in candidate operator[](const float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:173:9: note: built-in candidate operator[](volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:173:9: note: built-in candidate operator[](const volatile float *, int)
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:162:43: error: no matching constructor for initialization of 'vfloatn<16>'
    vrange1fn<W>(const vrange1fn<W> &v) : lower(v.lower), upper(v.upper) {}
                                          ^     ~~~~~~~
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/../volume/../sampler/../iterator/Iterator.h:80:33: note: in instantiation of member function 'openvkl::vrange1fn<16>::vrange1fn' requested here
        vrange1fn<W> tRangeW  = static_cast<vrange1fn<W>>(tRange);
                                ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/devices/cpu/iterator/DefaultIterator.cpp:49:20: note: in instantiation of member function 'openvkl::cpu_device::IntervalIterator<16>::initializeIntervalU' requested here
    template class DefaultIntervalIterator<VKL_TARGET_WIDTH>;
                   ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:71:5: note: candidate constructor not viable: no known conversion from 'const vfloatn<16>' to 'float' for 1st argument
    vfloatn<W>(float _v)
    ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:69:5: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
    vfloatn<W>() = default;
    ^
/wrkdirs/usr/ports/graphics/openvkl/work/openvkl-1.1.0/openvkl/include/../common/simd.h:104:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    vfloatn<W>(const float *o, int oW)
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

Full log (IPv6 URL).
Version: 1.1.0

errors when BUILD_TESTING is enabled

half.hpp should be updated to include this change:

https://sourceforge.net/p/half/code/415/

Otherwise, when -march is passed to gcc, it results in errors:

openvkl/0.13.0-r0/git/testing/volume/../external/half.hpp:911:62: error: '_MM_FROUND_TO_NEAREST_INT' was not declared in this scope
  911 |                                 (R==std::round_to_nearest) ? _MM_FROUND_TO_NEAREST_INT :
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
openvkl/0.13.0-r0/git/testing/volume/../external/half.hpp:912:63: error: '_MM_FROUND_TO_ZERO' was not declared in this scope
  912 |                                 (R==std::round_toward_zero) ? _MM_FROUND_TO_ZERO :
      |                                                               ^~~~~~~~~~~~~~~~~~
openvkl/0.13.0-r0/git/testing/volume/../external/half.hpp:913:67: error: '_MM_FROUND_TO_POS_INF' was not declared in this scope
  913 |                                 (R==std::round_toward_infinity) ? _MM_FROUND_TO_POS_INF :
      |                                                                   ^~~~~~~~~~~~~~~~~~~~~
openvkl/0.13.0-r0/git/testing/volume/../external/half.hpp:914:71: error: '_MM_FROUND_TO_NEG_INF' was not declared in this scope
  914 |                                 (R==std::round_toward_neg_infinity) ? _MM_FROUND_TO_NEG_INF :
      |                                                                       ^~~~~~~~~~~~~~~~~~~~~
openvkl/0.13.0-r0/git/testing/volume/../external/half.hpp:915:33: error: '_MM_FROUND_CUR_DIRECTION' was not declared in this scope

Is it possible to provide multiple transparency range for the same volume in transfer function?

Hello,

Is possible that We provide volume data and provide multiple transparency ranges in transfer function?
e.g. Below are 4 transparency ranges with separate min-max domain values associating different transparency.
Purpose of this is to highlight specific range of values and hide some.

Index   MinValue     MaxValue          MinOpacity             MaxOpacity
1          0              1                  0.1               0.3
2          1              2                  0.3               0.4
3           2             3                  0.2               0.7
4          3              5                  0.3               0.9

AMR step size

I'm looking at using openVKL to handle AMR volumes in my app. I've got a little test case which creates an AMR dataset consisting of three levels, each containing a constant value pi + level#. It then uses the iteration API to blast a ray though it. It outer loops through vklIterateInterval and inner loops through the interval's time range using its nominalDeltaT. It gets the right answers where it samples, demonstrating that its traversing the AMR , but I was expecting a smaller nominalDeltaT where the interval crosses a finer resolution grid. I had thought this mechanism would enable me to adjust my sampling rate along the ray; as it is, I have no way of discovering what an appropriate sampling rate is. Shouldn't it be determined by the cellWidth for the current level?

Building with OpenVDB

Hi,
I have OpenVDB installed, but CMake won't find it :

CMake Warning at vdb_util/CMakeLists.txt:41 (find_package):
  By not providing "FindOpenVDB.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenVDB", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenVDB"
  (requested version 7.0.0) with any of the following names:

    OpenVDBConfig.cmake
    openvdb-config.cmake

  Add the installation prefix of "OpenVDB" to CMAKE_PREFIX_PATH or set
  "OpenVDB_DIR" to a directory containing one of the above files.  If
  "OpenVDB" provides a separate development package or SDK, be sure it has
  been installed.


-- Failed to find OpenVDB at OpenVDB_ROOT (/home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0).
[mboisson@build-node OpenVKL]$ ls /home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0/*
/home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0/bin:
vdb_print

/home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0/easybuild:
avx2-Compiler-gcc9-openvdb-7.0.0-easybuild-devel  easybuild-OpenVDB-7.0.0-20200722.170738.log  easybuild-OpenVDB-7.0.0-20200722.170738_test_report.md  OpenVDB-7.0.0-GCC-9.3.0.eb  reprod

/home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0/include:
openvdb

/home/mboisson/.local/easybuild/software/2020/avx2/Compiler/gcc9/openvdb/7.0.0/lib64:
cmake  libopenvdb.a  libopenvdb.so  libopenvdb.so.7.0  libopenvdb.so.7.0.0

What do I need to give as argument for CMake to find it ?

Upper bound on structuredRegular volume dimensions?

Hello,

I am attempting to render an isosurface in a 5120^3 structuredRegular volume on OSPRay. The volume has a scalar field where the data are provided by floats (doing the math, that's half a terabyte of data). I use mmap since I do not have half a terabyte of CPU memory. When I render I see artifacts where it appears blocks are missing or are rendered differently at the high end of the X and Y dimensions (the more rapidly changing dimensions in my data object). Is there an upper bound on how large the dimensions can be in a structuredRegular volume? I could not find such a bound in the OpenVKL or OSPRay docs.

The attached image is from an early time step in the simulation. The isosurface should have a relatively uniform texture across the domain in X and Y. If I down sample the data to 1024^3 and render that I do get a relatively uniform isosurface.

Thanks,

Patrick
5120-isosurface-example

vklGetValueRange(VKLVolume volume) on a volume with multiple attributes is limited to the first attribute.

Although volumes can support multiple attributes, the current implementation appears to limit the get value range function to returning results for the first attribute associated with the volume.

vkl_range1f vklGetValueRange(VKLVolume volume);

It would be useful to support get value range for multiple attributes - perhaps by index - in order to support development of multivariate data visualization algorithms.

Error while installing OpenVKL targets

While updating from OpenVKL 1.3.0 to 1.3.2, I stumbled upon an issue when trying to install it to a custom location. When installation starts, I get the following message on console:

Install the project...
-- Install configuration: "Release"
CMake Error at cmake_install.cmake:49 (file):
  file cannot create directory: /openvkl.  Maybe need administrative
  privileges.

Following the trace to the file and line, the error came from here:
file(INSTALL DESTINATION "/openvkl" TYPE FILE FILES "/home/nadir/Programs/OSPRAY_2_11/src_dir/openvkl/build/openvkl/include/openvkl/version.h")

Checking on the main CMakeLists.txt, I can see that CMAKE_INSTALL_INCLUDEDIR has been used before including the GNUInstallDirs:

https://github.com/openvkl/openvkl/blob/fac6c96b24ae73941716b7368ffc289eb9c47532/CMakeLists.txt#L42-L51

Manually setting CMAKE_INSTALL_INCLUDEDIR to include (The default value provided by GNUInstallDirs) solves the issue for 1.3.8. Moving up the include of GNUInstallDirs would be the best way to fix it, unless this behaviour is on purpose.

Question : I couldn't find support for polyhedral cell types in OpenVKL. Is there any way I could use polyhedral cells data? Is there any plan for supporting it in future?

I couldn't find support for polyhedral cell types in OpenVKL. Is there any way I could use polyhedral cells data? Is there any plan for supporting it in future?

I have cells of tetrahedron, hexahedron, wedge, pyramid, polyhedral and mixed. Hence polyhedral seems to be important to have support in openVKL. I currently using unstructured type to have support for other 4 cell types.

Does the "particles" volumes support Multi-attributes ?

Hi,

Does the "particles" volumes support Multi-attributes ? If yes, are the attributes interpolated using the radial basis functions ?

I need an additional parameter to color the particles. I am using vklSetData( myVolume, "data", attributesData ) and I am trying to sample it with vklComputeSampleM but it doesn't work.

Thanks.

Access to cell when sampling

Can we have some way to access the cell itself when sampling? I'm trying to use an unstructured volume with an attribute that isn't supposed to be linearly interpolated.

Or some interface for customized interpolation function?

Using rkcommon with openvkl require to use LD_LIBRARY_PATH for loading

When loading openvkl with rkcommon and ospray, I have the following issue:

[openvkl] INITIALIZATION ERROR: could not open module lib openvkl_module_cpu_device: libopenvkl_module_cpu_device_4.so.1: cannot open shared object file: No such file or directory

[openvkl] WARNING: unrecognized device type 'cpu_8'.
[openvkl] INITIALIZATION ERROR: Could not find device of type: cpu_8.  Make sure you have the correct VKL libraries linked.

Setting LD_LIBRARY_PATH to libopenvkl_module_cpu_device_4.so location fixes the issue but it should not be needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.