BEER (Blender Extended Expressive Rendering) Update

[text removed]


If BI was that easy (or not impossibly hard) to get going on the gpu Brecht probably wouldn’t have gone to all the trouble of writing a whole new renderer.

Just saying…

My apologies for not replying to your last pm, I got distracted by RL.

You seem double, on one hand you say, ‘oh, BEER will be gpu enabled’ and then you say ‘it depends on the developer’, furthermore, you really should emphasize so far one guy has had enough interest in this project to dive into the c code and edit things, and that if people need encouragement in the form of sponsoring, there can be discussion about that?

Edit:yeah, what uncle_entity’s saying, every renderer-coder I hear seem to imply that gpu’s are constructs of the devil. It requires a lot of motivation, not to mention probably a refactor of our much loved little rasterisation abomination. gpu’s are supossedly picky about the fundamental design of the code you want it to do.

Edit2: I’m in derp land, you did mention the sponsoring. But anyway, remember gpu != cpu, and it might be a thing to look at people with an understanding of gamerenderers for that.

BI is hard alright, because it has many shaders primitive and cover NPR and PR.
BEER has 1 shader primitive. And the OpenGL code is already written.
All the basic algorithm already done.
This is building with a foundation.

Yes it will be GPU enabled, and depending on the developer it can be openGL (this is the first step), OpenCL or CUDA.
It is not rebuilding BI, it is extending it.
Also I have gone full length to confirm that the algorithm is easy and implementing on GPU is relatively easy compared to BI and Cycles.

Reference link:

Edit: Game rendering people are welcome to the project.

Brecht didn’t start working on Cycles because he wanted to make a GPU-renderer, it was because BI was full of hacks and band-aids so it was very hard to extend it with new features.

Ah, yes I forgot about that, though it’s good that such questions were asked. It clarifies things a little.

I’ve been looking at the BI code and wish I had a frame of reference. Because while I have a vague idea of what is going on, and do notice BI is rather incoherent(there’s a lovely comment from Ton somewhere in the code where he states he isn’t sure the code he’s commenting on actually does anything), I have little idea of what an ideal would look like.

That’s not really the hard part, getting all the points-to-be-shaded onto the gpu so the shading algorithm can efficiently act on them in parallel is the hard part. It would be trivial to convert all the BI shaders to some sort of GPU kernel/function/whatever but it wouldn’t speed up BI one bit without building a whole new shading system to take advantage of them.

As a frame of reference google ‘renderants’ to see what it took to implement the (relatively simple) reyes algorithm on the GPU and then go try to decipher the code.

Sure, if you want real time preview in the 3d view then this is all no problem (in fact, that’s on my todo list when I find time to get back to working on the shader) but getting BI to render on the GPU is a lot more work than just plugging in some already written algorithm.

There is not intention for us to GPU the whole BI for BEER.
But there is intention to only GPU BEER because of the flexibility of the shader (which is within the scope of the project).
To make your and my life simple, let’s GPU this one shader only.
And yes, efficient parallel on GPU is something you know, that I need your advice.

Rather than confounding the fine posting for BEER: A wordy leet intro, where Sage Light Bwk indicated his response to my question. I had seen this before but would like to apply a series of textures to a gradient to create a hand-drawn, cross hatch style of rendering, that can be combined with watercolor or toon shading. I am including links to two(2) images, one is a “finished” concept render of some test objects and the second image is a collection of screens from Lightwave showing the node and component structure. I have yet to figure out how this might be done in Blender, so currently I do it over in Lightwave and composite as needed. I have three textures of cross-hatch drawing, progressively lighter, which are applied to the gradient of the Lambert shader. Theoretically any texture should be able to be plugged in, this is just my choice. Hope these images help explain. As long as this BEER development thread is moving along, I thought to toss this in to the mix.

I look forward to this! Sounds like BEER will somehow operate separately from the original Blender Render code if it has GPU acceleration.

Is this still in development?
I just learned about Jot today (yeah, I’m late to the party).

Looks like it would be a great addition to BEER, and the code is GPL!

Here’s the project page:

BEER has 1 shader primitive. And the OpenGL code is already written.

It has a GLSL function written. I can’t really make sense of exactly what it is that you want implemented here. If it’s just the “Dynamic Stylized Primitives” shader, I believe that can be implemented as a shading model in BI without touching too much stuff, no need to reinvent any wheels.

The X-Toon thing I haven’t looked at closely, but the results don’t look particularly interesting to me.

The gradient node would have to be extended to accept color inputs. Otherwise, you could use gradients to mask out and blend textures additively, but that would grow unwieldy pretty quickly.

It has a GLSL function written. I can’t really make sense of exactly what it is that you want implemented here. If it’s just the “Dynamic Stylized Primitives” shader, I believe that can be implemented as a shading model in BI without touching too much stuff, no need to reinvent any wheels.

I mistakenly wrote OpenGL, should be GLSL, corrected that on the 1st post.

I agree that it can be implemented without touching much of BI stuff.
But we still need developer to do it. Non of the core users (major stake holders) in the BEER team are coders.

Here is the situation

  1. TheBlu is trying to understand the codes, he is new, so it takes time.
  2. JesterKing as adviser, but he is too busy to take over development.
  3. Understanding why BEER is designed like it is takes time and much mental energy, to shortcut the process, we have core stake holders to tell developer(s) whats and whys.

What we need now is another developer who can work part time, knows BI coding well to start coding the core parts.

The X-Toon thing I haven’t looked at closely, but the results don’t look particularly interesting to me.

X-Toon enables 2D map base shader that is lightweight (super fast rendertime). The BEER team discusses X-Toon usage regularly, we have discovered more use cases. Just that we are not communicating them to everyone yet. Also “interest” is almost non (right now at least) as artists have yet to see how X-Toon can be used in CG, VFX, motion graphics and games. We’ll show more use cases with time.

BEER and X-toon aren’t just shaders, there is a whole new workflow, UI and UX around them. They are designed for speed, ease of setup, realtime interactivity and endless results (styles), which are lessons learned from BI and Cycles (maybe few commercial 3D packages).

Any advice and direction to move this project is greatly appreciated.
Also there is an internal team who discusses BEER almost daily. PM me if anyone wants to join.

Hi everyone, I made a BI cell shader that works in GLSL. It has all the basic features I would expect to have in a real time manga/cell material.
You can see a list of these features and download it here:



I also found a bunch of bugs in 2.69 that affect my set up. This is a BUG in blender,not the shader. Please let me know what you think. It’s still a sort of a WIP thing to teach myself nodes but also demonstrate the sort of features I would need to have in BEER

I commented on your Blog, but will re-post it here to make sure the wider audience will contribute. A lot of fine work.
Remarkable development, and contribution to the artistic community. I appreciate your aesthetic intent and thoughtful implementation. I will want to try it out and see if it can do some of the things I now do in other packages. Specifically, I would like to have a hand-drawn series of textures contribute to the shading. Currently I do this in Lightwave, with a gradient, in which three(3) different cross-hatch textures contribute to the shading. This is then composited with the cel shading or plain color layer. It helps me generate more of the hand drawn look that I want to achieve. You appear to have part of this implemented so I will give it a try. Thank you again for your efforts and contribution to the larger community of artists.

Hi Paul, thank you for the kind words. :slight_smile:
I posted you some links and info at the website you might find interesting.

Please write down any other feature requests there.

This is still the best cell shading material out there, I hope that we can catch up with it some day:

@@blurymind Awesome!!!

P. Monk

I don’t know if this is related, but Irie is working on a light vector node for BI in part due to their usefulness for anime.

This would also be useful if part of this can be ported to create vector data in Cycles in terms of using the final ray bounce from a material to a light, but that’s a different topic.

Time to revive this thread!

“BEER’s demands are high, but devs aren’t helping”
They are scared of BI’s code. XD

Update on the cell shader!!

Here is version 3