I might have gone a bit over the board with these nodes

8 days ago by hayk to c/blender

fakeman_pretendname 11 points 8 days ago

I think at this point, you should just make the actual model from nodes.

path: 0 26155186, hotness: undefined, score: 11, children: 1
hayk 5 points 8 days ago

That's kinda what this is doing : )

path: 0 26155186 26162899, hotness: undefined, score: 5, children: 0
Tattorack 10 points 8 days ago

You went past making spaghetti and straight into circuit boards.

How much of the render time is just the CPU compiling your shader?

path: 0 26159276, hotness: undefined, score: 10, children: 1
hayk 4 points 8 days ago

It's almost instanteneous. Most of the nodes are math/vector math and read/store attributes.

path: 0 26159276 26162891, hotness: undefined, score: 4, children: 0
john_tech 5 points 7 days ago

That looks like a damn motherboard

path: 0 26172028, hotness: undefined, score: 5, children: 0
TacticalToothbrush 5 points 8 days ago

YES! readable tree is overrated! jk

I try to reuse same input node as many places as I can but this is too much.

No sim, no closure, big spaghetti. What the heck is this thing doing though?

path: 0 26155238, hotness: undefined, score: 5, children: 14
hayk 6 points 8 days ago

believe it or not, it does reuse many nodes. sim/repeat won't be of much help here, there're no repetitions. I'm testing an addon I've been creating which converts regular Python logic into geometry nodes. this is like ~500 lines of Python code converted into nodes. It's making a procedural full-quad wall with crenellations from an edge. unsurprisingly, most of the nodes are to correctly treat edge cases/self intersections, removing stray edges/faces etc.

path: 0 26155238 26162936, hotness: undefined, score: 6, children: 13
glitchdx 2 points 8 days ago

This, is awesome. And very similar to a project I tried to do a while back just way more robust.

path: 0 26155238 26162936 26164308, hotness: undefined, score: 2, children: 0
GalacticGrapefruit 2 points 8 days ago

Wow. That's really cool. And, one hell of a time-saver for big models.

Does it follow terrain? How does texture input work? How would you handle a big battle scene where a section of wall gets destroyed by a siege engine?

path: 0 26155238 26162936 26164414, hotness: undefined, score: 2, children: 1
hayk 3 points 7 days ago

:D thanks! i actually already added support for towers and will add other adjacent buildings soon too. the plan is to also have a gatehouse and generative arcs. I'm currently trying to work out the general topology with all the edge cases and then will add decorative elements.

it follows a custom edge which doesn't necessarily lie in a single plane, so it's trivial to add a shrinkwrap or another node to make it follow a terrain. texture input is a good question. uv of this thing might be totally messed up, but a generative material should work ok.

for the battle scene - it does produce a well treated topo, so you could chain another destruct modifier. )

will be happy to share once it's more mature.

path: 0 26155238 26162936 26164414 26183069, hotness: undefined, score: 3, children: 0
TacticalToothbrush 2 points 8 days ago

This hurts my brain imagining how I would go about recreating something similar.

What I tried to convey is that...
duplicating nodes = more nodes, shorter noodles, fewer reroutes
reusing nodes = fewer nodes, longer noodles, more reroutes
and I try to find a good middle point where it is not confusing mess XD.

path: 0 26155238 26162936 26163311, hotness: undefined, score: 2, children: 1
hayk 2 points 8 days ago

agree, the whole advantage of writing this python library is that debugging a code is much easier than a noodle of nodes (especially when doing conditionals, math etc). it also supports factorization into functions. and since it produces ultimately a geometry node group, it's as fast and customizable as if it was made by hands. i'll post the add-on as soon as it's ready if people are interested (free ofc).

path: 0 26155238 26162936 26163311 26164299, hotness: undefined, score: 2, children: 0
nachitima 2 points 6 days ago

I've built a DSL for generating geometry nodes setups from a high-level Python-like script. It is still undergoing major architectural improvements, but you can already try it out. Let me know what you think. ✌️

https://github.com/denikryt/NodeForge

path: 0 26155238 26162936 26194725, hotness: undefined, score: 2, children: 7
hayk 1 point 6 days ago

reading through the documentation, it's actually very similar!

path: 0 26155238 26162936 26194725 26196796, hotness: undefined, score: 1, children: 0
hayk 1 point 6 days ago

looks nice! i wanted something more code friendly, so mine actually parses math expressions, if statements, lambda functions, loops etc and decides internally what nodes it needs to put together (hence the horrible looking node sausage). so you literally write a python logic, which it then transpiles and compiles into a node tree. in other words, you never actually have to think in nodes.

path: 0 26155238 26162936 26194725 26196760, hotness: undefined, score: 1, children: 5
nachitima 2 points 6 days ago

My goal was to think about nodes as functions and operations that could be described with simple Pythonic syntax. Every node is a function with positional arguments as socket inputs and a return value as a socket output. The mathematical operation nodes could be described as simple operators like + - // etc. The links between nodes are described as simple variable assignments and passing variables into functions and so on.

Basically, the idea it to think about Geometry Nodes setup as a script and reduce the Blender API Geometry Nodes boilerplate, while keeping it possible to address a specific node when needed.

I also put a bunch of work into the Extension API, which makes it possible to extend the functionality of the DSL with additional third-party libraries with its own defined methods and logic and use them in a familiar way.

I'd be happy if you tried it out! 🌽

path: 0 26155238 26162936 26194725 26196760 26197269, hotness: undefined, score: 2, children: 4
Martineski 3 points 8 days ago

I was scrolling without reading titles and for a few seconds I thought this is a cityscape. Lol

path: 0 26164133, hotness: undefined, score: 3, children: 0
Stefan_S_from_H 3 points 8 days ago

The Unreal Engine is getting rid of Blueprints. How long until Blender will invent its own programming language?

path: 0 26155971, hotness: undefined, score: 3, children: 5
kayzeekayzee 5 points 8 days ago

It already has Python

path: 0 26155971 26156490, hotness: undefined, score: 5, children: 2
Stefan_S_from_H 4 points 8 days ago

Unreal Engine already has C++. They nevertheless invented a new one.

path: 0 26155971 26156490 26156920, hotness: undefined, score: 4, children: 1
kayzeekayzee 1 point 8 days ago

C++ is too low level

path: 0 26155971 26156490 26156920 26158314, hotness: undefined, score: 1, children: 0
nachitima 2 points 6 days ago path: 0 26155971 26194759, hotness: undefined, score: 2, children: 0
hayk 2 points 8 days ago

Blender already supports python and for shader nodes it support OSL.

path: 0 26155971 26162906, hotness: undefined, score: 2, children: 0
icanbrewmushrooms 2 points 8 days ago

You can go 'overboard' or 'over the top', but not 'over the board' :)

path: 0 26160292, hotness: undefined, score: 2, children: 0
blender
blender

@lemmy.world

login for more options
3658
265
284

A community for users of the awesome, open source, free, animation, modeling, procedural generating, sculpting, texturing, compositing, and rendering software; Blender.

Rules:

  1. Be nice
  2. Constructive Criticism only
  3. If a render is photo realistic, please provide a wireframe or clay render

go to feed...