Improve Cycles/EEVEE For Procedural Content Creation

And truth is it gets really slow on the compilation when u have just a few “layer” groups on a PBR painting workflow.


This is just the result of an addon I’m writing and whenever u mute a node or make small changes it would take forever to refresh the viewport, making little freezes here and there whenever changing something.
It all happens when running Eevee ofc.
If there’s some workaround to this I would like to know.
I also wonder how Armor is handling it’s materials. it looks a lot faster but I don’t really know how it’s done
Thanks

2 Likes

Armorpaint is not creating layers of dynamic materials, unless you use the layer system. It’s actually directly painting the values onto the relevant maps. So it’s a destructive workflow, same with substance painter. It’s so fast because it’s only displaying one set of textures, unless again, you use layers. Substance also bakes non destructive changes after you change something, at a texture level. Both things give you the performance.

1 Like

Substance Painter with fill layers on a single material is actually quite fast until u reach about 20/25 layers. That would be a non-destructive workflow since u can change values in any channel based on painted/baked masks.
Haven’t tried Armorpaint that much to say it can do the same, but I wish there’s a way to do that right now in Eevee without dying waiting for it to recompile. Any ideas?. Thanks!

2 Likes

Hi everyone,

Currently, we are submitting the code for review to be merged in master. Some of our changes were approved and are already in master, so you can try them in the official builds.

The following task provides an overview of the status of the individual changes. So if you want to keep a closer look at what got merged, you should check that task.

https://developer.blender.org/T68823

19 Likes

For speed up consider using blender gpu api (offscreen buffer) to combine layers instead of using nodes. If all you want is simple blendings of layers like in ps, its not hard to do and example code is all over the net, so you end up with one texture set in shader nodes. Then if you want to use noises from shader nodes and such you obviously can’t. It’s kinda unfair to compare shader nodes to texture making apps, scope of what substance painter does and what shader nodes do is quite different, at least currently. Texture making in blender without ability to have buffered intermediate steps is quite limited.

1 Like

Was thinking about something like this, but the addon is not up to the standards yet.

What do u mean with offscreen buffer?.
Thanks.

2 Likes

Agh, interactive painting… sorry didn’t understand what are you working on. Using off screen would be even slower/impossible i guess since you need to read write million times for every stroke plus blending layers. Stupid idea

1 Like

Hi Omar. I know that September 4th is the final day for the GSoC and some items from this project are still in review. Technically September 10th is the last day for features in 2.81, if I’m not mistaken. I would assume not everything would make it into 2.81, which is fine of course, but I wanted to ask if things would roll over to 2.82. Also congratulations on all the added things in 2.81!

This thread makes me wish we could use OSL in Eevee and not just cycles :frowning:

I think it is not too late, we may still be able to merge all of the remaining features. But if that wasn’t the case, we will definitely get them merged in 2.82.

5 Likes

Good to know, thanks Omar!

@OmarEmaraDev just want to remember you the “Object Info → Random by Loose parts” option.

I know you had no time to develop it during the Gsoc, it’s just that I don’t want it to fall in the forgotten world, it’s too important for many many things :slight_smile:

11 Likes

Will be the first thing to do after GSoC. I promise.

31 Likes

AWESOME and AMAZING and ASTONISHING!!!

4 Likes

Did this ever turn into a task? I couldn’t find it in the various lists.

Can I suggest it’s called “Invert Y axis” and perhaps have a tooltip like “Inverts the Y axis (green channel) to change the swizzle in order to accommodate normal maps produced in a range of applications”. And perhaps have a table in the manual about which applications have which swizzle.

A few years ago I spent a couple of days wondering why my normal map didn’t look right. This would have pointed me in the correct direction early on! Thanks.

Now the dust has settled a little…

Map Range Node - add a drop-down for different modes. For instance Min-Max, Min-Range and Max-Range (on the output side (to)).

Justification - In a single procedural planet shader I used groups for the above in the following quantities: Min/Max 7, MinRange 4 and Vein* 2. I didn’t use MaxRange, but I’m sure someone will find a use case for it. I created a Max/Min From/To as the node is now configured, but I don’t think I’ve used the From side yet.

I appreciate that much of the above is easily achieved with a couple of nodes, but given the repetition, it seems quite useful.

*The vein mode is selecting a value as the centre point and then a range value that brackets it on either side. Much as the Map Range Node (on the To side) is like a linear colour ramp with two points (using values), the vein mode is a like a linear colour ramp with three points, varying from black to white and back.

Hi everyone,

We did it! All the features added in this project are now in master!

32 Likes

Congratulations! A vacation should be well deserved at this point. :slight_smile:

So now when you’ve reached this milestone, what are your future plans for development?

1 Like

Congratulations Omar!! We’re all overjoyed at the success of this project!

Now that your code has been merged to master I wanted to ask a slightly unrelated question.


I realized a while back that on RCS you were the author of the Spline Info request. In your post you had this cool picture here, and I was curious if that was made in blender, or another program? Did you use animation nodes I wonder?

4 Likes

In the near future, I would like to address some of the feedback and requests we got in this same thread. You will probably hear from me again soon.

Yes, this was created using Animation Nodes. I provided a detailed explanation and the blend files in my answer here:

9 Likes