/ign-rendering

C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.

Primary LanguageC++OtherNOASSERTION

Ignition Rendering: Rendering library for robot applications

Maintainer: ichen [AT] openrobotics [DOT] org

GitHub open issues GitHub open pull requests Discourse topics Hex.pm

Build Status
Test coverage codecov
Ubuntu Xenial
Ubuntu Bionic Build Status
Homebrew Build Status
Windows Build Status

Ignition Rendering is a C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.

Ignition Rendering is a component in the ignition framework, a set of libraries designed to rapidly develop robot applications.

Table of Contents

Features

Install

Usage

Documentation

Testing

Folder Structure

Code of Conduct

Contributing

Versioning

License

Features

  • Support for rendering engines including OGRE and OptiX
  • Plugin-based architecture. Mulitple rendering engine plugins can be loaded at run time.
  • Object-oriented scene management.

Install

See the installation tutorial.

Usage

The Ign Rendering API can be found in the documentation. See the Documentation section on how to build the documentation files using Doxygen.

You can also take a look at the sample applications in the examples folder.

Documentation

API documentation can be generated using Doxygen

sudo apt install -y doxygen

Build documentation

cd build
make doc

View documentation

firefox doxygen/html/index.html

Testing

Tests can be run by building the test target:

cd build
make test

To run tests specific to a render engine, set the RENDER_ENGINE_VALUES environment variable, e.g.

RENDER_ENGINE_VALUES=ogre2 make test

Folder Structure

  • include/ignition/rendering: Contains all the public header files which will be installed

  • src: Contains all the C++ source code which are not installed.

  • test: All integration, performance and regression tests go here, under their specific folders.

  • examples: Sample programs to demonstrate different features of ign-rendering

  • doc: Files used by Doxygen when generating documentation.

Rendering engine plugin implementation code is stored in their own folders

  • ogre : OGRE 1.x rendering engine plugin

  • ogre2 : OGRE 2.x rendering engine plugin (available in versions >= ign-rendering1)

  • optix : OptiX rendering engine plugin

Contributing

Please see CONTRIBUTING.md.

Code of Conduct

Please see CODE_OF_CONDUCT.md.

Versioning

This library uses Semantic Versioning. Additionally, this library is part of the Ignition Robotics project which periodically releases a versioned set of compatible and complimentary libraries. See the Ignition Robotics website for version and release information.

License

This library is licensed under Apache 2.0. See also the LICENSE file.