text:
How can I bring Color from a material into geo nodes and use it as a filter?
First time posting here. I've been scratching my head on how to do this for some time now, and I can't seem to figure it out.
I'm looking to create a detailed texture(Solid black and white) in shading that will act as a filter for separation of a mesh inside of geo-nodes. I can't seem to figure out how to bring the shader material into geo-nodes.
The purpose of this is to separate the mesh based on the color by creating new edges along the intersection of black and white, while keeping the solid colored faces of the object light in terms of mesh detail.
I've been able to accomplish this by using noise/other textures directly in geo nodes while subdividing the mesh(6+ times), but that results in an extremely necessary amount of detail(1,500,000 vertices). Operating on that heavy of a mesh crashes blender.
I can't seem to be able to do this process while maintaining both stability of the program, and the level of detail that I need to prevent a dual colored 3d print from showing a pixelated texture. Can anybody help me figure this out? I appreciate you taking the time to read this!

Hello and welcome to Blender.SE! Bad news for you: The values created with a shader cannot be processed in Geometry Nodes, because the shader works as the last element in the chain. However, if you had a texture beforehand, it would be possible, because you can also hook it into Geometry Nodes.

Shoot! Thanks for the response! So, I guess my next question is, can I bake the shader material onto my object, and then use that image texture as a detailed mask to cut new geometry onto my object in geo nodes?

Yes, you can of course bake the result you create with the shader. And then you can use this texture in Geometry Nodes. By the way, there are already some good answers to both processes here, so you don't need to ask the question again. Please use the search function of this platform.

awesome, thanks for the help! It's very much appreciated!

You're welcome! Don't forget that the use of textures in Geometry Nodes works best if you have created a UV map beforehand, so that you can use this texture correctly on your geometry. All the best!

very helpful and easy to miss tip. Have a great day!

You can't use anything from shaders in geometry nodes, since geometry nodes is calculated first - and anyway it wouldn't help you.
However Higgsas did make a node that may do what you are looking for that interpolates faces based on a gradient texture (only on triangle, though. I want to make one that works for all n-gons or quads and have some ideas, but haven't hade time).
This is the link


text:
How to Change colour of an object
I have tried creating a standard intro but while using materials it's not showing the result in color  I have chosen instead it results in gray color only.

We-ll need to see your Blend file to see exactly what's going on. You can share it via https://blend-exchange.com/ following the instructions on that page to add the link into your question.

It appears to me that you have the objects Viewport Display set to "Display As" Wire instead of Textured?

source: Stack Exchange

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

sort: votes


text:
Blender stops halfway when baking textures
I'm trying to bake multiple materials into one texture map. As you can see in the image, I've selected all the objects that I want to bake the materials, selected the image texture that I want the materials to be baked on in the node editor, and made sure the bake setting is set to diffuse and unticked the direct&indirect options. Blender only bakes the two textures that you can see on the upper left of the image attached, and then stops baking. The image resolution is 4K and I have UV unwrapped all selected objects. I'm not sure why this happens or how to fix it.
Anyone have any idea why this is happening?

I think the problem is that you need to go to the Object Data tab, inside the Properties panel, under UV maps you have to click the + button to add a new UV map to your object and name it something, for example, bake. Then repeat the process for each one of the objects you want to appear in the image texture after the bake process (remember that all the newly created UV maps must have the same name and have them selected for all the objects). Before you proceed to bake the texture, you also need to unwrap all your objects at once.

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


text:
blend shape doesn't work correctly
I'm trying to blend the duck object into a whale model. Both were made from a subdivided cube model with no extrusions or modifiers. I did use a mirror modifier when creating the whale model but didn't use one for the duck model. I did apply the modifier before using the blend shape tool however, so it should work since they were both made from the same base model? They were both made in different scene/files if that might be of an issue. I don't think it should be an issue but I'm not sure what the problem is so any advice would be helpful!

Was the modifier applied on the original before making a new shape? Otherwise, you effectively do not have the same mesh. The vertex IDs were changed.

What do you mean by "blend shape tool"? What exactly is your workflow? I don't think Blender comes with any morphing tool by default, you can't just pick two meshes and ask Blender to morph (nicely) between them.


text:
When importing to Unity, armature ruins mesh smoothness
When I import a mesh by itself, it looks smooth and normal. When I import a mesh with armature(weighted) it makes the mesh look not smooth. Basically I think the weight on the armature is somehow changing the position of vertices or edges so that it does not look smooth whereas when I import only the mesh, there's no weight therefore nothing is being changed.
The left of the image is when I imported the mesh with armature and the right is when I only imported the mesh. They are both set in the same pose and nothing is different except for the armature weights. How do I fix this issue? Thanks.

I'm wondering if this is really a Blender issue or rather one in Unity? Since I guess in Blender everything looks fine? If not, you should show us how it looks there so that it belongs on this site for Blender problems.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.


text:
Random vertices attached to mesh?
I have been noticing this happen occasionally; I'll see a random point/vertex detached or close to my mesh that is connected to the mesh(far left orange dot). If I delete it, it will erase my mesh and if I want to manipulate the object, it totally starts to deform/mess with it as shown below. Anyone else have this issue/ know why this is happening? It's probably a newbie mistake but can't seem to understand.
Thank you!

Isn't it the origin of your mesh?
If you want to put it in the centre of your mesh, in Object Mode press Ctrl  +  Shift +  Alt +  C and select Origin to Geometry.

I did that already, that vertex just sits there... maybe earlier in the process it was misplaced?

yes I think that it's the origin of your object, you could not see a unique vertice in Object mode. If you go in Edit mode and select all (A) you won't see any vertice at this place. If your origin is placed here and stays here when you do an Origin to Geometry it means that there is another vertice far away that makes the centre of your mesh there and not in the main mesh. So when you're in Edit mode and make a select all you should be able to see that isolated vertice


text:
Smoke+Fire Simulation Fire Not Rendering
I've googled endlessly regarding this issue and can't seem to figure it out. I made sure that all my nodes were set up to emit both smoke and fire, and I have selected the correct option under Flow settings. It shows up in the viewport fine, but only renders the smoke as you can see.

Any ideas?


text:
Game Asset Vertex Count/ Importing in Unity
I am new to creating game assets; I read that the poly count needs to be somewhere around 64,000. I've created a skyscraper without any modifiers and as basically as I can in order to achieve the shape I want, and the vertex count is 168,000. I am unsure of what steps I need to take in order to reduce the vertex count/ make it usable in Unity. Perhaps I've taken the incorrect approach/ don't understand. I would be grateful for any information.
Thanks!!

There are a lot of ways to optimize your model. For example, you can model the single floor, and instance it in the unity. You can use baked normal maps instead of geometry. It's all about the level of details you need in your game. If it's far from the camera you can use a simple textured box. If you walk around but you have no helicopter, you can have detailed first two floors, and less detailed ones above. So it's all up to you. The question is more to do with unity than with blender, so maybe it's better to get some guidelines from the unity gamedevs about you very problem - the best way to build a city in unity.

You need to create a low poly version and a high poly version and then bake the normal maps onto the low poly version.


text:
Different Ways to Make Edges (look) Sharp
This is such a newbie question and I have failed to fully understand the differences between these functions as they all seem to have a similar effect. Could someone please better elaborate?
-Mark Sharp
-Mean Crease
-Edge Loops after SubD Modifier
and
-Edge Split Modifier
-Auto Smooth (Why even smooth if it just makes it flat again)
I've seen these used in different situations and don't fully understand why that technique was chosen over another.
Thank you!

This will answer a few of them. https://www.youtube.com/watch?v=nBkwodrQq_4

https://www.youtube.com/watch?v=odnMxHGlj1s

I personally stay away from all these solutions except edge loops (and bevels, which are edge loops) but it doesn't really answer your question and some will disapprove

Love Autosmooth. Working on HDMI connector ports. Need the top and bottom to be Flat shaded and the sides to be Smooth shaded. Only where the angle increases above the limit (default 30) does the Smoothing apply to those faces. Avoids having to add a huge amount of geometry to get a smooth curve.


text:
Sculpting Mesh Problem
I tried to google a solution to this but had some trouble as I wasn't sure how to describe this problem exactly. I noticed that when I 'over' sculpt an area, the mesh starts to disappear/mess up as shown in this picture. Once this is done, I can't figure out how to fix it as the problem seems to just get worse the  more I play with it. Does anyone have a solution for me and an explanation as to why this is happening?

Thanks so much!

I think you are sculpting more detail where there is not enough geometry (resolution). Try dyno topo-> constant detail and increase resolution as you need to put more detail in mesh. You can also use eye dropper to see resolution at particular part on mesh and increase if you need.

@Feenix You are my hero! I hadn't considered that there may not be enough resolution. I had encountered this issue many times and couldn't figure out the solution. Thank you!


text:
Boid Particle System Collison Objects
I'm looking for my boid particles to not intersect with my collison objects. I already changed the mesh to collision, and there are tiny areas where the dragonflies still pass through the mesh, as you can see on the right and front facing sides. I tried bumping up the inner and outer settings under collision, but those don't seem to have any effect.
Thanks!

While this isn't a direct solution to the issue of collison, something else that works is placing a slightly smaller collision box within my box above and setting the material to transparent. The dragon flies slightly go through that inner collision object but prevent anything from showing on the outside.


text:
Rig Properties DISAPPEARED from the N panel
I imported a Rigged character named 'Abi' from the project files of a course I was following... (File > Append > Blend file > Collection...)
The rig was originally created with the Rigify add-on so, first time I had to run the script (Abi_ui.py) available with the rig to make some of its properties available in the N Panel ...

the second time I opened up Blender, those options from the N Panel were gone...
also, the Script (Abi_ui.py) was missing...

I opened up the original file again (the file provided in the course)
Copied the script from there and ran it in My Version of that file...
now, I have to run that file every time I open blender...
Is that any way I can save myself from that hassle...?
and.........
I'm not much experienced with blender, so Anyone... please Feel free to tell me that I'm doing it all wrong and if, there's a Better way of doing all that

There are two options in the text editor panel "Text" menu, the first is "Make Internal" that stores your script in the .blend file, the second is the "register" checkbox which will make your script run when the file opens.

https://blender.stackexchange.com/questions/120700/how-to-make-a-text-file-dependent-of-an-armature-object-so-that-it-appends-with   https://blender.stackexchange.com/questions/194681/rigify-automatically-link-ui-text-file-in-2-8  The red indicates it has no users, and hence is removed on close / re-open.

Thanks Ron Jensen


text:
Weird blue line appear on model
I was trying to make a treasure chest meshes on blender.
However,when I finish painting the texture uv map,I found that the meshes has weird line on some face

As you can see in the image,there wasn’t any blue lines on the uv map,but appears on the model preview
When I rotate it,the weird blue line still appear but doesn’t appear on uv map tab
Do anyone know how to solve this issue? Thank you.
Reference:

maybe when you paint increase the brush Bleed option?

Yeah that was my guess too, that adjacent pixels are getting interpolated, blurring the blue background into the brown texture. Either set texture interpolation to closest, or give a border to the brown islands.

Try setting the interpolation mode to closest for your image texture.

Just an idea, we can help more if you add your blend file to https://blend-exchange.com/
Edit:
Try removing doubled vertices. To do this, go into edit mode, press A to select all, then F3 and type "Merge by distance" and hit enter.
See the results using Online 3D Viewer:

Uhh.. I just found that the model still having the same issue when I exported it. The model doesn't appear any weird lines in blender now,but when I view the exported mesh,the line still remains there.

Here is the blend file  Thank you.

The textures are missing from your file. Be sure to pack all external files by going to File -> External Data -> Automatically Pack Into .blend

Sorry for the late response, here it is  Thank you.

I've taken a look at it, but I don't see those lines. I don't see anything of the ordinary, it looks perfectly fine. Switching the interpolation mode back to Linear also works fine, as there are sufficient borders around the brown UV islands.

Yeah, but the lines appear again in the exported mesh I don't know why.

Exported mesh? In what file format do you export it? And what do you export it into?

I planned to import the model into Roblox Studio in obj file format,and there are weird lines. (https://i.imgur.com/Ct5S9V0.png) I tried to import from different 3d model viewer and still have the same result. (https://i.imgur.com/ttH4JUT.png) It's normal inside blender but the exported mesh has weird lines on it

Alright, I think I found a solution. I edited my answer.

it's working. Thank you.

You're welcome!

It's the annotation which you can see here:

Hold your mouse on the marked icon and choose an eraser, then erase the line.

someone else also answered this, but I think OP was using the annotate tool the highlight the blue LINE on the texture.

@Geri aaah, thanks, I missed that. :)


text:
How to measure the length of a pipe model
In the scene, there are many pipes. I want to get their length. Do you have any ideas
My idea is to get one of the lines running through the whole pipe and measure the length of the line，But his line is irregular

Python
accuracy to 3 significant digits (barely, but I was sloppy in modeling)
Working with some assumptions:

the pipe consists of alternating segments: straight and curve
curve is made of triangles only
straight is made of quads only
each quad in straight touches both curve segments (or the beginning/end of the pipe and one curve segment), meaning that each quad goes along whole straight segment
ngon caps to easily detect reaching the end...

Algorithm:

manually select starting and ending caps
calculate current coordinates curco at the median point (center) of first cap
check the length of the edge perpendicular to the selected ring, add it to the total pipe length, move curco by that distance in the same direction as the edge
mark all quads connected to the starting ring to not be considered again
traverse the triangles on the end of those quads, until another quad is found
based on new quad select the next circle and calculate the median as nextco
calculate 1/4 of circumference or a circle with radius being the distance between circles centers along a single axis:

repeat the algorithm until the end of pipe is reached.
import bpy, bmesh
from bpy import context as C
from mathutils import Vector
from math import pi

me = C.active_object.data
bm = bmesh.from_edit_mesh(me)

ring = [v for v in bm.select_history[0].verts]
endring = [v for v in bm.select_history[1].verts]

def median(ring):
    # median could be calculated using face, but I already wrote this, as my first assumption was no caps...
    l = len(ring)
    x = sum(v.co.x for v in ring) / l
    y = sum(v.co.y for v in ring) / l
    z = sum(v.co.z for v in ring) / l
    return Vector((x, y, z))

def traverse_quads(ring):
    disp = None
    nextring = []
    for v in ring:
        for e in v.link_edges:
            if not e.select:
                e.select_set(True)
                nextring.append(v2 := e.other_vert(v))
                if not disp:
                    disp = v2.co - v.co
    return disp.length, nextring

def traverse_tris(ring):
    nextring = set()
    edges = {e for v in ring for e in v.link_edges if not e.select}
    more_edges = set()
    while edges:
        edge = edges.pop()
        edge.select_set(True)
        for f in edge.link_faces:
            selection = [e.select for e in f.edges]
            if len(selection) != 4 or all(selection):
                continue  # not quad or old quad
            nextring.add(edge.verts[0])
            nextring.add(edge.verts[1])
            break
        else:  # new quad not found
            edges = edges.union(e for f in edge.link_faces for e in f.edges if not e.select)
    return list(nextring)

dist = 0
while True:
    edge = next(e for e in bm.edges if not e.select)
    pathlen, ring = traverse_quads(ring)
    dist += pathlen
    print("+= pathlen (", pathlen, ")")
    print(f"{dist=}")
    if ring[0] in endring:
        break
    curco = median(ring)
    ring = traverse_tris(ring)
    if ring[0] in endring:
        break
    nextco = median(ring)
    x_dist = abs(nextco.x - curco.x)
    y_dist = abs(nextco.y - curco.y)
    radius = max(x_dist, y_dist)
    dist += .5 * pi * radius
    print("+= .5 * pi * radius (", .5 * pi * radius, ")")
    print(f"{dist=}")

bmesh.update_edit_mesh(me)

Now create a curve, make it go in straight lines along parallel to X or Y axes, and make the curves circular (I was sloppy with this part), then measure the length of that curve (Chris' animation nodes trick, or convert to mesh and measureit), I got:

Now bevel the curve, dissolve unnecessary edges perpendicular to the curve's direction (it's important, as the script assumes they're not there), and triangulate the curved parts (again important, assumption):

As you can see, it's sloppy job, maybe that's why the script said 29.249520871844116 instead of 29.191.

OMG…are u serious?!♂+1 although i don’t understand it…

If the pipes are made of curves, you can use animation nodes like this:


text:
(Animation Nodes) How do I get an object to follow a spline without rotating along it?
Fairly simple question but I'm new to animation nodes and don't know how to do this. I want an object to follow a spline using the Follow Spline Action, but maintain its rotation. Basically like unchecking the "follow" box in the curve data, but with nodes. Is there an easy way to do this?

You just need to apply the action and a transform output with the rotation you want.


text:
A Hollow Hole Around The Equator Of A UVSphere
Could someone help me make a straight hole into the center of my sphere. Like this but into the center of my Sphere. https://i.ibb.co/gj8Xg2h/Image4.jpg
My Sphere - https://i.ibb.co/nmxr92K/Image1.jpg
Wireframe Version Of My Sphere - https://i.ibb.co/9YKyp8S/Image3.jpg

I don't understand how you would like the hole, could you please make a drawing? Is it supposed to go through the sphere horizontally rather than vertically?

@moonboots It's kinda hard to explain, here is a sketch of it. Hopefully you can understand... sorry ;-;

I can't see your sketch, could you please edit your question and display all your images?

@moonboots I forgot to attach the image, sorry. here it is. https://i.ibb.co/ZMsJzPH/Image6.jpg

I still don't understand, is it supposed to be a whole going through like the one you show going from north pole to south pole?

Basically splitting a sphere into 2 but there is a roof i guess, But not in the middle where my hole is in the middle of the sphere.....

-Select that inner ring.
-Ctrl-B and drag to desired width.
-E (extrude), S (scale), Ctrl-Shit-Z (so it does not scale to Z axis)
-Done
I hope thats what you needed!

Or instead of E, S, Shift+Z simply use Alt+E > Extrude Along Face Normals.

Thanks @XuXo Pereira , Is there a way to remove the part it pushes out and still have the hole along the equator?

You're welcome. To remove that part just press X (delete) and click -Faces-

Or press X > Delete Vertices depending on how much you want to delete.


text:
Equator Hole To The Centre Of A Sphere
Could someone please show me jow can i make a hole to the middle of the sphere on the equator?

Hello :). Similar to the tunnel you already have, but intersecting horizontally?

The question's a bit unclear can you elaborate a bit?    Do you want something like this:https://pasteall.org/pic/786f8e80b84949f8a65524c9f51038de   OR something like this:  https://pasteall.org/pic/6ed9366da55f4a009b2101ef7960d044  ??

@JachymMichal Yeah, but not a circle. c:

@MaulikSharma Here are the images! https://ibb.co/LNLrs65 https://ibb.co/8XMrwHR

Something like this?? https://pasteall.org/pic/fd0719b26b4a47b48b8798d93425946c

@MaulikSharma I'm sorry for being unclear, Just a hole around the equator that is square. Like "https://i.sstatic.net/jgQrm.jpg" That but it goes through the Sphere.

@MaulikSharma Like that but it doesn't push it all into the hole in the middle. https://ibb.co/Y2Jd2CK

Got you. Writing the answer

Thanks @MaulikSharma, sorry for being so unclear.....

Here's how you do it,

Create a Sphere
Select the Center Edge loop
Press Ctrl +  B to bevel the edge

Go to Face -> Extrude along normals

Extrude the faces inside to create the desired effect

Result:


text:
Rotate Everything On The Z Axis
i was just wondering if someone could tell me how to rotate everything at the same time on the Z Axis.
https://i.ibb.co/YRfMGGm/adsasd.jpg

You could parent all the objects to one object and rotate that on the Z axis.
Select all objects with ⇧ Shift + Click, on the last object press Ctrl + P then choose Parent to Object.
Now rotate the last object you selected and everything will rotate with it.


text:
A straight indent in a UV Sphere
i would just like some help making an indent in a UV Sphere.
I've contacted the person who made the YouTube video but got no response.
An image will be below showing what it looks like. C:

Add a UVSphere and subdivide it. Find "the equator" and select two equidistant edge loops. Press CTRL+E > Select Loop Inner Region. In face mode Extrude-scale, with E+S, the selection by a value between 0 and 1, e.g 0.8. Remove doubles. Bevel edges. Done.

Select the edge loop in center and add an edge crease with
Ctrl + E and set the crease to 1
Bevel the edge with  Ctrl + B
Inset the new faces with I followed by
Ctrl to use depth (intrude)
Add Subdivision Surface Modifier and shade smooth

.. a nice hole of 'Blender Golf'  :D  Which keystroke display is that?

@RobinBetts it’s screencast keys, it was finally updated so works with current builds now.


text:
Add curvature to the edge of my UV Sphere that has a hole through it
Could someone tell me how i could add a curvature to the edge of this sphere hole?

Hello, could you please elaborate a bit? it's hard to understand the topology

We, people from forensic department ... we already know :)
But yes ... please  use more illustrative screenshot like - switch to edit mode to see wire (topology) of your mesh with probably more distance so we can get more context.

If I'm right ... just select top edge loop Alt+Shift
And Bevel Ctrl+B it (with Middle mouse add more loops.

Or use Bevel modifier as non destructive ... just create a Vertex group from top vertices.


text:
Counting the number of Alive particles
Im working on a predator-prey model, and to get some useful information I want to extract the number of Alive particles at any given frame. However, I got the blender file sent from another person working on this. And the number of Alive boids is stuck on whatever value he had when sending the file. So for a 1000 boids 933 is Alive and whatever I do this does not change.

import bpy

obj  = bpy.context.object     # Active object
p_s = obj.particle_systems.active # Active particle system
print(p_s.settings.count)

AliveP = len([
    p for p in p_s.particles if p.alive_state == 'ALIVE'
])

print(AliveP)
```

Use the dependency graph.
import bpy

# get the object
obj = bpy.context.object

# get current dependency graph
dg = bpy.context.evaluated_depsgraph_get()

# get the object as currently evaluated
e_obj = obj.evaluated_get(dg)

# get the particle system
ps = e_obj.particle_systems.active

# and count
print(len([p for p in ps.particles if p.alive_state == 'ALIVE']))

As said in the documentation:

This example demonstrates access to the evaluated ID (such as object,
material, etc.) state from an original ID. This is needed every time
one needs to access state with animation, constraints, and modifiers
taken into account.


text:
Import obj model: pictures with the same name will only be imported once
I am importing obj model in batch with script
This is my code:
bpy.ops.import_scene.obj(filepath=obj_path)
Obj paths are in different folders, and they have the same image name,After importing, the picture with the same name will only be imported once, and other objects will use this picture
Here is my example:

They all use the same picture name,After importing

that is a bug most likely related to the issue report I have opened https://developer.blender.org/T100361


text:
How to get the angle of the reset object through Python
The rotation angle of many objects in the scene has been reset. I want to get the correct rotation angle of objects. Can you provide some ideas

it is unclear what you are asking for... can you add more details and explain your problem?

bpy.context.object.rotation_euler.z

If you enable Python Tooltips in the Preferences interface menu it will show you the value when you hover over most values in the interface.

This is not possible in automatic way, because how does Blender know where the face-direction of the object? You can do several things.

In case if the objects are the same (only rotated in different ways) you can link data of the objects, so that they will share the same model. To do so, select all models with the same shape, then press Ctrl + L ⇾ Object Data.
Objects will share the same model, and you will see, that some of them should be rotated back in object mode.

There is an option to rotate the orientation of the object while keeping mesh in place. To activate it, select affect only origins in options popover:

Then rotate the object's origin accordingly.

Actually, thank you very much


text:
How to create grip for rearranging UI?
I am interested in finding a way of creating this kind of UI for moving and adjusting order of slots? I am specifically looking for a way to adjust order of String Properties?

Been considering answering what I know so far into this https://blender.stackexchange.com/questions/193824/python-api-panel-instanced-flag would recommend looking at constraints UI code.  One "master" panel class is used as mix in for  all constraints (modifiers same)  bl_options = {'INSTANCED', 'HEADER_LAYOUT_EXPAND', 'DRAW_BOX'}  The draw box option enables dragging and dropping of panels.. but to outside its parent into another.   Each type of constraint is given its own class that merely points its draw to the specific draw of the "master".  An instance of the panel is made for each

constraint of the objects constraints, and the panel instances self.custom_data property is set to the constraint.  The layout is drawn with UILayout.template_constraint (or some such)  How this is wired up, and whether it is available via python. on a collection of our choosing,  yet I am not sure.


text:
Material Properties Gone On Final Render
I've been using Blender 2.92 for about a week now to create some sports NFTs. I've created a card of sorts with which rotates and have added material properties like metallic, sheen, clearcoat, etc to have the object look as if its glass. However, once I start to render, the image is 'flat' meaning that none of those settings applied (no shine, no reflection, etc).
I've attached two screenshots to show what I'm seeing the viewport (what I want to see) vs what the render looks like.

Not sure what other settings/info needs to be provided so please reply with what I need to provide.

Here is a link to better show how I want the final product to look when rendered. This was created by using my Macs screen record feature
https://www.youtube.com/watch?v=FGWxrxUjluM

mix shader nodes probably? Use your image as one input and other glossy/glass material as another input and play with settings until you get what you want. Also you can import images as planes and it may be a better solution for this kind of task

Really don't understand what you're saying. All images were uploaded as planes. Once the images were arranged on the slab, I joined them all together.


text:
How to straighten edges on UV?
Is there a way to straighten the outline edges without manually moving each vertices one by one? I have tried marking seams in different areas, following quads but nothing has been helpful so far. I can't think of any other ways to straighten the edges other than moving one vertices at a time. What would be the best option for this?

this is what it looks like

this is what I want it to look like

Follow Active Quads or the UV Square addon and > To Grid by Shape? Or please share one of your object:https://blend-exchange.com/

If you select multiple verticies, you can align them. I hope that is what you are after.

I tried that but it doesn't actually make the edges align straight like how I want :( it basically merges the edge in the middle

Whatever verticies you select will be centred when you align, but you can then move them as a group and snap to another point or grid etc. I agree is still a bit mandraulic, but I am not sure of another way.


text:
How do I fix weird looking smoothed faces?
I have been modeling this for a couple hours now and I have yet to retopologize the model but I was messing around with settings under Mesh/Shading/ And all those settings under there. I don't know exactly what happened here but it looks like smooth shading with creased edges, but I can't find anything on how to fix it and I feel like I've pressed every button and gone through all the settings and I can't fix this.
It looks like this in all render modes and and both cycles and Eevee.

Hello could you please share your file or at least a part of your object? https://blend-exchange.com/

As @moonboots says we'd need to see you Blend file, but have you tried checking Auto Smooth Normals under Object Data Properties (green triangle) > Normals? Difficult to see from the image but it also looks as if you have poor topology on your model.


text:
How to make a blender library override in python
I like to create some automation in Python on a library override of a linked collection in Blender 3.4.1.
I fail to make object P2 editable using Python (see image below). The operator that does the right job in the GUI is: bpy.ops.object.make_override_library. I used that on object P1, hence its override icon is no longer grayed out.

I prefer to use an lower level API instead of an operator but cannot find it.
If the operator is the only option, I am not sure how to set the right context. The below code is not working correctly since it is creating some objects outside the collection.
with bpy.context.temp_override(active_object=bpy.data.objects["P2"]):
    bpy.ops.object.make_override_library()

I ran into this same issue. This code has been working for me. It creates a library override on a collection without using your aforementioned operator.
col = bpy.data.collections[collection_name]
col.override_hierarchy_create(bpy.context.scene, bpy.context.view_layer, do_fully_editable = True)

Hope this helps!
Link to the docs

Unfortunately this will make everything editable which is not what I prefer but so far the best solution.

@Jiske you can set do_fully_editable to False

Hi Grant, I know that this is possible, but then I am back to my original problem of this post. What I did not mention in the original post is that the objects P1 an P2 have child objects which I prefer to keep non-editable.


text:
Can we apply gravity to only one object
I have two main objects in my scene. One is a player and another is a spaceship. I want to apply gravity to only one object. Can i do that?

could you please tell more, do you mean that the 2 objects are not affected the same way by the gravity?

They are, actually I want one object on the ground while the other to float.

maybe this is the same question here? https://blender.stackexchange.com/questions/221277/is-it-possible-to-change-the-gravity-of-a-single-rigid-body-in-the-scene

Can't understand it properly, and it's a very old version.... Can you suggest me any tutorial? I shall be very thankful to you.

from this answer it looks like you can't have several gravities in the same scene, if this is what you want


text:
What do I do to make my normal map look right? All of the shading is different according to the uv unwrapped mesh
Im trying to bake a normal map onto my retopo. And although it looks like the map got all of the detail from the sculpt in. it seems that it has shaded all of the islands of the uv map differently. I don't know how to fix this. Is it a lighting issue or something simple that i'm missing

Hello what does it give if you switch the Image Texture from sRGB to Non-Color?

Lol. I new it was something tiny. Thanks. Non color works.

Could you formulate your comment in an answer and mark it as complete, so the solution is clear to everyone and easier to find, thanks.


text:
Typographic Animation (walking letters)
So I'm pretty new to blender and even watching multiple tutorials I couldn't quite find a way to do what I want. I want to make an animated gif for my site that is my name "walking".
The image explains a little better. However when I rig this it deforms the mesh letter, what I want is the letter follow the "bone" but without bending and warping.
Makes sense? Can I assign each letter do a different bone?

if you don't want any deformation, don't use the With Automatic Weight option, instead select the letter, shift select the armature, switch to Pose mode, select the bone and Ctrl P > Bone. But your armature is not correct, bone should switch direction and you should use IK constraints to move them

Thanks. I tried doing the IK thing (exactly like every tutorial I've seen) but the leg just moves upwards for some reason.

moonboots's answer in image ...

Select a letter, Shift select the Armature
Switch to Pose mode, select a bone and Parent to Ctrl + P > Bone

(Walk downloaded from Mixamo. I just added a keyframe of rest pose on frame zero, to let letters parent on straight bone pose.)


text:
How to convert grease pencil thick controur into 2d-mesh?
I have a thick grease pencil object that looks in object mode the following way:

What I want is to convert those orange lines from their contour into 2D-mesh (vertexes connected by edges). But if I am trying to use "Convert to path/curve", I am getting only the "main" line instead:

What is the best and easiest way to achieve 2D-mesh that looks like thick grease pencil on the first picture?

My solution has been to create a path with Krita then drag the png into Blender and "trace image to grease pencil". Then when you convert to polygon curve you get the result you are after.
It is possible to do it entirely within Blender by having Blender create the png from a grease pencil though it seems a little complicated.  Draw your shape with the grease pencil. Then give it a texture which defaults to black. Then change the world colour to white with no alpha in the shader editor.  Then add an opacity modifier to your grease pencil stroke and  in the modifer options set uniform opacity and select your material in the material dropdown.  You might need to add your layer in the layer dropdown as well.  Then, render your grease pencil as an image and save it as a jpeg.  You don't need your grease pencil stroke anymore.  Now, create an image empty and load your jpeg from the tab for empties in the properties section (You should be able to just drag the image into the viewport instead but I found this didn't always work).  This will give you your shape with a nice white background.  Now "trace image to grease pencil". Turn off visibility for your empty and then convert the grease pencil to polygon curve.  Remember to turn visibility off for your grease pencil at this point.


text:
How to stop the character after walking
I want my character to stop walking in frame 240 until 600.
But when the animation playing after frame 241. it keeps walking and then the character become weird

hello, maybe share your file? https://blend-exchange.giantcowfilms.com/

@moonboots sure, here link

First thing, switch from Dope Sheet to Graph Editor (CtrlTab), in the View menu, disable Show Group Colors to make the channels readable :

As we can see if you select the root bone, then select its Y Location channel, you have enabled the Linear Extrapolation on the Y location (ShiftE > Linear Extrapolation), which makes it continue indefinitely its movement on this axis. To stop it, choose ShiftE > Constant Extrapolation instead:

Once done, if you want the character to stop at a certain position on the scene at frame 240, just move it to this position and keyframe.
The fact that some of your character's limbs stretch at the end is because some other bones, like the hands, have been set to Linear Extrapolation as well for several of its location channels, so select all these channels and correct that too :

i just set all the bone with constant extrapolation. but the hands feet and chest keeps stretching.

yes because it looks like the Z Location is not the only channel that has been extrapolated, select the 3 location channels and shift E > Constant Extrapolation, your torso also moves, so also correct it, etc...


text:
How can I precisely set my mouse location for tools which use it?
I'm learning the bend tool. It works by having you start with two points in space. One of them is the 3D cursor, and the other is your mouse cursor. The line that connects determines what your geometry bends around.
I can precisely position the 3D cursor with 3D Viewport > Sidebar > View > 3D Cursor, so I'm good there.
But I can't figure out how I could be exact about my mouse's location. For example, if I want to start bending along the Z axis from Z=1.0 to Z=2.0, I can get the 3D cursor to Z=1.0 but I can only get my mouse approximately at Z=2.0 by using one of the orthographic views. I can be closer if I zoom in, but then I might not be able to see the area I need to in order to express the bend I want. And even if I zoom in as far as I can, it still wouldn't be perfect.
What I'd really like is a second 3D cursor. Am I missing something? Is there a way to perfectly position the mouse so I can be precise when using tools like bend?

You might want to use the simple deform modifier set to bend. There you can use another object as an origin for the deformation, not relying on the pointer position. I think you have the same settings if not more with the modifier


text:
Rigging Grease Pencil strokes to Character Armature
Is there a better way to rig stoke lines from grease pencil to a character rig for a model? I'm working on a model that I want to use grease pencil lines with, but I don't know how to go about rigging them or having them follow the bones? So far I've seen methods to parent strokes to bone but I can't parent them to individual bones, same with the GP armature modifier and vertex groups but I can't select individual bones in the modifier.
So far what I'm doing is separating the stokes to individual GP objects and parenting them. I know this is probably extremely inefficient but I'm not sure what else to try.


text:
Cycles and Eevee faceting material in render previews?
I'm trying to render some materials but when i turn up the metal while the objects have normal information the faces of the objects facet and act as though they have flat normals? I've smooth the objects, re-unwrapped them and even deleted and added new objects. These are just default uv spheres, I have no idea what is causing this.

Hello please share your file

Actually this effect can also be made visible when Metallic is set to 0, it is just much more subtle and you have to turn up the strength a lot more (but if you set the strength very low, it goes away even with Metallic at 1). I guess the problem is, since you are assigning new normals to the surface, the smoothing does not work properly anymore. I'm not sure what exactly you want to achieve with this setup. When I plug a Bump node into the Normal input of the Principled BSDF for example, the smoothness is not affected, even at a Strength of 5 or 10.

I want the surface to be smooth of the ball to be smooth since this is a shader master file i'm slowly starting to build up with some procedural materials.
blend file
@moonboots I've linked the Blend file if you can find something I'm missing?

Did you solve this, I am having it even with shaders coming from add-on.


text:
Rigify Help: Cannot Connect chain bone
I'm trying to rig a game character with rigify and it keeps giving me a "cannot connect chain bone" error for spine.003? The character in question I've combined parts of the animal rig "cat" with Basic metarig human. But the bones that are being flagged are from the human part of the rig with only the large head/face bones and tail being from the cat itself.
Full Error:
I've tried having the bones connected and "kept offset" but are virtually occupying the same space both scale 0 to line up but the error keeps appearing. Would anyone be willing to please take a look at the rig and figure out what is going wrong? I've usually manually made rigs with limited features and want to speed up the process wherever I can but I just don't know rigify in order to troubleshoot myself.
Drive link: Character model

There are many issues on cascade:
The whole face has to be rebuilt, because lots of bones need to have their respective head and tail in the same spot, as you find them in the original Face Sample, so I deleted the whole face system from the Metarig in order to generate the body rig.
The first problem that pops up is the fact that the first tail bone (oddly named ORG-spine.003) has to have its Rigify Type property "Connect chain" unticked.

Now the rig gets generated, but it doesn't create a proper neck-head control: to solve you have to select the metarig, go to edit mode and make sure that spine.004 is child of spine.003 (keep offset), while spine.005 and ORG-spine.011 (another odd name) are connected children of the previous bones.
Then go to pose mode and assign to spine.004 a "spines.super_head" Rigify Type.

Now the body rig can be correctly generated:

Back to the Metarig, in edit mode you can add a faces.super_face Sample, upgrade it to the new Face type, and place its bones, paying attention to move the joints without disconnecting them (in the picture below I marked only some of the groups of joints that need to be moved as a whole, not one by one: as a general rule, always use box select or circle select on a joint, then move it in place).

Lastly, make the Face bone child of the ORG-spine.011 (keep offset), and regenerate the rig.

So can I continuously regernate the rig over and over with each iteration? Like add tail generate rig, face generate rig, place face bones generate rig.

yes, absolutely.

Cool it'll be trial and error cause ive  never used rigify before so repsonses might be delayed while I try and work through this.

One thing I will ask. How do I adjust the weights of the rig once I bind the finished result to the mesh? Is it the same as how you would normally

Yes, everything is the same as a standard rig, you will find all deforming bones in the Bone layer named "DEF". All others bones are set to "Non deforming", because they are used for ConTRoL, MeCHanism, or copies of the ORiGinal metarig.

cool beans, i've gotten the tail working but now the face which i've redone is giving me
hassles again. "RIGIFY ERROR: Bone 'brow.B.L.004': Input to rig type must be a chain of 2 or more bones.
Incorrect armature for type 'stretchy_chain"? I used the cat face again, should i just use the human face?.

It is generating a rig now but it keeps asking me to "upgrade face rig" when I apply the faces.super_face rig type to the face bone and that is when it says the error message above

Last edit maybe... ~sorry~
Pretty sure it's all working now? If I update the GDrive could I ask you to check over things one last time?


text:
Blender smooths fbx model at import
I need to display a 3D model on Sketchfab. This 3D model is generated from Autodesk which exports a FBX file.
If I import this fbx file directly in Sketchfab, the rendering corresponds to what is in Autodesk.
But not if I import it into Blender, the rendering is all rounded. If I create a fbx or blend file from Blender and import it into Sketchfab, the rendering is also rounded.
I tried to modify the import parameters in Blender without result.
How to avoid this ?

You have to click on the Properties Window > Object > Shade Auto Smooth.


text:
Need help recreating this node setup in the new node system

I'm following a tutorial on how to make a reveal effect using instanced points but the attribute vector node has been removed, I'm unsure of what it should be replaced with.

What version of Blender are you using, and what version is being used in the tutorial?

@Joachim Im using the latest stable version of blender. If all else fails I'll just have to download the version he was using, i would like to learn how to recreate it in the latest build though. Heres the link to the tutorial https://www.youtube.com/watch?v=cKDC5YE-26k I did see that question but its not specific to what im trying to do.

@Joachim That tutorial says "This tutorial is using Blender 2.93.0 Beta" so a couple of years old!

@JohnEason yeah... super annoying will just download 2.93.17

In Blender 3, most of the Attribute Vector nodes can be replaced by a Vector Math node + the node that represents the attribute. For example, the left one in the screenshot is a Position node + a Vector Math (Subtract) node. For the scaling, this works perfectly but for the translation, there is something wrong. The Normal you have to caption by Capture Attribute. But the scaling kinda does not look right... I guess my model is too big so the scale value does not fit.


text:
Cannot find the "Create Pose Asset" Button in Version 3.5.0
I am looking for the "Create Pose Asset" button in the "Animation" side tab (as seen below in version 3.4.0).

As far as I was aware, this button was the "intended" way to create pose assets to be used on armatures. In fact, the user manual directly refers to this button:

For preset assets, there will be a dedicated button for the different
asset types. Currently poses are the only preset assets; use the
Create Pose Asset button in the Action editor.

However, since updating to version 3.5.0, this button is now gone (as seen below).

Instead, the "Create Pose Asset" option now appears to be located in the "Asset" dropdown menu of the Asset Browser, which is a bit more tedious to access (which accumulates to a substantial time loss over time when animating). This seems like a strange thing to remove, as it slows down the process of quickly saving poses for later use, so I would love to know whether this button is still accessible somewhere besides the Asset Browser's dropdown menu. Thank you!

Does the note below the description in this part of the Blender manual help?

Yep i have found the button but it's grayed out. Im trying to make asset pose from a armature.

@JohnEason That certainly works for me, thank you very much! I would still prefer to have the button in the viewport, since that's the main workspace I use at the point of the pipeline in which the pose library is most needed, but it's good to know it still exists. Thanks again.

I’m facing exactly the same issue. I can’t seem to find the “create pose asset” button. Is this a blender error or something. When I use the button in the dope sheet, it doesn’t change the poses even after registering them with the “create pose asset”. Any suggestions or solutions for this?

I have the same problem. So far I have found no fix.

Inside the asset browser, on the top left there is a dropdown menu that might say All. You have to switch this to Current File. That worked for me.

Unfortunately, this is not the issue. This solution works if the button is greyed out, because Blender cannot write an asset to an "all" directory, but in my case, the button is not greyed out, it is missing entirely.

blender 4.0.2, this works for me.

I've found the button in the Dope Sheet, but it was also annoying for me to lost the button.

As I have just found out, this unfortunately does not work. This button creates a keyframe of the current pose and ONLY works as long as the armature has an active keyframe.
This leaves me with a pretty massive problem: I genuinely do not know how to save pose assets in the current Blender version. The fact that no one else seems to be talking about this issue makes me think I am missing something, but I am absolutely at a loss. This renders my usual workflow basically impossible and I have no idea what I am supposed to do now.


text:
"Preview Node" shortcut not working
Ever since installing the newest Blender version (4.2.0 / 4.2.1), the "Preview Node" shortcut (Shift Ctrl LMB) in the editor no longer works. The issue has persisted even after completely uninstalling and reinstalling the program. Likewise, disabling and reenabling Node Wrangler does not help either.
Upon investigating the keybind settings, I discovered these strangely named binds (marked in red), which do not exist in 4.1.X, while the "Preview Node" keybind is nowhere to be found. Disabling either of these binds does nothing to alleviate the issue.

Quickly previewing node outputs from within the tree is an essential part of my workflow, so this has been quite the annoyance and has kept me from fully switching to the new version, so a fix would be greatly appreciated.

Is the Node Wrangler addon enabled?

It is. Luckily, I was now able to fix the issue based on a response below; I have detailed the process there for posterity.

From your screenshot, I see that some no-name "NODE_OT_nw_preview_node" overrides the actual "Link Viewer" shortcut, that you have described. So you should delete these two shortcuts (that you have encircled), or try Restore button, should delete them for you.

Unfortunately, I have already attempted this multiple times and it does not help.
Generally, the "Link Viewer" and "Preview Node" shortcuts are similar, but not quite identical and I would technically prefer the "Preview Node" shortcut. However, in the current state, neither of them work.

Well, look at your screenshot. Select (Extend) also has Shift+Ctrl+Left mouse, so it should override everything below with the same keys. If you have problems like this, I recommend you load factory settings, to get correct keymaps.

I tried a few things based on your response and found a solution:
I copied the "Connect to Output" command from the factory settings and inserted it into the broken keybinds. Then, "Select (Toggle)" (under "Node Tool: Select Box) was indeed overwriting the Shift Ctrl LMB command.
So in the end, it turned out to be a combination of two factors. The issue is now fixed, however. Thank you very much for the assistance!

Terribly sorry, but I have to retract my previous statement. The issue has now gotten even more perplexing.
The process I described I above does indeed solve the issue, but only for the current Blender session. Upon closing and reopening Blender, the issue returns. Switching to factory settings and then back to my key layout (without touching a single keybind, mind), fixes it again until a new file/window/session is opened.
I am not even sure how this happens, since preferences and keybinds are not file-specific, but saved globally.

Settings are stored in start up file. Try Defaults -> Save start up file. Or save preferences in preferences window.

That does not work either, unfortunately.


text:
Parts of Rig only showing up in Render, and not viewport?

Why are only some parts of the Rig showing up in the viewport?

Open the Filter menu in the outliner, there enable the Disabled in Viewport toggle ("monitor icon"). Now you have these monitor icons in the outliner on the right side, between the "eye icon" (hide in viewport) and the "camera icon" (disable in render).
Click the "monitor icon" in the outliner for the greyed-out entries and they will be back.

I really appreciate it thank you very much!


text:
Why do the clouds look blocky?
I imported vdb clouds into Blender and noticed in the viewport they looked very blocky. So I rendered it out and it looks like this. I tried changing the light path and volume settings but nothing seemed to work. Maybe I'm missing something but it's very annoying. Help!
Specs:

Blender 2.93.0 LTS (128 samples, rendered on cpu (gpu looks the same just takes longer))
16 thread ryzen 9 4800hs
rtx 2060 super max-q mobile
1tb ssd
16 gb ram

can you share that vdb file or your whole file?


text:
Is there a way to access spreadsheet data?
I love new spreadsheet editor. It's good to have it together with geometry nodes, but I think there is one feature missing. I can't export data to external file (I'd like to use it outside Blender). Does anybody know if there is a way to access evaluated instances data via python? I've been trying many things, but the only way for me is to "make instances real" and then access it by looping all objects in the scene, which is not quite what I need. It would be nice to access data visible in the spreadsheet editor window.

For the time being there is not way to access data from Spreadsheet editor, but keep an eye on patch D12546 which implements support for exporting to CSV.
Unfortunately I do not know a way to access geometry nodes output

Hi. Is the export to CSV not available still? Do I need to install the patch as Im not sure how this is done. Thanks!


text:
Unable to find Attribute option?
Hi I can't find the Attribute option in blender working on something with Dynamic Paint.
Refer the screenshot

Screenshot of the brush can't aid, share canvas settings.

I think he means that there is no button in the dialog which is usually there

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

You mean the Viewport Shading > Color > Vertex option, right? This got renamed in Blender 3.2. Have a look at the manual. 3.1 Viewport Shading > Color > Vertex and 3.2 Viewport Shading > Color > Attribute, referenced by Viewport Shading > Solid > Color


text:
Are there aspect ratio frame guides?
I don't want to change the output resolution, I would like it to remain 16:9 in the render. However I would like to film my scene with frame guides in 2:40:1 aspect ratio.
Is this possible?
Sorry if this has been asked before searched and found nothing on frame guides.

The frame guides are shown in the Camera's Object Data Property under Composition Guides but AFAIK it's not possible to customize the guides.

Yeah is a bummer, decided to customise the "safe areas" margin to where about 2:40:1 would be, just for now anyway. Blender missing a trick there


text:
bones not moving objects
i'm pretty new to blender, and i'm following this tutorial https://www.youtube.com/watch?v=IV6XP-EDzw8. finished the tutorial before with no problems but when i decided to make my own object, now the bones set up in the appending and rigging section of the video won't move the model at all. I'm pretty sure its something simple i'm missing, but it would be really helpful if someone could tell me whats wrong.
heres the model with all the bones in their starting positions:

and now heres the model with all the bones moved to the right:

as you can see, nothing changes.
thanks!

Well if yoru object is not moving than weight painting must be missing. Go to weight paint, select bone and check if there is weight paint for the bone... How did you weight paint it? Did you use automatic weight paint?

I didn't know weight painting was a thing, so it would be automatic or not in the model at all, ill check it out, thanks

The whole model was blue, which I assume is the automatic weight painting. Should I paint the whole thing?

Try to choose with ctrl+P Armature Deform with Automatic weights... If your model is blue it means you have no weight painting, blue color means that it wont be affected by bone at all, red means it will get affected with full strenght, It is good to learn more about weight painting before you will start with this, try some tutorials or try those automatic weights and then you can try to adjust it by yourself (remember to use small strenght, something like 0.2 for placed that should move less)

Oooh I see, that tutorial totally jumped over weight painting, he used pre-made arms with weight painting already applied and didn't show you how to do it

I cant select a bone to paint, is it because the bones are in a different object?

Bones for weight painting are selected through vertex groups,

well the individual vertex groups are all weight painted to full red from what i can see (when i select the vertex group for the mag, it turns red), and the main vertex group (weapon) has the whole model weight painted red. Is that how its meant to be?

hmm yes it can be like that but it may be not right... is there way that you can share file with us? It will be much easier and faster for me or someone else to look at it and find your problem

sure, https://1drv.ms/u/s!Amx-KcbDnbA6dxQnjlsL2prsKso?e=FPVU57

i made another model and tried to do the same thing, and got the same problem. I really don't know what to do


text:
why is the shadow created with emission, how to fix it?
why is the shadow created? thanks a lot!!

The reason is simple. Having light emit like that is the same as if you have 2 light sources and because of that, you have 2 shadows. The right part of that emitter is emitting light to the left but your emitter is solid so the left part of the emitter is not letting light through and it creates shadows... solutions would be to go to object properties, uncheck shadow from ray visibility

you are right, i miss the other light, thanks!

And it seems to be physically correct. If you simplify the problem to just two vertical rods, most of the surface is being lit by both of them, but some is being lit by just one, which obstructs the other.

seems to me that you have some light object above and it causes the shadows. If you dont want shadow from the emission mesh Object, just uncheck "Shadow" Ray Visibility.

perfect!!!! thanks!! it works!


text:
how to make cord fabric with geometry node?
hi does someone know how to make cord fabric like this with geometry node?

I try also with displacement texture, but sometimes it works not very well with some models
thanks !

Are you talking about the small-scale pattern of the fabric (material/displacement), or the general shape of it (modeling) ?

This is normal fabric with cord texture. Probably best to use the shader displacement to displace after GPU subdivision, but you can also just use the base surface as deform for a more complex surface.

It depends on that task and resources you have. You can apply normal map, procedural textures, parallax occlusion mapping, duplication or displacement real geometry. It all depends on the computing power of the system where it is realized and how much detail you need to obtain

@Lutzi I mean the pattern like wave texture, not the cloth shape

@MarkusvonBroady I tryed with displace, but the subdivision must be very high, or it will not look nice, if I zoom in. so i am thingking to make it with geometry nodes.

@Crantisz yes, I am working with rtx 4080, but it wokrs not very well if i turn the subdivision very high, so I am thinking if it will be better that I make it with geometry nodes.

Try Cycles experimental and adaptive subdivision.

blender was freezed, if I turn the subdivision of a sofa model to 5 or higher

There will be no difference if the geometry is generated with Geometry Nodes, for the same vertex-count.

Actually geometry nodes will be slower to render, because the vertices will be sent to GPU, while subdivision allows you to subdivide already on GPU.
However, in geometry nodes you can prepare such geometry that uses topology efficiently, the edges aligned to deformations. In practice, even without geonodes, you can have two planes, one for cloth simulation, and another with much higher resolution on only one axis - and then displace using some kind of wave, and then deform using the former plane.

@MarkusvonBroady thanks a lot. I just want try create the cord fabric with geometry nodes, i am curious about that. you mean, I can use edges align to create that?

there are 3 levels of detail here that you may aim for: 1) just a wave pattern going across one axis, 2) the fibers that are almost perpendicular to the ridges, barely visible on the reference, 3) the fluff achieved with a lot of hair. 1) is simple, 3) I think too but I don't have experience with hair, 2) is tricky.


text:
texture shows incorrect in extrem cameraview
i am rendering a small project, but the texture shows not right in a extrem camera view, does someone know why is it?  thanks a lot
hier is the file https://we.tl/t-orgo8kXNiq


text:
can not mark material in asset, option not showed

there is not option to maerk the material in my asset. some know why?

Do you have an asset library set up and paths set under Preferences > File Paths > Asset Libraries?

yes i have it. there is no problem to mark modells as asset, but by material does not show the button, very strange

Very strange as you say. I've not seen that before. Does it just happen in that window or is it the same if you try to add it from the Shading viewport window too?

Hello. Try disabling all third party addons. also check any error messages in the console with Window > toggle system console. And of course make sure your blender version is > 3.0

only in that windows, in another PC works with asset function.


text:
texture expends after beveling the corners

texture expends after beveling the corners, does someone knows how to fix it? thanks a lot

Hello, Meiying Lu,  you'll have to give us a bit more information. Is this a UV-mapped texture? Is the Bevel a modifier?  Perhaps share your file on blend-exchange.com, so folks can have a look at your particular case.

ok thanks, i will upload the file if it still not works.

As bevelling adds faces by extending your mesh from the edges, the UV map is distorted by trying to map a texture where there was nothing before.
You'll have to marks your seams again, on the middle edges of your bevel, then unwrap.

thanks! i realized that if i import the meterial direct from bridge or from blenderkit, the texture are more correct, if i use control+shift+t to import the textures, there will be sometimes not correct with the texture


text:
how to keep aces and agx both color porfile in blender?
after installing the ACES color profile, the AGX color profile is missing in my Blender. Does anyone know how to keep both color profiles in Blender?


text:
How can I change the Features in Shader Editor?
how can I change a property in a shader editor in a blender file?
I know the code I wrote is ridiculous, but I'm new to the blender library.
import bpy

setattr(Height, Scale, 2500)

you want to use bpy.data.materials["material_name"].node_tree.nodes["Height"].inputs["Scale"].default_value = somthing. not posting as answer because I'm rusty on the syntax, and no one else has answered

You need to be able to identify the material and then the specific node within the material and then the specific input for the specific node within the material.  Since there is no "Height" Node, I'm assuming that's a Noise texture node, with its label (not name) changed to "Height".
There are many ways to get to the right input, depending on where you are in your code.  There's a comment on your question that suggests one approach that would work if the Node's name was "Height", but assuming that the name hasn't changed and the label is "Height" instead, you can only get part way there:
nodes = bpy.data.materials["material_name"].node_tree.nodes

will give you a list of nodes in the material.  Next you have to iterate through the list to find the specific node you want.  Here's one approach
work_node = None
for node in nodes:
    if node.type == 'TEX_NOISE' and  node.label == "Height":
        work_node = node

Because 'TEX_NOISE' is they type of a noise texture node.
Now that you know that, you can set the default value:
if work_node:
    work_node.inputs["Scale"].default_value = 2500

Thank you very much your answer. Worked.

You're very welcome.


text:
temporarily disable orbit around selection
In the preferences I have "Orbit Around Selection" ticked on and I´d like to keep it that way. But sometimes I´d like to disable it during work just for a few seconds to freely move the view around while still having a specific object selected -- I´d like to turn OAS on and off without going into the prefs, like I can do with the snapping tool by pressing CTRL. Is there any way? Thanks1000!

Not quite the same but an alternative instead of "Orbit Around Selection" is to set a keymap to :

which you can also do manually in the View panel:


text:
How to apply bevel to inner corners
I want to apply a bevel function to the inner corner below:

But when I do ctrl-b, it gives:

which is not smoothing edges. I looked at some other questions, there seemed to be something wrong with my topology but not sure how to fix that. Any help is appreciated!

Bevel works on inner corners just as well... your screenshot looks like you have duplicate geometry in the corner. Press A to select all, then M > Merge > By Distance.

Hello, since it's not possible to see the scale of your object (visible in object mode in the N-Panel->Items->Scale), I can only guess. So I'd like to ask if you applied the transformation, specifically scale (Can be applied by pressing "Ctrl+A"->Scale). Without scale applied, bevels will not work as intended, rather they will be scaled based on the object, BUT will look wrong. Even with the object looking right, a few operations will result in unexpected results. Thus my comment and recommendation to always apply scale.

@Xylvier I thought about the scale as well, but since the outer corners are beveled correctly and the inner corner bevels absolutely not a bit in one direction (which would suggest a scale of 0 in this direction which is obviously not the case), so I'm quite sure that the scale is no matter if applied or not, at least even in all directions.

Try to merge by distance ... probably some edge duplication.

Thanks! @GordonBrinkmann, sorry for the late reply! It is working after I merged by distance, I am really glad about this! Thanks!

@vklidu Thank you too!

Sorry ... I didnt read whole Gordon's post :) +1


text:
radial mirroring issues

i would like to mirror the cylinders facing the center branching off of the outer ones, but i cant seem to get it to work.

For clarity, please indicate your desired end result, somehow.

I did indicate my desired result.


text:
Python - Link collection and library override
I've been strugling with this issue for several days now...
I would like to link a collection to an external file, then make a library override.
When I use the 'import_asset' only one time, it's working perfectly. But I want to use it in a loop. Problems starts to occur. I assume it's because of the bpy.app.timers.register(lambda: override_object(override, ob)) call that will directly return None and will launch an other thread. The main issue is without this I'm not able to call the Outliner operator.
I was thinking of finding a way to wait for the timer to finish its job before continue the iteration in the loop but I didn't find my way yet.
Should I use a custom operator for this?
Thanks a lot for your help!
Here is the full code:
import bpy
import os

def import_asset(filepath='', col_name='', asset_type=''):
    '''
        Will import asset and link it to specified asset
        type collection.

        Args:
            filepath (str): Filepath of asset blend file.
            col_name (str): Collection name where asset is.
            asset_type (str): Asset type folder to parent asset to.
    '''
    for var in [filepath, col_name, asset_type]:
        assert isinstance(var, str)

    layer_collection = view_layers_dict().get(asset_type)
    if not layer_collection:
        msg = 'Collection {asset_type} not fond!'
        raise Exception(msg)

    bpy.context.view_layer.active_layer_collection = layer_collection

    blender_filepath = os.path.join(filepath, 'Collection')
    return_value = bpy.ops.wm.link(filepath=blender_filepath,
                                   directory=blender_filepath,
                                   filename=col_name,
                                   link=True)

    return_value = next(iter(return_value))
    if not return_value == 'FINISHED':
        msg = 'Link for collection failed!'
        raise Exception(msg)

    if not bpy.data.collections.get(col_name):
        msg = 'Link for collection failed!'
        raise Exception(msg)

    make_library_override(col_name)

def make_library_override(object_name):
    bpy.ops.object.select_all(action='DESELECT')
    ob = bpy.data.objects[object_name]
    ob.select_set(True)
    for window in bpy.context.window_manager.windows:
        screen = window.screen
        for area in screen.areas:
            if area.type == 'OUTLINER':
                override = bpy.context.copy()
                override["area"] = area
                bpy.app.timers.register(lambda: override_object(override, ob))
                break

def override_object(override, ob):
    if ob in set(bpy.data.objects):
        bpy.ops.outliner.liboverride_operation(
            override, 'INVOKE_DEFAULT',
            type='OVERRIDE_LIBRARY_CREATE_HIERARCHY',
            selection_set='SELECTED_AND_CONTENT')
        bpy.ops.object.select_all(action='DESELECT')

        return None

def get_all_children(col):
    yield col
    for child in col.children:
        yield from get_all_children(child)

def view_layers_dict():
    layer_dict = {}

    view_layer = bpy.context.view_layer.layer_collection

    all_layers = get_all_children(view_layer)

    [layer_dict.update({l.name: l}) for l in all_layers]

    return layer_dict

I ended up by doing this instead:
obj = bpy.data.objects.get(obj_name)
arg_dict = {'active_object': obj}
with bpy.context.temp_override(**arg_dict):
   bpy.ops.object.make_override_library()


text:
Cloth brush not working in Blender 2.91 on Macbook pro
I am having a problem with the cloth brush in the sculpting tab. I am using an M1 Macbook pro with blender 2.91.
I have laid out a plane mesh and subdivided it in the layout window, when I go to the sculpt window and try the cloth brush, nothing happens and I see two red circles on my curser that do not move away from the place I originally clicked on.
Any help? Are there settings I am unaware of?

Hi and welcome! I'd suggest try to file a bug report (Main menu > Help > Report a Bug), download an older version of blender, or/and try any linux distro which should work fine... Apple dropped opengl support in favor of their new metal api, see: https://blender.stackexchange.com/questions/198734/compatibility-with-macos-big-sur-macos-11#comment332756_198734

have you tried with a large radius?


text:
Spinner with precession
Trying to create a spinner with precession. But without physics, just an animation.
So, the object is rotating around the Z axis. At the same time, the upper end of the Z axis should draw a circle in the space (I should be able to set this angle beta), and the lower end of the Z axis should stay at the XY = (0,0) (center of rotation in XY plane).

The periods of precession and rotation of the object are different.

Haw can I do this ?
PS
There is a similar post here, but there is no solution and it is done with the physics.

I try to do this with delta-transform but in such way I get precession impacted the rotation speed. This is not good, these processes are separeted.

give your spinner a z-rotation -> linear extrapolation:

move the cursor to the bottom of your object, add an empty

select your spinner, shift select the empty ->keep transform without inverse

now rotate your empty on x (or y) as you want

now give a z rotation to your empty as you like with linear extrapolation:

Thank you! That is what I need.
How can I do Point 3 by scripting?

you are welcome....i have no idea. I would have to research that too....maybe just ask another question? you can ask as often as you like and there are some great python experts here!

@Chris Set Parent to > Object is sufficient for this setup, no further options necessary.


text:
How to measure reflected light from 3D model in blender

We have a simple 3D model of the body (like cube or sphere), with texture parameters like Glossy BSDF, so the body can reflect light.
The body is lighted by a light source (Sun).

scene example on the figure below

Is there a way to measure light reflected from the 3D model (in some units...Flux, candles, no matter what) in the position of the camera?
If YES, can this be done by python scripting?

The only way was to generate video and get a Flux of frames

If you use Cycles, save the output in EXR format; then, the units will be radiance in W/m2/sr. See: EXR output units.


text:
Satellite rotation

I am trying to make the rotation of the satellite around the Earth.
I'm obtaining the satellite's position in the orbit from TLE elements and getting the XYZ of it. So moving along the trajectory (orbit) is done by just adding keyframes to the location of the Satellite.
The problem is with the self-rotation (spin) of the satellite.
The satellite's orientation should be: (-Z) axis pointed to the Earth's centre.
But I have it like in the picture (Small black dots are added for an orbit visualisation).

I like to have it like on the next picture

The X-axis should point in the direction of movement along the orbit, Z - like a normal vector to the Earth's surface.
I guess it should be some local coordinate system... maybe.
But I am avoiding any constraints (to the Earth) because there will be a self-rotation (spin) around the Z axis and even a precession of the Z axis.
How can I produce such orientation?
PS.
If you provide also python code it will help a lot.
The whole blender project is here:
link

A satellite object can be clamped to an bezier circle.
The orientation of the satellite could just follow an empty object (damped track, select an empty), which can be animated (Location set key with "I"). There is no need for a python script, because the movement is not so complex.

Thanks for the answer. For now, I did it by making a satellite a parent of the empty cube which has constraints on the Earth's centre. In this case, the initial orientation of the satellite is the same as in an empty cube (-Z to the centre of the earth) and I can rotate the satellite.
I will try a trick with a bezier curve. How should I create a bezier curve with predicted XYZ of satellite trajectory?

@Viktor let the empty cube follow the new bezier curve as a satellite trajectory.

that is not an option. I need to place the satellite exactly at calculated XYZ. I have an array of positions XYZ. However, this is solved. I cannot create a precession of the rotation axis...

@Viktor you can use this trick: apply your TLE coordinates (with the -Z) to an empty for the orientation and then use this empty as a "Damped Track" for the satellite. It could be, that your data is not suitable for blender and needs conversion by means of some mathematical algorithm. Blender is not a real simulation software. You goal is to visualize something that looks "good enough", not absolutely realistic. Else I recommend https://processing.org/ which can be used for such simulations.

Thanks [@Brain] I solve tracking similar to your description. My goal is to get reflected sunlight from satellite to observer. So for now Blender is the only software that can give me this result. Unfortunately, I am stuck with the precession of the rotation axis. But I think it can be posted as new question

@Viktor sounds super interesting. Maybe you can share a link (blog post or video) of your project. Don't forget to set clipping to min (lowest value) and max to high enough value, especially for the camera.


text:
Random Color to 1 Object
I have one wall in the project I am working on. I want the color of this wall to change when I run the code. I did research but couldn't find it.
import random

rgb = ()
for i in range(3) :
    rgb += ((random.randrange(1, 10, 3) /10),)

mat.diffuse_color = rgb

Does this answer your question? How to get random color variation on a single mesh?

Not exactly, I want the selected object to change, so the duplicated objects change.

Could you please edit your question and add all relevant details to understand your goal? Hard to guess what you want based on the provided code, you're just assigning something to the viewport's material color. Do you would like to change the viewport material color or the base color of the shader? "Radom Color to 1 Object" suggests (to me) that you'd like to randomize the color of one object or mesh (hence the link to the other question, principles are the same). Can you provide a minified blend file or at least a screenshot to see your geometry and what kind of dupes you have?

It's fairly easy to generate a random color.  The question I have is what do you want to use to trigger the random color to change.  In python it might be a button on a panel or a custom property that you change, or even something driven by the frame number of an animation.


text:
GLB export scale problem
I'd appreciate any help with this. I may be missing something obvious.
I'm having problems with exporting a GLB object from Blender 2.9. The object includes animation that utilises shape keys. The exported file appears microscopic in an external viewer (Threejs). Previous projects/models (including another shape key anim.) fill the viewer correctly by default, but the latest is a tiny dot with limited zoom-in capabilities, before being lost to the near-field boundary.
I've checked that the source models for the basis/shape-keys have the same 1,1,1 scale and are a close fit to the same absolute dimensions. To add extra intrigue; when I select "apply modifiers" in the export settings, the shape key anim. is excluded of course, BUT the initial object displays at the correct size in the viewer. It's something to do with the shape keys, but I am not sure what! (or why it didn't happen previously).
Does anyone have any idea how to resolve this, or what I may need to check please?
Thanks,
BHW.

I think you'll have to provide your blend file for us to be able to help you.  (Grab the URL of the question.
Go to https://blend-exchange.com/.
Select the blend file.
Add the url of the question.
Grab the url that results.
Go back to the question and edit it.
Add the new url to the bottom of the post.)

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

It's possible that this is a bug in the viewer, too. Does the model appear centered correctly in https://sandbox.babylonjs.com/? If you can share the .glb that may help, or you could report a bug on the viewer, which should generally scale things properly by itself.


text:
There's these white glitches in object mode when I turn on viewport shading. How do I fix this?

This is what I see. I see these white lines around it. I am very new to blender and I am doing a donut tutorial. I don't know if this is normal or not.

Hmm this is either bad topology with way too sharp edges or inverted normals... Try to go to edit mode, select all faces and press Alt+N and select Recalculate Outside... If it won't help, please give as better view of your topology from closeup

or please share your file: https://pasteall.org/blend/


text:
OSL 2.93 issues
Trying to edit procedural OSL script bricks and I can't seem to get the thing to render. I've just copied a few scripts and the shaders ins and outs appear but theres nothing coming out in cycles when I call for a render. You will save my life if you can open up what I'm doing wrong here, thanks in advance.

Assume you have enabled OSL in the render tab (CPU only).. 2. Could you share your script?

@Robin Betts oh hi thanks for this comment  you just opened up my world with two words. CPU only and yeah heres the source of the script im using  https://gist.github.com/nomelif/567bb30e31e43c643021 It has the same problems I had creating this material procedurally from nodes so I am back to square one after editing it by simply adding a Height 2 variable. but I think I might have just as easy of time figuring it out procedurally


text:
How to make a skin for vertices imported from python script?
I have a script that generates points in the configuration that I need for a surface.
Here is the code that I'm using to generate the vertices.
def add_vertices(self, lat, lon, alt, max_range, azimuth, az_halfangle, min_el, max_el):
    verts = stationary_sector_vertices(lat, lon, alt, max_range, azimuth, az_halfangle, min_el, max_el)
    initialPos = CC.geodetic2ecef(lat,lon,alt).values
    mesh = bpy.data.meshes.new('mesh')
    myobj = bpy.data.objects.new('myobj',mesh)
    myobj.location = initialPos[0,:]
    mesh.from_pydata( verts-initialPos[0,:], [],[] )
    bpy.context.collection.objects.link(myobj)

CC.geodetic2ecef is a coordinate converter that I wrote.
stationary_sector_vertices is the code that generates these vertices.
Unfortunately I dont know how to tell blender how to create faces over these vertices.
Is there a nice way to do this in code?
I understand that the definition of the surface can be somewhat ambiguous, however, in this particular case, I just want the surface to be this spherical wedge.  If more information is needed, I'd be happy to try and supply it.
Images below:
Random View

Top View


text:
How can I add many keyframes for an object without a loop?
        if df['time'].max() > self.longest_time:
            self.longest_time = df['time'].max()
        for name,edf in df.groupby('objectnum'):
            print(name)
            n = f"Object {name}"
            edf = edf.sort_values('time')
            initialx = edf['x'].iat[0]
            initialy = edf['y'].iat[1]
            initialz = edf['z'].iat[2]
            bpy.ops.mesh.primitive_cube_add(location=(initialx,initialy,initialz))
            orig_cube =bpy.context.view_layer.objects.active;
            orig_cube.name = n
            orig_cube.scale = (0,0,0)

            for i,time in enumerate(edf['time']):
                orig_cube.location[0] = edf['x'].iat[i]
                orig_cube.location[1] = edf['y'].iat[i]
                orig_cube.location[2] = edf['z'].iat[i]
                if i == edf.shape[0]-1 or i == 0:
                    orig_cube.scale[0] = 0
                    orig_cube.scale[1] = 0
                    orig_cube.scale[2] = 0
                else:
                    orig_cube.scale[0] = 100000
                    orig_cube.scale[1] = 100000
                    orig_cube.scale[2] = 100000
                orig_cube.keyframe_insert(data_path="location", frame=time)
                orig_cube.keyframe_insert(data_path='scale',frame=time)

How can I just do this with something like this?
I'm trying to eliminate the for loop that loops over all the data.
if ['time'].max() > self.longest_time:
    self.longest_time = df['time'].max()
for name,edf in df.groupby('onjectnum'):
    n = f"object {name}"
    edf = edf.sort_values('time')
    initialx = edf['x'].iat[0]
    initialy = edf['y'].iat[1]
    initialz = edf['z'].iat[2]
    bpy.ops.mesh.primitive_cube_add(location=(initialx,initialy,initialz))
    orig_cube =bpy.context.view_layer.objects.active;
    orig_cube.name = n
    orig_cube.scale = (0,0,0)
    #HERE IS WHERE I NEED THE MAGIC

    #Creating a Nx3 array of locations [x,y,z]
    locations = np.array([edf['x'],edf['y'],edf['z']]).T
    orig_cube.ADD_KEYFRAMES(data_path='location',loc=locations,fame=edf['time'])
    #Creating a Nx3 array of scales with first and last instances = 0,0,0
    #With the rest being 1,1,1
    scales = np.ones((edf.shape[0],3))*10000
    scales[0,:] = 0
    scales[-1,:] = 0
    orig_cube.ADD_KEYFRAMES(data_path='scale',scale=scales,frame=edf['time'])

The pattern for this is
# Create action to hold the fcurves (choose a name)
action = bpy.data.actions.new("CubeAction")

# Action affects objects (vs shapekeys/materials/etc)
action.id_root = 'OBJECT'

# Assign action to your new cube
orig_cube.animation_data_create()
orig_cube.animation_data.action = action

# For each X Y Z component
for i in range(0, 3):
    # Create FCurve affecting location[i]
    fc = action.fcurves.new(data_path="location", index=i, action_group="Location")

    # coords is an array of length 2*(num keyframes) floats in the format
    #   [ frame, value,   frame, value,   frame, value, ... ]
    # values are the value of location[i].
    # It can be a list, array.array, numpy array, ...
    coords = ...

    # Add enough keyframe points
    fc.keyframe_points.add(len(coords) // 2)

    # Set the keyframe point values
    fc.keyframe_points.foreach_set("co", coords)

    # Set all interpolations to LINEAR
    ipo = (
        bpy.types.Keyframe.bl_rna.properties["interpolation"]
        .enum_items['LINEAR'].value
    )
    fc.keyframe_points.foreach_set("interpolation", [ipo] * len(fc.keyframe_points))

# Scale is similar, just change the fcurves.new line...

The format for coords is two values for each keyframe. coords[::2] are the frames/times and coords[1::2] are the FCurve values at those frames. You'll have to figure out how to massage your data into that form on your own, but it shouldn't be too hard.

Awesome.  This seems to work for location [I haven't tried with scaling just yet.]  But I notice that the interpolation between my keyframes is kinda wonky.  Is there a way to set them all to LINEAR in a similar way without a loop?

Yeah, I added it in.


text:
Grease Pencil Sculpt Tools do not function
I have created a grease pencil design and want to sculpt it. However, no sculpt brushes seem to work. I have selected the grease pencil object before switching to sculpt mode. I can see the sculpt cursor and change the radius and strength.
Tried resetting all brushes but that does not help.
(Also tried copying and pasting the object in a new blend file, but still the same problem. New grease pencils can be sculpted though.)

Check if the layer is protected (padlock on).
Check if the materials are protected.
Check if one of theese buttons is enabled (they limit the sculpt actions to selected points/strokes only).

As you suspected, one of the selection mask buttons was enabled. Turning it off did the trick. Thank you!


text:
How to control material slot order in FBX export?
To be frank I'm not 100% sure if the problem I have is with Blender 3.0's FBX export or Unity 2020's FBX import, but that said maybe someone who knows more about this can help.
I have some scripting in Unity that dynamically modifies the first material on a MeshRenderer, and leaves the other materials, if any, alone. The idea is that the first material should be set by the artist as the "main" material, typically white, and the script can modify aspects such as HSV to give a visual effect.
Each material is applied to a distinct subset of faces of course.
The problem is that for some of the models I FBX-export from Blender, the first material slot shown in Unity (as an array of Materials) is not the first one that was defined in Blender. For example, Blender might show the following material slots with useful material names:

White
Grey
Black

But after import the resultant FBX into Unity, the material array in the MeshRenderer shows in this order:

Grey
White
Black

Grey and White have switched places. This means that the script operates on the Grey faces, not the White ones as intended. Reordering the elements of the MeshRenderer's array just applies the wrong materials to the wrong sets of faces, it doesn't change which set of faces is considered the assignment for the "first" material.
Changing the order of material slots in Blender seems to have no effect. I've also tried temporarily reassigning each set of faces to temporary materials, creating new materials in the correct slots, and assigning the faces back, but this doesn't seem to solve this problem either.
I've seen some historical comments from Blender developers along the lines of "material slots order doesn't matter" but I wonder if this is one situation where it might?
Or is there a better way to do this? Is there a convention for assigning metadata within an FBX to indicate to something like Unity which material is which? The script could search for a material name like "White" or "Main" but that seems to overload the purpose of the name somewhat.
(Is there a good FBX viewer that allows me to see the deserialised data within the binary FBX, so that I can see if changing anything in Blender actually changes anything with the serialisation order - that would help me work out if it's Blender's export or Unity's import that is the source of this issue).

I saw a solution to this problem on another forum and it helped me.

Go to edit mode, press P and separate By Material.
Export the file (or just save it if you're using blend files) and let Unity import the model.
Back to blender, select the separated parts of the mesh, the object with the main material should be activated. Press Ctrl+J to join them.
Export the file (or just save it if you're using blend files) and let Unity import the model.
and done. Hope this helps.

a great solution, although, as far as my experience goes, it's only the steps 1 & 3 that are required here, and it's the order in which you select the parts while joining that is paramount here. Seems the Blender exports mesh parts in order dependent on when they were created in scene or something similar, and needs to have manual reordering in situation where it matters (it would also suggest that Unity retains the order from FBX correctly, so this behaviour would happen exclusively because of Blender).

The solution given by @Wneee works great in most cases, however a simpler solution is to simply go into Edit Mode, then under Mesh > Sort Elements... > Material and then select Faces as the elements. This will also result in the correct order of materials in Unity.
The issue occurs because for some reason the materials are sorted by their first occurrence in the mesh faces. Splitting and rejoining the submeshes results in the face order being in same order as the materials. The only downside to this is that the mesh might be split along vertices that are shared between two materials.
Just today I had a mesh where I wanted to sort the materials in Unity, but doing the split and rejoin trick caused it to render differently. While I'm unsure why the rendering was affected, I have found that sorting the elements didn't have this side effect since it doesn't create new vertices by cutting the mesh.

Thanks worked with 2021 LTS / Blender 3.6 / Better FBX export


text:
Controlling 2 properties with one driver
I have a bone who's scale and rotation changes based on the rotation of another bone. I want the power of the driver to change, based on whether the rotation of the parent bone is in the positive or negative direction. When making a basic driver, I can get things to work how I want when the bone is rotated one way, but then the behavior is not what I want when it bends the other way. I'm using a scripted expression, transform channel, expanded polynomial generator with 1 polyorder.

What does your driver look like right now?  Fcurve, scripted expression?

if you go to the text editor -> templates -> python drivers:
you will get:
# This script defines functions to be used directly in driver expressions to
# extend the built-in set of python functions.
#
# This can be executed on manually or set to 'Register' to
# initialize the functions on file load.

# two sample functions
def invert(f):
    """ Simple function call:

            invert(val)
    """
    return 1.0 - f

uuid_store = {}

def slow_value(value, fac, uuid):
    """ Delay the value by a factor, use a unique string to allow
        use in multiple drivers without conflict:

            slow_value(val, 0.5, "my_value")
    """
    value_prev = uuid_store.get(uuid, value)
    uuid_store[uuid] = value_new = (value_prev * fac) + (value * (1.0 - fac))
    return value_new

import bpy

# Add functions defined in this script into the drivers namespace.
bpy.app.driver_namespace["invert"] = invert
bpy.app.driver_namespace["slow_value"] = slow_value

And in that function you can basically do whatever you want -> and of course as well set the second property.


text:
Attaching a rope (curve or mesh) to two other objects
I've already read two threads on this but the instructions given are not clear enough for me.

i would like to attach the ends of the highlighted mesh, so that animating this part isnt so tedious.

hello, so have you tried and why didn't it work? also, maybe link the 2 threads

have you watched this video? https://www.youtube.com/watch?v=vhicmKyMB-s

https://blender.stackexchange.com/questions/97749/how-to-simulate-a-rope

https://blender.stackexchange.com/questions/192863/best-way-to-attach-objects-armor-to-cloth/192923#192923 and many more: https://blender.stackexchange.com/search?q=attach+rope

What you can do is create a long plane, subdivide it, create a group, give it a Physics > Cloth with the group as Pin Group:

Create your 2 objects, 2 cubes here (but it can be empties or bones), select a cube, shift select the plane, switch to Edit mode, select the same vertices as the pin group, press CtrlH > Hook to Selected Object. You can hook to a vertex group of the object if needed. Do the same for the other cube. Put the Cloth modifier under the Hook modifiers:

Create your pipe object, hook it as well, give it a Surface Deform with the plane as Target, click on Bind. The Surface Deform modifier must be under the Hook modifiers:

Make the plane invisible, move the cubes:

moonboots, ill paypal you 10 USD when this project is done, if you want it. thank you!

ah ah no it's ok  ;)   so does it work correctly?

yes it's working =)


text:
Automatic weight painting failed to paint mesh correctly
I've replaced a mesh that was previously animated with an improved mesh. No custom weight paints were used on the previous mesh. Unlike the previous mesh, I appended the improved mesh without the rig from the original project. The improved mesh works correctly with the original rig, but does not weight paint correctly with the appended version of the rig. The weight paints of some bones are magenta (hot pink) while the rest are blue. Scale and rotation have been applied. The only notable problem I know of is the parenting problem, which causes incorrect object coordinates. Applying location doesn't seem to fix the problem.

Can you add a blend file showing the problem? (How to add a blend file)  It's difficult to diagnose weight paint problems otherwise.  Also, be aware that automatic weight painting is fragile and often needs manual adjustment afterwards.

I cannot unfortunately, since I get the error when uploading: 'There was an internal error attempting to complete your request.' Can I add a picture instead?


text:
How do I recover my corrupted blender file through reverse engineering?
The only thing that crashed is blender, and my C drive keeps running out of space. The crash was caused by adding a remesh modifier after a subdivision modifier. I saved the backup file that saved my work a few minutes before that. How I reverse engineer the project file to retrieve and recode (fix) my corrupted mesh?

perhaps this : https://blender.stackexchange.com/questions/82941/append-an-object-without-its-associated-objects

unfortunately that didn't help

I'm afraid that the best you are going to be able to do open some file, and then try FIle -> Recover -> Auto Save to see if the last autosave is recent enough to be useful.  Sometimes you can try Last Session instead.

I'll add that in Windows, blender keeps autosaves in ../AppData/Local/Temp. Autosave files end in .autosave (obviously). Try sorting by most recently modified to try and get the most recent one.