Git Product home page Git Product logo

ospray / ospray_studio Goto Github PK

View Code? Open in Web Editor NEW
88.0 16.0 18.0 93.86 MB

An application to showcase OSPRay's rendering capabilities

Home Page: http://www.ospray.org/ospray_studio/

License: Apache License 2.0

CMake 2.73% C++ 94.64% Shell 0.59% PowerShell 0.06% C 0.38% Python 1.61%
ospray path-tracing pathtracing ray-tracing raytracing rendering scivis visualization scientific-visualization

ospray_studio's Introduction

OSPRay Studio

This is release v1.0.0 of Intel® OSPRay Studio. It is released under the Apache 2.0 license.

Visit OSPRay Studio (http://www.ospray.org/ospray_studio) for more information.

See what's new in this release.

Overview

Intel OSPRay Studio is an open source and interactive visualization and ray tracing application that leverages Intel OSPRay as its core rendering engine. It can be used to load complex scenes requiring high fidelity rendering or very large scenes requiring supercomputing resources.

The main control structure is a scene graph which allows users to create an abstract scene in a directed acyclical graph manner. Scenes can either be imported or created using scene graph nodes and structure support. The scenes can then be rendered either with OSPRay's pathtracer or scivis renderer.

More information can be found in the high-level feature description.

Building OSPRay Studio

CMake Superbuild

Required dependencies for superbuild

  • CMake (v3.15+) and any C++14 compiler

For convenience, OSPRay Studio provides a CMake Superbuild script which will pull down its dependencies i.e. GLFW, OSPRay, rkcommon and TBB. It builds OSPRay Studio without OpemImageIO and OpenEXR support. stb_image is used for all image operations by default instead.

To use the superbuild run with:

mkdir build
cd build
cmake ..
cmake --build .

For other full set of options, run:

ccmake ..

or

cmake-gui ..

Standard CMake build

For standard cmake process turn off cmake option OSPRAY_INSTALL and provide following required dependencies with their respective cmake options as will be listed in OS-specific building process below.

Required dependencies

  • CMake (v3.15+) and any C++14 compiler
  • Intel OSPRay (v3.1.0) and its dependencies - OSPRay Studio builds on top of OSPRay. Instructions on building OSPRay are provided here. OSPRay and OSPRay Studio have the following common dependencies which Studio can hence leverage from an OSPRay build.
  • OpenGL and GLFW (v3.3.9) - for the windowing environment

Optional Dependencies

  • Intel Open Image Denoise - (v2.2.0 or newer) for denoising frames. To use with OSPRay Studio, OSPRay must be built with -DBUILD_OIDN=ON in CMake.
  • OpenVDB to support loading VDB formatted volume files.
  • OpenImageIO and OpenEXR (either v2.x or v3.x) to support images in a variety of file formats. Set OPENIMAGEIO_ROOT and OPENEXR_ROOT to the respective install directories to use these libraries. (tested with OpenImageIO v2.3.16 and OpenEXR v2.5.8 and v3.3.0)
  • [Python] (3.9.7) (https://python.org) for python bindings

Building on Linux and macOS

  • Follow OSPRay's build instructions to install it, which will also fulfill most other required dependencies. Set the following environment variables to easily locate OSPRay and rkcommon during CMake.

    export ospray_DIR = ${OSPRAY_INSTALL_LOCATION}
    export rkcommon_DIR = ${RKCOMMON_INSTALL_LOCATION}
    export TBB_DIR = ${TBB_INSTALL_LOCATION}

    Alternatively, CMAKE_PREFIX_PATH can be set to find the OSPRay install and other dependencies.

  • Clone OSPRay Studio

    git clone https://github.com/ospray/ospray_studio/
  • Create build directory and change directory to it (we recommend keeping a separate build directory)

    cd ospray_studio
    mkdir build
    cd build
  • Then run the typical CMake routine

    cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang ... # or use ccmake
    make -j `nproc` # or cmake --build .
  • To run OSPRay Studio, make sure LD_LIBRARY_PATH (on Linux) or DYLD_LIBRARY_PATH (on macOS) contains all dependencies. For example,

    export LD_LIBRARY_PATH=${OSPRAY_INSTALL}/lib64:...:$LD_LIBRARY_PATH
    # then run!
    ./ospStudio

Building on Windows

Use CMake (cmake-gui) to configure and generate a Microsoft Visual Studio solution file for OSPRay Studio.

  • Specify the source folder and the build directory in CMake
  • Specify ospray_DIR, rkcommon_DIR CMake variables for the respective install locations
  • Click 'Configure' and select the appropriate generator (we recommend using at least Visual Studio 15 2017)
  • Select x64 as an optional parameter for the generator (32-bit builds are not supported)
  • Click 'Generate' to create ospray_studio.sln. Open this in Visual Studio and compile

You can optionally use the CMake command line:

cmake --build . --config Release --target install

ospray_studio's People

Contributors

ahota avatar anjak42 avatar brucecherniak avatar demarle avatar dependabot[bot] avatar evilkermit avatar gkyriazis avatar gregjohnson avatar isharma25 avatar jeffamstutz avatar johguenther avatar jomeng avatar kraszkow avatar krishnancr avatar m-kim avatar miroslawpawlowski avatar player1537 avatar rbinyahib avatar rjcazab-intel avatar trevorthomson 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

Watchers

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

ospray_studio's Issues

OpenImageIO and OpenEXR version recommendations ?

It would be helpful to indicate which version of OpenImageIO and OpenEXR has been used successfully with OSPray Studio to save us from version combinatorial explosion to try out when build fails or we encounter problems.

Thank you.

Samples missing ?

I have been able to build ospray_studio

In the menu, there was option to load some sample scenes but nothing happens.

Do I need to install other packages or set some CMake settings in order for the samples scenes to show up ?

Cheers

Segfault with v0.11.0

Hello,
The simple project here attached used to work perfectly with v0.9.0, but now generates a segmentation fault with v0.11.0. Could you please tell what is wrong? Many thanks in advance!

Project.zip

Fonts in the GUI are ugly.

Apparently, imgui used in ospray_studio is not using imgui's support for freetype, so fonts are mis-aligned, and no anti-aliased.

Could something be done about that?

Leaves `imgui.ini` in the current directory.

When running ospStudoi, it is creating a file called imgui.ini in it.

This is not really nice when no operations have been performed.

Please, consider using XDG_RUNTIME_DIR/.ospray_studio/imgui.ini

The --denoiser option is ineffective in GUI mode

Hello,

As stated in the title: if you pass --denoiser in the command line and if you are in GUI mode, no denoising is processed.

I think it's because the floatFormat of the frame buffer is not automatically set to true, unlike in batch mode (https://github.com/ospray/ospray_studio/blob/master/app/Batch.cpp#L322).

--> Could you please have a look and fix it? Many thanks in advance!

By the way, nice-to-have: it would also be convenient to be able from the command line to control whether the denoising is applied for each frame or on final frame only...

Metallic principled shader renders black

This Project is expected to render a golden cube. Unfortunately, instead, the cube is dark:
studio 0000
I'm using the Principled shader with metallic 1.0, I suspect a problem with it but I can't figure out what's wrong: can someone help me please? Many thanks in advance...

Shouldn't have OSPRAY_INSTALL option

Here it offers to install all OSPray libraries.

They are already installed as a dependency package, no need to install them again. This would only cause problems.

glTF texture coordinates flipped after adding an HDRI light source

Steps to reproduce:

  1. Launch OSPRay Studio (I'm using 0.8.1 on Win64).
  2. Go to Edit -> Lights...
  3. Set "type" to "hdri", enter a name, and select an HDRI file. I'm using the Aerodynamics Workshop at 2k resolution.
  4. Click "Add" and the HDRI should become visible as a background.
  5. Close the "Lights" dialog.
  6. Go to File -> Import... and choose a glTF model with text, such as TextureSettingsTest.

The texture coordinates come out flipped, like this:

screenshot with flipped text

Ospray Studio not using available ARC 750?

I have a i9 with integrated UHD 770 graphics and an ARC 750 running Windows 11 Professional. Ospray Studio does use the i9 and the UHD graphics, but not the ARC 750. Can this be set somewhere?

I have tried to run it with --osm:device=cpu|gpu|default but this only yields "unknown directive" errors.

Segmentation fault with sunSky light

This Project generates a segmentation fault.
I suspect this is related to the lack of a renderer node in the .sg file in conjunction with the use of a sunSky light (see this code line).
However, this raises two questions:

  • Is the renderer node mandatory in the .sg file (and, if so, where is this documented)?
  • Shouldn't we expect a more user-friendly message?

Many thanks in advance for your answers!

exr support ?

I am testing out the build of ospray studio 0.10.0 on Windows.

I render out the test scene NewSponza with the following command line options

ospray_studio-0.10.0-win64\bin\ospStudio.exe batch --renderer pathtracer NewSponza_Main_Blender_glTF.gltf --image nyue2 --camera 1 --format exr

I get an error about EXR not being supported

#importGLTF(W): mismatching COLOR_0 size
#importGLTF(I): finished import!
Loading camera from index: 1
frame 1 variance inf
No exporter found for type exr
...finished!

I wanted to try out OpenEXR to get better dynamic range of the output colors

Cannot set camera fovy in sg file

When I try to specify camera fovy in sg file, the given value is not taken into account in ospStudio.

The simple file attached below illustrates the issue. It contains only a camera and a light (sunsky). In the camera definition, fovy is set to 90. But in ospStudio, its value remains 60 (default value, presumably).
Project.zip

Could you please tell me what is wrong? Thanks!

Building on Ubuntu 22.04 with GCC 11 : some errors

Build the head I see the following

[102/136] Building CXX object sg/tests/CMakeFiles/catch_main.dir/catch/catch_main.cpp.o
FAILED: sg/tests/CMakeFiles/catch_main.dir/catch/catch_main.cpp.o 
/usr/bin/c++ -DRKCOMMON_TASKING_TBB -isystem /home/nyue/systems/ospray/head/include -isystem /home/nyue/systems/rkcommon/1.9.0/include -isystem /home/nyue/systems/tbb/2021.5.0/include -DUSE_MPI=1 -O3 -DNDEBUG -fPIC -std=c++14 -MD -MT sg/tests/CMakeFiles/catch_main.dir/catch/catch_main.cpp.o -MF sg/tests/CMakeFiles/catch_main.dir/catch/catch_main.cpp.o.d -o sg/tests/CMakeFiles/catch_main.dir/catch/catch_main.cpp.o -c /home/nyue/projects/studio/github/ospray_studio_git/sg/tests/catch/catch_main.cpp
In file included from /usr/include/signal.h:328,
                 from /home/nyue/projects/studio/github/ospray_studio_git/sg/tests/catch/catch.hpp:6460,
                 from /home/nyue/projects/studio/github/ospray_studio_git/sg/tests/catch/catch_main.cpp:5:
/home/nyue/projects/studio/github/ospray_studio_git/sg/tests/catch/catch.hpp:6635:45: error: size of array ‘altStackMem’ is not an integral constant-expression

Loaded OBJ does not show up ?

Hi,

I loaded an obj (exported from blender3d) [the monkey.obj], it does not show up in the ospray_studio window.

What am I doing wrong ?

Cheers

Sunsky raises error (v0.11.1)

Hello,

The attached file merely includes a sunsky and used to work well with v0.9.0. With v0.11.1, however, it will generate an error:

terminate called after throwing an instance of 'std::runtime_error'
  what():  Node::valueAs(): Incorrect type queried for Any
  Node::name() = up
  Node::type() = PARAMETER
  Node::subType() = vec3f
  Node::value() = Any : (currently holds value of type) --> rkcommon::math::vec_t<int, 3, false>
  queried type = rkcommon::math::vec_t<float, 3, false>

Sunsky.zip

Could you please tell me what's wrong with it? Thanks!

failure to link ospStudio

Dear developers

I am compiling the ospray_studio on an Ubuntu (18.04.1 LTS) laptop (g++ v7.3.0) but fail to link. Here are the error I see:

cd /local/apps/ospray_studio/build/app && /local/apps/cmake-3.12.2-Linux-x86_64/bin/cmake -E cmake_link_script CMakeFiles/ospStudio.dir/link.txt --verbose=1
/usr/bin/c++ -rdynamic CMakeFiles/ospStudio.dir/ospStudioMain.cpp.o -o ../ospStudio -Wl,-rpath,/local/apps/ospray_studio/build:/local/apps/ospray-1.7.2.x86_64.linux/lib: ../libospray_studio.so.1.7.2 /local/apps/ospray-1.7.2.x86_64.linux/lib/libospray_sg.so -pthread ../libospray_imgui.so.1.7.2 -lOpenGL -lGLX -lGLU ../libospray_tfn.so.1.7.2 /local/apps/ospray-1.7.2.x86_64.linux/lib/libtbb.so /local/apps/ospray-1.7.2.x86_64.linux/lib/libtbb.so.2 /local/apps/ospray-1.7.2.x86_64.linux/lib/libtbbmalloc.so /local/apps/ospray-1.7.2.x86_64.linux/lib/libtbbmalloc.so.2 /local/apps/ospray-1.7.2.x86_64.linux/lib/libembree.so /local/apps/ospray-1.7.2.x86_64.linux/lib/libembree3.so.3 /local/apps/ospray-1.7.2.x86_64.linux/lib/libospray.so /local/apps/ospray-1.7.2.x86_64.linux/lib/libospray_module_ispc.so /local/apps/ospray-1.7.2.x86_64.linux/lib/libospray_common.so /usr/lib/x86_64-linux-gnu/libglfw.so.3.2
CMakeFiles/ospStudio.dir/ospStudioMain.cpp.o: In function parseCommandLineSG(int, char const**&, ospray::sg::Frame&)': ospStudioMain.cpp:(.text+0xdc1): undefined reference to ospray::sg::Node::childrenRecursive(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&)'
ospStudioMain.cpp:(.text+0xe12): undefined reference to ospray::sg::Node::childRecursive(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' ospStudioMain.cpp:(.text+0xff6): undefined reference to ospray::sg::Node::createChild(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, ospcommon::utility::Any, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)'
ospStudioMain.cpp:(.text+0x17ea): undefined reference to ospray::sg::Node::name[abi:cxx11]() const' CMakeFiles/ospStudio.dir/ospStudioMain.cpp.o: In function importFilesFromCommandLine(ospray::sg::Frame const&)':
ospStudioMain.cpp:(.text+0x197c): undefined reference to `ospray::sg::Node::operator[](std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const'

any help would be appreciated. TIA

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.