NPR (Non Photorealistic Rendering)

I was part of the team that got to implement a NPR rendering pipeline that works in parallel to the existing PBR pipeline.
We support scene wide and per material settings including:

  • Applying color mapping via gradient for eacht material channel (diffuse, specular, sheen, etc.)
  • Generating Lines based on multiple sources
  • Brush textures for lines


We support multiple sources for generating lines, some of which were inspired by this thread by Phillip Seifried and “Suggestive Contours” by Finkelstein .
These sources include:

  • Depth discontinuities
  • Object IDs
  • Material IDs
  • Suggestive Contours
  • Color discontinuities

For shading we implemented a simple phong shading model for diffuse and specular lighting. On top of that we enable more complex shading channels like rim lighting or bump/normal/displacement maps. The output of those shading passes can either be used as is, or further modified using user defined gradients. This allows artists to e.g. quickly create a cell shaded or thermal camera look.