text:
Why can't I plug in vertex normals to rotation of Object Transforms Output

I have a node setup which allows me to retrieve the vertex locations of an icosphere and position instanced cubes at those locations.
The Object Transforms Output node has sockets that say location and rotation, when I plug in the vertex locations from the Object Mesh Data node the socket changes from location to locations, as does the socket that said object changes to objects which I believe is because its a vecorized socket.
Why can I not plug in the vertex normals to the rotation socket? It is also transparent which makes me think its vectorized, if I can't plug it in what needs to go inbetween and why?

Vertex normals are vectors (transparent blue) and Rotation of object is in 'Euler' format (transparent purple). So, you have to first convert Vertex Normals Vectors to Euler then you can plug into the rotation socket. There are two nodes in animation nodes which can do this, 'Vector to Euler' node and 'Direction to rotation' node. However, 'Direction to rotation' node has many controls so you can choose 'guide axis (here is 'x')' and 'track axis (here is 'z')'.
Vector to Euler Node

Direction to Rotation Node

:)

Different coloured sockets, thanks for the tip!

Hallelujah!  Direction to Rotation Node was what did it for me!  Thank you!!


text:
Animate disable in renders property
I have an object which has been fractured, it has over 100 pieces. I wanted to animate the visibility of each piece. Unfortunately you cannot animate the disable in renders icon (camera icon in ref image below) for a whole collection, but you can for each object.
As there are a lot of objects, is there any way I can add a keyframe to each one without doing them all individually?

You can animate one and link the Animtaion Data to the others with CTRL+L.

@FFeller Would you provide an example answer please?

Now the 2.81 has been released and unfortunately collection visibility animation still not supported. So you have to use some tricky solution which are not as good as expected.
The first method (first two pictures):

Animate one of the object's visibilty with the traditional way: turn it on/off and hover the mouse above the camera icon and press "i" at the right frame.
Select every object what you want to hide, the animated must be the active (yellow outline) and hit CTRL+L, then choose "Animation Data"

Now every object has the same animation, so the big disadvantage of this method, they can't have location/rotation/scale animation, because all of them will be the same. But if you can lack these, this is a simple solution.
Second method (last picture):
The collection must be out of the camera view and visible for render. Add an empty (make sure it's not part of the collection) in front of the camera and add the collection as an instance of the empty (it's located in the object properties). Now the empty will shows a copy of the whole collection and you can hide it all by hiding the Empty (what you can animate of course). With this method you can animate the objects independently, but not in the real space.
So both method have disadvantages, so we hope the collection visibility animation will arrive soon.

Thanks so much for your 2nd method!

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Why does the solve error keep changing?
I've been doing a simple camera track, I placed 8 markers and thought now is a good time to see what the solve error is: 11.4301

The confusing thing is, that if I press Solve Camera Motion repeatedly I keep getting different solve errors, even though I have changed absolutely nothing since the last time I did a solve.

Am I doing something wrong? It doesn't seem correct to me, surely whatever algorithms are running to do the solve won't change after each click without me influencing it in some way.

Thanks for your reply, if this is the intended behaviour then it is problematic for the following reason. My initial solve error was not the best one i could achieve, does this mean users are supposed to keep solving in with possibility of achieving better results? I managed to get it to 3 from 11 without any changes at all, and this was without any further refinement of focal point etc.

I understand what you're saying about solve errors, but this must surely be a bug!

@cegaton How do I know what the focal length and distortion coefficients are?  By the way, I have experienced this same problem, but the solve error has increased by 40 without changing anything.  Weird...

@AnsonSavage what I did was simply set the refine option right above the solve button to "focal length, k1, k2", which means it will try to guess the focal length and distortion automatically. Or, if you use the trick to find distortion that cegaton provided above, but you still don't know the focal length, you can set refine to focal length only

@Markasoftware So will focal length k1 k2 guess all that stuff for any camera, or just specific cameras? What do k1 and k2 mean?

It'll guess for any camera

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
How to create a good glass reflection with Principled BSDF
So I'm part way through a fun small project, and I would like some advice about how to improve the glass material at the far end of the scene on the two doors.
In the ref photo the reflection is sharp, but you can also see inside the fridge or whatever it is.
I'm aware there's still a lot of things left to do in this scene, improve lighting, finish up materials but I'd like to address this glass shader.
PS - Any other tips appreciated, I'm a fairly novice user! I do 3D in spare time because I just love it.

Honestly, for this I would just use a mix of a Transmission shader and a Glossy shader. But if you want to use a Principled shader:

Set the base color to #FFFFFF, so you don't have darkened glass. (Unless you want darkened glass, of course.)
Set the Transmission to 1 and the Transmission Roughness to 0.
Set the Specular to 0, you don't need it.
Set the Metallic to 0.2 or so. This will control how strong the reflections are; you should probably adjust it to fit your specific light source.
Set the IOR to 1.0, since you're making a cabinet—refraction will just slow things down.

Here's a quick test render:

(I got the HDR from here.)
As you can see, the icosphere is a reflection, the cube is not.

a Mix of Glossy and Transmission Shaders will not take care of fresnel therefor you SHOULD use a principled bsdf shader

@GolgorieHaus Unless you mix them with a fresnel node. For objects where refraction doesn't play a big role, it's generally a reasonable approximation (and a good optimization) to replace refraction with straight transparency

@GolgorieHaus Thanks, didn't think of that! You're talking about Fresnel with the reflection, right? Reflecting more as you get more edge-on?

I would just like to add in case someone misses the tag at the bottom of the question, this only works in the Cycles Render Engine.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Connect Float output to Float input causes an error

I am playing around with animation nodes, so I have a bunch of instances along a spline. As you see in the working node tree, instances 31.00 and a Math node socket B also set as 31.00.
So now you think, OK I'll drive the math value by the number of instances, which would be the same float number. Wrong! If you do this everything goes RED and the whole world is destroyed!!!
Why can I not connect these two nodes?

does it help you when you look into the problems panel on the left? the problem is not the datatype but that you connect two different networks which cannot be merged.

Ah yes of course now i understand. I correct to new parameter in my loop subprogram and now it works.

perfect, would you like to write a full answer for your question yourself?

Maybe you should not allow connections of this type rather than just making everything go red and leaving it connected?

I prefer the way it is now because it's better to show an error message instead of just not allowing you to make this links (I'm not even able to forbid this with python!). It also helps to grasp the concept of networks in AN earlier. One thing I want to change is that you are told to look into the problems panel directly in Blender.

As pointed out by Jacques, in the problems panel we can see what has caused this issue. I highlighted this in red.

What I needed to do was to use another socket on the subprogram and loop input nodes, I have also highlighted these in red on the node tree.

Finally here is what the node tree produces, nothing spectacular but at least I'm learning how to use the amazing Animation Nodes addon.

one quick tip: you don't have to pass the length of the lists you iterate over separately. You can also just use the "Iterations" socket in the Loop Input node. It should give you the same effect in your animation.

Thank you, this saves me passing values through. I will pick these things up over time.

authors: Алексей Фролов


text:
How to mask off part of image plane
In my scene, I have an image plane with a picture of some kitchen tiles. I also have a cube which has been UV unwrapped and has the same texture as the image plane, but positioned so that the front face of the cube fits to one of the tiles.
I want to have the front face which has also been separated by selection so that I can open it like a lid and 'see' inside the cube.
The problem is that the image plane cuts into the cube. How do I mask the area where I want to see through to the cube behind?

Image plane

Scene
Please also look at my BLEND FILE if you can help.

possible duplicate of Cutting holes into a flat surface

Materials only solution

Create a cube
name it cookie cutter  (Optional)
Give it this material:

Apply this material:

to the background plane, and position cookie cutter to make the hole.

Note: When the camera looks through the cookie cutter at the plane, the plane will be transparent, so make the cookie cutter narrow. It may also be affected by other objects, so be careful.
Texture + Material Solution

Apply this material to the background plane

In the top image node, give it a black and white image, where it is white, there will be a hole.

Note: This is very robust, but can be a huge pain if you start moving your objects.

Texture+Material Solution: If your render engine is EeVee, this won't work unless you have your Blend Mode set to Alpha Blend in your material settings.


text:
How does fac differ with manual control versus node control?
If I mix two shaders together, like the diffuse and glossy shaders, I understand that I can change the factor slider between 0 - 1.

and that having 0.5 factor will show a 50% mix of blue diffuse and green glossy.

What isn't clear to me is what is going on when something else is plugged into the fac input, if I plug in a checker texture for example, with white and black as its two color values.

This now clearly seperates the two shaders based on the checker texture, I understand its doing that but how does it get away with not just supplying 0 - 1?

If I am only allowed to supply 0 - 1 using the slider, what is the checker doing to the factor that I can't do with my slider? Can you explain what can be plugged in to the fac input and how it differs from the user control slider.

Using the slider will just give one value for the entire surface (or volume, now that we have volume rendering :)
Using a texture will give multiple values mapped to different locations (the  depends on the texture mapping of course):

Basically the texture is supplying a value between 0-1 per ray.
Think of it this way: Each "light ray" cast from the camera by cycles that hits your object will test to see if the mix shader is resulting in shader 1 or shader 2. If the texture controlling the factor is black (0) where the ray hit, it will bounce off the diffuse part of the shader. If it is white (1) where the ray hit, it will bounce off the glossy part of the shader.
So, you can use anything which results in a value (which is pretty much anything). However that's not to say that everything will give a meaningful or useful result.
Note that even if the factor is somewhere between 0-1, the ray will only sample one shader at a time (if you are using the progressive integrator), but with many rays sampling the same point it will converge to a pixel which is a mix between the two shaders.

So when I set the control to 0.5, that is for every single ray? But the checker texture controls 0 - 1 for every pixel of its generated texture?

Exactly. Using the slider is like using a solid color.

The checker texture is sampled for each pixel on the screen, and each sampling might give a different result.
Different pixels on the screen are going to "see" different parts of the checker texture, giving different factors.


text:
Correct tracked camera orientation
I have been playing around with camera tracking and I'm happy enough with the tracking and alignment of the markers with the footage when viewed through the camera.

The problem is, when I am not looking through the camera I can see that the grid isn't aligned to the camera.

How do you correctly align the grid to this tracked camera? I have set a floor and two points for scale, also clicked setup tracking scene, but this just added cube and plane which were on the grid.

Your markers are all on the same plane (the ground), so the solver will have a hard time figuring out the camera motion accurately. This could be causing your alignment problems as well.

I'm not sure I agree, If you place 10 coins on a white table you will find that auto tracking alone will do an amazing job and get all the orientation spot on, I can demonstrate this.


text:
How to flip the mirror modifier? So I may edit the mirrored side
So using the mirror modifier, I understand I manipulate the components of my object in edit mode. This gets reflected to the mirrored object.
What I want to know is if there is an option to use the mirrored side to edit if I need to, say in another view for example I may only have a background ref image that suits that side.

You can have the mirror modifier allow editing of both sides in edit mode by clicking the triangle icon in the modifier:

However, moving the mirrored side may be confusing, as it will always behave as if you are editing the corresponding selection on the non-mirrored side.
Flipping the model manually
There a few was to do this, but the fastest way I know of is pressing CtrlMX (or Y or Z, depending on your mirror axis) in object mode, making sure the pivot point is at the same spot as the mirror point.


text:
Add additional camera presets
In blender we have a camera presets selector.

Some of the items are quite old now and there have not been many new additions. How would one go about adding new presets and what information about the camera would be required?

In addition a look at the code of the presets Samsung Galaxy S4 as an example shows what settings are assigned the camera by running that preset's code.  Look for the scripts/presets/camera folder of your blender installation.  Can copy paste one of those files into folder and on restarting / or with F8 will have a new preset with the name of the file.


text:
Change colour based on z height
I am using geometry nodes to move cylinders on the z location based on the proximity of an empty.
I wanted to use the attribute dist in a material to change the colour of the object as it should vary per object, that didn't work.
I tried to do this using the texture coordinate to get its z location and I found it just affects each object the same, makes it half and half but doesn't change on object's height.
How can I color each object based on its height, preferably using geometry nodes dist attribute that I created or as a last resort using the older method of texture coordinate node?

download blend file

Hello, it's not exactly clear to me how the falloff should work, could you explain it a little bit more ? or add a diagram of expected behaviour ?

@Gorgious Sorry I have not explained it well. So when you move the empty, the nearer each instance is to the empty, the higher it will move on the z position. I want to colour objects that are higher in a different colour to when they are low on z position.

then i wonder why my answer was downvoted...

you can change color based on z-position by this shader nodes:

result:

When I try this, I find that the colour does not change on the instances when I move the empty. They only change colour if I move the whole lot on the z position manually. I feel this is a limitation of geonodes right now.

There are a few things to be careful of here.
One is, geo nodes do a strange mix of creating geometry and instancing, which do things differently, and not all the snags are worked out yet (and maybe we shouldn't expect all the snags to ever be worked out.)  This means that there are really two different sets of object coordinates, those for the instanced object and those for the instancing object, and making sure you use the right one is going to be tricky (and unintuitive, and maybe, break next release.)
And the same applies to the material.  Right now, you're not using a material on your instancing object, just on the instanced object.
So what we should do here, in order to adjust the color on the instancing object, is link the material onto that object (select instancer, shift select instanced, ctrl-l -> materials), and then use an attribute fill node at the end of the geo nodes to assign all the faces to the material-- assign all material_index to 0:

Now you can see that the material's object coordinates are, indeed, referring to the instancing object's coordinates, rather than the instanced object.
It's not clear that this is exactly what you want to happen.  But then, we'd need to know exactly what your goal was to address that.
Regarding "dist": it isn't really a property of the instanced geometry, just a property of the instancing mesh-- of the individual points on which the cylinders get instanced.  Those cylinders don't have any "dist" property.  In 2.93, instanced geometry doesn't really do VG-type attributes anyways.  (2.92, yes; 3.0, I sure hope so.)  However, if we trace your nodes, "dist" is a pretty simple vertex group that we could recreate with a vertex weight proximity modifier; or we could use a data transfer to copy it from a non-rendering, linked copy of the mesh, with different geo nodes (no instancing), and a "dist" VG group explicitly created on the object.

Thank you for the answer, what I want to happen is that each cylinder whole object changes colour as it changes height on z position, I think as you said its really the point position that changes, maybe I cannot do this.

@Neil Right now, in 2.93, you cannot simultaneously use properties of the instance (like the object coords you are using, but also many other things) and properties of the instancer.  That means that something has to give.  The simplest thing to give is dynamic instancing, which is to say, give up on geometry nodes.  But the ideal thing to give up depends on what your goals for this structure are, for example, how you want to animate it.

This is a big limitation of geometry nodes, not being able to use properties of the instances because there's not much point using instances in this way if you cannot do simple things like apply materials based on a z location.


text:
Camera fulcrum visible in solid mode cutting off objects

I seem to have enabled some camera fulcrum option, this is only visible in wireframe and solid modes. Can anyone tell me how to disable it as it's clipping my objects, also is there a hotkey combo i've maybe hit by mistake?

Clear the clipping region Alt+B (or on the menu: View> View Regions> Clipping Regions)

@susu YES I had created a clipping region for an earlier render! Thanks so much. As this has been asked before I'll delete this question. Actually its going to be ref to the answer you pointed me too.

No, don't delete the question. It might help others find the information they need. Duplicates are very useful.

For future searchers, OP used the term fulcrum but almost certainly intended frustum. https://en.wikipedia.org/wiki/Frustum


text:
How to align object to a vector

I have two cubes (Cube1 and Cube2) and I am positioning an icosphere by adding the two vectors of the former cubes. I then scale the icosphere's vector by 0.5 so that it sits visually between the two cubes.
What I really want is for it to sit between the two cubes on the green vector so that I can move it between the two cubes. I noticed that the icosphere moves on its local axis rather than world axis.
I have read a lot about vectors and matrices etc. and still find it difficult to understand sometimes.
So my questions are, how would I get my icosphere to use the green vector for its position, and if possible explain why it only moves in local space rather than world space, and is it even possible to move it in world space so its pivot point moves with it?

[Fun fact: every answer needs at least 30 characters. Markup symbols don't count.]

Interesting use of the mix node, didn't expect this

@Neil take a look at this answer by Marty Fouts, which effectively is a list of vector formulas you can replace with the Mix RGB node.

thanks, where would I find info on world v local space in GN? Do you usually move all the points instead of a whole object? Maybe I need to change my thinking.

FYI the character limit is there to enforce at least a bit of explanation if you post only a video. Some people with disabilities or with very slow internet connection have trouble with gifs :)

@Neil every vertex has a coordinate. Those coordinates, as well as connections between vertices (and some other attributes like smooth shading or material slot) define a mesh. An object is a wrapper of a mesh, that allows you to add stuff like rotation, scale, translation (location), parenting, constraints... matrix_world is the result transformation matrix that is applied to each vertex coordinate in order to evaluate the real coordinate.

@MarkusvonBroady thank you, so I think I get it now, the origin point stays where the object that you added your geo nodes tree to? So you only deal with the points, edges and faces etc. in local space?

@Neil correct, geometry nodes modify geometry. They have access to object properties, but can't modify it. position of the origin is an object property (location), so you can't modify it in geometry nodes.

I'm not entirely certain if this is what you wanted but this does what you described.
https://giant.gfycat.com/ScientificShockingCarpenterant.mp4
Here's the node tree

and if you want it to go 0-1 you can just put a map range

I guess this goes in the right direction. Although if I see it correctly, the scaling seems to be a bit weird... I understand the question like with scale 0 the icosphere should be at cube 1 for example, at scale 1 it should be at cube 2. So that the path between the cubes is always from 0 to 1 so that a scale of 0.5 is the exact center between those cubes. Right now it looks a bit different but I'm not sure. Unfortunately I have no time now to test it, but maybe my comment can help you tweaking your setup (if it's not already doing what I describe and I just didn't realize it).

Just throw a map range in front if you want it between 0-1. I'll edit

Thank you, I'll take a look at this later. Would you be able to answer my question on local v world space also?


text:
Make instances point away from centre of the curve
I have a curve that I'm instancing some xmas light on each vertex. How can I rotate the points so my instances point outwards from the centre of the curve?

And here is my geometry nodes setup

So I'm not sure if this is the best way, but I'm not sure if you have the same vertex normals when you convert a curve to mesh, so I decided to use the tangent from the circle points, and just add PI/4 to point them outwards.
You could of course just use the normal from the curve to points and add PI/2 if that's your preference.

You can do it simply like this:

hey thanks, that's what i'm trying to do in my node tree above, I want to use the curve i'm starting with, so that I can easily move it around afterwards using its control points. Any idea why it doesn't work in my example?

Can you share the file?

I found a way to do this, thanks for your help


text:
Is there a method to loop when adding more objects?

I am learning how vectors work in geometry nodes, and this simple example scales a vector to place a cube between 0,0,0 and the position of an empty.
I created a group of nodes, so that I could replicate this effect with multiple cubes. However, this seems inefficient to me, so I'd like to know if there's a way to create a loop as we do in programming to add as many cubes as I like without having to manually duplicate my group node?

There is no loop node (yet) but you could e.g. this easy node setup to get what you want:

Ah instances and mesh line, of course thank you

As you said there was no loop node when I asked, is this what the repeat node would achieve now?

yes. the repeat zone is a loop.


text:
How to merge by distance in geometry node for making quadrilater
I want to make quadrilateral using "curve line " node  but I'm unsuccsess .please tell me how can I make it  Note the the angle between the lines will variable . Here you can have a loo on my blend file   Thank you in advance .

Don't make it harder for yourself, than it needs to be: define your corners, and pass them to your Curve Lines. Or you know what, pass them to Mesh Lines, so you don't need to convert them to meshes before merging:

Or you know what? Use the Quadrilateral node in Points mode:

Either way, changing the corner positions will change the shape:

If you play with the merge by distance value and use the viewer node, you can get what you want, i think:

Note: fill curve only works on curves, where all z-values are 0.
https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/curve/operations/fill_curve.html
I recommend changing your rotation + location to 0 so that you don't confuse yourself.
E.g. changing the values like this, will give you a parallelogramm (i muted your resample curve node).

and if you delete the resample curve node, and change your z-values to 0 and change the z-values to the x-values, you can fill it:


text:
When copy+pasting an object from Blender add-on "Vegetation", materials vary for each iteration
Blender 3.0.1 but it's done this with all versions.
After adding a particular plant from the Vegetation add-on, I copy and paste plants, sourcing from the initial plant. I'm getting some variation in material appearances between the copies and haven't been able to track down the source of this problem.

Blender doesn't have a built-in 'vegetation' addon, so you'll have to ask the addon's author since it's a third-party addon.

At first glance I'd try sliding the field name "Random Sa..." all the way to the left (0)


text:
My bone isn't moving the part it's weight painted to for some reason
I have a model, and part of the model is separated and is able to be moved. It's weight painted red for both the main bone and for the individual bone controlling it, but when I try to move the bone controlling it, it's only moved half way. I tried coloring the separated part blue on the main bone's vertex group, but that makes it unmovable by any bone, including the individual bone meant for it, despite it still being red within that vertex group, How can I make it so I can move the separated part of the mesh? The individual bone is parented to the main bone

Some of the things you mentioned in your question sound impossible. One of us is misunderstanding something. Please add details such as screenshots of relevant vertex groups as they appear in Weight Paint Mode, and the whole armature with show bone names turned on for the viewport. If all else fails, use blend-exchange.com to edit the file into your question.

Based on your reiteration on my (deleted) answer, yeah please do share the file. This sounds really strange.


text:
is there a way to uv unwrap both sides of face into different parts?
hi im new to blender and i want to know if i can paint in different color both side of this faces without using any shader, i tried uv unwraping but always when i paint one side of the face the other is painted too this is the object im trying to paint.

You can't unwrap differently for a simple material, but you can use a Geometry shader node to select different colors for each side of the face.  Here's a very simple example:

On an open cylinder this will make the inside of the cylinder orange and the outside blue:

Now you can use the same UV Map but drive Color1, the outside, with an image texture that you painted.  You can then either use a simple color for Color2, the inside, or the same UV map with a different image, or, I suppose a different UV Map with a different image texture.  The material for the last case would look like this:

thank you so much for answering it i had a lot of problems trying to figure it out


text:
Trying to Attach one rigid body simulation with 2 ropes to an jewel (solid object)

hi the main problem is when i try to use the rigid body simulation the ropes separate from the jewel i want to know if i can activate the rigid body and not separate it from the main model

Hello, it's a bit vague, does it mean that the ropes are made of a series of bones? Also, what kind of animation are you trying to achieve, etc?

hi sorry for my bad explanation, im trying to replicate this on the second 0:37 https://www.youtube.com/watch?v=Ix3eh4NpPZc , the ropes are only a single mesh and i added a cube to it (the cube is the soft body) there are 2 ropes so 2 soft bodys and the rope move along the cube, it doesnt have bones, and i can attach the person to only one rope but if i add 2 the bottom part of the 2 ropes separate from each other

You could do it this way:
Create 3 objects: the 2 ropes object (2 meshes within 1 object) / the cube (your character) / a plane.
Subdivide the plane, give it a Cloth simulation, assign its 2 last vertices to a vertex group that will be the cloth Pin Group, increase the Speed Multiplier value of the simulation if you want the animation to go faster:

Give a Surface Deform modifier to your rope object, with the plane as Target, click on the Bind button:

Select the cube, shift select the rope, switch to Edit mode, select 3 vertices, make the vertices parent with CtrlP:

Play the animation and you'll get that:


text:
It is possible to create a texture that records the vertex movement of a shape key?
Good afternoon I want to know if I can create a texture that shows the vertex movements of a specific shape key in my model.
Red channel movements of vertex in X axis
Green Channel movements of vertex in Y axis
Blue channel movements of vertex in Z axis
Thanks in advance.

And how should the movement over time be recorded? In a single line of colored pixels or in a grid of pixels with specific dimensions? I'm not quite sure if I understand what you want to get as result.

@GordonBrinkmann I would assume from the question that it would just be the difference in vertex position with shape key at 0  and at 1.  He did not mention any animation or time period, I am thinking that must be it then.

So basically, save shape key itself to an image?..

I would interpret this as a Velocity texture

@MartynasŽiemys I thought about that, too - but storing only the 0 and 1 positions would only need two pixels for a single vertex. For a large amount of vertices it would be the question how 0 and 1 state of vertex $n$ should be located on a texture.

Well, you don't need to store 0. I think shape keys only work like that as well - there is always a basis key, so only one vector should be stored the way I see it. So a Python script could save shape key as an attribute and it can be baked to a texture and that would be about it. But, OK :D  I do hesitate to look into that because it's not 100% clear if that's what is meant by the question so maybe it does need clarification after all.

@MartynasŽiemys Of course you are right, 0 would be the base key. Stupidly enough I was thinking about storing the end locations themselves, not just the difference between start and end, so I was missing the start to create a transition from one shape to the other... my bad.

Not sure if I understand the question fully, but if you wanted to convert a shape key to an image, you could convert it to an attribute with Python:
import bpy

o = bpy.context.object
shape_key = o.active_shape_key
attribute = o.data.attributes.new(shape_key.name, "FLOAT_VECTOR", "POINT")
attr_verts = attribute.data

for i,vert in enumerate(shape_key.data):
    attr_verts[i].vector =vert.co

And then bake it to an image in the Shader Editor:

The image may contain negative values in that case so you would have to save it as 16/32bit Float EXR, or deal with that some other way.

Hi thank you yeah this is what I wanted thank you. my last question is it won’t be better to use a gray image to be the start point and then black is -1 and white +1? Or do you think using float32 is better?

@souleater -1 and 1? In the example the blue channel is -3.63489, so it would still be "below" black. Do you want absolute or relative values? Because generally speaking X, Y and Z locations can have values far out of the -1 to 1 range, you did not specify if your vertices stay within a certain range. And relative values would not really make sense I guess... because when the shapekey is at value 0, all vertices are at 0% of their end position, at 0.5 all are at 50% and at 1 all vertices are 100% in their end position. Or I'm completely not getting what this is about. Probably that's it.

Well, even 32bit float precision in Blender sometimes reaches its limits, so encoding position data with 8 bit values as colors... I don't know... I would use 32bit Floats with EXR if that's possible. EXR is a very nice format. There would be no data loss and it's fast, compression is good and so on.  But that might be just because I like EXR format so much :D On the other hand, people do use 8 bit displacement maps, so... I think it depends on circumstances. It's hard to advise since you have not provided a lot of context - I have no idea what this is for or what's appropriate.

@MartynasŽiemys sorry i will explain more What i would like is record the difference between movements of each vertex in a texture when shape key is 0 and when its 1. So i can create a shader that use that map to edit the mesh instead of a shape key.
I noticed that even when i use the Basis shape key that dont move any vertex the code provided still apply color to it. it should be black right? because is not recording any movement.
I was just a bit confuse since i never used EXR format so that image extension can contain numbers more than 0 to 1 but i would like .PNG to compatibility with ot

@GordonBrinkmann yeah what i was thinking is making a range where for example red goes from 0-1 and i can edit like 1 is 100m or something like this. because i want to make a shader that use this texture instead of shapekeys. but if its possible to store images with more numbers than 0-1 its better that way. with png it works? to better compatibility with other programs. but about what i want its exactly what you think. if the vertex dont move its black and if it moves by the shapekey make color.

This is starting to to sound like an XY problem. "So i can create a shader that use that map to edit the mesh instead of a shape key." - how? Why are you trying to this in the first place? Why not just use the shape kay as intended?


text:
Clothing stays in place when body starts moving
Recently i started using cloth sims for clothing. I downloaded a low res human model with animation and modeled a t-shirt for it. Everything worked just fine. I then used the MB-Lab adon to create a better looking human model and animated it. But when i try a cloth sim now it doesnt work. I have the model animated so it stays still in T-Pose for a while and during that time the sim is fine. But as soon as the animation starts the cloth sims breaks. The human model moves but my shirt stays in the same place as if nothing had happened. The cloth sim is still working but it looks as if the model was still standing in T-pose, while in fact it is moving. Does anyone know what the problem is?
Thanks a lot

Have you parented your cloth to the armature ?

I didnt know i needed to do that. When i used the low poly model i didnt have to parent anything it just worked. How would i parent the cloth to the armature? (Sry real begginer here)

I'm not really experienced with that either, but you parent it to the armature by clicking on the object first and then shift click on your armature. Then, control P. I would parent with empty groups in this case, and then, you're good for a weight painting session :D
Be sure that your armature modifier is above the cloth one though.

Worked on MB_Lab character yesterday. You shouldn't parent cloth with armature unless you have a vertex group "pinned", in which case you'd want to parent the pin area to the armature, with weight painting around the pinned vertices.   It sounds like you have your characters MESH as a Collision object.   You may need to play around with decreasing the Collision "Inner" and "Friction" from the defaults, and some messing with Cloth params Quality Steps, Collisons Quality.  Consider if you need a Solidify modifier above either the character Collision mod or cloth objects Cloth modifier stack.


text:
How to create a grid of numbers 25x25 from 1 to 625 in geometry node?
I wanna numerize my cubes, its 25x25. So i wanna give each cube a number from 1 to 625.But its quite time consuming making: Shift A - Text - Edit - 1/2/3/4........
Is there a way to automatically generate grid of this numbers ? And stringify it to make boolean operations ?
I tried creating Geometry Node with Grid - Instance of objects and index, but got only points/dots...
I just wanna create grid of numbers from 1 to 625

Sure... the solution lies in that you have to avoid fields as input to the value -to-string node and the string input to the string-to-curves node.
The easiest way is to use nested repeat zones.  Hmmm... or wrap it into a single repeat zone and use floored divide and mod to extract the row and column...
Something like this:

What is the thought process for the inputs to the nodes going into the size input String to Curves? Is it just fiddling with values until it looks right or is there some real math behind how it works?

Oh, lol... now I look, I mean... it was just a quick hack-together.  The reasoning is that the ceil of the log (base 10) of X is, basically, how many digits X has... then there's some fiddling (which is probably honestly better done in a couple of switches for precise control over the scale you wish each digit-length number to show up... you could also simply opt to have a smallish and constant size for the text, which is what I think I'd normally prefer and do... don't know why I was doing that... probably better with a constant size.

Awesome, thanks for the insight!

(Using Blender 4.2.1)
Approach
A classical approach with GeometryNodes modifiers to save CPU time and memory when displaying numbers is to use an Instance on Points node to spawn digits instead of using Value to String then String to Curves nodes for each number. In the present case of a grid, this technique can be combined with an other Instance on Points node to set the points where digits are placed, avoiding a Repeat Zone.
Setup and results

For the demonstration, a 25x25 grid is added in Object Mode. It is rotated around X axis such that the first faces are at the top instead of the bottom. This transformation is applied.
The GeometryNodes modifier displaying the numbers (i.e. faces index) is not added to the grid, but to the default cube. The grid is specified as an input parameter of the modifier. This way, grid and numbers can be visualized independently.
Resources

Blender file:  (Blender 4.2.1+)

To display more complex numbers, see Random values to string on each instance in Geometry Nodes?

GeometryNodes modifier

1. An Instance on Points node is used to pick digits stored in a collection (see pink contour) to spawn them at points generated by an other Instance on Points node (see red contour). Instance Index is computed from the integer to display and the digit rank (see green contour).
2. Curves outlining the digits from 0 to 9 are generated by a single String to Curves node. These are output as superimposed Instances with index ranging from 0 to 9 also. In the same String, the last character is the blank space (so not visible in the screen capture...), with instance index 10. For rendering purpose, curves are filled with N-gons and are receiving the material "Black".
3. Points are generated at the location of each digit making the grid of integers, with an Instance on Points node spawning a line of 3 vertices per face of the input object. With 3 vertices, numbers from 1 to 999 can be displayed. To support different digits, those vertices have to be converted to individual mesh elements using a Realize Instances node.
4. The coordinates of the input object faces center are recovered by a Mesh to Points node set in Faces domain. It is to notice that the Transform Space property of the Object Info node providing this object geometry is set to Relative for the labels to follow the object displacement.
5. A Mesh Line made of 3 vertices aligned with X axis extending from -1 to 1 is initialized. It is to notice that it is slightly offset in Z direction to avoid Z-fighting between faces and labels. Then it is successively shifted in X direction to make 3 instances collected by a Geometry to Instance node. The first instance of index 0 is centered on middle digit ; the second instance of index 1 is centered on the space between middle and last digits ; the third instance of index 2 is centered on last digit.
6. The spacing of digits is scaled with a Transform Geometry node to be adjusted to the font and the faces size.
7. To center on a face the associated number (i.e. its Index + 1), one of the 3 instances shifted at step 5 is picked, according how many digits are required. Using a cascade of Switch nodes, the instance of index 2 is picked for numbers lower than 10, the instance of index 1 is picked otherwise for numbers lower than 100, the instance of index 0 is picked otherwise.
8. At step 3, a triplet of spawning points is generated for each number $n$ to display, one point per digit. Let $i$ be the Index of such a point. For a given value of $n$ (starting at 1), $i$ is between $3(n-1)$ and $3(n-1)+2$. Consequently, the value of $n$ for a given value of $i$ is computed as the integer part of $\frac{1}{3}(n+3)$.
9. Let $j$ be the rank of a digit (from right to left, starting at 0) and $d_j$ be this digit value. The value of $n$ is defined as: $$\begin{array}{rcl} n & = & 100 \times d_2 + 10 \times d_1 + d_0 \\
\mbox{} & = & 10^2 \times d_2 + 10^1 \times d_1 + 10^0 \times d_0
\end{array}$$
For a given value of $n$, $d_2$ is at Index $i=3(n-1)$, $d_1$ is at Index $i=3(n-1)+1$, $d_0$ is at Index $i=3(n-1)+2$. So $d_j$ is at Index $i=3(n-1)+2-j$. Consequently, $2-j$ is the remainder of the division of $(i+3)$ by $3$.
10. Dividing $n$ by $10^j$ yields:
$$10^{(2-j)} \times d_2 + 10^{(1-j)} \times d_1 + 10^{(0-j)} \times d_0$$
Consequently, $d_j$ is the integer part modulo 10 of this expression.
11. Leading zeros for numbers lower than 10 and 100 are replaced by blank space (stored as the instance of index 10) using a cascade of Switch nodes.


text:
How to append collections with GeoNodes in Blender while reusing data and maintaining object control
I want to append a collection containing objects with geometry nodes modifiers applied to them. After appending, I still need to be able to manipulate the individual objects in the collection as usual.
The file I'm appending to already has data blocks (node groups, materials, etc.) with the same content and names. I want Blender to reuse this existing data instead of creating unnecessary copies.
I've tried two solutions so far:

Using the Asset Browser with "Append (Reuse Data)":

This method reuses the data as intended.
However, I can't "open up" the collection to manipulate individual objects.
When I use "Make Instances Real," it creates many duplicates of the original objects, causing a mess. This seems to be a known issue.
Using "Realize Instances" on a complex node tree creates other issues.

Using "File > Append":

This method does not reuse data; instead, it creates copies of all materials, geometry nodes, node groups, etc.
However, I can still manipulate the individual objects in the collection.

Attached are two example files. File A contains all the assets. File B already has two of the assets with the same data blocks. I want to append the collection named "Preset 1" from File A to File B.
Is there a way to append this collection, reuse the existing data blocks, and still be able to manipulate the individual objects without creating duplicates or other issues?

Hello, unfortunately this workflow is not ideal and the devs are working on improving it. See the discussion over on devtalk https://devtalk.blender.org/t/asset-embedding-proposal/34484

@Gorgious Hi, thanks for referencing that. It's good to know it's a known issue.
Would you think about any other workarounds? For example a script that would automatically find duplicate data blocks and merge them back to their base version?

The issue is there is no builtin way to know for sure if two assets are essentially the same. You could use a complicated hash map that would make sure every combination of every property of each data block produces a different value, so if you test two hash maps and they are equal you know for sure that they are the same asset, but what if you move a node in the node tree and the hash map suddenly changes ? The node tree produces the same output but is not strictly the same. BTW the devs go into much more detail than that. It's a complicated topic.

It is possible if you have a specific workflow for example to set a unique uuid as a custom property to your data blocks, and then with a custom addon deal with merging similar assets on append. But it is indeed a lot of work and very workflow-dependant

@Gorgious Thanks for clarifying that. It sounds pretty complicated and time-consuming indeed to do that. I guess we'll have to wait and see if they are able to come up with a solution. And support the Blender fund. :-)


text:
Maintaining collection structure when appending assets with Geometry Nodes modifiers applied to them
I marked an object as an asset. It has a complex Geometry Nodes modifier that uses "object info" and "collection info" nodes to import other objects.
These referenced objects are organized neatly in different collections in the outliner. However, when I append this asset into a new, empty file using the Asset Browser, the original structure in the outliner gets messed up. A bunch of objects ends up in the main collection instead of their original collections.
How can I organize these referenced objects so they stay neatly organized when I append them with the Asset Browser?
Images for clarification:

Hello. When you append an asset it also appends all the data blocks it is using. For example if you append a material which uses image textures, it will also append the image textures otherwise the material wouldn't work anymore. Same for modifiers, if you append an object which has a boolean modifier, it will also append the object used as a modifier in your scene.

I think it's a bit less smart though if you have objects or collections set as default values in your modifier inputs. They may get appended too even if not used

Hello and welcome. Please avoid text written inside images, always prefer typing it directly in the body of the post instead. Image content can't be indexed and thus can't be searched for nor readily found by anyone looking for solutions in the future. Updates are difficult because it can't be easily edited in case of mistakes, nor updated in case of future changes. It doesn't follow the fonts and style of the website automatically, and doesn't work with screen readers.

@DuarteFarrajotaRamos I'm sorry, I was not aware. I will pay attention to that.

@Gorgious Hi Gorgious, thanks for your reply again. And apart from not setting collections or object as "default" in the modifier panel, would you have any other tips on keeping things tidy in the outliner when they are to be used with the Asset Browser?

Unfortunately no, AFAIK the collection structure is dissociated when you append an asset. The only thing you can do is create a new collection, select it and append your asset so that all newly potentially unwanted object are placed in the new collection and not in your scene collection

@Gorgious Ok, I see. It would be best to do it that way then.
And would there be a way to hide all these objects and collections from the outliner while they can still be used by the GeoNodes modifier? I mean: not just by toggling off visibility in the viewport or render, but really invisible unless something is turned on to see it?

Why don't you link your asset? that way the object/collections required don't get imported

You can exclude the collection in the outliner, this will effectively collapse all these objects into a single entry in the outliner.

@Leander Link the Geometry Nodes object from the asset browser you mean? In that case I am not able to edit it anymore it seems like. Or do you mean: only link all the data blocks it consists of? Is that possible?

@Gorgious That sounds interesting. Do you mean I could "Exclude from view layer" the unwanted collections in the original file? I have tried that and it doesn't seem to make a difference. All the objects and collections are still imported in the same way.

Yeah no you can't since all the assets that are used are imported without hierarchy. I mean once they are imported in a collection you can exclude this collection

Would there be a way to solve these issues by creating an addon? (controlling how the assets are imported in the outliner with a dedicated collection/ controlling visibility of all these assets/ reusing data properly/ ...) ?


text:
Adding a plane given 4 vertices in a transformed mesh
Given a mesh (i.e. plane), I have assigned 4 vertices (selected in the picture) to a vertex group.

Using the Python API, this mesh is moved and partly rotated by the bones. Now I want add a new (blank) plane within the 4 transformed(!) vertices. In other other words, the left upper vertex correspondence to the left upper corner of the plane and so on and forth.
I found a similar question here Possible to add a plane using vertices via Python?. However, the location of the 4 vertices is hardcoded. Therefore, I'm interested in a Python code that gives me the transformed positions of all vertices within a particular vertex group.
Thank you in advance :-)


text:
blender 2.83.2 viewport Render image color completely different
System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce RTX 2070 SUPER/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 451.48
Blender Version
Broken: version: 2.83.2, branch: master, commit date: 2020-07-09 05:50, hash: rB239fbf7d936f
Worked: 2.82 version of Blender that worked as expected
Short description of error

It's 2.83.2 version viewport render.

It's 2.82 version viewport render.
2.83 version has
The viewport image render result color is completely different compared to the viewport.
I tested in blender 2.9 alpha. the result is same.
Maybe Revamped color management update is cause.
How can I fix this mismatch?
Is it impossible because of technical problems?
Exact steps for others to reproduce the error

In viewport shading mode.
Click Viewport Render Image.
3.Compare result color
If It's hard to see. Tweak Exposure and Gamma and redo Viewport Render Image.

https://developer.blender.org/T77909
It's a bug at blender 2.83 may fix it blender 2.9


text:
Is it possible to use motion blur only on animated models, without affecting the camera
I have a dynamic fight scene  and I want to apply motion blur only on fast moving characters, without affecting camera, which is animated too. Is it possible in blender Cycles?


text:
Attach Verticle position to Points position
I have a simple geo-nodes setup

I created a grid and add mesh to points node to generate points on verticles. After that I animated position of the points and I now make verticles follow them. Does anyone know how can i do this: transfer points position to the nearest vertex?

thanks for helping !

As you explicitly define the offset (4 left-most nodes), why not simply Set Position your grid inside your Simulation Zone identically to the points ? With help of something like Separate Components and Join Geometry.

I want to use points like a hook for physics simulation. My goal is to simulate physics to points and attach original geometry position to points new position.

(Using Blender 3.6.8)
As the Mesh to Points node is assigning the index of a vertex to the point spawned at the same position, a Sample Index node can be used to recover a point Position and to transfer it to the grid vertex sharing the same Index.

Resources:

thank you so much!
I am so happy right now as you helped me to get a solution

May I recommend to apply this : What should I do when someone answers my question?


text:
How to make Collection sockets working in addon panel?
I can´t figure out how to enable editing collection inputs in N-panel. Thanks for any help

Could you Post a mwe?

Hello, please insert your code using tye website's code formatting tools. Showing more of your code - at least all that concerns these ui elements and their data and usage - would help seeing what's going on.

Hello, this is a duplicate of https://blender.stackexchange.com/q/317739/86891


text:
Geo Nodes Affect Flower separately from the stem
I made this wind effect for grass using geometry nodes (blender 3.4), and because I am new in this I stucked with part, where I need to add wind effect for the flower part separately, to make it look more natural.
How to make this node tree  control flower part separately?
Here is the current result I have (youtube video link)
Thanks for your answers!

I cannot see in your screenshot how this is affecting the flowers, stems or anything, but I guess a simple way would be to use this wind setup for the stems and create another one with different parameters to affect the flowers. That's the quick and dirty way.

@GordonBrinkmann: maybe you zoomed in too far...? :D

@Chris Pardon? Don't know what you mean... I only see Position, Vector Add, Noise + Musgrave Texture, Subtract and Scale node. Can't see how the stems and flowers are connected to that or how they are created...

It was just a joke….that’s why I added the „ :D“

You should be nice - he has > 300K followers - maybe he hires you in the future….

@Chris He is "the future of 3D animation", I'm confident he will get along without me.

you can use this kind of node setup:

so you can plugin the boolean capture attribute into set position to see the difference:


text:
texture paint, assigning material trouble
when i'm trying to assign material, this happens:

Can you confirm your normals are pointing outward? The shading of the object looks like it is mixed between inward and outward pointing faces. The black part looks like there is additional geometry in play.

so what should i do, i dont understand i'm new to blender, pls halp

Select all the faces and press Ctrl-N to correct normals, see if that helps. Make sure you don't have extra geometry there from accidentally having a selection and pressing F to make a face between.


text:
Volumetrics with an alpha background, can it be done in cycles?
I have a scene with an egg cracking slowly. Inside the egg is a bright light. I used a cube to create some volumetrics and the result is great but I need a transparent background. I found a couple tutorials but it cuts the light off at the end of the object. It's also rendering incredibly slow because it's rendering the whole scene when all I need are the light beams. Any ideas?

You can try using a larger cube or a sphere and lessening the density so that it fades off more slowly.  But the reason it's rendering so slowly is that volumetrics are hard to compute.  What might be better for you is to render it without the volumetrics and instead use the "Glare" node in the compositor (Note, you need to use the "Mix -> Screen" node to get "Glare" to work with transparent backgrounds.  See the example below).


text:
Mouse cursor not snapping to mesh
Recently when I grab a mesh in blender my mouse does not snap to it. What I mean is that the mouse cursor stays where it's at and moves the mesh from a distance. I don't know how this happened but I would like to know how to change it back.

Can you share an image of your viewport on what happens?

Ckeck preferences, It looks like offset is on.


text:
The orientation of the mesh is not aligned to the rig. How to fix this issue?
I'm new to blender but I have not found a thread with this exact problem.
I imported this file into blender: https://free3d.com/3d-model/manuel-animated-001-dancing-256270.html
but the orientation of the mesh is not aligned to the rig:

I can change the orientation of the mesh using the "Manual Orientation" on the import box but the armature will rotate perpendicular to the mesh. I can't get them to align.
here's the import setting I inputted:

I tried a different file (https://free3d.com/3d-model/3d-twilight-model-animated-627891.html) but results were the same.
Can someone please tell me what I did wrong? @.@


text:
Protecting default settings of custom sculpting brushes
I've downloaded some custom sculpting brushes and saved them in my Sculpting startup file. If I'm working on a project and I reset the brush, it reverts to the factory default settings of whatever brush category it's based on. For example, if I reset an Orb brush that's stored in the Sculpt Draw category, I lose the texture, brush icon and custom settings that were saved with the original file, and it just becomes the default Sculpt Draw brush. If I'm lucky, I can undo it, but I end up losing some recent work. And as far as I can tell, the only way to get the brush back is by appending it from the original file (or starting a new project and appending the collection). Is there any way to prevent this from happening? Or do I just need to make sure no to reset any brushes?


text:
Blender cloth animation isn't working properly?
I am using Blender 2.8 and I have been trying to make a realistic-looking fabric on my bowl. But it is starting animation early and becoming something like in the photo. I have tried it on a cube to look if the problem is on collision or cloth physics, but I think the problem is cloth physics. I have tried to making origin at the center or bottom or top, but nothing changed. Please help me.

That looks similar to the problem described here : https://blender.stackexchange.com/a/186520/29586. Ensure to Apply Scale and check your self-collision to ensure the range isn’t set too high.

this helped me thank you a lot

Make sure you hit the self collision check box in the cloth modifier setting as and keep the quality steps high to get a good cloth simulation(The more the quality step the better the quality and slower rendering).

I hope this helps.

I checked self-collision, but it is still the same.


text:
Roughness in cycles render. Need help with nodes
I am new in a blender, So I have a problem. I created photo scanned texture with normal and bump map (8K res)in photoshop.
When I applied it on the object, all looks good in material preview mode, but when I render it in cycles render my roughness missing. I know that I do mistake in nodes, but I can not find it. I search for it on google, Also read and watch about procedural PBR on youtube and google. But can't find my mistake.

Material Preview:

Rendered:

is it possible to check your blend file? https://blend-exchange.giantcowfilms.com/

Hello :). Your Cycles Render preview shows similar result to Eevee. Are you sure you have an HDRI for render, and not just for viewport?

@Sanbaldo This is link G-Drive, file size larger than blend-exchanges allows:
https://drive.google.com/file/d/1epyY7EJYxJHY1HXc_atmZprgKf8gcnGp/view?usp=sharing
Thank you!

@JachymMichal  I understood but, what about roughness of object why i can not edit or change it ?  Changes not affect on render.
Thanks to everyone for help.

@AyazKerimov, can you open this file (it's your file simplified a little bit) --> https://blend-exchange.giantcowfilms.com/b/672jM0Rs, insert again your bump.tif file and be sure to check "File > External data > Automatically pack into .blend file"? I think that that the problem is that file (using a noise node, the bumps are there). Also check your rendering engine (in your file you selected eevee, while the question you posted is about cycle, so switch to cycle to be sure to have a common ground to help you)

@AyazKerimov, in my recent experience, 2 things can make you tear your hair out regarding what you expect from Roughness:

You didn't use an HDRI Environment Texture in your node editor (use the dropdown for World; by default is for Object).
The other is that your Bump and/or Normal maps might be blowing-out the reflectivity you expect from your material. This happened to me last night. You can try decreasing the intensity of those maps.

First of all problem with the roughness raised because of the missing glossy map. To tell the truth, I don't have it :)
So if you created your maps as me in photoshop and applied it as texture (Normal; Diffuse and the main one)  always save it as tiff format (don't forget about compression when you save it). Other formats like png make less quality. Also, use RAW photos as donors of maps.
Second: if applied your hi-res texture on your object(without a glossy map) and after rendering you're found that the object looks dry ( For instance you rendered you brownie cake or donut) don't worry! You can solve this problem with MIXShader. After changes of your Principled BSDF Shade create the second one, Glossy Shader. Turn off the first one and adjust glossy shader. Then add Mixshader. Connect Glossy and Principled Shader to Mixshader and magic will happen.
In my case, I adjust bump and normal maps they blowing out my object reflectivity. It helps a lot but not as I want because of a problem with the texture source material.
Second I didn't use HDRI, therefore I add it.
Thanks to everyone who helped me!!


text:
How to split material for separate meshes
I have a piece of terrain from NZ made with BlenderGIS and I've split the terrain mesh into a few parts and I want to split the terrain material into sections which fits the individual meshes.
TLDR: I want an individual material for each individual mesh that I can save as a .png
if you need a bit more of an explanation of what I need then ask because I don't think I worded this very clearly lol

You can have a single material and multiple UV maps, one for every mesh covering different parts of the image of the material. (Personally i think that is an efficient way to do things, but i don;t know the reason for your question) Or you could cut the image apart in a similar fashion as you did the mesh by cropping the source image to match each mesh, with image manipulation software (like GIMP). I'm not sure you can (easily) do that with Blender.

basically the reason why I'm trying to do this is because I'm trying to import this terrain mesh into Roblox, however the max triangle size for meshes in Roblox is 10k so I'm splitting the meshes into separate meshes, but I still want to have the textures for the meshes in Roblox but you can't apply a single texture to all these meshes and have it work, it'll look like the entire texture placed on a single mesh part.

You can apply different materials to different Objects (meshes) AND different faces within the same mesh. A material is not a texture; A material (oof, don't quote me) is shader that has inputs driving its properties, some of which can be image textures.
You need to be more specific about 'saving materials as PNG's' because that isn't a thing (for the reason I stated above). However, you can unwrap the mesh's UV coordinates and export the texture projected on those unwrapped faces from the UV window.
I would recommend you Mark the border edges of each mesh as Seams, Join them all into one mesh, Unwrap the whole thing at once, and separate the meshes again (select the faces in edit mode and hit the "P" key to put the selection in a new mesh Object).

I asked the same question in the Blender Community Discord which I think I worded a bit better so I will just copy and paste it here since no one has replied yet.
I have a terrain mesh I have split into several parts, but they all use the same material. This is a problem as I'm importing these individual meshes into Roblox which requires that each mesh has it's own individual material/texture. But all the meshes in Blender are under 1 material image, is there a way I can split up the material image into ones for each splitted mesh?

I think it would be possible to cut the image into to the separate images you want using Blender (weird ways like put a Transform effect strip on the texture in the Video Sequencer, or use an orthographic camera to render part of the image, and possibly via script.) But I think the best way is to get pixel info and use that in other software.
In the UV Editor you can find the pixel coordinates of vertices in your UV-map.
Check the box next to Pixel Coordinates, found in the View tab of the right hand N-panel in the UV Editor window. Then snap the Cursor to a selected vertex using Shift + S.
In this image there is a .png image of 93x93 pixels loaded in the UV Editor. The Cursor Location displayed in the N-panel puts it at pixel x62, y62.

You could use this information to easily calculate the size and location of the rectangular parts of the image displayed on your meshes.
Then you could crop a copy of the source image to size with appropriate image manipulation software. (for instance by using Set Image Canvas Size in GIMP)


text:
Rotate an object on itself
I need the cylinder to rotate on itself, as in the first image, but as soon as I change its position, the rotation goes strange, see the second picture, so I guess I am doing something wrong. I tried to change the pivot point by adding an empty and so on, but I got the same result.
Thanks in advance for the help, this forum is a blessing!

https://blender.stackexchange.com/questions/129834/how-do-i-rotate-an-object-along-its-own-axis-windmill

Thanks, I tried that one but it did work, I don't if I am doing something wrong.

Possibly you’ve rotated it in Edit mode rather than Object mode. In Edit mode you’re affecting the geometry while leaving the objects actual axes of rotation unaffected. If you rotate it in Object mode then then axes will also be rotated and so when you then rotate it around its length then it won’t wobble.

Select your object in object mode press 'Ctrl + A' and apply rotation and scale, turn on the auto keyframing option(the white dot on the timeline with a grey background), select your object in object mode, press 'R' and left-click without rotating your cylinder so that a keyframe could be set in the timeline, then go to whatever frame you would want your animation to end and then rotate your cylinder on the 'X' axis by pressing 'S and X' together.


text:
Squeeze text effect
Any idea on how it has been done? I've tried with soft body but the result isn't greaT, and if I modify the objects with cloth simulation and I give them some pressure adding collision to the box that contains them, nothing good happens. Thanks a lot for the help!

cloth + pressure is the solution. What did you try about that? can you show us your tests?

Hey I'll show you it when I get home! The result was really poor because the objects weren't really squeezed into the box, as if collision didn't work properly. Thanks a lot! Ciao!

No inflated letter-shaped letters would deform to this extent in real life. I think you would have to give them a helping hand. My guess is: model them to be distorted and almost space-filling, and let a cloth simulation finish the illusion.

Hey Robin, I'm sure the artist finished the work sculpting some parts, but I don't know what was the first step.

Cloth sculpt tool might get you there. And then refine with the simulation like @Robin Betts says.

Sculpted extruded text is another option.

Update: I tried cloth simulation with lots of pressure and 0 gravity and then lattice modifier: not bad at all.


text:
Cell fracture doesn't work properly with solidify modifier
I am pretty sure the issue is the solidify modifier I applied on the object before fracture it, but I don't understand why Cell Fracture breaks just some part of the mesh. It happens either with annotation pencil and own verts or child verts. Any idea how to fix it? Thanks!

It’s a bit difficult to tell what’s going on since we don’t know how the mesh looks on the inside. Is it hollow?

please provide your blend file


text:
Any chance to achieve soapy glass effect?
Well, I can't even image how to start doing it, ideas? Procedurally or not it doesn't really matter until I can modify it enough. Thanks!

For animation or still image ...

Still image, thanks!

That's a rather complex effect you're after, but let me tell you how I would go about it. The result looks like this:

First, I would define the components - in this case a "soapy streak" component, and a "clean wipe component".
For the "soapy" component, I used a Wave Texture with the Vectors normalized (so they point towards the center). Because you are looking for sweeping streaks, I went further and warped the (normalized) vector slightly with a Noise Texture. I added a MixRGB mixed heavily with white before connecting to the Vector Math node, to decrease the warp influence - the warp effect can be controlled by this mix factor.

To make the lines look more "soapy", I mixed the result with the darks from another Noise Texture:

To make the "wipe" effect, my first aim was to make a rectangular box (not pictured). I do this by using Wave textures scaled very small so they are only one band, picking one each from two perpendicular directions. To make the rectangle more sharp, I used ColorRamps set to Constant. I then mixed them, set to "lighten, so only the dark areas the two have on common appear in the final image (a rectangle). However, in this case, I added an offset Spherical Gradient Texture to the input vectors to warp (curve) the result so it becomes more of a curve. This is why the straight rectangle is not pictured, and I just show the already warped one instead.

Next, I bring the two "effects" together in such a way that only the white "suds" shows (minus the "wiped" area):

Finally, I use this combo as a mix factor between a white BSDF and a Transparent BSDF. The ColorRamp is to give further control over the transparent influence (I made it pretty strong so it shows up in my screenshots).

I realize that this example is probably not as "precise" as you require - such precision would likely require a sizeable time investment into "tweaking" the final look. Because I don't even know if you'll find any of this helpful, I won't invest the extra time myself, but I feel there's enough here to get you on the right path and you can further tweak it to your liking, if needed. More can be done to the end of the shader to make the whole "pane" reflective (minus the soap if necessary) - I just didn't include it for the purpose of this example. If it's something you need, let me know and I'll add it to the answer.
If anyone's interested in playing around with it, but don't want to rebuild the graph from scratch, I'll include attach the .blend file to this post. I managed to include both the reflection (including a roughness map of sorts) , as well as a very slight Bump Map effect to the soap.
File is here -

WOW! This is amazing, thank you so much!

Awesome result!


text:
Scripting: Get object transformation for every render frame (depsgraph issue)
Whenever an animation is rendered, I want to extract the camera transformation matrix and save it to a file. My problem is that the transformation is not updated during render. This is a known issue and after some search I figured out that I have to use the depsgraph to retrieve the information. The problem is that neither render_pre nor render_post have the depsgraph argument.
So what is the correct way to retrieve object data in one of those application handlers? Am I supposed to register for depsgraph_update_post and store the information in a member until needed?

@batFINGER I tried both 2.8 and 2.9 alpha - frame_change_post has a depsgraph argument but this also gets called when manually using the timeline and not just during render.

@batFINGER As said above frame_change_post is called when manually using the timeline. That's why I want to use render_post.

Sorry about that Twas late, can see the diff between render and frame change now.


text:
Blender python - Get path animation value at custom (previous) frame
I need to get value Path animation ('eval_time') of my ['Track_02'] curve from previous frame to calculate acceleration. Therefore on the panel there would be values of 'current_frame' and the previous frame ('current_frame-1', if correct) that I can take into calculation. Basicaly display 'eval_time' values on the current frame (which is not a problem) and the previous one.
I'm not sure how the last line would go...
Thank you for your help, guys!
Code I used:
    def draw (self, context):
        layout = self.layout
        crv = bpy.data.curves['Track_02']

        row = layout.row()
        row.label(text = "Current frame")
        row.label(icon = 'TRIA_RIGHT')
        row.operator("object.simple_operator")
        row.prop(crv, 'eval_time')

        row = layout.row()
        row.label(text = "Previous frame")
        print(crv, 'eval_time', scene.frame_current-1)```

Will depend on what you are wishing to achieve... If the goal is to calculate acc and vel from animation  It is often "easiest" to bake velocity and acceleration curves. ie animate first, then run a bake script changing to each frame whilst calculating and keyframing v and a.

Hi, I want to use it for a car rig, I'd prefer the "previous frame option", but I would be glad also for the solution you are proposing, I'll give it a try. Feel free to contribute the code for baking. But I'm relatively new to python, so I hope I'll manage... ;)

Dated re blender version  but IMO still very much worth a read: Car rig tutorial from ROUBAL  Cut my teeth on that one many moons ago.

I have the rig already finished and working - the ROUBAL's rig is on my list, checked that just yesterday and it looks stunning. Nevertheless, I'd like to improve my rig with some realistic y-roll body movement, for which I need these values...

Please, guys, don't tell me it's impossible to get values from previous frames...


text:
I had just pressed ctrl z in sculpting mode and this happen.. can any one help me out

I had just pressed ctrl z in sculpting mode and this happen.. can anyone help me out.

try Ctrl + shift + Z to cancel the Ctrl Z

For some reason a bunch of face sets get created when you hit Ctrl +  Z every once in a while.
You can clear this by going to the top bar

Click Face Sets
Select Face Set From Visible

Note: I think if you have pre-existing face sets, they will be removed by this workflow, but if you're just sculpting with one face set it's a quick fix.


text:
Access toolbar buttons clipped in small window
When my Blender toolbar (or menu etc.) doesn't have enough screen space, the right hand side get's clipped so it starts losing buttons...

Is there a way to customise the toolbars so that all buttons are visible?
Typically in Windows this would be done via draggable/floating/wrapable toolbars, changing their orientation or an overflow dropdown button - but I haven't figured out how to enable any of these for Blender yet!
I've had a poke through the Python API, but can't see much support for customising the interface. Is this a possibility?
I've rearranged the workspace as best I can to maximise horizontal width of each area, but don't have enough vertical height to stack areas vertically, so as soon as I have 3+ areas I start losing buttons (eg: UV Editor, 3d view, outliner).
To compound the problem, I need minimum UI scale of %125 to see everything clearly (ideally more!).
Any suggestions welcome.

with middle mouse button you can drag these buttons, so you can access to all of them.

Well hold me down! Very useful thanks.

You can also hover the mouse over the buttons and use the mouse wheel.

Another "ahhh" moment for me! I checked the manual before raising the initial question... are these tips documented anywhere?

Whilst testing out your suggestions, I found a 1px place where you can resize the vertical toolbar on the left into 2 columns. Is this possible with the top toolbar?


text:
Object Follow Curve - Geometry Nodes - Blender 3.0.0
I can't find a way using Geometry Nodes to get an primitive to follow a curve. I feel like this probably should be possible and ideally simple. (I know how to do this using constraints outside of GN, but this is the kind of thing that GN should simplify)

You can do this with the Sample Curve node. This node inputs a curve and a position along the curve, then outputs the position and direction of the curve at that point.

You can then animate the Factor input to move the sphere along the curve. Geometry nodes doesn't yet have a node to give the current frame, but you can create a Value node and enter the text #frame in it to create a driver that will get the current frame.

How do you do this for a collection of curves? I haven't figured out yet how to set the position of one geometry on to a collection of curves. It works only for setting the position on one of the curves in the collection of curves. The sample curve node has a curve index input where you can pick which curve in the collection you want to place the geometry. Should that input take some kind of number range of curve indexes? How? I haven't figured out how to make the sample curve node take in multiple curve indexes so that maybe the geometry is placed on multiple curves.


text:
Can't import referance images into Draw Mode in the 2D animation template
Hi getting my head around the program. I can't get my reference image out of Object mode into Draw Mode. I bring them in Via the Add button in Drawing mode and I've tried to bring them in in Drawing mode Via the import menu drop down in the File menu but I get reaction in the Collection viewer but see nothing on the screen in object mode Jpegs come in I can transform and edit but cant move to drawing mode to outline my sketches.

Did you try switching to the stroke layer?


text:
Blender SVG points not Filling properly
So when I import an SVG Image some of the points dont fill in I know its a blender issue because when I try it in inkscape it works fine.

Okay so I figured it out, I just turned up the resolution preview and it fixed it on this one, I had this happen on another svg and I turned the resolution down that fixed that one. Hope this helps anyone who may be also having this issue.


text:
Simulation nodes: Create an instance, scale it up, scale it down, and then dissapear
I am trying to create a simulation that, at a certain point in time, creates a point, attache an instance there, and then scale it from 0 to 1. And upon reaching scale 1, goes back to scale 0. And at this point, it disappears. I can make mesth to points, intance to point, then create the point inside the simulation node, and I can give an age to the point, so it dissapears. My main concern is the scale up and down. I think I can do this with the sine math node, with some fine tuning, but I would like to be able to do it with conditionals. That is, if the instance scale is greater than 1, instead of getting bigger, it gets smaller. I know this can be done (at least I think so) with the repeat zone, but I would like to know how to do it in the simulation nodes. Thank you so much.

i will help you with that if you provide a blend file how far you have come and that i don't waste my time building it from ground up. And remember: you want help for free from us in our spare time -> so you should make it as easy and fast as possible to help you. thx.

Does this answer your question? Time offset in Geometry Nodes?

This would not necessarily involve a simulation.. as described, that could just be, say,  a  mapped  Float Curve  on the time. Can you describe the desired effect, more precisely, rather than the method, so as to avoid possible XY ?

Hi! The desired effect is to create an effect where one instance is created, when it's created it scales from 0 to 1, and when it gets there, it scales back from 1 to 0. When the scale is 0, it's deleted. It can be achieved with math, using for example the sine, but what I wanted was to use booleans (if scale => 1, then scale it down back to 0).

I achieved this using the Swith node, that can work with float numbers, so it's as easy as using a math node (greater than) as a contraint. When the scale of the instance is 1, it scales by 0.9, so it just shrinks. I'm still working on improve the method, since I find it really useful and straight forward for animation within the geo and sim nodes. Just for begginers like myself, I recommend to check very well the options within the nodes, since my problem was that I thought that the swith node only work with geometry. Anyway, thank you for your time!


text:
how to bevel 3 unconnected edges?

Like this picture ↑ I tried to dissove error faces or edges,
I tried to bevel edges one by one，
but all failed.
What I want to achieve is:

This is a draft I made by Photoshop:

I want to know that if I need to made some actions before I bevel them? or what else operations can I do?
Please help me, Thanks!

Start with a plane.
Add a loop cut to divide the plane into the flat part and the part to be curved.

Now add a few more loop cuts to the smaller part.

Turn on Proportional Editing, go to the side view, move the first two vertices downward, and adjust them to make a curve as you wish to have.

Add a loop cut in the middle, delete the left side of the mesh, and add a mirror modifer.
Now go to front view and once again with proportional editing, move the bottom vertex and then adjust the shape to your liking.

Now simply extrude the side and bottom edges to the back.

Select all with A > M > By distance. (There will be one double vertex)
Select the vertices in the back, scale them to 0 on the Y-axis, and move them to whatever length you wish to.

Select the curvy edge loop and set its crease to one if you wish to put a subdivision later.

Results:

awesome! thanks for your help!

Create a flat cuboid with the desired dimensions of the finished object and duplicate it in place. Scale one a bit longer on X, the other a bit wider on Y (either in Edit Mode or if in Object Mode, apply the scale afterwards with Ctrl+A). I have not recreated the length ratios of your reference on my example, just used some random dimensions:

On the longer one go to Edit Mode, select the two bottom side edges and bevel them.

On the wider one go to Edit Mode, select the front top edge and bevel it.

Now back in Object Mode select both objects. The simplest way would be now to first go to the Preferences > Add-ons and make sure you enable the Bool Tool add-on.

With the add-on enabled and both objects selected (no matter which is the active one), press Ctrl+Shift+Numpad × to apply an "Intersect" Boolean.

Probably the mesh needs a little clean up now, go into Edit Mode, select all with A and then press X > Limited Dissolve. If you maybe extend the meshes before the Boolean operation to get a cleaner overlap, this might not be necessary.

Here you can see the result. If you do not use  Ctrl+Shift+Numpad × for the Bool Tool, but only  Ctrl+Numpad ×, a Boolean modifier will be added to the active object and not applied immediately. This way you can tweak the objects afterwards if you want to change something.

This one did come to my mind, but is the topology good with this one? I did not try it for that reason.

@TheKalaakaar In my example the topology was good, it depends on how different you make the two bevels. The way I did it is more or less resulting in what you did, because the front bevel and the side bevels have the same amount of segments in both our methods. Of course if it is desired to make the bevels very different from each other, then we both have to adjust our methods... like with all Boolean methods, if you have a clean and "compatible" geometry, it works quite well - if not, well then you have to tweak or clean up a lot afterwards.

tanks you! I tried your method I think it's worked well !

The procedural method if you want to change something afterwards:

Like in my other answer, create two flat cuboids, one longer, the other wider. In Edit Mode, give the two bottom side edges of the longer one a bevel weight of 1. On the wider one, give the top front edge a bevel weight of 1.

Give both objects a Bevel modifier where you set the Limit Method to Weight. Adjust the Amount, Segments, Profile etc. to your liking.

Give one of the objects (no matter which) a Boolean modifier, set it to Intersect and choose the other cuboid as the target Object.

Thanks for your help! It's my first time to learn 'weight', thanks!

Cteate this shape (mirrored with a Mirror modifier):

Bevel the bottom edge:

Select the vertex at the top and bevel it:

Add these edges with the Knife tool:

Extrude the whole edge loop inwards:

Result:

thanks for your kind help!


text:
Why I can't output anything with cycles?
I can't out put anything with cycles?

this is my main layout ↑
and when I press the Render Animation button, I can see nothing, and no files were output:

I have even tried to output in two different computers but all failed.
I can't render with GPU and CPU, they both failed.
these are my settings, all my settings are the same as the video:

Please tell me if you need more information, and thanks for your kind help!

https://blender.stackexchange.com/questions/53632/render-result-is-completely-blank

In your screenshot of the render window it says "Synchronizing object", so it hasn't even really started rendering that frame, it is still in the preparations for rendering. Maybe you could show a screenshot where it is actually rendering the frame?

Are you sure you don't have a mis-spelled folder name in the output path ("1-VideoStoriage" instead of "1-VideoStorage")? Each frame will take almost 6 minutes to render according to the header so maybe you aren't waiting long enough?

Oh I found the real answer is that I didn't waited long enough, it takes 6 minutes to render 1 frame, this question is solved, but I'll going to find why it takes so long, I don't think RTX 3060Ti will cost so much time...

@JiuyeAyan You can answer your own question so I suggest you post that comment as an answer for others to see.

Oh I found the real answer is that I didn't waited long enough, it takes 6 minutes to render 1 frame, this question is solved.
Thanks for the help from John Eason, Gordon Brinkmann andd Duarte Farrajota Ramos.
I didn't notice that there were infromations on the render window.

and I also solved the problem of the long render time, thanks for the help from Blunder:

Thanks for the help from all of you!


text:
Baked Hair rendering is limp and differs from unbaked
I have a "Big Hair" Particles set-up that is having problems Baking properly.  If I render the frames without baking (ctl-F12), I get what I was hoping for.  But if I first Bake the Dynamics, I get totally limp hair starting from frame 1:

and it also goes through a Collision Object:

I cannot understand why these are so different, and I need to Bake the Hair if I'm going to submit an animation to a rendering farm.   Here is

How this should look like or animate? When I try to bake this my Blender almost freezes. Do you need 22 quality steps? Just wondering because I can't see much movement here.

@Blunder -- if I render without baking, it looks like the "bushy Afro" on the left.  22 steps is not unusually high from my experience, but anything that works is welcome!  My blender is not overly stressed on my platform.  Try "unbake All" and then ctl-F12


text:
How to capture particle simulation at a particular frame to be initial state (Particle Edit frame 1)
I am trying to do copy a Hair simulation at a particular frame to be it's frame 1 start point, almost like doing a Particle Edit but with the effects of gravity and Collision objects (example a hat on a head of hair):

I am aware of some solutions for Rigid Body, but cannot find a similar solution for Particles.   I realize I could use negative frame simulation start, but don't see why I need to use up the file size for all these throw-away frames.
Example:

I'm not sure if I understood your question correctly but AFAIK editing a particle simulation is bugged and does not work. In consequence, you cannot run a sim, stop at frame 50, edit it, and continue the simulation - nor cut the first 49 frames. The only workaround I know is to convert the hair at frame 50 to a mesh to "freeze/bake" it, then use the HairNet add-on to re-create the particle system. The re-created "baked" frame 50 can be edited and will be the start of the new sim. Have a look here: https://blender.stackexchange.com/q/191147/107598

@Blunder -- thanks I will investigate HairNet, as I want to use the hair simulation at frame 50 to be the initial hair positions at Frame 1.   Quite doable in 3dsMax.


text:
Resume cached fluid bake in python
I am finding this useful to clean up some fluid cache files and re-simulate from where I change the flow on a single source that I'm adjusting for Initial Velocity. The flow is set to be enabled on frame 800, so I see no need to re-do the simulation from frame 1.
If I use the GUI, I am able to continue (re-do) a fluid bake from where my cache files have left off, by deleting the cache files outside blender and setting the current frame to 800 and click on Play from that point.  I can see the new cache files start to appear within a minute using this technique.
I want to automate this (baking) in python, and I'm using the following:
bpy.context.scene.frame_current=799
for scene in bpy.data.scenes:
    for object in scene.objects:
        for modifier in object.modifiers:
            if modifier.type == 'FLUID':
                if modifier.fluid_type == 'DOMAIN':
                    print("Baking fluid for ", object.name)
                    object.select_set(True)
                    bpy.context.view_layer.objects.active = object
                    print("  Baking data for ", object.name)
                    bpy.ops.fluid.bake_data()
                    print("  Baking mesh for ", object.name)
                    bpy.ops.fluid.bake_mesh()
                    print("  Baking noise for ", object.name)
                    #bpy.ops.fluid.bake_noise()
                    print("  Baking particles for ", object.name)
                    bpy.ops.fluid.bake_particles()
                    bakedItemCount+=1
... etc

But it seems that my frame_current=799 is being ignored.  Blender is grinding away, apparently spending time stepping through the already simulated, cached frames (1-799), as it slowly does in the GUI if I set current_frame to 1 in the GUI and play from frame 1.
I'd like your input on how to speed blender to start at frame 799-ish.   I also tried the -s on the blender command line but alas this is probably only for rendering.


text:
How to turn reflection light into limited color? (cycles)
heyya, I'm having trouble in making this camera lens:
These glasses are under two same lamps, but turns out different colors

I tried a lot to control the color but it always look like a green lens:

What can I do?
I'm using cycles renderer and my blender version is 4.0.1
this is the blender file:
https://drive.google.com/file/d/1L90eF6ixLs15Iig2lWmRUol6GO2aONx1/view?usp=sharing

someone who can help me plz


text:
how to make reflection doesn't affect the environment? (cycles)
The environment light is white, however, the reflection on the glass is translucent blue.
and the glass it self is transparent.
I tried to change the environment into other colors, or change the glass color
But all failed, I can't make it like this:
How can I reach this?

I'm using cycles and my blender version is 4.0

is it possible to share your file or more info? This is truly hard to tell from 1 image

The solution of your problem is Thin Film.
At the bottom of Principled BSDF in 4.2 you find the option of Thin Film. The nanometers for visible light range from 380nm to 750nm going from purple at the lower end and red at the higher end respectively. In your case you would probably like to use some values between 450 to 550 nanometers (more blue on the lower end and more green on the higher end)
There is a great short video on YouTube: Thin Film Interference in Blender 4.2 by Christopher 3D explaining the effect and some of the physics behind it.
For a deeper understanding I recommend studying the basics of vision and light.
Similar topics:

Interference filters
Dichroic glass


text:
Why does the image texture not show up properly when assigning it to a cube node through geometry nodes?
I start with a cube and create a new material with an image texture. I then create a new geometry nodes modifier on the cube and assign the material through a "set material" node:

Everything works as expected.
But when I exchange the Group Input node with a cube node, the cube shows up in a single colour, likely the "average" colour of the texture:

Does anyone know how to fix this? Is this a bug?

The way I see it, you have two options:
Either you reference the UV map of the cube automatically generated in Geometry Nodes with the node Attribute in the shader (Blender 3.1):
(Blender 3.1+)
Or you transfer the automatically generated UV map in Geometry Nodes with Store Named Attribute into the geometry. With this solution you copy the UV map of the cube ("uv_map") into the existing default UV map of the object ("UVMap"):
(Blender 3.2)

Thanks for your help. It did work for me in this minimal example, but in my case it's a bit more complicated. Instead of creating a new cube in geo nodes I reference a plane that I created by hand in Layout mode (because I didn't find a way to create planes in geo nodes). I tried both of your solutions and they didn't work in that case. I'll post the .blend file, maybe there's something I'm missing.
https://blend-exchange.com/b/Yd9W1S12

@Balthasar1stern I don't understand your question here. Originally you talk about a GN created cube not having a UV map, and now you show an example where you change an existing object with an existing UV map? And I don't quite understand the structure of the scenery either: what do you actually want to do here? What is the goal? A cube created in GN has a UV map named "uv_map" and your existing objects have a UV map named "UVMap". And this setup here does what you describe: https://i.sstatic.net/gWPbO.jpg PS: And you can create a plane in GN with Grid

@Balthasar1stern Can you please show this again in more detail using your specific example? I really don't know my way around right now and would love to help you. Thank you!

The original question came up while trying to simplify my problem to a minimum. But as it seems I simplified too much. I'll try to explain my specific example: I want to create a scalable 3D "cardboard" in GN, therefore I need the wavy middle layer (currently muted) and the two outer layers. I downloaded a cardboard texture for the outer layers, but when I instanced them in GN the texture was displayed as a single color, even though the original (currently hidden) object displayed the texture.
I may have found a solution though. I'll report back in a few minutes.

i.stack.imgur.com/gWPbO.jpg
This solved my problem. I still don't understand why the UV information is lost when instancing an object though.

I managed to do it with grids now and completely got rid of my "front layer" and "back layer" objects. To get the texture to show on the GN generated "planes" I used your first solution with the added attribute "uv_map".
https://blend-exchange.com/b/JW5zZkmB

@Balthasar1stern In your previous example, it didn't work because you overwrote an existing UV map ("UVMap") with another one ("uv_map"). Nevertheless, I am glad that I could help you further. If the answer fits your question and solves it, please be so kind and mark it as "Accepted Answer" so that the question appears as solved. Thank you!

I don't think that the Cube node has UVs. If so the color corresponds to the pixel at coordinates 0,0 on your image.
You can generate UVs directly in geo nodes though. DefaultCube shows how to do it in this video

Yes, of course the Cube in 3.2.2 has a UV map called "uv_map".

Oh my bad then, thx !