text:
Blender for scientific visualization - Point color interpolation from vertex color data based on distance
TL;DR: For a given point in a face/polygon how can I compute the distance between that point and all the vertices on the given face with shader nodes?
Overall intent:
I want to visualize complex physical data on complex geometries. For this, I want to color each pixel based on a scalar value data from each vertex. Each vertex will be assigned a value from 0 to 1 based on a physical quantity (temperature, velocity, ...) and then mapped to an RGB value based on some colormap (viridis, parula, ...) for scientific visualization.
Current approach:
I can currently assign any scalar value I want to a vertex through vertex colors within face loops using a python script (using the approach from the following threads: 1, 2, 3, 4, 5). I am using the colors as containers of 4 scalar values; each of of the 4 scalar values can then be separated and assigned specific meaning (Red can be the actual physical scalar value, Green can be the roughness, and so on.); the mapping between scalar and color is done through a color ramp which I modify to be some perceptually uniform colormap.

Problem I am trying to avoid:
Because of the way blender interpolates the colors of the underlying triangles of the geometry, the colors distribution within a single face/polygon is not uniform (i.e. it does not reflect the actual distribution of the scalar field within the face) - something I learned from a previous question.

Envisioned solution:
Coloring each individual pixel/point based on its coordinates and distance to the vertices of that specific face. I want to interpolate the scalar value extracted from the vertex color based on that distance and map the resulting scalar into a color. A simple test I did to showcase this was to assume one of the vertices of the cube ((x,y,z)generated = (0,0,1)) has a scalar value of 1 and all other vertices have a scalar value of 0. I computed the distance to the vertex of interest and used that as the new input to the color ramp nodes.

This yields exactly what I am looking for in terms of a color distribution that represents the scalar field.

Current problem / question:
This solution works well enough for this simple situation where the distance to a single vertex is needed - I am assuming all other vertices have a scalar of 0 thus they can be ignored in the interpolation. However, the goal is to visualize complex geometries and data which means that I would need to compute the distance to all adjacent vertices in order to correctly interpolate the scalar value. So my questions essentially boil down to the TL;DR on top and also:

Is what I am looking for feasible with this approach? Is some other approach preferable?
In more practical terms, can I act on a face-by-face basis through the shader nodes and access the vertex data of the nodes on that face for a given pixel/point?

I am happy with answers and suggestions that steer to completely different approaches than I what I am currently trying to do, I briefly mentioned my overall intent for this very reason.
Full node setup to replicate this on the default cube:

I don't think shaders are a good approach for this precisely because of the complexity reason you mention. I would suggest investigating geometry nodes, but I hesitate because they're being significantly rewritten for 3.0, so unless you can wait until January, or possibly later, they might not be usable.  Have you considered generating meshes that match the fields you're trying to visualize?

Thanks for the suggestion to use geometry nodes, I am aware of them and will be looking into it. This is not a time sensitive project so if geometry nodes is the way to go I would definitely wait.
I am not sure I fully understood what you mean by generating meshes that match the fields I am trying to visualize, could you expand on that a bit?
The immediate use I have for something like this is to import simulation results that have a 3D mesh and some field data.

I'm not sure I can, because I'm not sure what you're trying to visualize, but consider how elevation data is converted into topographic maps by algorithms like marching cubes.  If you were, for instance, simulating fluid and wanted to visualize density gradients, creating a series of surfaces of equal density would be much easier to color that trying to extrapolate from a flow mesh.  Might not be at all relevant to what you want to visualize, though.

I get what you mean, that is definitely an option for some aspects of the data. Thank you

In general, you cannot access data from some other sample than the one you're evaluating.  Not in Blender.  (This is someplace where I wish we had partial derivatives to work with in shaders....)  So you can see the vertex color or location of a sample, but not of two samples, not of some sample and some particular vertex, etc.
One reason vertex color doesn't interpolate the way you want is because shaders are run after meshes have been implicitly triangulated by Blender.  What that means is that even if you could get the distance from a sample to a vertex, you'd be getting the distance to three vertices, not four.
Measuring distance from vertex is possible with geometry/parametric coordinates, if you were working with triangles, but even then, the problem is that the shader doesn't hand you these locations in understandable terms-- it doesn't know which vertices are associated with which vertex color.
The simplest thing to do here is to simply add more geometry.  As you increase the vertex count, interpolation of vertex data like color improves:

That seems like a simple enough solution to the problem you're describing (at least, with the geometry that you're using to describe it.)  Just throw on a subdivision modifier, bam, done.
If you don't mind changing the geometry destructively, using a poke faces operation on all faces will achieve the same thing, with less performance overhead.
Another option, which isn't as simple but can solve more problems, is to encode data as UV coordinates:

I should be dividing by sqrt(2), not sqrt(2)/2, but I already closed the file, and scalars are kind of incidental anyways.
Here, I've unwrapped the cube with a simple unwrap/reset operation to make every quad face a square that occupies the entire 0,1 UV space.  Then, I can simply check the distance of my sample to the four corners of that space to see how far along the sample is along the face-- and since I can orient the faces' corners however I want in the UV map, I can even specify which vertex's distance I'm interested in measuring.

Thanks for the answer! This is great!! I like the first solution for the simplicity I have to test the overhead in the bigger models. But I think I prefer the second solution just for the fact that it should allow the coloring to be accurate. I understand that the data would have to be encoded in 0,1 2D space for each face, which seems fairly easy to accomplish, and you already outlined a quick interpolation procedure, the only concern I have is how to access the right face's data on this solution? I would need some index or face identifier to access the correct data, or am I mistaken?

@RuiCosta I don't know the details of your problem, so the second is really just a general answer of, "get distance to corner".  You can edit the UV map for each face to specify which corner.  In general, if you need to get data into a shader, you do it via a texture (which does not have to be image data, it can be any kind of data), at which point these techniques would no longer be very relevant.


text:
How would you uniformly instance meshes along polycurve?
I am pretty new to geometry nodes and I have no idea how to do this. I have a simple poly curve and I need to instance objects along this curve.
This is what i need:

Could anyone help me please? Thanks.

just use a resample curve node with type length

I can't find a concrete example at the moment, but this question has already been asked (and answered) here in countless variations. Please use the search to find the post that helps you: https://blender.stackexchange.com/search?q=%5Bgeometry-nodes%5D+align+instances+curve

In this case, all you would actually have to do is divide the curve at its points, resample the individual segments, and instantiate your objects at those points.
It might look like this:

Here I split the curve using a series of nodes (Extrude Mesh > Split Edges > Separate Geometry > Mesh to Curve), because if you just apply Split Edges to a mesh and then convert it back to a curve, you end up with a single spline again.
After that I resample the separated segments, capture the endpoints with Capture Attribute and convert the curves directly into points, so that I get the required rotation for an instantiation of the objects at the intermediate points of the segments.
(Blender 3.6+)

source: Stack Exchange

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

sort: votes


text:
Finding image coordinates of rendered vertex after refraction, distortion, etc
I'm in blender 2.92 working with the Python API. I know how to get the pixel coordinates of a vertex before refraction, lens distortion, etc.--see e.g. How to find image coordinates of the rendered vertex?. But this doesn't account for refraction or lens distortion, so e.g. if the object is behind glass, the pixel coordinates are wrong, and I can't find a way to correct it. For example, here I implement the usual matrix world conversion to get the bbox of a sphere inside a glass of water:

And here I do it with the IOR of glass and water set to 1:

The pixel coordinates are only correct when there is no refraction or distortion.
In the forum answer https://blenderartists.org/t/get-pixel-coordinates-from-the-rendered-image/1163622/5, tricotou suggests

A solution could be to do a first render with a refractive index which equals 1.0 (no displacement of the rays) where the 2D position can be computed. Then do the “normal” render with refraction. And then use an Optical Flow algorithm to track the pixel movement between two renders, and get back the final 2D position.

but this seems pretty complicated. I'm wondering if someone has already implemented something like this or has another simpler solution. Thanks!

Let's say instead of having a checkerboard background, you have a black background. Now, having only your vertex bounce light (and produce red color in the output) you could render an image, which would contain an information in each pixel on how much this vertex influences that pixel. If you're interested in a single area, you could apply some algorithm that uses some threshold (because perhaps there's no completely black pixels in the result) to divide the image to islands, and then sums up the values of pixels in those areas to pick the area that is the brightest/biggest.

Solving this problem is complicated-- solving this problem is what raytracing does, in a very fundamental sense, and you know that raytracing is a slow, iterative process from watching your Cycles renders tick down.  The position of your red sphere depends not just on IOR, but on the distances between meshes, distances along at least two different vectors; distances that are different at different parts of the sphere.  Your best bet to find the bounding box of the sphere is with image analysis techniques after raytracing.

I've considered rendering plain versions of the scene with a small object at a grid of locations and applying some image thresholding method to locate the object (then interpolating to get a new world --> pixel map), and that's the only viable method I've come up with. I do wonder if it would be possible, through a combination of ray_cast and vector math, to reconstruct at least an approximate version of the rendered pixels. See e.g. this forum.

A guess: https://docs.opencv.org/4.5.2/dc/dc3/tutorial_py_matcher.html between undistorted a distorted images.

@lemon and adding intermediary steps with intermediary IOR values could perhaps allow a greater success rate of this solution.

Not the general case, but you can set the object to emissive, turn off all other lights (other objects and world background to 0), then the image will be black except where the object emits. Now finding the bbox is just about finding the object colored pixels positions.

a vertex has single camera position if viewed directly, but can indirectly contribute to zero, all, or any pixels, so no, can't be done in general case.

example: there are only two spheres in this scene

+1, but notice how clearly you could draw two rectangles, https://i.imgur.com/9sqTpuo.png so in principle you can generate some information. If you also calculated some kind of weight, as in how much the red sphere contributes to the color of pixels/region, you could perhaps take the highest weight, which in many cases (like the one in the question) would be the intended result.

yeah, for some images, you can get something useful, but here glass has roughness 0, and also floor is lit by spheres

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


text:
Is it possible to change the speed of an animation for a single rig separately from other rigs in the scene?
I am fairly new to blender and animation in general so forgive me if I am missing something. I have a scene in which I would like to slow down the animation of a single rig without affecting other animations in the scene. Is there any simple solution to this problem?

You can use the timeline, for simple animations, or the Dope Sheet or Curve editor for more complex animations to scale the animation of a particular rig.
Slowing down an animation is the same as moving each keyframe a certain distance down the time line.  To do this, in pose mode, select all of the bones that have keyframes you want to move.  Make sure that the current frame is set to 1 and then scale by typing sx where number is the scale factor.
If you want to slow the animation down, scale by a number larger than 1.  Scaling by 2 will move each keyframe twice as far from the origin as it was, and thus it will take twice as long to perform that animation, for example.


text:
How to import terrain models properly?
I'm complete beginner in blender...I'm trying to import mountain 3D model but the edges are cutting off...is there any way to bring those edges down?

Is it a model, I mean a real mesh that is displaced like this or are you using a height map for displacement? That would be interesting to know for answering this question. If it's a real mesh you can go with the answer by @moonboots

If I understand correctly what you want, you could select all the border, activate the Proportional Editing option, make sure that the influence sphere is large enough...

then SZ0 to flatten on Z (you'll still be able to adjust the proportional size in the Operator box):

It worked thanks for helping me!


text:
Quaternions (still) don't interp by slerp?
I've seen https://developer.blender.org/T45473 where it's pointed out that if you have two quaternion rotation keyframes in Blender, it doesn't interp between them properly using slerp -- instead it seems to linearly interp each of w, x, y, and z, and then renormalize at each frame. This leads to very odd behavior when the keyframes are far apart rotationally.
The above-referenced ticket doesn't seem to have gotten any traction since 2015; I wonder if this has been fixed in the meantime, so there may now be a way in the API to specify slerp for quaternion interpolation?
I'm importing animations from another system, and they don't come out right because of this.

Based on the comments by Stefan Werner, it seems it doesn't interpolate them properly at the moment.


text:
Is there a way to set depth of field to the _closest_ point on a focus object, or do it via nodes?
I'd like the in-focus plane to always be 1 meter closer to the camera than the center of the focus object, or equivalently the closest point on a 1-meter sphere at the center of the focus object. I think right now Blender always focuses on the origin of the focus object, not its closest point.
Is there any way to make that work? I can write some python code if that helps, but I want it to stay correct no matter where the camera and focus object move to.
I'm using Blender 2.90, Cycles.

You can add a single bone armature object, set it as child of your mesh. Bone lenght 1 meter. Then create an empty in the same location of the tail of the bone and parent it to the bone (Ctrl P - bone). Then set a damped track constraint to the bone, targeting the camera. Then set the empty as focus of the camera DOF.


text:
Output tonemapping to PNG produces gray even for superwhites
I have a scene that when rendered to EXR, produces a more-than-white background: 1.2, 1.2, 1.2 or thereabouts. When I save a render as PNG, that same pixel is (220, 220, 220) or 0.86, 0.86, 0.86. Why isn't it white?
I understand that saving to PNG applies the "Color Management" settings in the Scene (camera icon). Mine are set to:
  Display Device: sRGB (correct for PNGs, right?)
  View Transform: Filmic
  Look: None
  Exposure: 0
  Gamma: 1.0
  (no curves)

I would expect that a superwhite result would produce a white PNG pixel unless I have some setting seriously out of whack, right? Even if I apply a "high contrast" Look, I still get (228, 228, 228) in my PNG. If I do "View Transform: Raw", then I do get a saturated (255, 255, 255) but the doc says Raw is not intended for final output.
I'm using Blender 2.91alpha recent nightly.

White is not necessarily a scene referred value of 1 or 100 or 10 000. It all depends on the color transforms through which the image is processed to a display referred image, in which case yes, white is corresponds to 1 (and then expressed in a number of available bits, for example in an 8 bit image pure white would be 255, 255, 255).
When you save as EXR you are bypassing the color transforms set in the color management section.
EXRs are scene referred linear data, not intended for display, but for further processing, like compositing, that should be done with linear data.
The information in EXRs is not limited to a scale of 0 to 1, and can have very large values. Those values are probably beyond what any monitor can display, so in order to be displayed in some way that we can see and understand they go through color transforms set in the color management section
Next. When you set the display transform to sRGB and save as PNGs, then the values of the image are not linear anymore but are re-scaled and transformed, scaled and probably clipped, within the bounds of "display referred" imagery (0 to 1). A curve (sometimes called "gamma") is applied to the values, hence the difference in values that you report.
If you use the filmic transforms. White could be at a different value, 16.19 approximately.
To get a much better explanation on any of this (including the maligned term "superwihtes") please read:
Render with a wider dynamic range in cycles to produce photorealistic looking images
Also when you are using a "RAW" color transform you are not applying a curve to the output image. Any value larger than 1 will be clipped in any display referred format. RAW should only be used when you need your data to be undistorted by color transforms, as is the case of normal maps, height maps, etc, that are technically not images but data.

I really enjoy how you explain things. I was trying to understand these things for a while now, and with your answer it all finally clicked together :).

Thanks -- I understand color science pretty well, but this is a useful post for people. The key point in your post, for me, is that the Filmic transform assumes scene-linear 16.19 is the reference white point. Do you have a reference for that?
I want my final result video to be all white (just barely), so I need to know what values to create in the Cycles render. I assumed it would be 1.0 but clearly that's wrong, at least for Filmic. Is that transform (maybe 3d LUT?) documented anywhere?
It may be best for me to simply render EXRs and do all my tone mapping in post.

all the info here: https://github.com/sobotka/filmic-blender

Thanks @susu -- I wasn't sure that "Filmic Blender" was the same as Filmic built into recent Blender, especially since the page you refer to only mentions the "Filmic Log" transform and its looks, and not "Filmic". But the chart in the false-color section is really useful. It gives a sense of the overall curve shape, at least for grayscale values. Also it seems that the PNGs that Blender produces with Filmic do have the sRGB ICC tag which is good.


text:
Denoising options in latest 2.91 nightly builds
I've been using the Denoise node in the compositor, hooked up to Denoising Normal/Albedo, with those render denoising passes turned on. Works fine. I believe that's the OpenImage denoise algorithm.
In latest 2.91 nightlies, I see in the Scene settings under Denoising, a Render option with choices NLM and OpenImageDenoise.
How are these related? Are they the same? If I keep my denoise node in the compositor and turn on the Scene-settings denoise do I get two denoise passes? If I choose NLM in the settings, what happens to the denoise node in the compositor? Should I just remove the compositor nodes?
I see in this commit the new text explaining that the denoise passes are adapted to the selected denoiser, but that doesn't say anything about what you need in the compositor.
And finally, is OpenImageDenoise or NLM better?

The short answer is that if you enable the Denoising in the render options you do not need to use the compositor Denoise node. And OpenImageDenoise is better.
The longer answer is that OpenImageDenoise is the same as the compositor node but it works while rendering rather then after the the render which can speed things up a lot. NLM is a denoiser that doesn't use ai unlike the others so it isn't as good.
This is a version of a project i started that has subsurface scattering so it is harder to render
This is with only 5 samples and no denoising

This is all the same and still with 5 samples but with NLM denoiser which is the one that doesn't use ai

And this is identical but with the OpenImageDenoiser made by Intel that uses ai but can sometimes be slightly slower than Optix ai denoiser by Nvidia that is only for compatible Nvidia graphics cards and slightly less impressive
As you see the OpenImageDenoise is better
For curiosity's sake this is the faster but only for Nvidea cards Optix real-time denoiser that is somewhere in between NLM and Intel OpenImageDenoise


text:
Extrude along normals not following slope
Can anyone advise me what I'm doing wrong here?
Following a tutorial where the ground layer has an incline of about 5 degrees. The layer above it is a face extruded in Z, duplicated from the ground and with a bevel on the corner vertex to create a curve.
I've duplicated the outer faces of this curve, separated by selection into a new object. What I'm trying to do is to extrude these faces along normals to create a outer pavement layer. In the tutorial I'm following these extruded faces follow the incline of the ground layer's slope. When I try to recreate this, they're following the global x and y axes.
I have already tried to change the rotation of the object, where transform affects only origins, but the results are the same. That said, I am a little bit unfamiliar with adjusting origin rotations.

Thank you in advance for any and all help!

@Markus, thank you. Your explanation made a lot of sense, and worked for me. I knew there was some logical step I was missing.

If a normal isn't parallel to the slope, then extruding along the normal won't follow the slope. It seems your problem is that when you extruded part of the slope up, you limited the extrusion to Z axis, rather than extruding along the normal of the slope.
$\bbox[#FFDDDD, 7px]{\color{#880000}{\text{Bad:}}}$

$\bbox[#DDFFDD, 7px]{\color{#006600}{\text{Good:}}}$

BTW, you probably want to use ⎇ AltE, M (Extrude Manifold) in this case...
$\bbox[#FFFFBB, 7px]{\color{#444400}{\text{Recovering:}}}$
You can still recover from the situation you're in, by setting the slope to a custom orientation and extruding along X or Y axis of that orientation:


text:
Perfect Loop with Material Nodes using Noise Texture moving in one direction
I followed this tutorial: https://www.youtube.com/watch?v=Jvbphr8EUYQ
to create a fire material which basicly "runs" down a noise texture to create a fire effect.
so far so good, but I would like to create a perfect loop.
with a little bit of googleing, I found out how to Loop a noise texture but my problem is
now I lost the fire effect and just got this stationary wobble effect.
now to my question.
whats the best way to perfeclty loop an animation like this?
I can't wrap my head around the problem.
Can I mirror the noise texture somehow 4 times to after x time get back to "0" ?
whats the best way to approach this?
Thanks a lot for your answers!

The principle behind this method is described here, and even here, but the group to implement it wasn't conveniently packaged for re-use, so I think this repetition is excusable. It works if an animation can be mixed over itself without loss of desired characteristics.
It relies on cross-fading an animation with a copy of itself, cut in the middle. The right trim of the copy is moved to the left, and vice-versa, so its matching cut is over the ends of the loop. The cross-fade conceals the jump in the middle. This group will do it:

The red nodes are the shifted A-roll, the green node the un-shifted B roll. The blue nodes do the cross-fade.
It can be used like this, with the driver for both rolls being the frame-count:

Simply duplicating is the quickest way, but the A and B roll don't have to be identical, although they look better with the same speed in the direction of animation. In this example, for convenient tweaking, the fields of the 'B' noise are driven by the fields of the 'A' noise, to keep them matched.

This demo .blend includes the group:

I knew you would… :) The cross-fade technique is kind of cheap for your skill level though and I thought you would use a 4D torus technique - or that doesn't work, because in the end of the day, if you move in circles to return where you started, it doesn't matter how many dimensions you move in, there always will be a side-motion visible? We could simplify the problem to separate flames, and ensure if one doesn't disappear till the end of animation, it continues from the beginning. That would require calculating the lifetime of the flame based on the noise which definitely isn't trivial…

@MarkusvonBroady  Hehe :D I did consider it.. Your objection, (and laziness) is why I didn't go for it. A circle is a circle, however many dimensions it's in, and I think you would see a reversal in direction. But I haven't checked , so now you've blown away my afternoon... >8-/

nerd sniped

@MarkusvonBroady EXACTLY! 8D !

@RobinBetts Thanks a lot for your explanation and demo-file, I will tonight try to understand each node and learn a lot from it!

@user1258938 call back if you get stuck :)

@RobinBetts
good day Robin, the last couple days I played around a lot with your great solution.
I dont completly understand your math-magic yet, but I had great fun experimenting with it!
to my new questions:
When I use the noise-loop in a slower scene (for example for volumetric clouds)
I do see in the middle of the animation a hard switch to the other noise texture b, Is there a workaround to loop it that they meet at the end of the loop and without a noticable break?
my other short question would be, how did you connect the two noisetexutre values together?

Hi @user1258938 !  if you've set the period correctly, there are no cuts inside the  un-looped material, and there is a way to mix the driven feature of the animation over itself, you should be fine. Send a minimal example of the fail via https://blend-exchange.com/, if you like.

@RobinBetts here's my blender-file
My problem is, I cant get rid of the "bounce" effect in the middle of the animation.
Maybe you have an Idea how to improve the material to have a better flow for the animation.
Thanks a lot!


text:
How Can I get a realistic Industrial Plastic Material - Bump With Shiny Graining
My Goal is to achieve this texture:
With a noise texture -> Bump -> normal I already get the rough plastic feel.
My Question is, how to get the Bumps to reflect?

Thanks for your time!

Invert the bump mask and use it for roughness

Sure would be nice to see what you already have. There are many tutorials on how to make procedural plastic materials. This could be made with a noise texture plugged into a bump map into a color ramp and tweaking some specular values. You could even plug the noise into the specular socket.

Is the picture you show your own texture or is it a reference image?

the picture in my question is my reference image.
currently im noodeling around with those nodes, but that final bit of reflecting is still missing, kinda stuck
maybe you guys have an idea. highy appreciate your help.
https://imgur.com/a/Zlm1kkz

As you say you can use a Noise as Bump, also use the eyedropper to catch the blue color, reduce the Roughness and increase the Specular values of the Principled BSDF. After that, of course, you need some lights and environment to reflect:

thank you this helped a lot! Ill play around with those settings


text:
I accidentally made my model transparent. How do I fix this?
I'm new to blender and when I was modeling a shotgun, it turned transparent and command Z did nothing. I don't know what button I pressed or what I accidentally clicked but I'm not sure what to do. What should I do to fix this?

to add to the answers, press shortcut Alt Z to switch to opaque mode

It seems that you toggled the "X-Ray" visibility.
You can toggle it using this icon in the header bar of the 3D viewport.

More info :
your model is not technically transparent. It is only a functionality of the 3D viewport to help modelers see through they're meshes without having only the wireframe.

You've enabled X-Ray mode. Just click on the button (see image) in the Viewport Shading menu to disable it.


text:
Displaying 3d space
Is it possible to display my work 3d space which was made in blender to a website where anyone can walkthrough my space with a link on any devices.
Thanks

You can try blend4web.
You will probably have to code things by yourself since web and 3D are two different domains.
https://www.blend4web.com/en/
On example on how to use it
https://www.youtube.com/watch?v=Dtmzyv-sTvs


text:
How to Append a world with HDRi and nodes from another blendfile?
I can Append things from another blendfile if they're in Collections or various other groupings, but when I do Append -> blendfile -> World and select the World object, I get nothing appended. Is there any way to append a world? I specifically need the HDRi texture and the nodes around it.
Similarly I'd like to Append some nodes from a blendfile into the Compositor. Is that possible?

That should be the way. Are you sure there is the World shader you need in the file?

Pretty sure -- here's a pic of the source blendfile open in blender: https://pasteboard.co/JgVwHLJ.png

It probably got appended alright just not in use. If you want to use it you have to manually set it up afterwards

Hi @DuarteFarrajotaRamos; thanks, you're right -- @Nxdhin2005 's answer helped me figure out how to set it up.

Happy that you found it helpfull

To append an HDRi texture from another blend file along with the nodes :

append the world
select the world settings from the properties panel
Click on the browse world settings to be linked
In that you will see the appended world with the name World.001 if it's not named and will appear with the name if it's named in the appended .blend file

The world will be appended along with the node setup

Thanks! That's exactly it. (Now I just have to figure out how to do that from Python, but I'm sure I can get that.)


text:
How to enable Intel denoiser using python?
I'm creating a scene from scratch in blender (2.83+) using python, and I'd like to turn on Intel denoiser for the Cycles render output.
I've got some code but it's not working yet:
  bpy.context.view_layer.cycles.denoising_store_passes = True
  bpy.context.scene.use_nodes = True

  tree = bpy.context.scene.node_tree # inputs, outputs, nodes, links
  comp = tree.nodes[0]               # result goes into here
  render = tree.nodes[1]             # render layers: images come from here
  denoise_node = tree.nodes.new(type='CompositorNodeDenoise')
  # Link it in:
  links = tree.links
  # links.new(output ---> input)
  link = links.new(denoise_node.outputs[0], comp.inputs[0])
  # XXX: find outputs by name
  # XXX: use "Noisy Image" output (31) rather than "Image" (0)?
  link = links.new(render.outputs[0], denoise_node.inputs[0]) # Image
  link = links.new(render.outputs[32], denoise_node.inputs[1]) # Denoising Normal
  link = links.new(render.outputs[33], denoise_node.inputs[2]) # Denoising Albedo

The problem is that even though I've enabled bpy.context.view_layer.cycles.denoising_store_passes = True it doesn't seem to have taken effect by the time the rest of my code runs; the render node still only has 31 outputs. It should have 39.
Anyone know how I can wait for that setting to take effect before continuing?

I tried adding bpy.context.view_layer.update() but that doesn't help.

And I tried render.update() -- also no effect.

I don't think the problem is with the setting not taking effect.  I think the node is there, you just need to reference it by name instead of index since the numbers you are using aren't working.
This should fix it:
link = links.new(render.outputs['Denoising Normal'], denoise_node.inputs[1]) # Denoising Normal
link = links.new(render.outputs['Denoising Albedo'], denoise_node.inputs[2]) # Denoising Albedo

There is a plugin on GitHub that does this: blender_instant_denoise. That's where I found the answer.


text:
Yet Another black-image texture baking problem
I'm using Blender 2.9alpha, Cycles. I have a 2d plane with UVs. I created a nice procedural marble texture, feeding Base Color in Principled BSDF. Looks great. Then I try to bake it to an image texture, but I get all black. I created the texture image, added the image-texture node to the material's node window (unconnected but selected), selected Combined (tried others too), and the render takes a while, no errors, but all black. If I bake out UV I get a nice UV color wash, that's good. But to bake the actual texture, nothing works. Diffuse should work if I just want the procedural texture that I've applied to the Base Color, right? (I'd paste a pic of my shader nodes but imgur seems to be down.)
blendfile:

The normals of the plane object are facing the wrong way (downwards). To correct this: in Edit mode select the plane then open the Mesh menu > Normals > Flip .
Note: because your image to bake to (dark marble texture) was not packed into the .blend file I had to create a new one that is called new_bake in the screenshot below.

Thank you! I have no idea how it got that way.


text:
Axis guide line problem
When translating in edit mode, axis guidelines appear, blocking the view of thin objects and the 3d-cursor hides. Someway to hide the axis guidelines? I mean the blue line in the middle of the screen.

In user views, you can control the visibility of the axes and grid floor in the 'Display' panel of the properties region in the 3D View window.

I don't know why, but this doesn't work in the preset orthographic views (Top, Left, etc.). To hack out of that, convert the preset view to a user view from exactly the same angle, by tilting away and back again: Numpad46. It might be more convenient to align your view to a selected face, or an object's Z axis, using ShiftNumpad7.

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


text:
Video editing performance
I'm trying to edit a video using Blender and the video playback is really slow for some reason.  The input video is 3 AVI clips all resampled to 25fps. They were all different framerates, so I used another program to resample them to all be the same so they'd sync.
I've built proxy frames for all 3 tracks at 25% and even tried reducing their JPEG quality to 50%.
In the preview, I get about 4 to 6 fps so the video doesn't keep up with the audio.  If I set the sync to either of the two options other than No Sync, the video freezes for seconds at a time.
I had an old version of Blender so I just updated to the latest official build yesterday but that didn't make any difference.
My system is a couple years old and not exactly top-of-the-line, but it doesn't suck (usually).  It's got a 4Ghz AMD FX-8370 8 core processor (8 logical cores, 4 actual cores), 16Gig of RAM, NVIDIA GeForce GTX 750, and everything is on an SSD. And Windows 10.
The video is rendering as I write this.  CPU utilization is about 8%, memory only about 32%. Disk activity only about 1% and GPU about 8%.  So it doesn't seem to be hardware bound.
Is there some setting I should adjust to get better results?

You "built proxy frames for all 3 tracks." Did you also set the proxy render size in the preview window?

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


text:
Normal map tangent without subdivision
When i apply a normal map tangent, i need to subdivide the mesh for the effect to happen. When i apply a normal map object, the map takes effect without subdivisions. How do i not have to subdivide the mesh and the normal map tangent have effect?

Did you use google translate?

Yes, but did you understand? I can explain it differently.

I am not sure. You probably talk about tangent-space normal map vs. object-space normal map, but you don't need to subdivide for both to work. If the normal map was correctly baked, there is no need to subdivide to smooth the mesh. I think you need to post pictures of the mesh and the normal map, maybe even share the .blend file.


text:
I want to texture parts I have modeled in CorelCAD
I have created models of a part that I created in Corel CAD. I have been trying to add texture to the parts but I can't get it to look the way I want it too. The parts are made of wood. Since the part is made of different pieces of wood. I am trying to get the wood grain pattern on the part to go in the right direction. when I unwrap the UVs only a couple of areas look the way I want them too. I have been trying to create faces on my models to separate the areas where the wood grain is going in a different direction but I haven't been successful. I am importing my models as STL files and trying to edit the mesh but nothing seems to work. Can anyone help me?
I included a picture of my part and its mesh
Also my attempt to add a white oak texture.

Your immediate concern
You want to unwrap the model but when you unwrap a model by default it is trying to give you what it thinks is the best two dimensional projection it can for the model you provided.
If you want to have the wood grain aim a certian way you will need to manually rotate the UV "Islands" in the uv editor to match the orientation you want. You may also need to scale or translate the islands so that the grain looks the same size etc.
Selection of Individual UV Islands
By default, the UV editor will only show the UV map for faces that you have selected in edit mode. This can be used to your advantage.
Select the faces that you want to have the wood grain oriented in a particular way in the 3d editor window.
Select the areas you want to modify in the uv editor. To have the effect you want, you will need to select whole faces.
In uv editor window and you can use R to rotate, S for scaling and G to translate the UV islands in the image editor.
You can choose from several "uv selection modes" in the uv editor, but the default is vertex so I will assume you are using that mode.
If you select only faces you want to rotate at once from the 3d view, you can use A in the UV window to select the UV islands for them.
You might also find CTRL + L useful. This shortcut selects every visible "linked" piece of geometry. It works in the 3d view or on the UV editor. So if you select one of the vertices in the uv editor and press that combination of keys, you will select all the linked UV islands.
Final thoughts:
Blender is very useful and fun software but it does have some learning curve to it. It sounds like you might be new to UV editing in blender as well.
In addition to this answer I'd recommend looking for some tutorials on the topic because they might help you in the long term.
Blender Guru (AKA Andrew Price) has a tutorial in some of his begginners series that is pretty useful for understanding some of how to unwrap particular kinds of geometry.
Here is a link: Begginer UV tutorial

I will definitely check those videos out. In the mean time your advice helped alot, Thank you. I was able to get the look I wanted.


text:
I wish to make a smooth motion like hips of belly dance
I have moved the hip joint on a character, from center position then to a few edges of a circle, but dont know if I can smoothen the motion rather than the way it looks now which is trianglar.
I would rather make the motion as my diagram suggests. but I think you can use curve paths etc, not sure how. but more to simplicity of creation extra objects, is it possible to magically make blender fill in the gaps from where KF2-KF3 etc
Object = Hip on the RIG
KF1-KF6 = Locations blender has already been setup with.
my objective would be to auto create the filling keyframes inbetween KF2-KF3 and KF3-KF4 etc, maybe like subframes
I dont want to overload blender with a tonne of Keyframes... but to automate with some trick that keeps blender clean would help my animating process
thanks
Shaun

Note 1: It's not bad to have a lot of keyframes! You can easily get used to a key on every frame and grabbing large blocks of keyed animation. When animating over motion-captured or simulated data this is a common occurence. The graph editor should be intuitive, but not clean/tidy!
Note 2: A belly dancer's hips would likely move in an ∞ like shape or an ellipsoid, not in a circle (a very unnatural shape for movement).

A simple sin and cos function can be overlayed if the circular motion is happening on 2 axes only. Select the graphs, add a modifier each (sin and cosine), choose additive for both and set their phase multiplier to the same value. (You can type 1/pi in the phase multiplier field.)

If you want the movement on certain frames use the Restrict Frame Range functionality of the modifiers or keyframe the Influence.
When you want to edit the movement further you'll have to bake the action.
Another method is simply setting good keyframes and using interpolation to your advantage. Keying the four position (1, 0), (0, -1), (-1, 0) and (0, 1) gives us this awkward motion.

To fix this, make the extremes the start and end of the cycle and remove the breakdowns of the curve. Or rotation the Auto Clamped keys which prevent a smooth movement.

The sine and cosine for x and y, have you actually moved the object around to begin or has the sine done the job. I.e. kf1 to kf2

@ToxsickcitY In method #1 the movement is fully generated. In method two I started with the four handkeyed frames.


text:
Transformation Constraint
Is anybody aware of a comprehensive 'Dummies' guide for the Transformation Constraint? I'm having a real problem figuring out how it works.
Specifically with converting rotations - I'm trying various ways to utilise the Transforms so rather than a specific function I need to be able to have a full explanation of the Constraint in order for me to figure out the cleanest way to achieve a task.
Thanks

You need two objects, an object that will be the controller, another that is controlled and that has the constraint. In the Map From field you choose what transformation of the controller will be taken into account, here its movement on Y. In the Map To field you choose how it will affect the object that has the constraint. Here, X Source > Y means that the rotation on X will be affected by the Y location of the controller. The values in Min and Max tell how much it will affect. If you enable Extrapolate the transformation will be able to go further:

Thanks for the information. The problem is that once an item is an angle to the target it gets confusing to know how to set up the constraint - even when using the 'local space' options the result isn't what's required. That's why I really need a comprehensive overview of how the constraint woks, still really appreciated though, Thank you.

Maybe you should edit your question and explain what you mean by "once an item is an angle to the target"?

I apologise - both object's rotation values are not at right angles to each other, they are rotated at different angles so they are not aligned in 3D space with the consistency shown in the example kindly provided above. That's where I'm having quite a few issues. Thanks

@K.Cee so maybe you should show a precise example, just edit your original post and put some drawings etc?


text:
Using the Transition Constraint to rotate an object
I'm trying to use the X global rotation of the central object in the screenshot to rotate the Y Local rotation of the object displaying it's local axis markers using the Transition Constraint.
This is for an animation - all four objects are substitutes for what will be ailerons in the real animation so I have set up these primitives to mimic the real objects for clarity.
I would like to create variations in timing etc in the final animation so a system like this negates further animations.

Thank you

If you're talking about the Transformation constraint, here are the settings you need. Enable the Extrapolate option (if you don't want any limit to the rotation), Target > World Space, Owner > Local Space, Map From > enable Rotation, set an X Max and Min, Map To > Rotation, set the Y Source to X as the Y rotation axis will be determined by the X rotation of the cube, set a Y rotation Min and Max:

Thank you for your help. Unfortunately whist the object does rotate n the Y axis it also rotates on the Z Axis and a Limit rotation constraint doesn't seem to work - grateful for any further suggestions if possible? Thank you.

@K.Cee Please share your file: https://blend-exchange.com/


text:
How to cut a plane in a shape of another planar mesh?
I have a terrain-looking plane made with Geometry Nodes (gray in the image below) and I would like to cut out a "meadow" on it (yellow in the image below) to assign different materials to the two parts.

I've created the "meadow" mesh outside of Geometry Nodes by cutting a plane in the shape I like. From there, I've brought this mesh into the geometry nodes and extruded it to intersect with the "landscape". With the Mesh Boolean node I am able to select the "outside" part of the landscape, but can't find a way to select the part inside the "meadow" extrusion.

Any help is greatly appreciated!

https://blender.stackexchange.com/questions/50538/how-to-cut-an-object-along-a-curve/ https://blender.stackexchange.com/questions/77279/projection-geometry-example/77281#77281

@DuarteFarrajotaRamos Are you sure that this is a duplicate? The question was about [tag:geometry-nodes] (and would need more details to allow an answer).

Indeed, good catch, sorry about that. Missed the part that it was about geometry nodes

If you want to get both the inner mesh and the outer mesh, and have the inner mesh follow the contour of the terrain, you would (unfortunately) have to use two Mesh Boolean nodes:

One node intersects with Difference the inner part from the outer, and the other node intersects the inner mesh with the terrain, so that a mesh is created that corresponds to the surface of the terrain.
But to also remove the side parts created by the extrusion, you would have to capture a boolean value in the geometry of the meadow mesh before this action, and use this selection afterwards to remove the excess faces.
(Blender 3.2+)

you can just use mesh boolean with intersect and difference:


text:
when I try to go to edit mode or pose mode of an armature, it immediately switches back to object mode in blender 3.6
When I append a rigged model and try to go to the edit or pose mode, it immediately snaps back to object mode. Sometimes it goes to both modes normally and suddenly starts switching back to object mode later. It seems to mostly happen when I have more than one armature. I also use rigify for the character model in case it has something to do with it though it still happens when I append rig that doesn't use rigify.
https://youtu.be/CATpVQMSX6U
This video showcases the problem. When I first append the character, everything works fine. But as soon as I append the swords, I can no longer go to edit mode in all three armatures and pose mode in the swords.

Could be an add-on. Have you tried to start Blender with factory settings? There is blender_factory_startup.cmd (Windows version) in the program folder.

@Blunder oh yeah it was one of the add-ons that I wasn't using. Thanks dude. It was a physics add-on called rigid body bones. Disabling it seemed to fix the issue.


text:
Headphone cushions

Trying to make headphones. How would I get a realistic cushioned effect on the headphone cushions? There are tutorials on Youtube for round headphones that use a sewing effect but it doesn't seem to work on these headphones due to the hexagonal shape.

I would suggest to start by figuring out what you want to model. Why wouldn't you post an image of what you are trying to model? If you don't know, what you want to model, you certainly cannot model it especially if you are still learning modelling. Choose what you want first.

Perhaps this will help: https://www.youtube.com/watch?v=GbRKoSC-Z78&ab_channel=Xmaiter3D


text:
Blender 3.6+ Animating UV Maps
This video demonstrates a clever way to animate UVs by keyframing the Factor value of a Mix node to smoothly transition between two UV maps. I took it a baby step further by connecting the output of a Value node to the Factor input so I could have the UV transform be driven by the X position of other geometry like an Empty.
It works great in one dimension to animate between two different UV maps. Is it possible to set this up to work in two dimensions, so it's possible to also have the Z position of an empty drive the transition between two additional UV maps? It does not appear to be possible with available Shader Nodes, but might it be possible to recreate this setup with Geometry Nodes?

It turns out that it is possible to do this with shader nodes and that the answer was very straightforward. The X position drives the horizontal transformations as described above. I created an identical node group so that the Z position drives the vertical transformations. The secret sauce is to take the results of the Mix nodes for the X and Z transforms and feed them into the A & B inputs of a third Mix node.


text:
How do I make ArchiPack windows transparent?
When watching multiple YouTube videos, when they bring in an object with a window from Archipack it's automatically transparent. When I do it doesn't seem to have a material. I have downloaded the materials from Archipack and pointed it to the folder. I've confirmed that some objects do come in with their materials, such as staircases, etc. Does anyone have any idea's on what to try to get the materials to display in the viewport?

what blender version are u using? can u attach a sample file where u added an archimesh window?

You are most likely using Eevee or Workbench as your Render Engine (Camera Icon). To see the realtime reflections from ArchiPack models, and the translucence of the Glass you'll have to switch it to Cycles under the Render Engine. The Device should be updated to be GPU to help with computing Power.


text:
How to animate geometry/particles with attractor

I recently switched from C4D to Blender :-) Recently I made an animated graphics where dots was animated from one side to the other while changing color. At the same time ALL dots were all animated - so it looked a little like swirming bees. In other words, the whole graphic was very much alive.
How would you re-create that in Blender?
Any help would be appreciated. Best regards

I think you'll need to dive into Geometry Nodes in Blender to do that which will be a bit of a steep learning process for you if you've not used Blender much! There are a couple of recent YT tutorials from HEY Pictures here and here which partially do what you want.

Thanks a lot, John. Have a nice day :-)


text:
Is there any way to force the viewport to orbit the geometry center of the selections not the origin point
when you toggle "orbit around selection" the fact is that the viewport orbits the origin point of your selection. and that origin point is not always at the selection's geometry center, sometimes even at the world origin, which makes the viewport navigation so frustrating.
Is there any way to force the viewport around the selection's geometry center no matter where its origin point is.

Preferences -> Navigation tab -> Orbit & Pan panel -> Orbit Around Selection orbits around the selected object based on geometry, not the origin point, so I am not sure what you are talking about. Could you clarify? Numpad . also centers the selection based on geometry not the origin. Maybe you have some floating vertices somewhere far away or your geometry is affected by something?..

I forgot to mentioned it is in edit mode
https://www.udrop.com/KSDP/2023-09-28_23-57-42_rf22.00.mp4

@MartynasŽiemys I haven't noticed this before.. in Edit Mode the orbit seems to be about the mean vertex location, (weighted towards density)?  Where it would make more sense to orbit around the selection's bounding box center?

I don't know what would make more sense. For me personally, the default Blender's navigation settings work absolutely fine without all this stuff. I was also going to suggest locking the view to 3D Cursor like Harry McKenzie answered.

My frustrations with viewport navigation have ended once I started using Lock To 3D Cursor. I just simply Shift+RMB to set the 3D Cursor to my point of interest and Shift+MMB to pan drag the view until the 3D Cursor is in the center of my viewport and my viewport navigation works perfectly. Or in your case set it manually to the geometry center. This also has always solved my zooming far in problems. I'm just confused why so many people don't use this feature. I have never found any reason to disable this so it's permanently enabled for me.

kind of solved my problem but still, just not as smooth as I expected, thanks anyway


text:
Grey items in the blender file and orphan data which can't be purged and find in view layer
My project file has become bigger and bigger and I find a lot of stuff I can't purge and even can't find in the view layer tab, but they exist in the orphan data and blender file tab, what are they and how can I purge them permanently?


text:
Slice a shape with a plane
I saw in speedrun by https://www.youtube.com/watch?v=Gf8KEEgCh_k and I'm curious how he managed to cut the uv sphere into two using the plane.
Any suggestions are welcome

BoolTool addon has a slice mode that automates a bunch of functions that would normally be necessary to reproduce two separated pieces of a mesh.

That's true, but my concern is, after deforming the plane, the resulting split had edges of the plane.

You can use a plane for booltool, or at least it used to work.  I think I have an answer somewhere, hang on

https://blender.stackexchange.com/a/216334/110840

As long as the deformation comes from a modifier and not a shader tree, I think it should work

Thank you very much. It seems to split, but I loose a half of it. I guess I'll check out how to use the Bool tool.

I suppose in that case it's easiest to duplicate the object and do the split twice, once on each object with the plane facing opposite directions

This seems to work well. I've managed to achieve it :)

if you want you can self-answer, or if not I can come up with something in the next few days

It looks like since the Boolean Modifier had another solver option added, some functions in BoolTool are less predictable, or completely broken.  Slice is still usable, but it creates a duplicate object with the same mesh data, so it's unable to finish the operation
In this case a manual solution is easier to manage.
Start with your base object and a cutter plane, and run Boolean -> Difference on the two.

Then you can select both objects and use Shift + D to duplicate.  When you duplicate objects that are associated with each other through a modifier like this, the modifiers' references are automatically set to the newly created objects, so that is already done for us.
Select Plane.001, tab into Edit Mode and use Alt + N -> Flip to flip the normal of the plane.  This reveals the bottom half of your original object.

After this, the object is sliced, and the modifiers are preserved on the objects.


text:
Geonode extracting attribute
Hey!
I want to capture attribute that will allow me to extract data from the geometry, I want to use the data in the shader tab - gradiant, random ext
*I did not create the geometry within geo node (just the shortest path)
Thanks

I have exactly the same problem.
Normally you would use Capture Attribute and then read it out in the Shader Editor via Attribute node, but it doesn't work, no matter which method I tried. I am using Blender 3.5.1 which is kind of experimental at this point in time.
If you try this in an earlier version of Blender, does it work then?

use the store attribute node


text:
How to determine local x and z axis of bones
I'm interested in the local coordinate system of the bone in order to interpret animation data from blender correctly in my game.
For simplicity I'm assuming 0 roll.
Getting the y axis seems straight forward, it's always in the direction from the head of the bone to the tail of the bone.
But how do I determine the local X and Z axis?
When the bones are in the XY plane Z is always up, so I figured it's probably something like, cross product local_y global_z to get the x axis and then cross product local_x local_y to get the local z axis.

But this doesn't seem to hold up for bones in the zx plane.

It kind of looks like they are blending between orientations at the 6 axis directions.
But not sure how that blend would work.
What is being blended? Quaternion? 3x3Matrix?
How is it being blended? Lerp? Slerp?
Or is it something completely different?
If anyone can shine some light on this, or point me towards the relevant documentation I would really appreciate it <3

I figured it out, so in case someone has the same question and finds this, I'll answer my own question:
This is the blender source file in question: https://github.com/blender/blender/blob/master/source/blender/blenkernel/intern/armature.c
The relevant function is called vec_roll_to_mat3_normalized
In a comment it mentions: "P.S. In the end, this basically is a heavily optimized version of Damped Track +Y."
Here is the documentation for Damped Track Constrains:
https://docs.blender.org/manual/en/latest/animation/constraints/tracking/damped_track.html
It states that it's using a swing rotation:
https://docs.blender.org/manual/en/latest/glossary/index.html#term-Swing
Here is an in depth blog post on Swing-Twist Interpolation:
http://allenchou.net/2018/05/game-math-swing-twist-interpolation-sterp/

nice finding!! + 1


text:
My Final rendered Image gets bumpy in Shadows
I started learning blender 2 months ago. . Everything was fine till I rendered it, after it rendered I noticed that the plane on which the bulbs were becoming bumpy and distorted in shadowy areas I think, I tried different things to fix it by turning clipping distance, changing f-stop and changing sample data and denoising but nothing. the problem only appears in the rendered image not  in the viewport which makes things even more difficult because it takes hours to render a single image on my pc please can anyone tell me how to fix it

Look at this

as you can see the image has distortion in the shadows I marked it with a pen as you can see the white area has very low distortion, the yellow has a little distortion and the red area has a very high distortion. can u please help and tell me what's wrong with it?

That "bump" is the result of a denoiser not having enough samples to produce a good result.
If it only appears in the rendered image you need to make sure you have both denoising checkboes - under "Viewport and "Render" - unchecked.

That solves the "bumpiness" but might still leave your image noisy.
Usually I would suggest enabeling the "denoising data"-passes and plugging them into the denoise node of the compositor, but i'm not sure that this will produce good results with all the glass in the scene.
In that case increasing the sample count will do the job as well, just slower.

You say yourself the issue is the "denoiser having not enough samples to produce a good result", yet your solution isn't to play with the samples but instead deactivate the denoising? That sounds weird to me. I would definitely increase the min samples and also the max if necessary. Maybe also the max bounces. For the denoise options itself, I would leave it to the default options: OpenImageDenoise, Albedo and Normal passes with Accurate prefilter. That's the same as using the Denoise node in compositing, minus the need to plug all the nodes sockets and redo a render with the right passes.

Well, he wants to get rid of the bumps - and deactivating the denoiser is the fastest way of achieving that, even if it reveals the noise underneath. If that's acceptable, we're done here.
The settings in the image don't relate to my post - it's just there to show where the option (marked in red) is. I do still mention that increasing samples is an option later on.
That the denoiser in the settings now matches the node however is nice - i didn't know that.


text:
Merge by Distance isn't working as it should

I have been going over some models for our group project and noticed there are double vertices, I suspect these came from a boolean cut. As you can see the vertices are on the same mesh, both vertices are indeed selected and I have even dialled up the merge distance to a ridiculous 1m; yet the vertices are not merging. Very confused as to why this is and would appreciate an explanation and solution, thanks!

Are you sure that they are on a single mesh? - In the Statistics on the top-left of the 3D view you appear to be editing two selected objects out of 82 so you may be trying to merge one vertex from each object. Go back into Object view and see if you have two objects selected.

Yes it was actually the fact the cupboard and the boolean for the microwave were overlapping! Thank you! I will make a note to keep an eye on the outliner and take a longer look at my stats next time I run into this

Lucky guess! It was only when I glanced at the stats that I realised what might be happening.


text:
How to give thickness to circle using solidify modifier?
This is what i'm doing, which is not giving the desired result:
I'm adding a circle using add>mesh>circle.
Then i'm selecting that circle and adding a solidify modifier, adjusting a thickness, but the thickness is not showing.
How do i use solidify modifier on the circle mesh.?

I can't remember if the circle primitive comes with a center face or not.  If there is no face, select all verts and fill with F.

It doesn't come filled so there's not really much point in trying to use a solidify modifier on it. Just extrude it if you want to add depth to the circle. Then you can solidify that.

It indeed doesn't come with faces by default. So either you fill it afterwards like explained by @AllenSimpson, or when you add the circle object: open the last operation menu in the bottom left corner and change the fill type https://i.imgur.com/zrh0ZdJ.jpeg

What the above comments say: the Solidify modifier gives thickness to faces. The default circle primitive has no face, hence no thickness.

What are you trying to accomplish? Are you trying to fill the face and solidify it into a cylinder, or are you just trying to "thicken" the ring?


text:
About Sample Curve Node. What exactly does it output?
I was trying to understand what a sample curve node does. I read the official docs. Watched a few videos on sample curve node(There's only one video specifically about sample curve that I could find on youtube).
However, I'm still not able to figure out what exactly it does. I could understand that it takes sample from a location on the curve, but how do I see what that location is, that i don't understand. I understand that I can use either factor or length. Also, the sample curve node interpolates once it has taken some value. But I can still not mentally visualize as to what exactly are the output from this node.
Can someone kindly explain the intricacies of this node and the various options that this node gives. Or maybe direct me to a relevant video on youtube.

Really great question. I think this type of questions are really useful for the community. I attempted to give an answer, but if something is still not clear it would be great if you let me know in the comments, I'll try to edit and clarify further.

Can someone kindly let me know how to actually view the output of an option in the sample curve node, such as how do i see what is the normal to a curve, when i choose the normal option of the sample curve node, or for that matter, how do i actually see the tangent to a curve when i choose the tangent option of the sample curve node.

I edited my answer, hopefully that helps.

It samples something along a curve. So let's say I have a curve and I sample a position(use the position output of the node), I can then use that position for something. The factor determines where along the curve to sample 0 being the start and 1 being the end of the curve, but you can switch to Length mode and then sample at certain length from the start. Let's see something visual:

As you can see "Curve Index" is actually spline index. Curve objects can have multiple disconnected segments, that's what they are - splines, index chooses which one you sample. If you check All Curves check box, the factor will go through all the splines at once - so 0 would be start of the first spline and 1 would be the end of the last spline in the curve.
As you can see the node has some other outputs. Tangent and Normal are probably easy to understand, but there is also the "Value". Value output samples something else that is plugged into Value input. So for example you could plug Curve Tilt into value, set it to Float since that's what tilt is and this way you can sample it at some point on the curve:

It's shown in degrees to the user in the UI, but saved in radians internally, that's why the values differ. You could sample named attributes that you store yourself this way as well.
You can view outputs of nodes in various ways. You can just connect them to something like in my examples I connect position to a Set Position node to move a sphere and tilt output to eventually make curve text out of it, or you can also use the viewer node by  Ctrl  +  Shift  + clicking on nodes. You have to connect the geometry you want to view attributes on and then the attribute you want to view. The values will be converted to RGB and displayed as color on the geometry if possible(if in (0,1) range). You can also enable Attribte Text overlay in the Overlays menu to show the actual numbers:

Here is how the values look converted to color:

I also added a single point to see the position. It's a single value in this case, not a field, so it gets repeated at all points. Different values matching the point would be displayed for fields.

Thank you very much for replying with such a thorough answer. It was very helpful. I replicated all the things that you explained. When i tried to add another bezier curve to the scene, the curve index did not take that into account. On the left side panel (under the Geometry nodes tab), the spline is still showing as 1 even when i have two splines in the scene. And this is causing to not letting me able to use the curve index option in the sample curve node. Could you kindly explain how to use sample index node when more than two bezier curves are added in the scene.

I'll just answer here as it has more to do with curves in general and not the node. Splines are part of same curve object. If you enter edit mode of a curve object and let's say select all points(a) and duplicate(shift+d) you are left with two segments in the same curve object. That's what I did in my screenshots, and I also revered the direction of one spline by selecting any part of one of the splines and choosing Switch Direction from right-click context menu.

Can you kindly let me know how to actually view the output of an option in the sample curve node, such as how do i see what is the normal to a curve, when i choose the normal option of the sample curve node, or for that matter, how do i actually see the tangent to a curve when i choose the tangent option of the sample curve node.

Method for Sampling Input

If you choose Factor, it will multiply your "Factor" by spline(s)* length, and use that in the "Length" mode, that is, the following setups are equivalent (hiding most sockets as whatever you connect to the hidden sockets, it won't change this equivalency):

Imgur mirror (SE image hosting has problems)
As well as in the "All Curves" mode the following setups are equivalent:

Imgur mirror
* - BTW, "spline" and "curve" are terms used interchangeably in Blender. Sometimes "curve" means the entire splines collection, but sometimes it just means a single spline. "Curve Length" node gives you the total length of all splines (the sum of spline lengths).
Poly Curve Anatomy
Before I can explain how the curve is sampled, I need to also explain what a curve even is:

Every curve is internally just an ordered list (array) or points with various properties.
A Poly curve simply connects the points with straight lines, treating points as vertices connected with edges.
Of course not all possible connections between points are made, just each non-last point $n$ with the next $n+1$.
A "cyclic" curve also connects the last point with the first point.
The spline length is just the sum of the lengths of all those connections (edges).
As a result, switching "cyclicity" changes spline length:

Imgur mirror
Non-poly Curve Anatomy
Blender displays every curve using vertices and edges. Therefore it can't display actual curving lines. Instead Blender calculates positions for a number of virtual/internal/implicit points, however you want to call it, this number depending on the spline resolution. You can see this when you zoom on any curve, and/or when you have too tight of a bend compared to the resolution.
When Blender calculates length of any spline, or samples any spline, it uses its internal poly curve representation.
Finding the attribute on the spline.
Knowing the above facts, the algorithm is simple:

If using the factor, recalculate it into the length, as explained in the first section.
Travel through the internal poly representation of the spline, starting at the first point and "Distance traveled" equal zero.
Whenever you're about to travel through an edge, add edge length to "Distance traveled so far" and save it as "Next distance traveled".
If "Next distance traveled" is not greater than "length" you're sampling, then rename "Next distance traveled" to "Distance traveled so far", travel the edge to the next point and repeat point 3.
If "Next distance traveled" is greater than "length", you found the edge on which you will be sampling the value.
Subtract "Distance traveled so far" from the "length" and name the result "ratio". Consider how if both "Distance..." and "length" are equal, "ratio" will become exactly zero, whereas the maximum* "ratio" you can get is the length of the edge.
Divide "ratio" by edge length, now it truly is a ratio, in range $0...1$.
Now whatever attribute you're sampling is the linear interpolation between the 1st and 2nd points of the edge, described by formula $(1-t)A + tB$, where $t$ is the "ratio":

Imgur mirror
* - factor/length is clamped to maximum (1 for factor, spline/s length for "length"), source: source/blender/nodes/geometry/nodes/node_geo_curve_sample.cc - thanks Stef!

About sampling outside the curve length, the sampling length is clamped between 0 and the total curve length (from source code: source/blender/nodes/geometry/nodes/node_geo_curve_sample.cc). So it behaves like a constant extrapolation for out of bounds sampling lengths.

Thank you for replying with such a detailed and thorough explanation. I've gone through your answer, more than once. I tried parts of it, and experimented with the understanding that i gained from your answer. However, I think, if you could make a youtube video about it, then beginner people like me would definitely benefit a lot from awesome answers like the one that you posted above.


text:
Snapping not working as expected in Blender 4.3?
Kindly see the attached video(https://youtu.be/jmTNLHcely4). Even when I've enabled snapping to vertex, and have also enabled "auto merge vertices", the snapping is not working.
Kindly help.

Put your cursor next to the vertex you want to snap and it should work

Put your cursor next to the vertex you want to snap and it should work:

Thank you so much. It did work. Earlier i was under the assumption that just when i do shift D, and move the mouse, the new object should automatically align when i move the cursor to the requisite vertex of the old object.


text:
Is there a way to list objects with keyframes?
I have many instances of the same object. The object's materials are linked. I selected one instance and started to add keyframes to change the colour in a Color Ramp node. I've since clicked off the object and cannot remember or find the instance with the keyframes.

I'm sure I've clicked on each of the objects - nothing.
I can't see any way to filter keyframes in Outliner.
I can't see anything of use on the Dope Sheet.

I'm sure this is so rudimentary, Blender experts wouldn't give it a second thought, but I'm stuck.
Grateful for any help...

I think I found the problem. Somehow, I was looking at the Dope Sheet rather than the Timeline area.

The Timeline area had been reduced down to just the title (1) at the bottom of the screen - without me noticing what had happened. (The Dopesheet and Timeline look very similar). Like this:


text:
VSE: Partial volume fade
Watching Youtube instructions on partial volume fade, in older versions of Blender, one had to add keyframes. In version 3.3, that option seems to have been removed or moved. In any case, I can't find it.

At a given frame, how do I start a volume fade from 1.0 down to 0.5, over, say, 20 frames?

Found it. Well, found the solution.

Go to the video sequencer editor.
On the timeline move the slider (1) to the frame you want the volume to start fading.
Select the strip with the soundtrack (2).
In the properties, strip tab (3), click the little circle to the right of the volume value. It will change to a diamond (4). I believe this is a keyframe.
Move the slider (6) to the frame where you want the fade to stop reducing.
Select the strip with the soundtrack (7).
Enter a new value for the volume (8).
Click the diamond (9).

If you move the slider from left to right the volume should increase/decrease.
Here is a link to the relevant documentation: https://docs.blender.org/manual/en/latest/video_editing/edit/montage/strips/sound.html#animating-audio-track-properties

The add-on VSEQF has a feature for drawing a volume curve on top of the audio strips: https://github.com/snuq/VSEQF


text:
How to turn on Mesh Analysis
for several day now, I solve the problem of crating a heatmap-texture based on its curvature. After quite long searching, I found Mesh Analysis (https://docs.blender.org/manual/en/latest/modeling/meshes/mesh_analysis.html). However I discovered 2 problems:

How do I even turn this on in Blender 3.31? I can't find any button anywhere.
How can I then extract the texture that will be produced by the Mesh Analysis?

Thank you very much,
Adam

Select your object.
Press ⭾ Tab to go to Edit Mode, or switch it from the menu:

Press the  button near the  Show Overlays toggle to open the drop-down menu, in it you will find the Mesh Analysis option:

Enable the option and choose the mode and other settings below it:

How to bake it to a texture?
See an existing thread: Bake Mesh Analysis to Texture


text:
How to create render of normals?
When looking at object at solid view using MatCap normal map light, I get a nice normal map of object I am looking at.

However, when I try to recreate those colors for rendering, using Geometry Node -> True Normal, I get something very different.

Can anyone explain, what is going on, or even better, how to change the node setup so I get image as in solid view?
Thank you!
Adam

Hello and welcome. you should add your Geometry nodes tree as part of your question, to give an idea of what you've done so far, the more info of your settings, the better

Do you have to do it in geometry nodes? You can just use workbench render and chose a matcap or use the node setup stated here -> https://blender.stackexchange.com/a/157279/115533

These are both the (remapped) normal, but in different spaces.  The matcap is the (Z flipped) camera-space normal; the GN true normal is the object-space normal.  If you want to render a matcap, you can render it with a "viewport render image" operation.  You can also search SE for how to make a matcap material to render a regular render.

@Nathan you can use workbench engine to render a matcap.


text:
Problem with Volumetric fog in Cycles - low quality during rendering
Hello I have problem with rendering in cycles I get quality like that like very much compressed video. How can I fix this problem?

Hello, what does it give if you disable the Denoise option (also disable if you have any denoise in the Compositor)?

I attached 2 images above the lower one show the setup from shadder and on the right you can see the render setup. If you want to see more setting please let me know what to show

Yes I try to disable noise, then I have a lot of noise but still I have a lot of squares

This is how it looks without denoise https://imgur.com/a/aRD3cwP  There are still squares

For smoke simulations I can tell you, your Transparency bounces under Light Paths are much too low at 0. I'm not often doing fog, but with smoke using the Principled Volume I set the bounces to at least 32, better even 64 or 128.

with more light bounce still have the same problem: https://imgur.com/a/S4uiu2M

Hmmm, well yeah it was just an idea, I know even YT tutorials about smoke simulations have those and sometimes the tutors claim it's a limitation of Mantaflow or using Adaptive Domain etc., though it's clearly not, just light bounces. From the settings alone I can't really see a problem, sometimes it is just something specific in a scene that's not working. But then it's hard to determine for us when we can't examine the scene directly.

Try to disable "Use Tilling" under Render properties > Memory ... does it make a difference?


text:
Is the blender 3d print thin faces warning possible to figure out here?
I have seen many videos and threads about thin faces but still cannot figure this out. I am trying to add a pattern I created to an object but am getting a lot of thin faces warnings. It doesn't make sense though because a bunch of the same exact faces in the pattern are not highlighted as thin faces while many other duplicates are highlighted. I have the size and thickness limit set to the specs I need. Any advice on how to fix this would be hugely helpful. Thank you!

What are you talking about?

can you be more specific? Happy to clarify.

I created a pattern with many diamond shaped faces that I duplicated a few times to create a larger pattern. Then I ran a check with 3d print tool box and some of the faces came up as too thin while other duplicates were not too thin so I don't understand how the thin face warning function works

It's already been suggested that you update to the latest Blender version (3.3.2) and possibly file a bug report in your previous question here: https://blender.stackexchange.com/questions/278963/is-there-an-additional-bug-with-blender-detecting-thin-faces-for-3d-printing-pre.


text:
.obj/.mtl export, bump map + bump multiplier (`-bm 1.000000`)
In an exported .mtl file, after defining a normal map for one of my materials, I get this:
map_Bump -bm 1.000000 brickwall_normalmap_128.png
The -bm option AFAIK is a (sort of?) standard, sort of non-standard optional thing which is supposed to communicate that all of the normals/bump values in the map should be multiplied with this value, hence 'bump multiply'.
Problem is, I have an application that uses a library to load .obj/.mtl and fails to parse the 'bump multiply' part of the bump map line. Is there any way in blender to stop this 'bump multiply' from being written out at all?

Are you using the new (non-legacy) exporter? A Normal Map node? Setting the Strength socket to zero appears to make it omit the -bm (even though that isn't correct).

I am using the newer exporter and a normal map node yeah, on version 3.3.0. That's good to know that there's a way to get rid of it, even if that's pretty hacky. You would expect a strength value of 0 to write out -bm 0.000000, probably, right?
Weird.

Well the Strength isn't actually a multiplier like bm. Strength=0 makes the Normal Node do nothing so it should really make it omit the map_Bump. But I think map_Bump is also supposed to be a bump map and not a normal map in the first place sooo..... lol


text:
How do I get these two mesh parts to twist and meet each other at a single edge?
The two pieces on the right side of the image have different normals, and I  want the top curve of the B to gradually turn into the bottom part. I've tried simple deform and SimpleBend but haven't found an efficient way to do this. I want a few faces at the top to stay in place and the rest to rotate little by little.

Have you tried to rotate the last edge with proportional editing activated?

Maybe Bridge Edge Loops will do the job for you?


text:
How do you change the instance color to match the object's procedural color? Using geometry nodes

I'm looking for a similar effect found here:
GN: How to pass an instancer's localized texture color to its instances?
Instead of an image texture, I'd like to use a procedural texture that can be edited.

There is a setup in the answer where an image texture is used for the color... why don't you just place the procedural texture instead of the image texture? There is nothing in this setup that explicitly requires an image.

How do you place a procedural texture into geometry nodes?

Like in the Shader Editor... press Shift + A > Add > Texture > Noise Texture. If you don't know how to add nodes in GN, how did you actually planned to do something like that? Since you stated "Using geometry nodes" in the question's title and it didn't seem as if you were wondering how the image texture got in the other solution's nodetree...

Possible solution (but there's probably a more elegant one):
As long as you're fine with not using the same material for the plane and the instances, you don't really need to change anything in your geometry nodes.
For your plane, set the material like it is in your screenshot. For the instances, simply copy that material, but add an Object Info node to sample the noise texture at the position of the instance:

You can also encapsulate the Noise Texture, Color Ramp and BSDF into a node group that can be used by your plane and the instances, so they always use the same texture.

Thanks! This works! I can't believe I didn't think of it. I was too fixated on the other solution to see it.


text:
How to Create a Gradient Selection Along a Curved Mesh Object in Geometry Nodes?
Using Blender's Geometry Nodes, I'm trying to create a gradient selection mask that follows the length of a curved mesh object. The gradient should smoothly transition from 0 to 1, starting at one end of the shape and following the tangent of the curve to the other end. I’m not sure how to get the gradient to follow the curvature of the mesh.

If you start with a curve, you can just capture the factor of the spline:

Otherwise you can e.g. find the bottom (lowest z coordinate), mark it, blur with a lot of iterations, then use Attribute Statistic + Map Range to normalize to 0..1 range:

Perhaps a bit silly, as you could use a "shortest path" functionality instead, or together with blur:

That works well, thanks! Although, it was a little hard to follow with the hidden node sockets


text:
How to Export a selection of Keyframe Animation
I want to export a Keyframe Selection as glb file. I import mocap data, clean it up and want to export a part of the animation as glb for a webprojekt. But there ist no chance to get only a selection of this.
The Animation is about 20000 Keyframes, I want only Keyframe 450 to 800 for the export. I try it with the start and endkeyframe for rendering, but blender will export all 20000 Keyframes.
Thanks for Any help.

Save a new version of the file, open a dopesheet window, turn it into an action editor, select the mesh or the armature which has the animation you want to export, delete all unwanted keyframes, move the keyframes all togheter so to set their start at frame 1 and export.


text:
Question Using Drivers, Control the driver at specific frame to either turn off or minimize effect
I am using a driver in blender that controls a ShapeKey (ponytail moves up)
I am assigning that driver to act on the spine bone in the head. so if the head looks up, the ponytail wont clip into the clothes/body.
I works well except at some parts of my animation, where I would like to turn off the driver, or control it. (changing its strength)
unlike the fcurves and dope sheet, I cannot seem to work past frame 0 (the green cursor is moving around but does nothing) the white little driver cursor in the drivers section is stuck on frame 0, the orange blocks can move around but they do weird stuff to make the driver change strength.. but not at specific frame numbers.
I am lost.
You can see the drivers when zoomed out to insane numbers...

You can't animate a driver, it calculates the value instead of using the fcurve value. You could use frame in the driver expression, or define your own function for more complex expressions. You could also drive the shapekey using  a bone location and animate the bone to control the shapekey.

What do you mean use frame in expression?
I actually created a 2nd shape key and tweaked that to correct what I needed.

In a driver expression you can use a variable called frame which is the current frame. So you can do 0.3 if frame == 5 else 0.8


text:
Imported Alembic (Animated mesh) I need it to have same # of vertices for fluid sim
I am working on a project where I plan to have multiple fluid sims running, I am having problems with my imported animated mesh, where each frame has different number of vertices. (This has previously been exported as alembic) then reimported, so I can start on fluid sim #2
I am trying to create the 2nd fluid sim and want the first simulation(Imported Animated Mesh) to be an obstacle so the new mesh kind of flows/moves with it.
The problem is when using the 1st imported mesh as the obstacle with option export animated mesh for calculations. Blender tells me that the exported mesh,  must have the same number of vertices for each frame.
I have tried the shrinkwrap modifier on a cube outside the animated mesh and it doesnt give me the best results. it stretches the cube over the fluid but doesnt really fill in voids etc...
is there a way to rebuild the mesh to be the same number of vertices for each frame?
such as using decimate in a way it deletes only a few vertices to make the count the same for each frame?
cheers
Shaun

I'm strongly interrested by a tip on it too.
How to get a fixed polycount on meshes with alembic export?


text:
Mesh is visible with Dynamic Paint Image Sequence WETMAPS
I am trying to create a fluid scene where the object will have a gloss to simulate wetness after the fluid rolls off the object.
I have the node setup working fine, but the wetmaps for dynamic paint seem to show the mesh lines through it.
can anyone figure out whats going on?
Blend File,
https://drive.google.com/open?id=1I2h7YoMSlY9QAkQcvve9KhDY8f0FE0Ss

I haven't used dynamic paint very much, but my guess is that dynamic paint is doing some of its calculations at a per-vertex level, and because your mesh is low res, this is causing that to be visible. Can you see what happens if you add subsurf before the the dynamic paint modifier and the re-bake it?

Hi, Thanks for commenting. I tried subdivide smooth in edit mode to make the sphere have 5000 faces, the mesh shape though the exported baked wetmap files are smaller but still there. i dont want to inefficiently make this sphere have a stupid number of faces for this, there might be another way to solve this, such as changing format form images to vertex... without using images. Just need to learn how to do that!!

I have quickly learnt how to use the vertex method and this works based on how complex the mesh is, so if it's low poly, the accuracy is not great, the mesh needs to have plenty of geometry to do this. I might look at photo editing software to maybe blur over the lines?!! haha anyways if anyone has ideas on how to properly use blender image sequence method and not show lines, I'd appreciate your sharing of knowledge


text:
I want to make a flatened cube take the shape of a face
I am hoping to get some assistance in something I need for a project.
I am needing the cube here in the photos to actually take a fairly accurate impression of that face into the cube.
for my images attached,
I have created a cube that has been subdivided a bunch of times in EDIT MODE
I have simply moved the most center vertices with proportional editing enabled to make my 2nd image, but getting accurate face impression manually would take too much time and would like to know if there is a modifier that can be used then finally applied to make it stay like it?
Many Thanks

I'd try some cloth simulation for this. or just copy th part of the face to the box mesh, and use a shapekey for animation it back to flat surface (if it is an animation).

Shrinkwrap modifier is exactly what you're looking for, use the project option

In front ortho view bake a displacement map of the face and apply it later to the subdivided plane. Later extrude the edges of the plane and make a face to close it.

Try changing the snapping element to face, and then in edit mode move the object towards the face object.


text:
Blender Cloth, Single object with two meshes, wanting to keep them joined for first few frames of cloth physics
Hello fellow Blenderer's
I am working on a small project where I have a character eating and when the food moves away from mouth I want to form a string of dribble that stretches then separates in half and fall.
as seen in my simple animation here. I am wanting the two middle points to stay joined for longer. Glued if you will!

the Object is a tube which is separated in the middle. I use KeyShapes to make the tube go from thick to skinny in the middle during the animation.

Not sure on how to accomplish gluing them together for longer.

Hook modifier could do it, but there is perhaps a way to do it through simulation which would give better results.

The animation above is not keyshaped so to speak!, the cloth simulation is moving it.. but the keyshapes are making it go really thin in the middle (where the two split)  I will take a look at hooks :)

Tried Hooks, tried separating the mesh into two objects and hooking them to each other. but hook does not hold them


text:
Boolean not working for 2 objects, not sure why. Tried many things as suggested on tutorial sites
I hope to get some help here.
I am having some fun designing a House, but for some reason I cannot get two boolean objects to cut properly.
I hope to get some help to figure out why the Windows and Pantry Door work, but the Bed4 and Side Window wont cut the hole.
I have tried the normals settings and nothing seems to work.
the only way I have got a result is to actually apply a boolean then edit the mesh that object was around to create the opening. but it's not a great way as I would like to keep it UN-Applied to move objects around to get a better feel for the placements etc.
none the less I have tried for hours and I am over it! heeheehee
I hope with some input from others I may understand what i've done wrong.
I really want to figure it out more then anything haha
Blender File

your link asks for authorization  ;)   are you sure that some edges, faces or vertices are not overlapping?

Try it now buddy

it works, except your objects are just not full objects, so it justs create edges, not holes

Sorry man. Can you explain what changes I need to make to the objects? I want the walls to have holes just like the big doors at the rear

for the moment your boolean object is this: https://zupimages.net/up/20/43/2zww.jpg ... you need to fill the faces if you want them to cut a hole in your main object: https://zupimages.net/up/20/43/ngbs.jpg

well it still bugs

I must admit. I have had faces around it. The rear windows have two opposite sides without faces

So it is bugs in blender? I hope so it was driving me absolutely bonkers

so yes, Booleans bug most of the time because of overlapping vertices/edges/faces, these bugs will end with next Blender version, but there are 2 things here: you need to have a filled boolean object and your wall needs thickness

Blender 2.91 and 2.92alpha
Problem is solved as it uses a more accurate boolean


text:
adding a delay for a driver
I have a driver on a keyshape which is controlled by an object moving in the scene.
I would like to add a 5 frame delay so the keyshape changes are delayed by X frames.
I am using scripted expression currently it has
(var+2.73)*.1
so if its possible to add what ever is required to make a delay.
cheers
Shaun

Similar to this answer, we can use a driver function to capture the relevant details - but instead of using the values to calculate the velocity and/or acceleration, we can simply store the previous data value into a queue and retrieve the value after the specified number of frames.
Here's the code you'll need - paste it into a Text Editor window named something like 'delay.py'. Tick the 'Register' checkbox to ensure it's run automatically whenever the .blend is loaded - or just run it manually using the 'Run Script' button.
import bpy

attributes = {}

def drv_delay(frame, attr, delay, value):
# Used to delay the value by a specified number of frames.

    # Determine whether we already have a value for this attribute
    if attr in attributes:
        attribute = attributes[attr]
    else:
        # Not found - create a new record for it and store it
        attribute = {'frame':frame, 'dataqueue': []}
        attributes[attr] = attribute

    if frame <= 1:
        del(attribute['dataqueue'][:])

    # Only store the value on change of frame (to guard against being called multiple times per frame)
    if frame != attribute['frame']:

        # Store this value in the queue
        attribute['dataqueue'].append(value)

        # Discard any elements that are more than the delay period
        while len(attribute['dataqueue']) > (delay+1):
            del(attribute['dataqueue'][0])  #remove one from head of the list

    # Store frame
    attributes[attr]['frame'] = frame

    #return the value at the head of the list
    if len(attribute['dataqueue']) == 0:
        return value
    else:
        return attribute['dataqueue'][0]

if 'drv_delay' in bpy.app.driver_namespace:
    del bpy.app.driver_namespace['drv_delay']
bpy.app.driver_namespace['drv_delay'] = drv_delay

The script defines a driver function and registers it in the driver namespace to make it available to use in driver scripted expressions. This means that we can use a new function in the driver expression as follows :
drv_delay(<frame>, <attribute>, <delay>, <value>)

Where frame is the current frame (so we can detect frame change for handling the delay), attribute is a name for this 'delay queue' - each property will need to be given a unique name so that blender knows which one we are referring to), delay is how many frames the 'queue' should buffer, value is the actual value that we want to delay.
To use it, set up the driver Scripted Expression as something like :
drv_delay(frame,"cube_y",10, var)

This sets up a delay queue named 'cube_y' (for the y-coordinate of the cube) with a delay of 10 frames. var is the value being delayed. The function will essentially return the var value passed in 10 frames ago.
To demonstrate, here's an example with an Empty moving in the scene, with a Cube delayed by 10 frames and a Sphere delayed by 15 frames. The queues are automatically reset at frame 1 so the motion can restart afresh.

Blend file included

Thankyou for your answer, I am giving you the tick for the answer and level of detail, thanks heaps for this. :)
I will have a play with this to see what needs to happen and toy around with your blend file.

for some reason blender keeps discarding my drivers as soon as I reload the file.

I would upvote this twice if I could. Thank you for this!

Would this be possible with Geometry Nodes ?

I honestly don't know @gordie. I suppose it all depends on when the drivers are evaluated in relating to geometry nodes.... best thing is to try it. Note that geometry nodes now includes 'Simulation' which can update per frame so you do have the ability to do similar but in different ways.

Thank you !!!  I works great !!!

Maybe you can use an Empty, parented to your moving object, with "slow parent" activated (in Object/relation Extra) and an offset of 5 frames. Then drive the empty instead of the moving object.

Thankyou Kindly for an answer, I will try this. I wanted to give you the tick, but this other answer deserves it due to the details and effort they put into it.
Cheers.