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 et.al. .
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.