The following document studies some of the graphical styles of Non-Photorealistic Rendering (NPR for short) possible to do with Blender Internal old rendering engine (BI) and Cycles, the capacity of these techniques to migrate from one renderer to another, in particular from BI to Cycles, their limitations, analysis and also some proposals.
Here you can download the files.
About this document
TL;DR of section: Current state of NPR in Blender and alternatives under my point of view and why I wrote this.
The creation of this document has 2 main reasons: the first one as a record of the many different tools for NPR that I have seen along the years as a Blender user (in other word as a remainder); and the second one because of a personal need to keep myself and the techniques I like using up to date, since as 1st November 2017 the date of the release of Blender 2.80 approaches and with it the end of BI.
As melodramatic as that may have sound, many users (me included) have been complaining about this and many ideas about what to do about it have been repeatedly popping up:
Complete or partial freeze of personal work-pipelines: In other words, keep using Blender 2.79 indefinitely, either as main tool or as a composition tool. As a personal opinion, it is possible but it also is a worst case scenario, because as time passes the incompatibility and the probability of newer and better tools breaking the pipeline increases.
Development of New Renderer: Expensive scenario no matter how is this done (external software, add-on, somehow make it into Blender), and fail prone if developer is an outsider of the Blender Foundation, mostly because of possible changes in data management within Blender (Blender DNA and RNA, not an expert but these seem to be compatibility breakers?). Not much, if any, interest from Blender development team.
Real-Time Shaders: At the moment, Blender uses OpenGL for the viewer and is mostly compatible with BI, but what happens with and after Blender 2.80 is, at the present, a bit of a mystery, especially with the ongoing work with Eevee and its focus on Photorealism (PR for short). Never been a friend of this approach, especially because of the alpha (transparency) issues that the real-time viewer has. There is a lot of speculation and no definitive standing on this one. Blender development team is focusing in getting Eevee and Blender 2.80 to work at the moment.
NPR from within Cycles: Maybe the most cost effective and future proof solution, at least in my opinion. As I will be exploring with this document, there are many tools and pipelines that are portable from the old renderer to the newer one, with varying levels of difficulty, limitations and issues of course, but also with newer possibilities and newer graphical possibilities. My guess is that by studying these, a proposal that can focus on whatever feels missing can be made or get accepted with higher probabilities if it isn’t too hard to implement.
Before continuing, I also have the need to mention another important point for this document: as graphically different NPR can look/be from PR, another objective I have to work NPR from within Cycles is the same as why I did it in BI: to be able to have in the same scene both realism and non-realism together (think in “Roger Rabbit”), there are some approaches that I tend to avoid (I will also talk about them though) because they imply changing scene/frame settings that makes me choose either PR or NPR.