Iray Programmer's Manual

Preface

Purpose of this document

This document is the companion for the NVIDIA Iray® API reference [IrayAPI]. This document describes fundamental technical principles underlying NVIDIA Iray rendering technology. References to neuray® in the documentation refer to the library of functions used by Iray.

Audience

This document is intended for application and system developers who intend to integrate NVIDIA Iray rendering technology in their applications. This document presumes advanced programming skills in C++ and familiarity with 3D rendering concepts. No specialized programming skills in rendering technology and networking are required.

How this document is organized

This document is organized as follows:

  • Getting started provides an overview of release contents, the example programs, the steps to compile and run a program, and render an image. The example programs are a good place to start if you prefer to learn by modifying working examples.
  • Library design provides an overview of neuray which is the library of functions used by the Iray API, the configuration of the neuray library, and an overview of the Iray scene database where all scene data is stored. It is recommended that you refer back to this topic as you explore the neuray library and gain a better understanding of its capabilities.
  • Rendering describes rendering concepts specific to Iray. Iray Photoreal, Iray Interactive, Iray Realtime, and Iray Blend describe the Iray rendering modes. Explore these topics in detail. They are key to understanding the capabilities of the Iray rendering modes.
  • Scene database provides brief descriptions and links to some of the more important scene elements and describes how to create a scene programmatically. Geometry, Materials, Decals, Sources of light, Environment dome and implicit groundplane, and Camera describe specific scene elements in detail. Because Iray is a physically-plausible renderer, it is important to understand how scenes should be set up to get the best results. This topic is covered in Physically plausible scene setup.
  • Networking overview describes the networking support provided by Iray. Networking modes describes the supported networking modes, the advantages and disadvantages of each, and their configuration. Iray Bridge describes a client-server architecture that enables simple and efficient use of resources of a remote cluster over a TCP/IP connection. Delivering an image from server-based rendering describes how to use HTTP and RTMP servers to deliver rendered images to a client.
  • Customization describes how to customize Iray by using user-defined classes and plugins.