Geometry Nodes

I’m talking about micro-displacement that gets adapted according to screen space. :slight_smile:

This sure beats all the other terrain generators I’ve come across. You can literally paint a map, and have it generate realistic terrain from it. It feels like magic, but better, because you can tweak every little bit of it. The most amazing part is how simple it really is on the inside. I will be using this a lot!

Would be cool if there was a way to procedurally simulate erosion. Unfortunately noise generators will only get you so far, without the erosion part there will always be an unnatural vibe to it.

It might be really nice if we had an attribute curves node, that could help simulate this kind of additional fallof. Attribute curves could be used when we get bevels too.

1 Like

This needs to be a thing at some point, so I figured I would put it up on RCS.

If you think this should be a feature, please vote! Thank you so much.

2 Likes

This has actually already been implemented, it just needs to be reviewed!
https://developer.blender.org/D10921
It’s certainly going to open up a lot of possibilities when it gets in, and I think you’re right that it would also be good for shaping terrain.

4 Likes

Nice! That was exactly what I was thinking of. I even looked it up and didn’t find anything. :man_shrugging: I hope it gets added to 3.0.

You’re talking about diagsplit : https://techmatt.github.io/pdfs/diagSplit.pdf (method used in Blender)
Arnold supports rendertime tesselation of course, I wouldn’t know whether or not they’re using the same algo but here is the doc mentioning it : https://docs.arnoldrenderer.com/display/A5AFMUG/Displacement

Yeah, Arnold doesn’t do micropolygons. You have to give it a specific level of iterations and it will stay the same wether or not the object is close or far away. So you end up carrying way too many polys for nothing. I absolutely don’t want to go back to Arnold. I’m actually converting a short film I did two years ago from Maya/Arnold to Blender because I want to get a better result. Lots of vegetation. No more flicking like Arnold does. Better motion blur and way faster too.

I thought Arnold had the ability to render more geometry than what can fit in RAM, thereby essentially removing any limit that would limit displacement quality, is that not the case?

For any Path tracer, you want everything to fit in RAM otherwise you lose to much on performance. Renderman will not even render if everything doesn’t fit in RAM. On Welcon to Marwen we needed machines with 380 gig of RAM for certain shots.

Fair enough, the doc seems to say the opposite but maybe I’m misinterpreting it, I’ll trust your experience.

Also, when rendering to .exr, the difference between tiled or scanline makes a huge difference in memory usage when rendering lots of passes. At least in Arnold.
And never use textures directly, always convert them to the native .tx format. Which can save you a lot of memory while rendering. It’s something from Arnold I would love to see in Cycles X for large scenes, in addition to render proxies :wink:
And yes… displacement in Arnold can be a pain in the behind…

1 Like

I wanted to get my feet wet with geonodes, so I tried to implement a catenary curve generator to simulate hanging cables.
2021-05-05 12-15-26

It took a bunch of reading, but this article was the most helpful:

Learning how to use attributes was helpful, as was being pretty clean with labeling so I could keep track of what variables were doing what. The ugliest part is hidden inside the bin x10 nodegroup, where there are 10 instances of a binary sort nodegroup chained together. This is to solve a transcendental equation that must be evaluated numerically in order to get the proper sag of the cable. Thankfully all of those nodes are just working on single float values and don’t have to be evaluated per vertex. Performance is pretty good on a single curve, no noticable lag, even with 1000 segments.

The binary search to refine the ‘a’ parameter is a little wonky. You can see how the endpoints disconnect sometimes. The search needs to be initiated properly to have decent results for very small or very large distances. It probably could be improved with a more dynamic initiation based on the distance and sag values, also, I bet I could just fix the end vertices to the known target positions, but it’s a working proof of concept for now.

Here is the blend:
gn-catenary-v2.blend (1.2 MB) - (CC0 license)

22 Likes

Impressive. The c++ coder in me is both fascinated and slightly horrified by that binsearch nodegroup :smiley:

1 Like

Hey, can’t argue with results! And in the absence of any loop controls, you gotta do what ya gotta do. I thought about optimizing it a bit by having an early exit from the fake loop group, but performance was fine for this application.

3 Likes

The results of Dfelinto’s nodes workshop with Erindale

The aim was to identify bottlenecks in the use of Geometry Nodes for the general creation of geometry. A number of requests came out as a result, and since Dfelinto is management he is likely to implore that they become a priority.

To note, Erindale is a math wiz who has become quite experienced with the system (as seen by his videos).

14 Likes

Rejoice

Attribute Curve Map Node

https://developer.blender.org/rBba06bc16aedd0a9022535a6991cc1c73ab668025

7 Likes

Would bi nice to get curvature node soon :slight_smile:

1 Like

Curves, curves, curves

The curve resample node
https://developer.blender.org/rB3185084efbe493bf232fb0de62b341ae2a2e2936

Use case; An array of objects along a curve (for things like walls, fences, and more)

16 Likes