Improve Cycles/EEVEE For Procedural Content Creation

Just the Z! Is that doable?

Mapping options on a shader seem like weird design to me - although it’s undeniably usefull in this case…
Maybe it would fit better in the Properties Editor -> World Tab rather than on the Node itself. Other Renderengines could then also use it.

1 Like

Sure. We can add that. What do you think @brecht?

We don’t normally have a node like background affect textures plugged into it, that’s not a great fit for the current design. A rotation for the world has a whole could be possible, outside of the shading nodes.

2 Likes

I agree this would be useful, I wanted to add something like this but never got to it.

10 Likes

@brecht
Expression node

Couldn’t such a node be created using/modifying the following;

https://blendermarket.com/products/node-expressions/docs

as an example?

Suggested modifications and improvements:

  1. The user inputs the expression in a provided dialogue box within the expression node, instead of an external dialogue box. (Similar to the picture above.)

  2. The node generates a simplified batch of code for the system to process. (Requesting/using only the fuctions used in the expression from a data set.) Might be a bit more optimal than 3. (Think modular)

And/Or

  1. Similar to the add-on, the sockets, and node tree are dynamically generated. Automatically grouping the node tree into a node group, with in the expression node (dynamically enabling a node group icon at the top right side of the expression node.)

This method would allow the user to see both the expression, and the node tree’s construction. (This would also allow the expression node to utilize Blender’s preexisting node system.) May not be as optimal as 2.

If 3, then it would be nice if the expression node did the following;

Add/remove (Dynamically)

  1. Expression input … Node group updates
  2. Nodes (in node group) … Expression input updates
  • If dynamically generating the sockets is an issue, 4 or 5 sockets should be sufficient. *

??? Maybe the add-on’s developer would be willing to work on the inclusion of such a node into Blender. ???

Viewer node (view numerical output and viewer overlay)

View numerical output

  1. A view numerical output node would be wonderful. The node would display the output from a function as a number or matrix depending on the output.

Example: If an image or vector data is output; the viewer would display a matrix or data table corresponding to the output.

Viewer overlay

  1. Add overlay output socket
  2. Add overlay opacity socket

(This would allow the data to be overlayed and the opacity of the overlay to be adjusted in the viewport.)

Example: Sculpting with weight/texture paint using brushes; Sculpt/paint using a height map or image and view numerical output.

Masks (using nodes) with the overlay opacity socket could be used to limit the overly’s effect.

@brecht

The node’s relative system of measure should be consistent across all nodes.

  1. All nodes should use the same relative system of measure.

  2. Adding a conversion node would be useful.

  3. Adding a option in a node properties panel (similar to the unit selection options in the properties panel) could be a solution. (This could be added as an option in the properties panel.)

Could this be considered a paper cut? If so, could it be added to the properties panel? (Make the unit selection saveible, to be used upon startup.)

@Dev1 making an expression node is certainly possible, and automatically generating a node network under the hood is one possibility. The problem is not that we don’t have good ideas to do it, I just think it’s too much work to add onto this summer of code project.

3 Likes

Totally understandable.

I wonder if the add-ons developer would be willing to assist with such a project (even though it would more or less eliminate his add-on/profit).

Omar did say he would like to keep working on blender if he was allowed to. He said he would do it for no pay even…but honestly I wouldn’t mind giving some money if we were go start a fund. Provided the devs give it the OK, that is.

3 Likes

@Dev1 take a look at OSLPY . does most of this and support things well beyond a simple expression (nested if them else constructs and static for loops for instance)

been playing with voro a little bit, jitter is pretty great. The artist would have better control if it were a vector though…

driving the jitter with a noise texture you can get some pretty neat looking stuff

9 Likes

I initially didn’t want to provide it as a vector due to the different dimension we have. In 1D, it will be a float, in 2D and 3D, it will be a vector, and in 4D it will be a vector+float. I wanted to keep things simple at first, we have more serious issues to care about now, but I will probably eventually add a vector jitter.

5 Likes

For some reason when I try to render the noise texture it keeps crashing, any idea as to why?

I am not entirely sure why it would crash. But the noise texture is still a work in progress, while it is supported in EEVEE and OSL, it is still not supported on SVM (The default renderer). It is taking sometime because I am still learning how to implement it efficiently for modern CPUs.

Perhaps experiment with it using EEVEE or OSL for now.

@OmarEmaraDev

Is the new Mapping node compatible with the existing Blender 2.8 (master) files? Whenever I open a file saved with a master branch in the soc-2019-cycles-procedural branch, the Mapping nodes have all their parameters (Loc, Rot, Scale) reset to 0, messing up the texture mapping.

Is there a way to not let this happen? Or this can only be resolved once the code is merged with the master?

(By the way, I compile blender from source. I pull changes from this branch and the outliner branch in to the master and then build.)

1 Like

Yes, backward compatibility will be handled, but at the end of the project because things are always changing now.

3 Likes

Hi, I’m new here… I was encouraged in ‘right click select’ community forum to paste my suggestion here… Its about having a Image texture preview in shader editor node in future…maybe also alpha channel, if present, would be very nice next to the rgb.)

24 Likes

I reeeally like this idea. Maybe not just for image textures but for shaders in general like substance designer’s approach. You could more easily follow the individual steps in how the shader is composed of (especially for beginners like me).

5 Likes

@shaqualeek @Fux Similar ideas have been discussed before. Unfortunately, this is probably outside of the scope of this project and will not be considered.

7 Likes