neuray API Programmer's Manual

Overview of the Neuray API

neuray is a rendering component that you can embed in your application to provide advanced rendering functionality with your application.

neuray is provided as a dynamic library, which is dynamically loaded and linked to an application at runtime. The neuray API is a C++ API.

Rendering

neuray supports GPU rendering on qualified hardware as well as software rendering using MetaSL shaders. The software rendering component is a ray tracer with support for global illumination (final gather, photon mapping, image based lighting and other methods).

neuray can optionally also use the iray renderer. iray is an interactive, ray-traced renderer that generates "push-button" photorealistic imagery featuring complex global illumination effects. iray makes use of a highly optimized BSDF and EDF shading framework, essentially simulating the physical behavior of real-world material and light sources. iray can leverage NVIDIA CUDA capable GPUs to render photorealistic images in a short amount of time. If a system does not have CUDA capable graphics cards it will automatically fall back to CPU based rendering.

It is currently not possible for 3rd parties to add additional renderers.

neuray does only support MetaSL shaders and does not implement the mental ray shader API.

Networking

neuray is a distributed system supporting different networking modes, e.g., UDP multicast and TCP unicast with or without automatic host discovery. Such a cluster of connected hosts uses a distributed database with redundancy to distribute data (e.g., scene data) and jobs (e.g., rendering requests). The configuration of the networking facilities is flexible and left to the user to support different use cases, e.g., a master/slave setup, or a setup of equal peers sharing resources.

neuray provides a built-in HTTP server framework that can be used to implement a HTTP server that executes C++ code in reaction to HTTP requests (including serving of static files). This HTTP server can for example be used by an integration to provide remote viewing capabilities. neuray also provides a built-in RTMP server framework to provide RTMP streams of rendered images.

Scene Manipulation

Scene import is available through the neuray API. The application can create triangle and polygon meshes, create scene graph objects (for example groups, instances, cameras, options) and import shaders read from files or strings. Simplification and welding algorithms can be used to process triangle and polygon meshes. neuray can also import scene data from files. Additionally, custom scene importer and exporter plugins allow to support arbitrary scene file formats.

For more detailed overview information please see the following topics: