BEER Design Overview [July 2014]

Blender Extended Expressive Rendering or BEER is a shader system specially designed to be able to produce limitless shader styles. Though its main purpose is to handle non-photorealistic (NPR) shader styles, BEER can produce photo-realistic (PR) styles too (classic algorithm), because PR is just another rendering style. In this short introduction to BEER, we’ll compare BEER to Internal Renderer/Cycles, then we’ll see 2 examples. The first example is a simple cel shader with contour outline, the later example will introduce you to more advance workflow.

Before any of that, BNPR would like to thank Jason Wilkins for his hard work on Viewport FX projects. His works will enable many features in BEER. Thank you!


Blender Internal Renderer (BI) and Cycles follow a strict algorithm to produce the “combine” pass. That strict algorithm limits the styles possible with both render engines. The data bandwidth when nodes are mixed are also big, as the node-based shaders carry all data channel previously created. BI’s material node, once a node is added, all the settings in the base material is channeled thru the nodes going to the output. Even if the data channels aren’t used, they are still there.

Restrictive Cycles passes combine algorithm

Restrictive Cycles passes combine algorithm

BEER thinks differently. What shader you insert, in which order, with which blend modes will produce the final result. The final result will always be your shader setup, no hidden component or algorithm. If you need a layer as a pass, you specify it, give it a name and you are free to use it in post process. This way the shader tree will always stay minimal and faster, with a more accurate preview.

BEER Shader Layer System

BEER Shader Layer System

Example 1: Simple cel material with contour outline

This first example is a simple cel shader with contour outline. The base shader layer is a shadeless color. This shader has very few options, hence setting it up is very easy. For our example, we just need to change the color. The second layer is another shader, direction is controlled by light. We want it to behave like shadeless. To do that we add Shader behavior curve modifier. The 1D color ramp has alpha and we want to keep that alpha. Pass thru blend mode is used here. The 3rd shader is contour outline. We can make that from view dependent shader that is offset-able by a normal modifier. Using a 1D color ramp, a thin dark line is created.

Simple cel with contour outline

Simple cel with contour outline

If we use nodes to set this up, the amount of time to get to the same result will be much longer. And did you notice that we can set the same shader with just 2 shader layers in BEER? Why did I use 3 shaders? The main reason is we have more control on the 2nd tone if we separate them. That leads us to the second example.

Example 2: Advance use case

BEER: Animated parameters & Shader layer as pass

BEER: Animated parameters & Shader layer as pass

We’ll continue by using the first example but extending it to use advance features of BEER. First, we want more control of the highlight. In NPR, animating shaders is a common task. Here we want to be able to offset the normal of the highlight area. In the normal offset modifier, there is 1 button to reveal the shader modifier setting to the properties sidebar. From the properties sidebar we can key frame the normal ball.

The second more advance feature in BEER is creating our own render pass for use in post processing. Let’s say we want that highlight to glow, glow is a heavier effect if done in real time, so post process is the ideal way to do this. We can add a shader as pass modifier to the shadeless layer, give it a name, enable only visible option, and we can also use our own color ramp here. The color ramp is useful as factor in a mix node.

BEER: Shader layer as passes and Animate able settings

BEER: Shader layer as passes and Animate able settings

Let’s add 1 more effect using layer as pass modifier. This time it is on the darker tone, which is the second shader layer. The setup process is similar, only when rendered we can erode/dilate and 2D offset the pass to paste the hatching lines on. The final result looks like it is done with much effort, but really, we just use BEER shader system.

The 2 examples are just simple things you could do with BEER shader system. There are more feature already in planning for implementation. The details are in the Blender wiki. Be forewarned: heavy technical reading with complex algorithms ahead.

Dynamic Stylized Shading Primitives research showcasing shader layer system


At BNPR, we believe in BEER as a flexible, expandable and fast solution to expressive shading. If the BNPR crew was a bunch of awesome coders, BEER would already be in the works. Unfortunately, we are not. That lead us to find awesome developers. That was only the first step however.

If you have been following BNPR on Twitter, you know that we have set BEER Development Fund to help PAY for the awesome coding. We also put our efforts into making excellent material for Blender users to purchase to help get it funded. To put a bit of perspective to it, we have spent thousands of man-hours to make BNPR and all courses/mini-tutorials to be what it has at this point. The largest portion of any sale gets put directly to the BEER Development fund, the rest to web development and minimal but essential hardware.

What of the left-overs? We probably aren’t even paying our electric bills with them. We simply love the community and believe in what we are trying to achieve.

What can you do to help make BEER possible?

You can start the BEER brewing by donating directly, or better yet, get something directly for your money by purchasing any of the educational pieces in the BNPR store.

[BNPR’s Freestyle Level Up] [Mini Courses] [Direct Donations]

[BEER Development Fund Status]

You can also help by giving your input, especially if you own or work in a studio and have some ideas on how to further integrate BEER workflow into a production pipeline.

[Google doc for your ideas and feedback]

The needed funding to develop BEER to be in usable state is $ 20000, the funding is further broken down into 4 stages. For stage 1, our main goal is to raise $5000 (4 months worth of coding) to have a developer start programming the skeleton of BEER. With that in place, we will continue to make more resources for your purchases to support the development. We will keep spreading the word and educating people about the awesome styles BEER can produce and how it will help speed up your shading and shader animation workflow, plus blender viewport will get a lot of enhancement with this.

As always, thank you for your support!

Further reading: Light’s personal experience with BEER & NPR [LINK]

PS: We have an experienced Blender developer on stand-by to do design work and coding. His identity will not be revealed as not to get him bombarded with questions.

You may also like...