A Processing library providing physically based rendering and materials
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A Processing library providing physically based rendering and materials. Created by Nacho Cossio based on a shader by Nick Galko

WARNING!: At the moment it has been tested on Windows with nVidia graphics. The shader fails to compile on Intel integrated graphics and osX. It is available in the 'src/data/shaders/pbr' folder if you want to try to fix it.


Download the latest release from here and unzip the 'SimplePBR' folder into your Processing 'libraries' folder.

Getting Started

Physically Based Rendering (PBR) is a method of shading and rendering that provides a more accurate representation of how light interacts with surfaces. A nice introduction on what PBR is and the different lighting terms involved can be found in these article series by the jMonkey Engine team: https://wiki.jmonkeyengine.org/jme3/advanced/pbr_part1.html

Two kinds of assets are required for PBR:

  • Cubemap, and in this case, several prefiltered versions of it, for the indirect lighting. One set is provided with the library, taken from the sIBL archive, under Creative Commons Attribution-Noncommercial-Share Alike 3.0 License. The radiance and irradiance maps were created with Cmft Studio, which is easy to use and very fast.

  • Materials: sets of textures defining the characteristics of a certain substance. SimplePBR uses individual textures for easy of use, although is a better practice to group several of these textures into the RGBA channels of one texture. There are various sites providing free materials, there are three materials included with the examples taken from 3dtextures and CC0textures There is also a "textureless" material using just numerical constant values.


This project is licensed under the MIT License - see the LICENSE.md file for details