Great, thank you very much!
Hi Astronet,
Sorry for not getting back to you sooner. Ideally, youād be able to generate the two tangent vectors that represent the other two axes (X & Y) if youāve already been given the normal of the meshās surface. In this case, if your mesh is a cube then it shouldnāt be too difficult.
However, while using the old set-up (matching the instancesā orientation to the direction of normals using the āRotationā output from the Distribute points on face node), I did encounter some difficulties so I have to use another workaround to get the rotation of the instances to match correctly with the direction of normals so that the when the tangent vectors are generated, its direction match with the local X and Y-axis of the instances.
//Hereās the screenshot of the node tree, I also attach the blend file below in case you want to give it a look.
demo_1.blend (4.1 MB)
Thank you so much for taking the time to generate this setup. Iāll spend time studying it
thank you so much! This is very useful! Do you think thereās a way to ālockā uv coordinates of the instances based on their initial position?
Similar issue - here I have a curve with noise; masked with a Float Curve to fix beginning and end point.
How can I instance this, that each instance has this mask? I tried things with your above given solution ( I thought the index input into the map range might be replaced by that procedure you showed), but in this case, the three other instances do not behaveā¦
didnāt succeed. Thanks for any help!
My pleasure.
Iām not entirely sure what you mean by ālockā but you can pretty much āoffsetā the UV of the instances based on their position if thatās what you mean. You just add the position to the UV and output that as a vector attribute you can use in the shader editor. But then again they used to be a bug where as soon as the instances are realised their UV gets destroyed! and Iām not sure if that has been fixed yet
Hello @Benny_G
I saw your question on devtalk about tangent vector displacement and I assume itās also related to this question?
Your setup is quite complex and Iām not sure I understand the problem simply by seeing this. What is the intended behaviour you want and can you provide a simplified setup showing just the problem?
to my understanding tangent vector displacement should be possible provided there is a tangent vector in the first place which curve objects have by default. Or maybe I am missing something?
From what I see you can just use the āfactorā output of the attribute parameter node. It outputs the normalised length for each point on the curve (0 for the starting and 1 for the ending). You should just be able to connect it before the curve map.
Sorry, I just tried your setup and realized that it works as I wanted out of the box!
What meant was to have the instances maintain the same color even when they are moved around. So letās say you have the cubes like in the example you posted, and those cubes will then move away from their original position and while doing so they will maintain the initial colors assigned by the UV.
Thanks you again!
thatās already possible with the current setup. I added the highlighted node to do that and animated it.
The transfer attribute node is not technically transferring the colour by projecting it. instead, itās mapping each point to each instance cube. So it doesnāt matter how I translate the cubes later
Look at the picture. These are all same objects with the same geo node tree, but with different parameters. Is there a way to change just one input parameter and leave the others unchanged?
A use for this would be for example this: you have 100 windows of different sizes in your scene and you only want to change lets say just the material of the sill, which is one of the parameters. Changing one by one maually would take a huge amount of time, and changhing just one parameter for all of them all at once should be possible imho. Afterall, thatsās what procedural modeling is for, isnāt it?
Iām afraid I donāt understand the question. If the material of the sill is one of the parameters, of course you can change it.
If youāre asking if itās possible to change parameters in a batch, I believe itās not possible as of now. An alternative would be creating one object, changing the params as needed, and then duplicating that object.
If your problem is same as the one Zorro mentioned, you can ctrl+L > Copy modifier to copy the stack form the active to the selected objects. But of course that copies all the parameters.
Perhaps you can make it such that the object uses the material that is actually assigned to original mesh? If so then you can ctrl+L > Link materials to batch change the materials.
Of course I meant in a batchā¦
The material was just an example. What if I want to change the thickness ot the sill for example? Or to switch on and off the shutters that have a switch parameter. Iām not looking for a workaround for a specific situation, I just wanted to know if you can edit only one parameter and leave the others as they are in a batch.
Blender already allows that for some operations, for example if you want to change the location of multiple selected objects in a batch you just hold ALT and click and slide on each of the XYZ values in the Location section in the Transform Side panel (N shortcut). The same thing applys to the auto smooth checkbox, select multiple objects, press and hold ALT and click on the checkbox. I wish this was true for Geo Node paremeters, but itās not.
With cyles you have the option to use vector displacement object or tangent space
I try to do the same with GeometryNodes .
For example if you use a curve line and you deform ( bend ) this , then the displacement is not correct anymore , so is there a way to get the correct vector
displacement
Vector displacement .rar (103.0 KB)
You could put the value you want to change across multiple objects inside the geonodes tree as a value node.
Less convenient, but it gives you a global variable across multiple objects with different parameters.
Yeah, obvoiusly, but still, what if I want to change a parameter for only 50 out of 100 objects? Ok create 2 different node trees, but you see where am I going with this. I wish we had this possibility, and I think the devs should take it into consideration. For one, I am certainly going to try and find a solution, maybe with some scripting, I dunno, weāll see
I donāt think this would work.
Each modifier acts as a different link to the nodetree itself. How would blender know which modifier to change when you hold alt, or where it is in the stack?
Object parameters are consistent from object to object, but modifiers are an arbitrary stack.
Come to think of it, a better solution would be to automate the process using a selection. Just take the nodetree that you want to change the parameters of, use it within another nodetree, and use a random value node to change 50% of them. No need to use separate objects.