Geometry Nodes

With matrix nodes this would be easy ! but right now ? I wouldn’t know how to do it.

So, I’m trying to recreate a scene of mine using Geometry Nodes, this is how it’s going.

I have one question. Is it possible to select a geometry and use a specific material for that geometry? If I need my pillars on the image above to have different colors than the rest, is it possible?

2 Likes

It looks like Hans is working on having a normal attribute added to each point by default. This is currently in a branch.

https://developer.blender.org/rB34eaf62536ff5de318cc4e10f30c457c196f4655

I agree about other instancing methods, which would have ideally been all done with one node. I had suggested a while back to change the point instance node to be called object instance with a dropdown menu for point/face/edge types. Otherwise there will now have to be a separate node for each instancing type…face instance, edge instance, etc.

Point instance still sounds to me like a node that would instance(or add) a point, so I don’t think it was named very well. At some stage there will have to be some kind of add point node, so that points can be added via nodes alone, so naming can get problematic quickly.

Okay. I tested.
As you may know, instanced mirror, array, instanced radial array are higly desired. And vanilla Blender do not have it out of box.
I made advanced instansed mirror. But it still requires another object with single vertex.

Sadly there is no way to create certain quantity of points and fill there positions with function. No way to get length of attribute. I think, such low-level access and operations are must have and allow to create arrays and clouds of objects. Not just surface scattering (which is very nice too since Poisson disk scatering implemented)

You can test mirror:

Also. Speaking about «Sprite fright». With randomized radial arrays you can scatter mushrooms, making fairy rings for example.

And here is more powerful feature: Variable radii 4 Poisson disks
Epic method for distribution!

1 Like

Quick test with instances displacement based on a texture.

4 Likes

I just saw the commit in master.
It looks like Hans is asking himself how to present vertex normals, face normals and custom normals.
But as you said, my question was more relative to distinction between vertex and points.

Initial goal was to use point cloud object that only have points.
So, under that context, a point instance node would not be weird.
But now, that we are using directly mesh and trying to exploit mesh attributes directly, too. That implies changes to original plan.

What I found weird is to have one big geometry socket.
There is a need for a big container socket to pass from one step to another.
But we are facing a problem about characterizing and identifying content.
I am exposing a problem where verts are considered as points without attributes and points from Point Distribute nodes have attributes. So, we have two different kinds of geometry content.
We can not do the same thing with those different contents.

So, we need nodes to deliver a generic way to reach attributes or to identify and convert content of geometry socket or maybe both. I am not sure.
Geometry category of nodes only has 2 nodes (join/transform), for the moment. I don’t know what Jacques plans were about that category.
But if there is a conversion need or a way to output attributes or a viewer node that probably should be solved by nodes from that category.

1 Like

I don’t think you can specify the material itself, yet. But you can give the different parts of your structure a color attribute that you can reference in the shader editor with the Attribute node and use as a mask in your material.
If I understand your node tree correctly you should be able to easily create the color/mask attribute before joining the different parts together:

3 Likes

Oh, thanks for your help. But it did’t work at first try. I’ve used attribute fill color on geometries with an specified attribute, also I’ve created a vcolor as well. I will try again later.

What version you’re using to achieve this? I’ve tried it in version 2.93.0 alpha from 22.1. and it doesn’t work.

I hadn’t updated for a few days. It’s using the the 2.93.0 alpha from january 18th.

It would be unfortunate if it wouldn’t work anymore. I’ll try this with the newest alpha build later.

Does the Cube object have Vertex Color layer named mat_mask? Would you mind to share your file, please?

I was too curious to wait and tried it with the newest build. It’s still working for me, so that is good :slight_smile:

Here’s the file if you wanna take a look:
https://we.tl/t-7NyGL3yxQx

Note that the shader is very picky about the attribute type and only color attributes seem to work at this time.

Ohh I see, you’re using Cycles renderer and I’m using EEVEE.

Guys, do you know if this is current limitation of EEVEE renderer or just a bug?

As nodes amount and complexity are starting to increase, it’s really a good idea to have a way to preview nodes/node tree. Specially with mixes, maths and point separate nodes, to visually see exactly what each node is doing.

1 Like

Yeah, maybe it is. Even on Cycles I had to create a default Vcol on one of the meshes used on my node tree, and even after deleting the Vcol it still worked and updated its colors. Maybe an update problem?

For me it’s actually working just fine using Eevee, so maybe a bug.
I’m on mac in case that makes a difference.

Thanks @lone_noel, @DimitriBastos I’ll try to update graphic drivers, I’m on Win10 btw.

Drivers update didn’t help, it works for me in Cycles too, but not in Eevee. @lone_noel can you please share mac specs so I can create a bug report?

It’s a mid-2014 retina macbook pro. This is what the info the blender bug report function generates:

**System Information**
Operating system: Darwin-18.7.0-x86_64-i386-64bit 64 Bits
Graphics card: Intel Iris OpenGL Engine Intel Inc. 4.1 INTEL-12.10.16

**Blender Version**
version: 2.93.0 Alpha, branch: master, commit date: 2021-01-21 22:24, hash: `rBe391ad7bbc97`
1 Like