text:
How do I skew distribution of random values for Geometry Nodes?
I am trying to instance rocks on an open field. Part of the instancing involves randomizing the scale of the rocks.
What I hope to achieve is to skew the distribution of the random values towards smaller values such that there will be more small rocks instanced than big rocks (i.e. more small random values than large ones).
This is my current node setup:

I have tried putting a Color Ramp node between the "Random Value" node and the "Instance on Points" node. All it did was to switch the rocks instance on and off.
TL;DR
I want to instance more small rocks than big rocks by skewing the distribution of the random values generated towards smaller values, and then plugging those into the scale of the rocks. How do I go about doing that?

One possible way to do so is use a random boolean value with "probability" like this:

changing the probability results in:

One way would be to make no attempt to change Random Value's distribution of values, but instead, choose some non-linear mapping of its evenly-distributed output.
That could be any math function, or manually constructed ones, such as a Color Ramp, or Vector Curves, for independent adjustment in each dimension, or, as here, RGB Curves, which make mapping uniform scaling slightly easier?

(The 'big-rock' spike could be anywhere in the 0-1 curve; all that matters is its width)

Oh, that's an idea as well... a visual control is sometimes better than just seeing the numbers.

@GordonBrinkmann The interesting one would be procedural bias by external features.. big at the bottom of the cliff... finer to coarser on the beach..

I guess this could be achieved depending on how cliff and beach are realized... maybe a height map, the absolute Z location or steepness of faces? Or a combination of those parameters... and maybe a weight map as well.

@GordonBrinkmann   I've been trying something like 'directed AO' to do this in shader-land. No real luck yet.

Works great until you accidently point the curve towards infinity and it bricks your computer. Definitely recommend clamping.

@special_frog >8D Wow,, you found the little Easter Egg! But seriously... apologies!

I only have a workaround for that. The solution here is Power. To change a linear distribution in the 0 to 1 range, a good way is to use a Math node set to Power. If you set an Exponent > 1, the lower values will be "broadened" until you finally reach 1.
Here is an example how this looks: the Vector Math > Length creates a value between 0 and 1 here from the center to the border of the plane. Then I used a Map Range to convert it to your desired range of 0.01 to 0.1 values. On the left, it is simply the length mapped to the target range in a linear distribution On the right, the 0 to 1 range is squared by using a Power node with an Exponent of 2. If you plug both into a Less Than node with a Threshold of 0.1 the result is the same, the maximum value of 0.1 is reached at the border of the plane.

However, if you lower the Threshold in the Less Than to 0.05 for example, the left plane shows a significantly smaller white circle than the right plane, which means that the area with values below 0.05 is larger on the right side than on the left.

You can increase this difference if you set a higher exponent like 3, 4 or maybe 16:

You can take it even further, the higher the exponent the smaller the area of high values. Now to use that in your Geometry Nodes setup, instead of setting the Random Value node to  a Min of 0.01 and Max of 0.1, you use 0 and 1 instead, then plug a Power node and a Map Range afterwards to get this distribution.
Below you can see the mathematical equations which correspond to the different settings in the comparison image above. As you can see, the higher the exponent, the more values you get in the lower range:


text:
Actions seem to overlap when animating
I'm completely new to blender and I'm trying to learn animating and have created a simple walk animation for my rig. I then clicked on "New Action" on the action editor and created my second animation which is a shoot animation. Everything worked great and I was very proud of myself until I switched back to my walking action and realized that now when my walk animation plays, part of my shoot animation also seems to play.
Can anyone tell me what I am missing? Am I misunderstanding the way this is suppose to work? I was under the impression that each action is a separate animation.
I have no idea how to fix this now and am starting to pull my hair out. I've tried googling the answer but it does not seem like anyone is having this issue besides someone on an old reddit post from 3 years ago who never received an answer.
Any help in the right direction would be greatly appreciated!

I can relate. How actions affect other actions can be tricky to understand at first. (It's similar to the concept of blend modes with layered images.) The best advice I can offer is to watch several video tutorials on Actions / the NLA Editor. Here is one such tutorial that I have personally found helpful. So I encourage you to start with video tutorials, and if you find out how to solve your problem, consider posting an answer to your own question. It might help someone else.

Suggest you also watch this YT video which explains the 'nuts & bolts' of animation in Blender including the NLA editor in detail.

Thank you so much @Mentalist & @JohnEason! These videos provided some clarity and I will try this as soon as possible. :) Will provide feedback on this post as soon as I have it working.

source: Stack Exchange

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

sort: votes


text:
How to make this forest cube?
I am not new to blender, but I am also not a master. I have a project I am working on for a family business, and I am trying to make a cube forest in Blender. However, I have no idea of how to do this.
I am taking inspiration from this image:

So I am wondering how would I go about this? Are there any tutorials I could follow?
The companies name: Tropical Carbon.
Thank you.

The easiest way is probably to create a cube and sculpt (here a quick try), then you can bake the normals:

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


text:
How to Convert Coordinate Inputs to Negative or Positive Numbers With Texture Nodes
My goal is to make a procedural diamond plate texture, and I want to make it as simple as possible. So, if I can help it, I don't want to just duplicate my Diamond-Shape node group and angle it the other way.
In a nutshell, I want my Vector Rotate node to alternate rotating the diamonds by 45 or -45 degrees. I figured out a way to get 1 or -1 based on an odd or even input using this equation: 2(x % 2) - 1 (you can see my best node representation of the equation in the Value-Alternate node group).
The problem is, I don't know where I get x, or my input.
In other words, I don't know if I need an input node or if I need to do some math with the grid vector. I think I need to be able to adjust each diamond in the grid individually.

My complete node layout:

Diamond-Shape node group:

Value-Alternate node group:

Here's a reference:

I don't know of any way to do it without duplicating the diamond shape group. This is what I managed to do with it https://imgur.com/a/nirB2FB basically, i duplicated it, rotated it and gave it a bit of offset then mixed it with the original.

The reason is that if you (somehow) rotate every other one of your diamonds as you say, you won't get something like your reference.

As @mqbakamqbaka says, you have to do one of the following things: 1. Duplicate the node group, rotate the output of the second and mix them together with Multiply or Maximum for example, or 2. duplicate the node group, make it a single user and change the internal 45° to -45° and mix them together like mentioned before or 3. if you want a single node group, open the node group and edit it by duplicating the internal process thread, one for 45°, one for -45°, and mix them together inside the group.

You will need to duplicate your diamond shape group
The reason for that is that the pattern of your texture doesn't really match the pattern of the reference. Here is why :
This is how your texture looks now (our diamonds have a lightly different shape due to the Vector curves node that I couldn't reproduce exactly) :

If you rotate each other diamond like you said, you will get either of those two here :

And none of those really look like the reference. The reason is that you actually managed to reproduce "half" of the reference, see :

The other half is just like the first half but rotated and with a bit of offset.
This is how I would do it :
First, I modified a bit your diamond shape group so that we can rotate the diamonds. I did that by adding a Vector Rotate node before the Vector Curves :

I added the angle of the rotation and your Normalize node as an input of the group for convenience. The normalize node actually controls the size of the diamonds so I named the input "diamondSize".
Using this node group with an input angle of 90°, I got the rotated version of the diamonds :

I can then mix them with an Add Node :

They are overlapping because I haven't offset the second one yet. They need to be offset about half of your tiling size on X and Y, which can be done by just adding a Vector Math Add after the Scale Node at the beginning :

giving this :

But the diamonds are too big, but since I exposed the diamondSize, I can change it by setting it to .15 instead of .3 :

I can feed that to the bump node to have the result :

Now all that is left to do is tweak the Vector Curves to shape the diamonds to your liking :

EDIT
I'll also suggest you to invert the output of the group node before plugging it to the bump node because, right now (if I copied your node setup accurately), your diamonds are going downwards instead of going upwards (White is up and black is down).


text:
Reliable upgrade for Blender 2.69 documents to Blender 3.4
How can I bring documents saved in Blender 2.69, and bring them forward to Blender 3.4, without losing anything?
There are existing questions asking about (for example) materials that get disconnected when upgrading to 2.8. I've experienced that, and more.
My question is not answered by that: I don't know these documents, so I can't manually re-establish (for example) the connections to materials.
If something gets lost in the migration that isn't obvious, I won't be aware of it until things come out wrong later. I want to reliably know that the documents do everything they did in Blender 2.69, when I migrate them for use in Blender 3.4.
Maybe I can export them from Blender 2.69, to some format that will preserve everything? (But then, the foo.blend file saved in Blender 2.69 is not reliably read by Blender 2.8 or later, so what would be better?)
How can I migrate these documents, automatically, to use in Blender 3.4, without fallible manual re-establishing of structure that is already there in the existing documents?

"How can I bring documents saved in Blender 2.69, and bring them forward to Blender 3.4, without losing anything?" To be blunt you can't. Blender is generally backwards compatible in theory, newer versions always open later files. In practice though a lot has changed, especially between two so distance versions, that it is not always possible to translate one-to-one old features to new. And we are talking within the same file format, exporting to any other exchange format is guaranteed to loose even more.

As Duarte said, you can't. The simple thing is, not everything is compatible, some things simply did not exist and especially there is no automated way to convert everything from such an old version to a recent one when you don't know the files as you said and have no idea what there could be probably necessary to be converted.

As others have said, you can't.  Incidentally the current version of Blender is 3.6.4 LTS (Long Term Support) and version 4 is due out later this year which may well break  older Blend files too.

Adding to the train of "sorry but you kind of unfortunate". Materials, some modifiers even, some compositing things, they will break and tell you nothing because some things were updated and just will try to convert the best they can, so that's why you'll not see any errors.
In a product I have I had to lose a day just to make it compatible then warn all customers: This is the last version where I'll support it. Update or else.
Workflow:
Open the two instances, b2.6 and b3.6 and append things a step at a time (worlds, materials, geometry etc.) This way you'll have good control on what's breaking and not. Gonna take a long while but you ensure everything will be updated the way it should. In some cases (geometry shouldn't be a problem) you'll have a quick time. Everything else node based, you better just have both instances run side by side and copy your work.


text:
Soft body simulation to 3D print
I have a soft body simulation that is about 20 frames long. I'd like to pick a specific frame and "fix" the geometry in place so that I can export the distorted model out for 3D printing. I'm new to Blender, and all I can seem to find is references to baking (which I don't think is exactly what I'm looking for). Every time I switch to edit mode, the simulation just pops back to the original, non-distorted geometry. Thoughts?

Get to the frame where it's how you want, then "apply" the soft body modifier, from the drop-down menu on the modifier to the right of the modifier's name.

Of course! I didn't realize that soft bodies were modifiers. Thanks

The comment is correct, but in case anyone else stumbles across this question, here's the answer:

Go to the frame you want
Apply the soft-body body modifier


text:
Why when i use interpolate hair curves modifier the original guide curve float away from the mesh
I'm new in hair system. I've using blender 3.6 to create my avatar. The hair curve always fly away when I add the interpolate hair curves or Duplicate hair curves (maybe there are others but I don't test all of them)
Anyone have the same problem?

I'm having the same issue! This didn't happen to my last character, and the only difference is that this time my character has a different pose position. But I really can't tell if having a new pose is the reason

@qhw have you checked if the Surface Deform GN modifier displays an error if you expand it? Select the hair cuves object, go to Sculpt mode, and choose Snap to Deformed Surface. If it worked, there shouldn't be an error message in the status bar. Also, make sure the Armature modifier (if your model has one) is above the Surface Deform modifier.


text:
Why are my render and preview images different? The preview is better
The low pixel version is the preview screen, which is clear but has lighter colors. The high-quality version is the rendered image, and both are using the Cycles renderer. The preview have more details and colors event with pixels. I don't understand why.  What could be causing this?
Thank you.

Do you have some compositing nodes, and possibly a denoise?

Thank you for answering. But I've tried a denoise. There was worse. And I don't use any compositing :(

Try copying the noise threshold and max samples settings from viewport to render settings and render again. That sould at least make the render as noisy as the preview if you like it. Not sure why the colors would be different without compositing though. Is your screenshot showing the render from blender, or from a picture file you opened?

for the color problem, there was a similar question here: https://blenderartists.org/t/ffmpeg-desaturation/1370535 I suppose you are in Standard color management and not Filmic?

@L0Lock Thank you . I think I find the problem. That is because of the camera focus empty object is far from the face. I don't realise that...


text:
Can't find any way to keep already mapped UV's from a geometry node
I've spent well over an hour trying to find substitutes for geometry nodes not exporting/saving UV data. I've tried using the 'make instances real' command recommended by other users with this issue with no success because of the use of curves in my geometry node setup, I've seen the 'attribute' route of fixing this but since I'm exporting this via an FBX to an off-topic program this won't help. Are there any alternatives I'm missing that can fix my situation?
My blender version: 3.0.1

I think we're all in that boat right now, just waiting for UV data to be included in GN. I asked about it recently too.

Yeah, I recently ran into the same issue. Read up on the developer thread about it, and they (appear) to be working on it, but no progress yet really: https://developer.blender.org/T85962


text:
Just spent an hour painting a texture and now its turned completely black
I'm under heavy tension that a texture I've been painting has randomly turned completely black besides its texture icon.
I've already checked my nodes and the image color space is already under 'Srgb' I can't recover any save file as I've just noticed this probably about 1 hour too late. Is there any way to recover the blackened texture?

Most likely you won't be able to recover the texture. The only thing you'd be able to do is change your workflow moving forward so that problems like this are greatly minimized. One thing you can do is File > Save Copy to create backup points for yourself to go back to

To further elaborate on the above comment by Gunt.r, images edited and/or painted within Blender are not saved as part of your file when you hit ctrl-s. You need so save them out as separate files (I believe it's alt-s or you can use the top menu bar in the image editor).


text:
How do I get the euler rotation of a bone in pose mode?
I'm coding a live feed of the bones rotation from a IK armature, but it keeps priting 0 for all values.
This is the code:
def execute(self, context):
        armature = context.scene.objects["Armature"]
        bones = (
            armature.pose.bones["Segment1"],
            armature.pose.bones["Segment2"],
            armature.pose.bones["Segment3"])

        def to_run():
            for i in range(100):
                print(i)
                for obj in bones:
                    loc, rot, sca = obj.matrix_basis.decompose()

                    print(obj.name, rot)
                time.sleep(0.1)

        new_thread = threading.Thread()
        new_thread.run = to_run
        new_thread.start()

Here I get the bones i want the info from, then cycle them in a loop to get the rotation, and it runs on a thread for the live feed.
I was able to do it with an object on object mode, so i know the problem isn't the thread or loop.
This is the output i get:
0
Segment1 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
Segment2 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
Segment3 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
1
Segment1 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
Segment2 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
Segment3 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
2
Segment1 <Quaternion (w=1.0000, x=0.0000, y=0.0000, z=0.0000)>
Segment2 .... and so on

This is the armature. The bones I want the info from are the 3 angled, excluding the last(IK).

obj.matrix_basis gets the transform data before constraints are applied, and IK is a constraint. You want obj.matrix instead, and you can use rot.to_euler() to convert it to euler. For reference: https://docs.blender.org/api/latest/mathutils.html?#mathutils.Quaternion.to_euler

Ok, that worked perfectly. Thank you Very much.


text:
Join multiple Geometry Node's mesh primitives to one to be able to bevel or subdivide them
For my project, it made necessary to build a cube from 6 separate faces, because a need to controll the material for every single face. I'm open for suggestions on different aproaches.
I was able to build it, but when i tested with a Subdivision surface on the joined mesh, the faces subdivided separately.
I guess i need to join the meshes, instead of the geometry, but I have no clue on how to do this.

Here is what i got untill now. All the faces(grids) with thir calculations joining into a single geometry.
Thank you, already.

To assign separate materials to the faces of a cube, you don't need to start with separate planes. You can simply utilize the Selection socket of the Set Material node, and assign materials to them based on their Index number:

That setup assumes the cube is made out of single faces. If you need to, for example, subdivide them before assigning materials, or you really need to start with separate faces for some other reason, you can use the Merge by Distance node after Join Geometry to "join the meshes instead of the geometry", as you say:

The merge by distance is what I was looking for. But the what you suggested makes more sense. Thank you very much.


text:
Scaling centered on certain origin is not working need help :(
Trying to scale vertices centered on certain origin where I want.
Unfortunately scaling through the center origin is only available even though I already did 'cursor to selected' and 'origin to cursor'. Need help

Sorry, how did you want it - like your first image (scaled in one direction), or the second image (scaled in both directions)?

First image is what I want. Sorry I think I didn't asked well

it looks like you're confusing Transform Orientations with Transform Pivot Point (which is the panel on its right)

Although you can do it with Christopher's answer, it would have worked with the cursor. In the same area where you can switch to Active Element as Christopher suggests, you can also switch to 3D Cursor which would have been what you want in the first place, as moonboots' comment indicates.

Oh yess I find the way. Christopher's answer is based on active element and the way your saying is 3D cursor. The real issue I'm confusing with was the transform pivot point as moonboots says. Thanks a lot

Set your Transform Pivot Point to "Active element". Select all the vertices you want to scale, making sure to select the one you don't want to move last (so it's the active one). Then scale - all the other vertices will scale relative to the active vertex, which can be thought of as somewhat of a "center point".

NOTE - Don't forget to switch your Transform Pivot back to "Median Point" afterwards, or you'll go absolutely nuts later trying to figure out what's wrong.

Thanks a lot! Really appreciate.


text:
I have an issue about short cut setting
I assigned the quick favorites' key as "Alt + Q"
it's working in object mode, but somewhat it's not working in edit mode...
Does anyone know how to handle this problem?
I would be really glad, if someone can answer to this question thanks.

there might be some conflict, you can open preference-keymap and input alt q to search which shortcut use this key.then change it if you don't need it.

@NatureK You beat me to it while I was grabbing a screenshot. You are correct.

thank you all!! those really helped me! a looot!

You would have to remove or re-assign conflicting keymaps.

thank you soooo much!!! I thought I did search this. which I didn't..

@Seong if the answer is correct, mark it as such (on the top left of the answer)

@moonboots thanks for letting me know!


text:
How Can I combine these meshes without it smoothing out?
I'm still new to blender so I'm following tutorials and things to make this character. At some point while working on attaching the head to the body I accidently deleted a piece of her knee, so I imported in an old model that still had the knee. But when I bring it in it has these blue lines on all the edges, and when I join the two meshes the new knee I brought in smoothes out like it has a subdivision surface modifier on it (even though I've never put one on the body yet). I know I could rebuild it I just want to troubleshoot why this wouldn't work.

the blue edges look like Mark Sharp. In Edit mode/Edge Select, try to select all and right click > Clear Sharp? Also in object mode right click and Shade Smooth or Flat depending on what you want

Thank you!! shade flat brought it back to normal! I had a feeling it would be a stupidly simple fix lol thank you!

The blue edges look like Mark Sharp. In Edit mode/Edge Select, try to select all and right click > Clear Sharp. Also in Object mode right click and Shade Smooth or Flat depending on what you want.

Just at a glance, I can tell you have flipped/mismatched face orientation. Select all those faces, go to Mesh > Normals > Flip. I'm not sure about the smoothing, but that should help

hmmm, I did check that and it all came up blue. for safety though I did as you suggested just in case (flipped them to red and back to blue).


text:
Is There A Customizable User-Defined Button Tray?
Does Blender have a built in tool, or is there an addon (or addon/ui designer) that would allow me to have a button tray with user-defined buttons?
Basically I would like to have a tray with specific actions and functions, for example a button to automatically boolean subtract and apply instead of having to go through menus or shortcuts, a button to align selected to Y-0, etc.
Shortcuts are difficult for me to use (and sometimes impossible), so a way to make my own GUI panel with a selection of any of Blender's actions would be greatly helpful.
Thank you for your time and help!

Thank you for your suggestions, I will try them.

There is no built in tool that would allow you to build a customized button tray.  As far as I know, there is no add-on that would allow you to generate buttons into a tray the way that Quick Favorites allows you to add menu entries to a favorites menu.
If you can tolerate having a single shortcut (default Q) to bring up a menu to select from, then Quick Favorites might do for your purposes.
The next closest thing available is an add-on that allows you to use a node system to build your own scripts.  Serpens is a paid addon that is meant to be used to quickly script things like your button tray, but does require you to do some scripting via its node system.
The usual approach for building custom trays like this would be to do your own add-on, customizing the tools to your purpose.  There is a tutorial, Scripting for Artists from the Blender foundation that provides a good introduction to writing Blender scripts in Python.
The scripting approach is fairly straight forward.  You write an operator class in Python to implement the operation you want, and you write a panel class to contain the buttons.
I'm unaware of any other approaches currently available.

Sure is- you're looking for the Quick Menu, which is accessible with Q. Right Click on any function and you'll see an "Add to Quick Menu"- choose that and it'll add.
The Quick Menu is unique per view, so you can have different shortcuts in Object vs Edit mode, for example.


text:
Separate by loose parts not working?
For some reason, trying to separate by loose parts in my project doesn't work. I can hit the button as many times as I want, but the pieces stay mirrored together. Specifically, I'm trying to separate the armor plates on the model (the forearm pieces, the shoulder, thighs, etc.). Is there something I'm missing? I've attached the .blend file below.

Did you uncheck "Merge" in the mirror modifier?

You have to first apply the mirror modifier. Then TAB into edit mode, select all -> separate -> loose parts. Then it works.


text:
Diagonal lines on my background grid
Does anyone know why my grid has diagonal lines in orthograpic view? I'm on 3.1

It's a camera view problem I think, your model is too big and has weird scale, look at the scale values in the top right of your interface. These should ideally be around 1, 1, 1

I had a similar issue mine was fixed by changing the Clip End to 10000 see image below.

After changing the numbers:

A good video that helps explains scaling in blender and how to set it up is https://youtu.be/VihRvil3138
If your working in Meters just adjust it.


text:
Particle System (Collection) picking children of objects in collection
I want to create a forest in blender and created two tree models. I want the trees to be randomly placed on a plane by a particle system. Thats why I put them into a collection. However, the particle system uses all the children objects of each tree, for example the trunk. So I want to know how to tell the particle system to use each tree as a whole.
Here is an image of the collection:

Here is an image of the current particle system:

I enabled "Whole Collection" in the render tab, but then, like the name says, all the objects of the collection where placed in the same pattern across the plane - that is not what I want. I want the trees to be randomly placed individually as a whole. Did I do something wrong with parenting the objects?
I hope you can help me! Thanks for your help in advance!

This tutorial will help you... https://www.youtube.com/watch?v=bLw0HwphXO0&list=RDCMUCOKHwx1VCdgnxwbjyb9Iu1g&index=7

Thank you for your answer! So I need to use the Geometry Nodes or is there another way?

I think GN is the most easy and clear way.


text:
How do I change my resolution and aspect ratio for tik tok dimensions?
I edit a short video that is 1920x1080 by default I want to change it to tiktok dimensions (1080x1920 9:16) but when I do it distorts the video. How do I make it so it fills instead of stretches. Thank you

How are you changing your dimensions currently? What process are you using to do this? It may help if you provide screenshots or, if necessary, the .blend file.

it cannot "fill" you can only size and then crop/cut it.

select your movie, Shift - A -> effect strip -> transfrom
adapt scale values as you need it (change both to same value so i doesn't get distorted), move x and y as you need it


text:
Scaling edges loop along themselves to a plane/grid
I have to move the edges loop along themselves and align them in a plane
Is it possible to achieve the same result as in this video on blender?
scale constraints edges

Does selecting the loop, hitting G twice then dragging with the mouse achieve the result you want?

unfortunately no, I can't move the whole loop together

@Christian can't find one yet, myself, despite MVB's flattering comment.. Max's multi-constraint snapping is one of the things I miss about it, in Blender. That,  quick weighted selection for modelling instead of proportional editing, and Editable Mesh. The closest I can think of is to cut a new loop with Ctrl F > Intersect(Knife) but that's not what you want.

The best way I can come up with is to enable snapping in face mode with default settings:

Then moving the vertices one by one with GG:

thanks for the tip, do you also know of a method to do this on the whole loop selection?

@Christian I would post that if I figured something, maybe R. Betts will know, if not vanilla then some addon.


text:
Resample Curve Node , length precision
can i get precision on resampling a curve in GN?

You cannot get precise values when you use Length mode if the whole curve's length isn't a multiple of the resampling length.
To quote the Blender Manual on the Resample Curve node found here: Resample Curve Node:

Inputs
Length
The approximate length between the control points of the new splines.
and
Modes
Length
Calculate the number of samples by splitting each spline into segments with the specified length. The length will be rounded down so that a whole number of samples will fit in each input spline.

As I can see in your screenshot it looks like your curve is 70 m long. Your resampling length is 11 m. This means, you'll have a segment number of
$$\frac{70m}{11m} \approx 6.36 $$
but since you can only separate the curve in an integral number of segments consisting of an integral number of points you'll get a rounded down 6 segments between 7 points.
Now Blender tries to evenly distribute the points between the start and endpoint of the curve, leaving you with a resampling length of
$$\frac{70m}{6} = 11.\bar{6}m $$
which is what you see there. Since 11 is no integral divisor of 70, you cannot get a precise 11m resampling of a 70m curve.
Of course, the smaller the resampling length, the smaller (and less noticeable) the error. If you would set the length to 1.1 instead of 11 for example, you'll get 63 segments with a length of 1.111...m which is closer to the desired value.

+1, very comprehensive!  I suppose you could suggest trimming the curve , to achieve exact intervals?

@RobinBetts Sure, but since the question is not giving any information in how far the original curve length is determined and has to stay unaltered for example, I prefer to keep the answer just with an explanation of what's going on there. After all, I don't know if it is desired to shorten the curve to 66m, expand it somehow to 77m or have 6 segments with 11m and one last (or first?) with only 4m...

That makes sense ..:)

@Christian By the way, if you are wondering why there is a Length mode although it doesn't use a precise value and you would get the same result if you just entered the number of points - it's all about when you use it on many different curve lengths if you prefer the number of points to be always the same or the general length of the segments.


text:
Replace objects in a collection with one mesh
How is it possible to replace objects in a collection with an object while keeping the correct rotation from the collection with geometry node?

...replace objects in a collection with an object while keeping the correct rotation from the collection...?

If we can somehow have direct access to the attributes of the instances, copy the attributes (rotation) of the objects in the collection and then have them transferred to the desired object (Suzanne) then this task should be easy enough to deal with.

However, since most of things mentioned above aren't available at the moment, in your case, I'd suggest another alternative route by calculating the angle of rotation between the Z-Vector and the normals of the cubes' faces. Once you're done with the calculation, you'll get back in return the needed Euler rotation, which you'll then use to rotate whatever object you want to replace the cubes with (in this case, Suzanne).
Here's the full set-up.


text:
How do I get the menu on the right side of the screen back?
I just started learning blender and was following the donut tutorial on youtube but I closed the menu that shows all the different options and settings on the right by accident. It is there if I start a new project, but on my current donut project, it is still missing. Can someone please tell me how to get this menu back? I included a picture, basically a "before" and I circled the part I am trying to get back. Please help

You can open a new panel by moving your mouse e.g. to the lower left corner of another panel until a cross appears and then drag it up.
Then change the panel to "Properties"

ok but if I don't want these floating pink hexagons?

@moonboots : if you want to have a new panel - you will have that hexagons. You know - Nothing is for free. Everything has its prize.

And by the way - they are pink and cyan….


text:
Recreated low poly torso shows unwanted hard edges
I stumbled over a nice low poly model by "theroyalskies" called blenda and was baffled by the smooth shading of the model even though it has only a few faces especially around the torso area. I tried recreating the torso by a new mesh and snapping its vertices on the blenda model and after building a few faces my low poly torso shows hard edges - unwanted ones. My understanding is that the faces and normals are responsible for the lighting/color of the face and the fewer polygons are used the rougher the lighting.
But why is the blenda model on which my torso model is based on appearing so smooth? I have the same material and nothing appears to be off. The blenda model has an armature modifier but that would be irrelevant for the shading as I understand it.

Kind regards and thanks in advance

You just need to set the shading to smooth. See the answer. Thank you for pointing me to RoyalSkies, he has awesome tutorials and ressources.

Smooth shading is not something affected by the armature modifier, or by the material. It’s part of the mesh data. Try 3D Viewport -> Object -> Shade smooth.


text:
Is there a way to add displacement on top of displacement?
I'm trying to add snow on top of some mountains using the shader node version of displacement.
I've realized that plugging the displacement into the normal of another displacement just mixes both of the displacement nodes but doesn't actually add it on top of each other.
Is there a way to make the displacement of the snow go on top of the mountains displacement and furthermore the displacement of the snow also be affected by the mountains displacement?

Use a MixRGB node to combine the displacements, You can set it to "add" or "substract" for displacement maps (black and white). I am not sure if you can displace with normal maps.


text:
Why do some faces of my model show up like this? I also cannot create any loop cut that runs through them

Something is making these faces appear this way. I can't loop cut through them, and overall it's bothering me. Something looks like it's not right. I tried merging by distance to remove any doubles but nothing helps...

Looks like the case for the Sony ANC earplugs (WH-1000XM3) ;-)

@U.Windl yup, it's what i'm trying to make

Check the direction of the normals. Mesh > Normals > Recalculate

The hole on the bottom is wrong, you create some ngons and poles. Boolean is not a good way for modeling if you want further adjustment. Adding some cuts usually meaningless, the hole should be rebuild.Try to learn something about modelling, there are many tutorials.

I guess before judging him for the use of booleans, he should rather correct the orientation of the faces.


text:
GreasePencil goes trough a mesh in wireframe mode 2.79
Good day. I'm trying to use GP to trace some details on the mesh from the background image, which means I need to work in the wireframe mode. But it seems GP won't snap to surface properly:
A. Detail is drawn in Front Ortho view, seems okay.
B. Let's rotate the camera to check if the snapping is correct. Nope, it isn't. GP goes through the mesh as if there are holes in geometry.

Switching to the Solid mode seems to fix the issue:

But it is obv impossible to see the background image this way which defeats the whole purpose.
 Here are my current GP settings:

Could someone help? Thanks anyway.
 Regards.

Okay, the Related sidebar just provided one of the workarounds once the question was posted:
See background image through solid shading in edit mode
it is possible to remain in the Solid mode and then simply switch the background image from being on the back to be on the front. Then some opacity tweaks will do the rest.
Still if someone could point out where was my mistake in the default set up it'd be much appreciated as it will help me understand the GP workflow a bit better.


text:
Make a change to pose through all frames
I started animating before even considering the hand pose of my model, and now, when my character runs, he looks like a karate chopping maniac.  I would hate to have to start reanimating from the ground up, so is there a way to change the hand pose and apply it all existing frames?

can you upload the .blend? http://blend-exchange.giantcowfilms.com/


text:
Algorithm for retargeting facial bone animation (location only)
I am looking for a method to automatically retarget facial bone actions between two identical rigs with different morphology, so that poses from the source rigs can be used on the target rig. Relevant is really only the translation component for each animation curve, because rotations are used much less in facial animation.
The best method I found so far is to take the dimensions of the source and target rig and calculate a scaling vector (per axis) based on the difference. In short:
scaling_vector = target_dim / source_dim

Just to make things clearer, here are two poses applied to the same Rigify rig:

I am looking for better algorithms to solve this task and ideally respect the relative distances between bones in the source and target rigs.

I found a satisfying solution. Instead of scaling the entire animation based on one factor (see above), I am calculating the difference in direction and orientation for all bones in source and target rig. This allows me to calculate pretty accurate scaling factors for each bone in each pose.

Calculate vectors for each bone to all other bones in both rigs (rest pose).
Go through each pose and get the translation vectors for each bone in world space.
Find the closest matching vector in the source rig (from 1) by comparing distance and orientation.
Find the same vector in the target rig (from 1).
Get the scaling based on the difference in length for these two vectors.
(optional) get the rotation difference for the two vectors.
Apply the scaling (and rotation) to the translation vector.
Create new keyframe

I am using this to scale a pose library between rigs of the same structure and it's very accurate on the rigs I tested so far. I am not sure if this would work very well for an entire animation. The biggest limitation is that it only works for rigs with exactly the same bone naming and structure.
I am still interested in other solutions, if anyone reading this has experience with bone retargeting.


text:
Apply World Rotation to Pose Bone (Before Original)
As mentioned in the title I need to convert rotation values from world space to a pose bone. The script should work with any given rig and regardless of the orientation and roll value of the pose bone.
Essentially, I want to emulate the behavior of the Copy Rotation constraint with the Mix mode set to Before Original.
Here is what I got so far:
# ... rot is the world space quaternion that I want to add to the head bone.

roll_matrix = Matrix.Rotation(self.head_bone_roll, 4, 'Y')

new_rot = self.head_bone.matrix.inverted() @ rot.to_matrix().to_4x4() @ roll_matrix.inverted()

self.head_bone.rotation_quaternion = new_rot.to_quaternion()

The rotation itself is correct, but it needs to be added as a relative offset exactly like in the pose bone constraint. Currently, the bone rotation is overwritten in a way that I don't fully understand and depending on the bone roll. It would be really great if someone could help me solve this problem or point me in the right direction (I am pretty sure that questions like this have been answered sufficiently here and else where, but I haven't been able to solve this yet...) Thanks!

Ok, after some back and forth, I was able to solve this. Here is what worked for me:
# Get the initial rotation in world space:
world_head_mat = self.head_obj.convert_space(pose_bone=self.head_bone, matrix=self.head_bone.matrix, to_space='WORLD', from_space='POSE')
self.initial_head_rotation = world_head_mat.to_quaternion()
# This is how I am applying the animation to the bone.
# I tested it on various rigs with different roll and bone orientations.
rot = rot.rotation_difference(self.initial_head_rotation)
rot = self.initial_head_rotation.inverted() @ rot
self.head_bone.rotation_quaternion = rot


text:
Bake Subframe Animation
I am trying to bake subframe animation data from a control rig to shape keys.
Here is my current approach:
        for fr in all_frames:
            frame = int(fr // 1)
            subframe = fr % 1
            context.scene.frame_set(frame=frame, subframe=subframe)
            for d in shapekeys.animation_data.drivers:
                shapekeys.keyframe_insert(d.data_path)

Unfortunately, the keyframe_insert method discards the subframe component.
Is there a way to bake to subframes or is this a limitation of Blender?

Ok, I was able to solve this for now. While it's not possible bake to subframes directly (afaik), it is possible to use the path_resolve function to get the evaluated value. Using this method, I was able to keep all details on subframes.
        # store the animation data per driver {data_path : [(fr, value),...]}
        anim_data_dict = {}
        for fr in all_frames:
            frame = int(fr // 1)
            subframe = fr % 1
            context.scene.frame_set(frame=frame, subframe=subframe)
            for d in shapekeys.animation_data.drivers:
                anim_data_dict.setdefault(d.data_path, []).append((fr, shapekeys.path_resolve(d.data_path)))


text:
Insert one key frame to all shapekeys in blender
I need a python script to add a dummy keyframe to all shapekeys at one particular frame...
Pls anyone can help me...

Insert keyframes to all shapekey values
for active object:
import bpy

def add_all_keyframe(obj, attr="value", frame=1):
    if obj.type != 'MESH': return

    blocks = obj.data.shape_keys.key_blocks
    if not blocks: return

    for k in blocks:
        k.keyframe_insert(attr, frame=frame)

add_all_keyframe(bpy.context.object)
bpy.context.scene.frame_set(bpy.context.scene.frame_current) #update ui

for selected object:
import bpy

def add_all_keyframe(obj, attr="value", frame=1):
    if obj.type != 'MESH': return

    blocks = obj.data.shape_keys.key_blocks
    if not blocks: return

    for k in blocks:
        k.keyframe_insert(attr, frame=frame)

for obj in bpy.context.selected_objects:
    add_all_keyframe(obj)
bpy.context.scene.frame_set(bpy.context.scene.frame_current) #update ui

Thanks for quick response & solution...

In second case
In line 8 can I change to for obj in bpy.data.selected.objects: to insert keyframe only to selected object?

@RadhakrishnaRao
Hello and welcome. This site is not a regular forum, the answer section is reserved exclusively for answering the OP question, to post comments or replies please use the comments section instead. Please don't reply "Thanks" as an answer or comment, instead upvote the post that helped you. If you feel it completely solved your issue consider marking it as accepted.


text:
edit a 2D XYZ Function?
I'm a Blender newbie. This is my first approach and I am learning this program and how to use it in a more efficient way...any suggestion is very welcome!
Anyway, I am trying to draw a scientific figure. I want to draw a series of 4 pulses and I used the "XYZ math function" that allows me to write directly the mathematical formula for each pulse...However, now I'm not able to edit these pulses (like the color, thickness of the line...). How can I edit this line??
Probably this is a stupid question...but any tip is really appreciated!

My suggestion is that you can convert this mesh of vertices in line into Curve like this here:

This way you will get your pulse as curve and you can go to Object data properties and use Geometry > Depth to give it some mass

if you want some points to be more thick, you can enlarge them by using Alt+S

If your curve will be to sharp, change resolution from 4 to something higher

Thanks a lot!!!


text:
Modify instance geometry based on the location of the instance
I'm trying to use an attribute generated from an instance position to affect the geometry of the instances. For example with the below setup, let's say I want to shift just the 4 top vertices of each cube, along the x-axis, by the amount given by the noise texture. Is it possible to use the noise texture value after realizing the geometry, or modifying the geometry in some other way?

This problem has come up in a variety of guises: 'How do we get a per-instance attribute into realized geometry?'  If you want a per-instance color, deformation, or anything else, the route isn't obvious.
The hitch in Geometry Nodes at the moment is that there is nowhere on an unrealized instance to store an attribute. This looks as if it's going to change; there may be an 'Instance' domain coming to the Capture Attribute node in Blender 3.1. At the time of writing, it doesn't yet work.
Edit: At 29 Dec 2021, in Blender 3.1 alpha, the 'Instance' domain is available and working. It makes the following hack unnecessary. See @qullenform's answer, instead.

If the instances are small enough, and don't overlap, you can often get away with direct transfer of an attribute to geometry by its vertex-proximity to the points on which the instances were generated, as shown in @Harisreedhar 's answer
If not, though, for now, you can employ some variation of this hack:

Make a parallel branch of your tree, in which instances are scaled to 0 before being realized.
Transfer the attribute to the scale-0 realized instances by proximity ('Nearest').
Transfer the attribute back to the full-sized geometry by Index.

This makes the difference between the case on the left, below, (where the attribute is interpolated across vertices,) and the case on the right, (where the attribute is picked up per-instance).

That's a nice trick +1

The T.A. node on the right doesn't have anything connected to Index socket, but it still is fed an index just like texture nodes in shaders are fed coordinates even if a vector is unconnected? I only just started learning geonodes so some rearranging my neurons hurt, like why two T.A. nodes are needed? Why the noise texture? I thought I connect an attribute I want to get from a given geometry, apparently that's not how it works

@MarkusvonBroady That one made my neurons hurt, too. I have to confess, I found it only as the result of exhaustively stripping out as many nodes as possible. It's the first TA I find confusing, not the second. The second one is OK. It transfers from the target (the realized instances at scale 0) to the  first geometry encountered on its little forward branch ( full-sized geo in the Set Position ,) using 'Index' as the key to match by ..(as opposed to 'Nearest', etc). It is not transferring 'Index'. It is transferring the 'Fac' from the texture it picked up earlier, by 'Index'.

@MarkusvonBroady Ahh I see what you mean.. The 'Index' input to the TA defaults to the index you see in the left-column you see in the spreadsheet. You could replace it with a roll-your own 'ID' or any other integer.

In Blender 3.1+ there is the possibility to capture an attribute in the Instance domain, which makes various hacks superfluous.
Additionally, it is recommended to use a specific vertex group previously created as Group Input as Selection.
This selection is simply used as an input in the node Set Position.
Of course, the vertex group can also be used directly during instantiation in the Instance on Points node, depending on what result you want.

Why a vertex group instead of a mathematical solution?
If you want to instantiate different objects from a collection, you only need to create a vertex group in these objects with the identifier you chose before and define which points should be modified. This makes the selection easier to handle and less prone to errors.

To make a vertex group available in geometry nodes, simply create an Input of type Boolean, and specify the identifier of the vertex group.

I see... On realizing instances, the attributes on the instances get copied to all elements of resulting geometry.

@MarkusvonBroady Yes, and as long as the instance is not realized, it is treated as a point that is assigned exactly one value from the texture node.

Can this technique be used to capture the texture color of an emitter mesh so that each instance receives the color from the area it was emitted from? (Something like this, except using GN instead of a particle system.)

@Mentalist I am sure that an interesting answer can be found if you post this here as a separate question.

@Mentalist Did you mean something like that? http://e.pc.cd/s1gotalK

@quellenform Sorry for the late reply. Yes! That's exactly what I meant. I have posted a new question. Please consider posting an answer. I even used your screenshot as a reference image. ;-)

Hey, may I know if Capture Attribute node is really necessary or why is it needed? I tried this approach, and it worked without even capture node. The game changer node for me was this Realize Instance node mainly. I connected Noise directly to Offset input. And now I have random noise on each instance. I wonder if they updated something in latest versions.

@Vikas Yes, in this setup Capture Attribute is indeed necessary, because only then each of the four upper points of each object gets the same position. If you would not use the node, every single point would get a different position, because after realizing the instances the node Set Position works in the point domain.

Ah I see. My requirements were different so I didn't need it.

Something like this using Transfer Attribute node?


text:
I can't select objects when I deactivate overlays
When I deactivate overlays I can not see any lines on the object and I can't see wich vertices, edges or faces I have selected. I just started using blender yesterday  and I made a model. Everything worked fine, but then I think I accidently pressed a butten or clicked something and since then I cant work  on without overlays anymore because I cant select anything. How can I change this ?
Also it doesnt work if I reload the factory preferences because I didnt save the preferences at the beginning.

Without seeing an image of your screen this is a guess, but you probably clicked on the Overlay icon in the image below. Click again and see if everything reappears.


text:
Copy local position of child object to a different child object
So I have numerous copies of objects with long parent/child relationships. I want to add add and parent a new child at the end of each parent/child "list" at the same position ( essentially, I want to add a "hand" at the end of each "arm" ).
So, I can create and duplicate a hand, and parent them properly, but because each body is in a different location/rotation in the world. I have to MANUALLY move each hand to it's world location, because the little Transform Flyout doesn't show each hand in a local position/rotation viewpoint; it only cares about the world settings.
Every other program I've used shows that data in a local view...and all I would need to do is select all of the hands, and (for example) enter (1,2,3) in the position requester, and then all of the hands would just instantly move to a local offset position of (1,2,3) in relation to it's parent; Blender just moves all of the hands to world position of (1,2,3).
How do a do a "mass move" of setting a bunch of child objects to the same local offset positions from their parents?

Ctrl + P -> Set Parent To Object (Without Inverse)?  Is this the function you're looking for?

There is also ALT + P > Clear parent inverse if you want to reset the transform after the fact


text:
How to bake an animated bezier curve?
I have created a vine like structure from a Bezier curve and used another bezier curve as its taper object. I have then animated the bevel to make it appear to grow.
I'm trying to import this animation in to SPARK AR and other videos seem to suggest BAKING it. But I've tried with no success.
Is there an alternative way to make this animation i.e. with an object and modifier or is there an additional step when baking Bezier curves?

When it comes to mesh animation, game engines commonly support only two things: bone deformations and shape keys. Anything else "might" be supported, in some corner cases, but most of the time it's pointless to go out of the known road.
I don't know SPARK AR but considering how you made your animation, I'd suggest you to try to export your mesh as an alembic file, most modern game engines support alembic or at least interpret it as a mesh with a bunch of shapekeys.
If this doesn't work, then I guess you will have to redo your asset with your target software's limitations in mind. Which you should ALWAYS do in any project.


text:
Part of my Mesh won't follow the rig (i used autorig pro add on)
I tried to build bone myself for facial rig (actually for mouth) and I used autorig pro add on, I add more bones and connect to original rig, it worked and follow the main bone, but when I bind it the mesh won't follow the bone.

after "Match to Rig" I bind it, and the mesh following well until I move the jaw, and both of lip controller and the mesh won't follow it, the mesh only following the head controller

this is how I move jaw controller

Am I doing wrong or missed the steps, please tell me to fix this
and this is file https://gofile.io/d/QFCOCP

There are two things that are responsible for this.

When you created the bones you did not mark them as deform bones.
You do not have vertex groups corresponding to any of the new bones that you created.

To fix 1, tick the Deform checkbox in the Bone Properties tab of the Properties Editor.

To fix 2, create a vertex group with the same name as each of the deformation bones that you created. Then, use the 3D viewport's weight paint mode to set the vertex group weights. These weights control the influence of the corresponding bone.

IT WORKS !!!  Thanks for the advice. But I still wondering, if three of the mouth bones should use Deform to move a skin, why not for the other bone
Is that because the other bones are origins from autorig ? or maybe there's something else ?


text:
White Cube instead Quick Smoke in Cycles

I see a cube instead of smoke. I wanted to use quick smoke in the scene, but I see this instead. When I create a new project, everything works as it should, but this project has such a problem. Someone help!

can you share that object/file?

This is the standard cube to which the quick smoke is applied. Exactly the same result I see when applying quick smoke to a sphere .... What am I doing wrong?

If a new project works as expected, maybe there is something wrong with this project and you should simply start fresh? Is it only incorrect when you render it or in the viewport in Solid View as well? Are you on a frame where the cache is not baked? Have you plugged a shader in the Surface output of the smoke domain material?

I am asking for your file because at this moment I don't know if we are in material preview or live render preview, if things are enabled or disabled and if it works on different system than yours, also there is no information about your settings or materials and lighting, this needs more details

https://drive.google.com/file/d/1PGt1Ak6wdWRzsEeknqZBHA9v7Y_sv1jy/view?usp=sharing
I dropped the project. Maybe I'm having some problems with the settings?
If you create a cube or sphere and apply quick smoke to it, you will immediately see a bad result.

Hope this helps since I had a similar problem. Select the smoke domain, go to Shading, Principled Volume, Emission Strength and set it to 0 (zero).

authors: Евгений Торубаров


text:
Using Attribute Proximity in Blender 3.0
I have followed a tutorial (https://www.youtube.com/watch?v=_mjitYBn3s0) to create a node that changes material based on the proximity of an ellipse but quickly realized that some nodes have been replaced in blender 3.0 and I'm not sure how to get the same effect using the updated nodes like "Geometry Proximity". Hopefully, someone can help me out.
Geometry nodes and material Attribute:

There have been significant changes between 3.0 GN and earlier versions.  It appears that you're using nodes that were created in an earlier version.  While 3.0 will try to import these, most of them are so different that they won't actually do anything.  What you want is something like this:

What I'm really doing is creating a field-- a function-- that gets run on geometry and outputs to attribute "D".  That field takes the position of the geometry, at the time that it is evaluated (which is currently during the Group Output, but in the future should be just before the Group Output) and uses it to judge proximity to the target object's faces.
I'm showing a lot of things in this image, and a lot of them are important.  On the sidebar of the geometry nodes editor, I've defined what type of data the "Value" output has, in this case, a single Float.  In the modifier, I've specified which attribute to use to hold the output of the geometry nodes.  These are not optional.

Thank you that works!

huh. i better start learning the nodes now or I'll fall too far behind :)


text:
Blender addon function only runs once on install
I've created a Blender addon, one of the functions (It creates a bunch of materials and handles visibility of frames, it's the update_materials function) only works the first time when you install the addon, when I open a new Blender file and try again, everything works but this function. Does anyone know why this would happen? Here's part of my code:
import bpy
import re

class StopMotionAddonPanel(bpy.types.Panel):
# Adding panel

class OBJECT_OT_CreateStopMo(bpy.types.Operator):
# Innitiate Stop Motion tool

class OBJECT_OT_NewFrame(bpy.types.Operator):
# Create new empty frame

class OBJECT_OT_DuplicateFrame(bpy.types.Operator):
# Duplicate frame

class OBJECT_OT_SetPosition(bpy.types.Operator):
# Set position

def menu_func(self, context):
    self.layout.operator("stopmotion.create_stopmo")
    self.layout.operator("stopmotion.new_frame")
    self.layout.operator("stopmotion.duplicate_frame")
    self.layout.operator("stopmotion.set_position")
    self.layout.prop(context.scene, "onion_skinning", text="Onion Skinning")
    self.layout.prop(context.scene, "frame_visibility", text="Frame Visibility")
    self.layout.prop(context.scene, "frame_selector", text="Frame Selector")

def update_materials(scene):
    frames_collection = bpy.data.collections.get("Frames")
    active_frame = bpy.context.active_object
    show_all_frames = bpy.context.scene.onion_skinning
    frame_visibility = bpy.context.scene.frame_visibility

    if active_frame:
        active_index = int(re.search(r'\d+', active_frame.name).group())
    else:
        active_index = 0

    # Clear materials for all frames
    for obj in frames_collection.objects:
        obj.data.materials.clear()

    # Assign materials to the frames based on distance from the active frame
    material_name_base = "Transparent Frame"
    transparency_values = [0.8, 0.6, 0.4, 0.2, 0.0]

    for obj in frames_collection.objects:
        frame_index = int(re.search(r'\d+', obj.name).group())
        distance = abs(frame_index - active_index)

        if distance == 0:
            material_name = "Current Frame"
            material = bpy.data.materials.get(material_name)
            if material is None:
                material = bpy.data.materials.new(name=material_name)
            obj.data.materials.append(material)
        elif distance <= len(transparency_values) and show_all_frames:
            alpha = transparency_values[distance - 1]
            material_name = f"{material_name_base} {alpha}"
            material = bpy.data.materials.get(material_name)
            if material is None:
                material = bpy.data.materials.new(name=material_name)
                material.use_nodes = False
                material.diffuse_color = (1.0, 0.0, 0.0, 1.0)
                material.alpha = alpha
            obj.data.materials.append(material)
            for slot in obj.material_slots:
                if slot.material == material:
                    slot.material.diffuse_color[3] = alpha
        elif show_all_frames or obj == active_frame:
            material_name = f"{material_name_base} 0.0"
            material = bpy.data.materials.get(material_name)
            if material is None:
                material = bpy.data.materials.new(name=material_name)
                material.use_nodes = False
                material.diffuse_color = (1.0, 0.0, 0.0, 1.0)
                material.alpha = 0.0
            obj.data.materials.append(material)
            for slot in obj.material_slots:
                if slot.material == material:
                    slot.material.diffuse_color[3] = 0.0

    # Set frame visibility in the viewport
    for obj in frames_collection.objects:
        obj.hide_set(not frame_visibility)
        obj.hide_viewport = not frame_visibility

    # Ensure the active frame is always visible
    if active_frame:
        active_frame.hide_set(False)
        active_frame.hide_viewport = False

def update_frame_selector(self, context):
# Frame selector tool

def register():
    bpy.types.Scene.onion_skinning = bpy.props.BoolProperty(
        name="Onion Skinning",
        description="Toggle onion skinning for frames",
        default=True
    )
    bpy.types.Scene.frame_visibility = bpy.props.BoolProperty(
        name="Frame Visibility",
        description="Toggle visibility of frames in the viewport",
        default=True
    )
    bpy.types.Scene.frame_selector = bpy.props.IntProperty(
        name="Frame Selector",
        description="Select active frame by number",
        default=1,
        min=1,
        update=update_frame_selector
    )

    bpy.utils.register_class(StopMotionAddonPanel)
    bpy.utils.register_class(OBJECT_OT_CreateStopMo)
    bpy.utils.register_class(OBJECT_OT_NewFrame)
    bpy.utils.register_class(OBJECT_OT_DuplicateFrame)
    bpy.utils.register_class(OBJECT_OT_SetPosition)
    bpy.types.VIEW3D_MT_mesh_add.append(menu_func)
    bpy.app.handlers.depsgraph_update_post.append(update_materials)  # Added this line

def unregister():
    bpy.utils.unregister_class(StopMotionAddonPanel)
    bpy.utils.unregister_class(OBJECT_OT_CreateStopMo)
    bpy.utils.unregister_class(OBJECT_OT_NewFrame)
    bpy.utils.unregister_class(OBJECT_OT_DuplicateFrame)
    bpy.utils.unregister_class(OBJECT_OT_SetPosition)
    bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)
    bpy.app.handlers.depsgraph_update_post.remove(update_materials)  # Added this line

if __name__ == "__main__":
    register()

Im pretty sure it has something to do with registering and deregistering, any help is greatly appreciated!

I suspect it is because handlers are freed when loading a new file by default. Sometimes it is useful to keep handlers between files. To do this you may add a persistent decorator before declaring your function like shown below:
from bpy.app.handlers import persistent

@persistent
def update_materials(scene):

for more info on handlers, you may read the documentation found here Application Handlers (bpy.app.handlers)

That seems to work like a charm, thanks!

No worries, if this solves your issue then would you mind marking this question answered

@OnnoVader Please don't reply "Thanks" as an answer or comment, instead upvote the post that helped you. If you feel it completely solved your issue consider marking it as accepted.


text:
Msgbus - Subscribe to Modifier Changes
I'm trying to subscribe to changes on modifiers of the active object?
I am not very comfortable with the message bus system, so I wondered if this is a limitation of msgbus or if a different path might be needed...
# These are the paths I tried...
subscribe_to_modifier = bpy.context.object.path_resolve("modifiers.active", False)
subscribe_to_modifier = bpy.types.Object, "modifiers"
subscribe_to_modifier = bpy.types.Modifier, "is_active"

bpy.msgbus.subscribe_rna(
    key=subscribe_to_modifier,
    owner=self,
    args=(context,),
    notify=modifiers_callback,
)

Ideally, I would like to detect all kinds of changes to modifier settings + when modifiers are added/deleted. Currently, I am achieving this with the depsgraph_update_post handler.
I am greatful for any ideas or pointers.

Nobody knows unfortunately since the documentation for msgbus is lacking. You would have to ask the developers. I also have an unsolvable scenario: https://blender.stackexchange.com/questions/283247/how-to-trigger-a-script-after-completing-object-transform


text:
How to create normal (direction) widget?
I'm looking a way of creating widget like normal node has in Cycles.

I have examined names of all method in UILayout but it looks neither of them are related with Normal widget.

Actually it is not a separate widget as I thought but argument for float vector property (subtype='DIRECTION'). In general it can be done in next way:

    vector: bpy.props.FloatVectorProperty(default=(0.0, 0.0, 1.0), subtype='DIRECTION')

    def draw_buttons(self, context, layout):
        layout.prop(self, 'vector')

Test script.
import bpy
from bpy.props import FloatVectorProperty

context = bpy.context

bpy.types.Scene.normal = FloatVectorProperty(subtype='DIRECTION')

def draw(self, context):
    scene = context.scene
    self.layout.prop(scene, "normal")

bpy.types.SCENE_PT_scene.prepend(draw)

context.window_manager.popover(draw)


text:
Why my render material doesnt looks like as my preview
I have a glossy material but as soon I render it, it turns plain and no reflexions...probably is super simple solution but I cant figure it out

please provide blend file, because the information you gave us isn't enough. And assuming you are a beginner we would have to ask for several settings and screenshots...so it is much quicker to provide your blend file.

maybe there's a second suzanne that you've disable in preview but not in render, impossible to say without the file as Chris says...

Possibly this is due to your environment rather than your material - if there isn’t anything to reflect then it will look plain. In material preview there is an automatic environment image of an outdoor environment with trees and sky, etc which gives it something to reflect. By default the render will be a plain environment with nothing to reflect. Either add an environment image or add other elements to your scene (eg, floor, other objects) to add some detail to the reflection.

@Rich Sedman
You are right, it was related with the world background, I had to change it with an image and now works :)...also play around with the base color, changing for example to: Ambient Occlusion (even maybe is not the correct one, it works) So thank you everyone for your answers.


text:
I don't know what is going on
I followed a tutorial to make a sword in blender, but somehow managed to make this appear. Is this due to the fact that I have bevel and subdivise on (I did it in the right order)?
Object mode

If your object has some faces with flipped normals it can cause the bevel operation to invert

hello, please share your file: https://pasteall.org/blend/

Check that you don’t have multiple points overlapping. You may need to go into edit mode, select all and then merge by distance to remove vertices.


text:
How can I turn an edge into a part of circle?

Hello!
I was working on some helmet model, when I had a problem. I need to turn this edge into an arc of circle, like in the following picture. Is there a way to do it? Bevel doesn't seem to work too well.

Create this shape, select these edges:

Bevel:

Go to preferences and enable an add-on called  edit mesh tools.   Select the edges first.  Now you can use something called the edge roundifier to create a new edge like the one you are describing.
Check remove: edges to delete them without affecting many additional faces or vertices.
Once you have the curves you want you can fill or bridge Edge loop missing faces[enter image description here]1

Thank you for the answer! Unfortunately, when I try to press Arc loops, I get this error. Is thi/s normal? Python: Traceback (most recent call last): File "C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\addons\mesh_tools\mesh_edge_roundifier.py", line 625, in execute self.roundifyEdges(scaledEdges, parameters, bm, mesh) File "C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\addons\mesh_tools\mesh_edge_roundifier.py", line 726, in roundifyEdges self.connectArcsTogether(arcs, bm, mesh, parameters) File "C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\add

No, I haven't had that trouble.  I can suggest another way of doing it though. I'll add one other answer.

Add edge loops.  This gives you more points to work with.  To do this, you select the object, and go into edit mode.  Select the mesh and hold down control+R while scrolling your middle mouse button.
[
You can check on proportional editing and sphere.
Then drag two points down, until you get the shape you want.

If I look at the reference image it appears to me that these parts need to be rounded (my object is a bit shorter than the one in the picture):

This is how I would do it, looks like a lot of steps maybe I explained it too detailed:

Select those 4 top edges, right-click and choose Subdivide from the context menu. This creates two new edges from the front to the back.

In order to get the top more arc-shaped, the top needs to be pushed in a little. To do that, select the two newly created edges.

Now move them down on the Z axis by pressing G + Z. If the bend doesn't look sharp enough, eventually also scale it in a little (which in this example would mean on the X axis) by pressing S + X.

Now use the bevel tool Ctrl + B to round off the edges, use the scrollwheel to create more or less segments to smoothen the arc. If the arc is too flat, maybe abort the action and go back to step 3. to push the edges further down and/or inwards.

Now select those two middle edges on the side. These need to be rounded as well.

These will beveled, too.

Now the front and back faces look a bit messed up. What I did to clean it up or simplify the geometry so that it looks more like the original (but of course this is optional, it depends a lot on what you are further going to do with the mesh): I enter Face Select mode, select some faces, press F to merge them to a single face.

I repeat that for other areas on the front and back until I have a geometry I like.

Now I switch back to Edge Select mode and select the two corner faces at the bottom of the object.

And they will also be beveled. Now the shape of the object resembles the one in the reference picture.

I create a circle with a big radius. Then take the arc I need, delete the other vertices so only this arc is here again. I delete the previous top edges, merge the ends of the arc and the top vertices, extrude to the object width, then create faces.
I kinda did it like this video at 0:58

That is good headway.  You can sometimes use the boolean modifier and union, to join some objects if that helps.

I think I may have understood from the title.  Your question is more about joining two objects.

I wanted to do what you did in the first answer you sent me. Just willing to make the face appear rounder.


text:
GN deleting instances based on selection or propagating iinstance scale to new points
Is there a way currently in geometry nodes (b3.0) to delete instances in the graph or to propagate the instance scale to new points so I can remove the instances as a points and re -instance them with the correct scaling.

Are you sure you need to delete and re-instance them? What prevents you from defining the desired scale when they're first instanced? Or you can always use the Scale Instance node to scale them. Might need to see some details of what you're trying and where you're getting stuck.

@ajwood I'm using a raycast to determine the scale of the instances, then converting the them to points to fetch the centroid and using the input mesh as a mask for selecting the points that are placed in undesired locations. deleting works by using the input mesh as a boolean (instancing small planes for subtractive bool) But couldn't get the raycast scale to propagate correctly to the points with different indices and locations. Its probably possible to do some pre transforming on the raycast points to get it to propagate based on coord. But scaling to 0 works for my application too.

Solved by scaling the instances to 0 instead of deleting them. This functionality will probably get added in the future. I did get a boolean on points working by instancing very small planes & using instance to points after that. Propagating the correct scaling attribute would probably  entail retaining the target point coordinates throughout the operations.


text:
Select all bones with a keyframe at a specific frame in the timeline
In the dope sheet, I have a marker that tells me I have bones with a keyframe at a specific frame. I can scroll down the sheet to find them, but I was wondering if there was a faster way to do it?
My instinct would be to right-click the summary track and do something like "Select bones", but that is not an option.

I haven´t seen that function as far as i know. I usually select the bones manually using the Shift key in the Dope Sheet editor.

There isn't a way to select bones from selected keyframes that I know of.
But to be honest, the workflow is usually to only display the keys of the selected bones in the first place, which is done by toggling this button:

I don't have any bone selected because I don't know which one has a key on that frame. I am looking for a way to automatically select the bones that have keys on the current frame. From your answer, I assume it is not possible.

Was looking for this, think I figured it out.
Untick Only Show Selected, Expand Summary, then click on the bones listed, or hover your mouse over and hit A on the keyboard.

This is pretty good, except that it will show all the bones that have a key on the timeline, even if they don't have a key at the specific frame I am at.


text:
How to cycle through set amount of numbers and loop using geometry nodes?
I've been working on a 'digital stopmotion' setup using geometry nodes, it basically cycles through some selected objects to create a stop-motion effect. Currently, it goes through these 5 objects to create a flame, but only does it once since it's based on seconds so the number keeps going up. I'm looking for a way to use the "Number of Meshes" Integer to give it a limit and loop it back to 0.
I know I can use an Integer to just key the numbers going up and down but it would be great to have this automated for more control.
Screenshot with my current setup:

If you move (or link) your objects into a collection, then this sort of arrangement will automatically cycle through them in their name-order:

Thank you so much, this is perfect!

hopefully this is what you want to achieve?

Hi, thank you! This is exactly doing what my setup currently does as wel (yours is a smarter setup though haha). The issue is that it only does this once, Im looking for a way to make it loop (cycling from object 1-2-3-4-5-1-2-3-4-5 etc.) without having to key the numbers myself

To make it loop simply pass the "frame" through "math: modulo" to convert infinite to periodic sequence.


text:
Video Card Shortage - Running Blender CPU only (using a newer 12th gen Core i5)
The current PC I am using as I learn Blender is woefully slow (3rd gen Core i7 3770, AMD Radeon 7970 GPU (3 Gb), 8 Gb DDR Ram on the motherboard). I don't think that GPU is even supported so right now I have blender running CPU only, with a very outdated CPU. I'm experiencing render times in excess of 6 hours unsurprisingly (I'd say scenes of medium to high complexity...no animation). So I am in the midst of configuring the best PC that fits in my budget. The problem is right now I can't source a GPU for anywhere near retail so I may have to wait and use CPU only rendering for a few months. Can anyone give me an idea of render times (for the BMW reference scene) with the configuration below? Also interested to know what the render times would look like in comparison once I do add a GPU (GeForce RTX 3060). I know these are fairly entry level specs, but hoping I will see much fast times with my Core i5 12600K vs circa 2012 Core i3 3rd Gen with AMD HD9790.
Intel Core i5 12600K, 32 Gb DDR4 RAM, 1 Tb SSD, MSI PTO Z690-A Motherboard.
Sincere Thanks!!

Check Gamer's Nexus on YouTube which includes Blender in their gamut of tests for benchmarks.  They also have well managed timecodes and are just great in general.  Tech Jesus

Thanks @Allen Simpson!


text:
Baking normal map from multiple materials into one texture problem
I have a problem with normal map baking. I have a lot of objects on scene and they have different materials with base color, normal map, roughness etc.(all maps made in substance designer) And I want to bake all these normal maps into one texture. I did it some time ago with different project and it work good but now something is wrong and normal map on new texture look ugly and have weird colors.
I have no idea what is wrong. I checked face orientation, double faces, scale, rotation of the objects and still not work.
I did the same things with base colors and it baked into one texture pretty well so I don’t know what is wrong with normal map here
I’m new here and I hope my screenshoot have been added here to my post
please help

You may want to check how you exported your normal maps from Substance Designer. If you exported them in the DirectX format, it may be the reason for this. Blender uses OpenGL normal format. The difference between the two is that the Y channel (represented by the green color) is flipped from one another.

@mqbakamqbaka I think you were right. I return to substance designer, invert green color on normals and change color space in blender nodes to 'raw' and it works! I would never have thought about it honestly. Thank you so much for help! You have saved my project!! Thank you!!!
Have a nice day! :)

I'm glad that I could help.


text:
How to make a table top flag in blender
I want to make a small flag without animation like this
How to make a shape for flag and connect it to pole

What did you try and where did you fail?  ... Add Plane, Subdivide, Assign a vertex group to a one side of selected vertices, add Cloth modifier and under Physics Properties > Cloth > Shape > Pin Group choose your vert. group. Enable self-collision. Play anim to see sim ... https://imgur.com/EN4Myxy

Search youtube for Blender flag tutorials.  BlenderGuru, at least, has one. While they're for large flags, you can adapt the process to smaller flags.

Create a cylinder for the pole
Create a plane and line it up with the pole
Subdivide the plane by maybe 10.
In edit mode, select the points on the plane that are along the pole
Assign them to a vertex group called "Pinned"
In the physics tab for the plane, create a cloth simulation
Under shape, select the vertex group "Pinned"
Turn on self collisions
select all faces on the plane and set shade smooth
Play the animation and watch it animate.
Adjust as needed to get the look you want.


text:
How to make colored Ambient occlusion?
When I bake AO, white color comes out all the time. How can I get an ambient occlusion bake on the color of the object or the texture of the object itself?

Hi :). Ambient Occlusion is supposed to be B&W, then added on top of Base Color. See this answer

Ambient occlusion maps are supposed to be grayscaled. If you want a colored map, change the bake type to combined or color (I use Blender 3.0 so the GUI is different than 2.79, sorry!):


text:
Z dimension insanely skewed?
My model shows dimensions of 1.35, 3.9, and 100000000000000000.000000. It looks perfectly fine in my viewport though. The z size is very similar to the other dimensions. I have applied all transformations in object mode. I am clueless what else to do. It is causing me to be unable to import into unreal. Any suggestion how to fix?

welp, apparently I had a stray vertice a million miles in the sky. I was able to pinpoint it and delete it.

Can you elaborate on how  you located the stray?


text:
Blender 2.8 exports fbx with flipped normals
export model from blender 2.8 to UE4-> normals are flipped in ue4. Gotta actually flip the normals in blender for it to come right in ue4. this never happened before.
I use the daily 2.8 build (25.3 as for writing  IDEAS?

See Flipped/Inverted Normals Fix (Blender to UE4).

Check Face Orientation in the Overlays popover:

In my opinion, in the 2.80 it's harder to recognize a inverted normals in default shading.
Also check, that your object doesn't have negative scale.
Edit: The negative scale can be a byproduct of mirroring (Crtl M) while in object mode. To combat this, mirror the object while in edit mode, and then flip the normals of the mirrored part. Recalculating Normals works just as well.

Thanks you so much! I had -X in the scale. should have thought about that. thanks!

You are the man. I had a problem where an FBX imported into Substance Painter had flipped normals. -x scale in Blender was the culprit. Thank you!


text:
Bones parent-child relationship on different axis
So I am creating this mechanical arm rig and at the tip theres this grip mechanism that consists of two parts sliding towards each other for the grip to close on something.
Now, in order to make it quicker and easier on me in the animation phase I have gone ahead and added this third bone (number 1 in the image) which controls bones number 2 and 3.
How do I make it so when I move bone #1 on the X axis, bones #2 and #3 move on the Y axis in and out accordingly?
Hope I make myself clear enough.

Try a transformation constraint on bones 2 and 3.  Transformation constraints take the transformation of one bone and use it to apply some arbitrary transformation to a different bone.  They're sort a poor man's driver.  (This is also something you could easily do with drivers.  Plenty of other ways too.)
Let's say you want bone B to move 1 unit in the positive X local axis when you move bone A 1 unit in its positive Y local axis.  Create a transformation constraint on bone B.  You want to affect position on both bones, so use "loc" (location) for both bones.  Map Y to X.  Set it to use local space for both bones.  Finally, enter a range of values for input and output; in this case, use 0 to 1 for the source Y and 0 to 1 for the destination X.
For the other side, it's the same constraint, except you want it moving in the opposite direction-- so map the destination to 0 to -1 in the X instead.

Thanks a lot man! I actually still couldn't get it to work but at least I knew which constraint I was looking for and with the help of youtube I finally got it working ! thanks again

New problem came up, I forgot to mention both bones 2 and 3 are children of bone 1 and bone 1 is child of another moving robot part so that the entire thing moves together. but when they are children of bone 1 they kind of copy its location unwanted. Unchecked Inherit location, still same thing. it's hard to put it in words so i hope you get the idea.

@Omni then unparent it, or use a different bone to drive the transformation.  You have to decide what you want to do when you move bone A in its local Y axis: move bones 1 and 2 in the same direction, pinch, or both.  All are possible.


text:
Porous 3D solid
I need to create a porous structure in Blender (like honeycomb, archimedian, lines, in image). Textures don't work so well. Any help?

Have you explored the (included) Mesh:Tissue add-on yet? At first sight, It seems well-suited to this kind of problem.

There are many types of porous structure, but simple ones can be created using the Array Modifier. Create a cube, cylinder, or other object. Then, in edit mode (Tab), delete its top & bottom faces:

Then use a solidify modifier on it to thicken the faces:

Adjust the "thickness" value until it looks good to you:

(I put a flat surface with walls underneath my example to make it look more like your provided image)
Then use an array modifier to make copies of it in one direction:

Adjust the "Count" to change the number of copies it makes:

The result should look like this:

Add a second array modifier to spread it out over the other axis, by adjusting the relative offset (to get the "honeycomb" effect you need to adjust both of the numbers until it looks correct):

Once you have the modifiers set up to your liking, press "Apply" on each modifier to finalise the changes, and you're done!


text:
Automatic weight painting doesn't affect mesh
I have an IK armature set up to move a very simple arm around, but after pairing the mesh to the armature using Ctrl+P then selecting automatic weights it seems as though nothing happens. I select the lower_arm and go into weight painting and nothing is there. I'm not sure if its a problem with the mesh I made since I made it myself from a sphere then sculpted it, or if its something else. The file is attached for reference.

Before assigning a mesh to an armature, the deforming bones have to be marked as deforming by checking deform. When creating bones, this checkbox is enabled by default, you must have unchecked it at some point.

After that, select the mesh, then ⇧ Shift RMB select the Armature and Parent them ⎈ CtrlP e.g. with Automatic Weights. Note, how vertex groups are created for the bones, which have Deform checked.

To ensure deformation, the Deform must stay checked and the Armature modifier (created by the parenting earlier) must be visible.

Thank you so much! I was following a tutorial and they had unchecked deform, but I forgot to recheck it. Hindsight is 20/20 I suppose!

@MichaelO Great on solving the problem. If this answer helped you, you can mark it as accepted by checking the arrow on its left.


text:
How to create a flat head screwdriver?

So I'm a beginner at blender, and I'm having a hell of a time trying to create the flat head portion. I have one created, but it's a broken mesh. I can't insert loop cuts and all that business when trying to flesh out the details. Anyone have any tips or methods to do this correctly?
Thank you!

Do you want to use Subdivision Surface modifier with it?

Correct, I do. Since it's not a hard edge.

Shift+A Add Circle (Press F6 and set the vertices 6)

In the Edit Mode Press F key to fill the faces and extruded with the E key.

Now Add Plane and rotate little to get some shape and angle of the pointer of the screwdriver

In Edit mode of plane extrude the plane with the E key to some thickness to plane.

Now in Edit mode of the plane. Press Alt+D Duplicate the plane in X axis and move forward and press Ctrl+M to mirror the plane. Press Ctrl+N to flip normals.
Come out of the Edit Mode Select the Plane and Shift select the Extrude circle and Press Spacebar and type align object and press F6 and select x axis

Come out from Edit mode of Plane and select the extruded circle. Add Boolean Modifier. Select the Operation to Difference and object to plane. Apply the Modifier and delete the plane. Now you can get the shape of the pointer of screwdriver.


text:
Textures Stretching when using Micro-displacement
I've been trying to learn a bit more about micro-displacement in Blender, and I've run into a slight problem.
I have two images that are applied to a single plane, one of which I use as a displacement map, and another one that colors the plane. They are pictured below:

As you can see, they both have the same layout, just different shading.
The material for the plane is extremely simple: it consists of the colored texture being put into a Diffuse shader for the surface, and the bump map's texture being multiplied by 100 before being directly linked to the displacement output.
The plane itself simply is a grid with an adaptive subdivision modifier.
The final render, however, has a slight problem. Although the micro-displacement works great, the colored texture doesn't perfectly map onto the displaced mesh. Namely, at some parts, the texture is stretched, leaving an ugly gradient, like below:

Usually, I would solve this by adjusting the UV mapping, but the UV map does not seem to account for the microdisplacement.
Is there a way that I could fix these gradients, and make them colored all gray?
I apologize if I missed something you might need, this is my first time asking a question here.
Thanks in advance.

Is it OK, if all sidewalls generated by the displacement would be colored grey?

@bstnhnsl Yes, I wouldn't have a problem with that. Though a general solution would be great for future reference, I was just planning on doing that anyways.


text:
Why won't only some parts of my textured mesh render?
I realize this might seem a little like some other posts I have read, but I have a slightly different problem. I painted a model and tried a test render. Only some of the colors showed up. A near black one appears to be brighter than a skin colored one. all of the colors are in the same image. I think I have unwrapped everything correctly, as some of the colors show up. Basically, some colors are showing very bright, and others as black. I read somewhere that this might have something to do with the smooth shading and subdivision surface, but I disabled smooth shading and nothing changed. I tried adding the filmic log base encoder but the same result occurred.

In the image here you can see the way the colors are supposed to look. That brown in the render is supposed to be almost black. The red is way overexposed, while the skin is completely black.
Thanks for your help

Is this still the case if you increase the lights (sun, ambient occlusion, world)?

The black effect is the same regardless of light. Even at 1000 power from a sun light, the black is still pitch black. The other colors get toned down some, but they really shouldn't be that bright at one or two brightness

Several materials or textures?

Oh wait. I reopened the project (after saving both the scene and image) and the color from the objects that were black are gone from both. I will look in to this more.

@lemon no, one material, one texture

Save your image (not saved in the screen capture). Also, where the yellow part comes from? Nothing is yellow on this image (the pants should be black).

I think it has something to do with way overexposing. The pants are a very dark brown, and reflecting a ton of light on that might make it look yellow.


text:
Strange highlights and weird colors on model
I created a model and added some lighting. it is a human model and so it has subsurface scattering. For some reason, there are two strange problems, and I am unsure if they are related or not, so I decided to keep them in the same thread. For one, there are some strange quick color switches (on the belt) and I am unsure of why it changes shades so much and without any gradient in the middle. The other issue is on the skin, near other objects, such as the hair, clothing, or eyes. I have smooth shading on, but with it off, the same results occur I will add some screenshots.
You can see the weird highlights on the belt and around the eyes best.

these are the nodes for the red cloth. They are grouped with the black cloth (which has no visible problems)

These are the nodes for the skin material

Thank you so much!

Is it possible the normals on the belt are inverted?

No, none of the normals are inverted

On closer inspection, I suspect the image plugged into both the normal and height inputs of the bump node may have something to do with it. If you only plug it into the height input, does that help?


text:
Material Preview jagged surfaces
the surfaces in Viewport Shading/Material Preview are jagged or spotted. I remade the model, but after a while it happened again. The attached image shows the object with next to it a cube that was just dropped, with no material.
In Render mode, the surfaces are fine
I'll appreciate any help. Thanks

Looks possibly GPU related - what kind of GPU do you have? - When was the last time you updated your drivers?

Are you using Alpha Blend in the material settings?

It's a MacBook Pro with a M1 chip
8-core CPU
8-core GPU
16-core Neural Engine

the same happens on an older MacBook

and I'm not using Alpha Blend

What are you Clip start and End values in viewport?

Hello MikoCG, the Clip Start was ridiculously low (0.001 mm). Once back to 1 mm everything looked fine. Solved, thanks a lot


text:
VSE cutting video at end
Any video that I have produced with my cellphone camera is trimmed at the end in VSE.
The same video is reproduced completely when I use OpenShot.
I don't think it's a bug because it happen with Blender version 2.9 and 3.0.

can you post a screenshot of the VSE window with all of its settings visible when you have a video that fails added?

Thank you Marty! I figured out what was the issue: I did change the video file but rename to the previous and that cause an inconsistency with the blender's proxy cache. I deleted the proxy cache what made blender rebuild and everything was fixed.

This problem was solved deleting the proxy cache used by VSE. The issue was about cache inconsistency.


text:
How would I go about creating a smooth interior to a helmet?
First of all, I am incredibly inexperienced at the blender. I made this helmet, and the exterior looks good. However, the underside is warped because of how I modeled it. It is supposed to be 3d printed, and the inside needs to be smooth to fit on someone's head. I currently have a solidify modifier on the model, and I tried applying it and pulling all of the interior vertices out of the spikes and into the helmet void. But it just causes a lot of creases and doesn't seem like best practice. How would I make the underside one smooth surface that matches the general shape of the helmet without the spikes?

the best idea would be to use some low poly head, cut the top of the head and join it to your helmet and connect those 2 parts with topology, this way you will get smooth inside (however you will have to not use solidify because that would make it messy