khronosgroup / anari-sdk Goto Github PK
View Code? Open in Web Editor NEWANARI Software Development Kit (SDK)
License: Apache License 2.0
ANARI Software Development Kit (SDK)
License: Apache License 2.0
Please make it possible to build the package in cases where no internet access is available. Now one has to copy all the .zip files. Also the pybind11 cloning is not possible.
How can I replace the fetch with a local copy?
THanks
The base type used for implementations is called anari::Device
, but the C++ bindings also use the symbol name anari::Device
which causes a conflict by redefining the type.
Hello,
When compiling the Anari SDK on Windows 11 Visual Studio 2019 I get this build error:
8>Generating Code... 8>Done building project "anari_library_example.vcxproj" -- FAILED. 12>------ Build started: Project: anariTutorialDirectLink, Configuration: Release x64 ------ 12>Building Custom Rule C:/Users/Cameron/Downloads/ANARI-SDK/examples/direct_linking/CMakeLists.txt 12>anariTutorialDirectLink.c 12>LINK : fatal error LNK1181: cannot open input file '..\..\Release\anari_library_example.lib' 12>Done building project "anariTutorialDirectLink.vcxproj" -- FAILED. 13>------ Build started: Project: ALL_BUILD, Configuration: Release x64 ------ 13>Building Custom Rule C:/Users/Cameron/Downloads/ANARI-SDK/CMakeLists.txt ========== Build: 8 succeeded, 5 failed, 0 up-to-date, 0 skipped ==========
I attempt to continue the build:
1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\bvh/SweepSAHBuilder.h(294,3): error C2059: syntax error: '{' 1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\bvh/SweepSAHBuilder.h(294,3): error C2143: syntax error: missing ';' before '{' 1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\bvh/SweepSAHBuilder.h(301,31): warning C4267: '=': conversion from 'size_t' to 'uint32_t', possible loss of data 1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\volume\../SceneObject.h(84,9): error C3001: 'declare': expected an OpenMP directive name 1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\volume\../SceneObject.h(88,9): error C3036: 'bbox_extend': invalid operator token in OpenMP 'reduction' clause 1>C:\Users\Cameron\Downloads\ANARI-SDK\examples\example_device\scene\volume\../SceneObject.h(88,1): error C3016: 'i': index variable in OpenMP 'for' statement must have signed integral type 1>Generating Code... 1>Done building project "anari_library_example.vcxproj" -- FAILED. ========== Build: 0 succeeded, 1 failed, 3 up-to-date, 0 skipped ==========
Am I missing prerequisites? I hope this is helpful.
Kind regards,
Cameron
Hi @jeffamstutz and @szellmann,
It may be useful to mention somewhere in the README that the example device
is based on OpenMP and as such early adopters should expect hardware optimized ANARI implementations will be provided by the corresponding vendor.
What do you think?
Comparing ANARIDataType for equality used to work in c++17 but leads to compiler errors in c++20 using MSVC. This can be observed in the following code example:
#include "anari_enums.h"
bool isFloat(ANARIDataType anariDataType)
{
bool isFloat = anariDataType == ANARI_FLOAT32;
return isFloat
}
While this compiles fine using c++17 but gives the following errors in c++20 (shortend):
[build] ~\AnariDevice.cpp(171): error C2666: 'ANARIDataType::operator ==': overloaded functions have similar conversions
[build] ~\include\anari\frontend/anari_enums.h(14): note: could be 'bool ANARIDataType::operator ==(int) noexcept const'
[build] ~\include\anari\frontend/anari_enums.h(14): note: or 'bool ANARIDataType::operator ==(int) noexcept const' [synthesized expression 'y == x']
[build] ~\AnariDevice.cpp(171): note: or 'built-in C++ operator==(int, int)'
[build] ~/DataOORef.h(315): note: or 'bool Ovito::operator ==(std::nullptr_t,const Ovito::DataOORef<T> &) noexcept'
[build] ~\AnariDevice.cpp(171): note: 'bool Ovito::operator ==(std::nullptr_t,const Ovito::DataOORef<T> &) noexcept': could not deduce template argument for 'const Ovito::DataOORef<T> &' from 'ANARIDataType'
[build] ~/DataOORef.h(310): note: or 'bool Ovito::operator ==(const Ovito::DataOORef<T> &,std::nullptr_t) noexcept'
...
[build] ~/DataOORef.h(310): note: or 'bool Ovito::operator ==(const Ovito::DataOORef<T> &,std::nullptr_t) noexcept' [synthesized expression 'y == x']
...
[build] ninja: build stopped: subcommand failed.
...
This issue can solved in multiple ways:
ANARIDataType
to an int
compilation works.
bool isFloat(ANARIDataType anariDataType)
{
bool isFloat = (int)anariDataType == ANARI_FLOAT32;
return isFloat
}
struct ANARIDataType
constexpr bool operator==(ANARIDataType v) const noexcept { return v == value; }
!=
operator for int
to struct ANARIDataType
constexpr bool operator!=(int v) const noexcept { return v != value; }
So the issue can be solved complety client side, however, i thought you might want to know about the issue and maybe consider a library side fix as well.
Microsoft (R) C/C++ Optimizing Compiler Version 19.37.32825 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
#16 added support for only including the glm dependency when BUILD_TESTING is on, but I believe it also needs to be enabled when BUILD_EXAMPLES is on.
I believe that in external/CMakeLists.txt
then the if statement for whether to download glm should read:
if (BUILD_TESTING OR BUILD_EXAMPLES)
I've tested this by verifying that the following succeeds:
$ cmake -DBUILD_TESTING:BOOL=ON -DBUILD_EXAMPLES:BOOL=ON
The following fails:
$ cmake -DBUILD_TESTING:BOOL=OFF -DBUILD_EXAMPLES:BOOL=ON
And that command succeeds after changing external/CMakeLists.txt
:
-if (BUILD_TESTING)
+if (BUILD_TESTING OR BUILD_EXAMPLES)
When building the latest ANARI SDK with BUILD_HELIDE_DEVICE:BOOL=ON
and using CMake 3.18 I get the error below with curl
(which does support the required protocols and was manually tested and successfully downloaded the embree file).
However, when using CMake 3.25.1 the ANARI SDK builds successfully. VisIt's automated build scripts currently use CMake 3.18 and are generally several CMake releases behind the current.
The getenv
function will return a NULL pointer if the environment variable is not set on the line:
Line 86 in c755452
libraryName
(and the reference name
) in the line:Line 93 in c755452
Line 104 in c755452
Compiling on macOS fails, when building only the GL viewer but not the GLES viewer.
This can be reproduced with a fresh checkout of the recent main
branch (commit f5ae12a) and configuring with:
cmake .. -DBUILD_VIEWER=ON -DBUILD_GLES_VIEWER=OFF
On make
, the compiler produces the following error message:
#if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV))
^
/Users/stefan/ANARI-SDK/build-test/imgui/backends/imgui_impl_opengl3.cpp:93:46: warning: 'TARGET_OS_TV' is not defined, evaluates to 0 [-Wundef-prefix=TARGET_OS_]
#if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV))
^
/Users/stefan/ANARI-SDK/build-test/imgui/backends/imgui_impl_opengl3.cpp:96:10: fatal error: 'GLES3/gl3.h' file not found
#include <GLES3/gl3.h> // Use GL ES 3
^~~~~~~~~~~~~
2 warnings and 1 error generated.
make[2]: *** [external/CMakeFiles/imgui_glfw_gles2.dir/__/imgui/backends/imgui_impl_opengl3.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
My compiler is Apple clang version 13.1.6 (clang-1316.0.21.2.5)
. I'm on macOS 12.5.1.
git-bisect
suggests that the regression was introduced by this commit: 6991cbf
Hi there,
Building with intel compilers generates a whole lotta errors related to glm.
For example:
[ 6%] Building CXX object libs/anari/CMakeFiles/anari.dir/anari_cpp_glm_defs.cpp.o
In file included from /work2/01197/semeraro/frontera/ANARI/external/glm/include/glm/./ext/../detail/type_mat2x2.hpp(6),
from /work2/01197/semeraro/frontera/ANARI/external/glm/include/glm/./ext/matrix_double2x2.hpp(5),
from /work2/01197/semeraro/frontera/ANARI/external/glm/include/glm/mat2x2.hpp(5),
from /work2/01197/semeraro/frontera/ANARI/libs/anari/include/anari/anari_cpp/ext/glm.h(7),
from /work2/01197/semeraro/frontera/ANARI/libs/anari/anari_cpp_glm_defs.cpp(5):
/work2/01197/semeraro/frontera/ANARI/external/glm/include/glm/./ext/../detail/type_vec2.hpp(93): error: cannot overload functions distinguished by return type alone
GLM_FUNC_DECL GLM_CONSTEXPR T const& operator[](length_type i) const;
Using the compiler:
login4.frontera(1091)$ which icc
/opt/intel/compilers_and_libraries_2020.1.217/linux/bin/intel64/icc
Builds under gcc/9.1.0. (Ya I know, then use gcc...)
Hello there,
I'm trying to package the SDK for Alpine Linux 1, and I encounter a failure when running the unit test
Internal ctest changing into directory: /home/simon/src/aports/testing/anari-sdk/src/ANARI-SDK-0.3.0/build-shared
Test project /home/simon/src/aports/testing/anari-sdk/src/ANARI-SDK-0.3.0/build-shared
Start 1: unit_test::Any
Start 2: unit_test::Optional
Start 3: unit_test::ParameterizedObject
Start 4: unit_test::RefCounted
Start 5: unit_test::helium::AnariAny
Start 6: unit_test::helium::ParameterizedObject
Start 7: unit_test::helium::RefCounted
Start 8: render_test::cornell_box
Start 9: render_test::gravity_spheres_volume
Start 10: render_test::instanced_cubes
Start 11: render_test::textured_cube
Start 12: render_test::random_spheres
1/12 Test #1: unit_test::Any ........................... Passed 0.00 sec
2/12 Test #2: unit_test::Optional ...................... Passed 0.00 sec
3/12 Test #3: unit_test::ParameterizedObject ........... Passed 0.00 sec
4/12 Test #4: unit_test::RefCounted .................... Passed 0.00 sec
5/12 Test #5: unit_test::helium::AnariAny ..............***Exception: Illegal 0.00 sec
Filters: [helium_AnariAny]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
anariUnitTests is a Catch v2.13.7 host application.
Run with -? for options
-------------------------------------------------------------------------------
helium::AnariAny 'bool' type behavior
Can make valid by C construction
-------------------------------------------------------------------------------
/home/simon/src/aports/testing/anari-sdk/src/ANARI-SDK-0.3.0/tests/unit/test_helium_AnariAny.cpp:65
...............................................................................
/home/simon/src/aports/testing/anari-sdk/src/ANARI-SDK-0.3.0/tests/unit/test_helium_AnariAny.cpp:65: FAILED:
{Unknown expression after the reported line}
due to a fatal error condition:
SIGILL - Illegal instruction signal
===============================================================================
test cases: 3 | 2 passed | 1 failed
assertions: 52 | 51 passed | 1 failed
6/12 Test #6: unit_test::helium::ParameterizedObject ... Passed 0.00 sec
7/12 Test #8: render_test::cornell_box .................***Exception: SegFault 0.00 sec
CONFIGURATION:
[FATAL] 'environment' library selected but ANARI_LIBRARY is not set
8/12 Test #7: unit_test::helium::RefCounted ............ Passed 0.00 sec
9/12 Test #9: render_test::gravity_spheres_volume ......***Exception: SegFault 0.00 sec
CONFIGURATION:
[FATAL] 'environment' library selected but ANARI_LIBRARY is not set
10/12 Test #10: render_test::instanced_cubes .............***Exception: SegFault 0.00 sec
CONFIGURATION:
[FATAL] 'environment' library selected but ANARI_LIBRARY is not set
11/12 Test #11: render_test::textured_cube ...............***Exception: SegFault 0.00 sec
CONFIGURATION:
[FATAL] 'environment' library selected but ANARI_LIBRARY is not set
12/12 Test #12: render_test::random_spheres ..............***Exception: SegFault 0.00 sec
CONFIGURATION:
[FATAL] 'environment' library selected but ANARI_LIBRARY is not set
Also, the there's no way to disable the render test, nor running them without installing the example device. It would be nice to either be able to disable them, or run the tests with the example device in the build folder.
Thanks
Need to move the anariGetObjectFeatures
and anariGetInstanceFeatures
definitions from the header file (anari_feature_utility.h
) to the appropriate implementation file (API.cpp
??). Having the definitions in the header file causes a multiple definition
error when trying to #include <anari/anari_cpp.hpp>
as the definitions will appear in multiple places and the linker doesn't like it.
Hi,
I'm trying to use the Python bindings, with an AMR spatial field extension. That extension requires the block data to be specified as a ANARI_ARRAY1D
of ANARI_ARRAY1D
(of ANARI_FLOAT32
). Myself being an absolute Python newbie, and with very little experience with the pyanari bindings, I wonder if someone could give me a pointer how to do this. For reference, some work in progress code that currently fails for me with memory access violations (upon setting those arrays) can be found here in this file:
Perhaps someone can point me to some example code showing how this is done. I'm currently working off the tutorial as well as the blender plug-in.
Is the code ported to Windows ?
I tried building it but came across this error
3>Generating Code...
3> Creating library C:/Users/yueni/projects/ANARI-SDK/build/Release/anari_library_example.lib and object C:/Users/yueni/projects/ANARI-SDK/build/Release/anari_library_example.exp
3>ExampleDeviceDebugFactory.obj : error LNK2019: unresolved external symbol "public: void __cdecl anari::debug_device::GenericDebugObject::unknown_parameter(struct ANARIDataType,char const *,char const *,struct ANARIDataType)" (?unknown_parameter@GenericDebugObject@debug_device@anari@@QEAAXUANARIDataType@@PEBD10@Z) referenced in function "public: virtual void __cdecl anari::debug_device::`anonymous namespace'::array1d::setParameter(char const *,struct ANARIDataType,void const *)" (?setParameter@array1d@?A0x220b2aa9@debug_device@anari@@UEAAXPEBDUANARIDataType@@PEBX@Z)
3>ExampleDeviceDebugFactory.obj : error LNK2019: unresolved external symbol "public: void __cdecl anari::debug_device::GenericDebugObject::check_type(struct ANARIDataType,char const *,char const *,struct ANARIDataType,struct ANARIDataType *)" (?check_type@GenericDebugObject@debug_device@anari@@QEAAXUANARIDataType@@PEBD10PEAU4@@Z) referenced in function "public: virtual void __cdecl anari::debug_device::`anonymous namespace'::array1d::setParameter(char const *,struct ANARIDataType,void const *)" (?setParameter@array1d@?A0x220b2aa9@debug_device@anari@@UEAAXPEBDUANARIDataType@@PEBX@Z)
3>ExampleDeviceDebugFactory.obj : error LNK2019: unresolved external symbol "public: void __cdecl anari::debug_device::ObjectFactory::unkown_subtype(struct anari::debug_device::DebugDevice *,struct ANARIDataType,char const *)" (?unkown_subtype@ObjectFactory@debug_device@anari@@QEAAXPEAUDebugDevice@23@UANARIDataType@@PEBD@Z) referenced in function "public: virtual struct anari::debug_device::DebugObjectBase * __cdecl anari::debug_device::ExampleDeviceDebugFactory::new_camera(char const *,struct anari::debug_device::DebugDevice *,struct anari::api::Object *,struct anari::api::Object *)" (?new_camera@ExampleDeviceDebugFactory@debug_device@anari@@UEAAPEAUDebugObjectBase@23@PEBDPEAUDebugDevice@23@PEAUObject@api@3@2@Z)
3>C:\Users\yueni\projects\ANARI-SDK\build\Release\anari_library_example.dll : fatal error LNK1120: 3 unresolved externals
3>Done building project "anari_library_example.vcxproj" -- FAILED.
16>------ Build started: Project: anariTutorialDirectLink, Configuration: Release x64 ------
16>anariTutorialDirectLink.c
16>anariTutorialDirectLink.vcxproj -> C:\Users\yueni\projects\ANARI-SDK\build\Release\anariTutorialDirectLink.exe
17>------ Skipped Build: Project: INSTALL, Configuration: Release x64 ------
17>Project not selected to build for this solution configuration
========== Build: 9 succeeded, 1 failed, 15 up-to-date, 7 skipped ==========
Is there documentation somewhere regarding implementing a new device ?
I'm working on a Vulkan device and I'm having a hard time grokking what should be in the device.json
file, as well as setting up the skeleton of the device implementation.
I am working with C and don't intend to use helium
.
Thanks.
There seem to be two syntax errors in the file "herder_gen/anari_core_objects_1_0.json".
In my editor, the commas in lines 829 and 833 are displayed as incorrect.
anari::newArray
contains defaulted arguments that can cause ambiguity between overloads when used. The best remedy is to simply add 1/2/3D suffixes to each collection of functions.
Trying to build, I attempted a few variations similar to the github workflow to get it working, but I always get the following syntax error:
[ 68%] Building CXX object libs/debug_device/CMakeFiles/anari_library_debug.dir/DebugBasics.cpp.o
cd /workspace/srcdir/ANARI-SDK/build/libs/debug_device && /opt/bin/x86_64-linux-gnu-libgfortran5-cxx11/x86_64-linux-gnu-g++ --sysroot=/opt/x86_64-linux-gnu/x86_64-linux-gnu/sys-root/ -Danari_library_debug_EXPORTS -I/workspace/srcdir/ANARI-SDK/livice/include -I/workspace/srcdir/ANARI-SDK/build/libs/anari/include/anari -I/workspace/srcdir/ANARI-SDK/libs/anari/include -I/workspace/srcdir/ANARI-SDK/libs/anari -I/workspace/srcdir/ANARI-SDK/libs/anari_utilities/include -O3 -DNDEBUG -fPIC -st -MT libs/debug_device/CMakeFiles/anari_library_debug.dir/DebugBasics.cpp.o -MF CMakeFiles/anari_library_debug.dir/DebugBasics.cpp.o.d -o CMakeFiles/anari_library_debug.dir/DebugBasics.cpp.o -c /workspace/srcdir/ANARI-SDK/libs/debug_device/Debug
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp: In member function ‘virtual void anari::debug_device::DebugBasics::anariGetProperty(ANARIDevice, ANARIObject, const char*, ANARIDataType, void*, uint64_t, ANARIWaitMask)’:
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp:272:36: error: expected ‘)’ before ‘PRIu64’
272 | "%s: buffer of size %" PRIu64 " is to small for property of type %s.", DEBUG_FUNCTION_NAME, size, toString(type));
| ^~~~~~
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp:51:17: note: in definition of macro ‘DEBUG_REPORT’
51 | STATUS, __VA_ARGS__);
| ^~~~~~~~~~~
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp:47:21: note: to match this ‘(’
47 | td->reportStatus(\
| ^~
48 | DEBUG_SOURCE_OBJECT,\
|
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp:47:21: note: in definition of macro ‘DEBUG_REPORT’
47 | td->reportStatus(\
| ^~
48 | DEBUG_SOURCE_OBJECT,\
|
/workspace/srcdir/ANARI-SDK/libs/debug_device/DebugBasics.cpp:6:1: note: ‘PRIu64’ is defined in header ‘<cinttypes>’; did you forget to ‘#include <cinttypes>’?
5 | #include <inttypes.h>
+++ |+#include <cinttypes>
6 |
make[2]: *** [libs/debug_device/CMakeFiles/anari_library_debug.dir/build.make:104: libs/debug_device/CMakeFiles/anari_library_debug.dir/DebugBasics.cpp.o] Error 1
I have tried this on g++
versions 11 and 12, but get identical errors.
I am building with
mkdir build && cd build
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_BUILD_PARALLEL_LEVEL=$nproc \
-DCMAKE_INSTALL_PREFIX=${prefix} \
-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TARGET_TOOLCHAIN \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_EXAMPLES=OFF \
-DBUILD_HELIDE_DEVICE=OFF \
-DBUILD_TESTING=OFF \
-DBUILD_VIEWER=OFF \
-DBUILD_CTS=OFF
cmake --build . -t install
cmake
gives the following configuration dialogue
-- The C compiler identification is GNU 12.1.0
-- The CXX compiler identification is GNU 12.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /opt/bin/x86_64-linux-gnu-libgfortran5-cxx11/x86_64-linux-gnu-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/bin/x86_64-linux-gnu-libgfortran5-cxx11/x86_64-linux-gnu-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Found Python3: /usr/bin/python3.9 (found version "3.9.7") found components: Interpreter
-- Configuring done
-- Generating done
The ANARIFeatures struct is missing extension ANARI_KHR_STEREO_RENDERING
.
Hi,
I'd like to learn more about developing back end for ANARI with a specific interest in targeting offline CPU renderers.
I have built ANARI and toy around with the viewer.
My main development environment will be Ubuntu.
What example code should I start focusing on ? I have watched the OSPray back end development video from the ANARI Webinar 2022
Cheers
Now user can't use glm matrix or float[16] as ANARI_FLOAT32_MAT4
type parameter. This case produces compilation error.
Looks like there's a missed ANARI_TYPEFOR_SPECIALIZATION for glm vectors and float arrays
yet anari_test_scenes/scenes/gravity_spheres_volume.cpp:145 and example_device/scene/volume/Volume.cpp:19 use FLOAT32_VEC2
anariInfo -l helide
shows:
ANARI_SAMPLER transform:
* name ANARI_STRING
* inAttribute ANARI_STRING
* outTransform ANARI_FLOAT32_MAT4
* outOffset ANARI_FLOAT32_MAT4
This should be ANARI_FLOAT32_VEC4
for parameter outOffset
.
After installation of the SDK, the CMake config module exports targets anari::anari
, anari::helium
, and anari::anari_test_scenes
, but a corresponding target for the debug backend (anary_library_debug) seems to be missing.
A CMake target anari::anari_library_debug
for the debug layer would be useful because it would allow querying the install location of anary_library_debug.dll
. On the Windows platform, an application typically must copy all Anari DLLs to the application's runtime directory (where the .exe is located) so that they will be found at runtime. Having a CMake target for the debug lib would simplify this deployment step - even if the application does not link to this backend directly.
When building the project statically and then installing to CMAKE_INSTALL_PREFIX
, on Unix the anchoring logic that determines where to search for libanari_device_XXX.so
will base the search path off the folder that the executables are located in (i.e., bin
) and thus won't find the actual device library (which is installed to lib
). Therefore, static builds currently only work when being used from the build tree.
I am using Helide to render a sub-set of spheres. I've set the geometry's primitive.index
parameter to an ARRAY1D
of UINT32
. Positions and radii turn out correctly (they are obtained from indexing into vertex.position
and vertex.radius
) but not the spheres' colors. Their colors seem to be taken from the vertex.color
array without indexing.
The ANARI spec claims:
Each element of
primitive.index
defines one sphere, indexing into thevertex.*
arrays.
I am wondering whether I am observing a limitation (or bug) of the helide renderer or doing something wrong on the application side.
In cornell box scene (cornell_box.cpp) there's a possible mistake. There's a check of ANARI_KHR_DEVICE_SYNCHRONIZATION feature (line 275), but it looks like that it should check ANARI_KHR_AREA_LIGHTS
Hello. I found some some issues in ANARI test scenes:
In textured_cube.cpp, line 99, there's an incorrect subtype name ("texture2d", but correct name in documentation is a "image2D")
In random_spheres.cpp there's no release of surface. In line 49 anari:setParameter
is used instead of anari:setAndReleaseParameter
. Destructor of surface won't be called because surface have one reference.
In file_obj.cpp there's a undocumented parameter using ("vertex.texcoord") (line 139)
Just a heads up, I have added ANARI to microsoft/vcpkg so its a bit easier to build and use:
https://github.com/microsoft/vcpkg/tree/master/ports/anari
microsoft/vcpkg#33213
I am currently adding OptiX + VisRTX. Might also do OSPRay and ProRender in the future.
Opening this issue in case you consider adding it to the documentation.
Hello,
The Windows build completes fully. But when I run the 'viewer.exe' or 'anari_regression_tests.exe'
ANARI ERROR: 'environment' library selected but ANARI_LIBRARY is not set
Is this something missing from the environment variables?
Kind regards,
Cameron
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.