text:
Colour change for an object with multiple materials?
The object is going to roll while being rainbow colored, stop and then change to red all over, the problem is that all the different objects have different materials used to make them up, so when i assign a key frame for a color, it doesn't stay rainbow colored while rolling and is instead just red. i'm using key frames made from base materials in the editor.

i would change the color via nodes in the shader editor - so you just have one material for all. Here you can also change the color dependent on your timeframe.

This worked for some of the strands, but the issue is that there are a lot of materials, in the hundreds so changing them may be too time consuming. would starting again with seperated objects being better?

I’d doesn’t look like hundreds of colors…I see just 6….

I coloured them and copied them, so may need to backtrack and add the colours after the mesh lol

I figured it out by backtracking, thank you very much :)

You are welcome


text:
A method to hand paint individual faces, like Minecraft
I am currently looking for a method to easily hand paint Minecraft styled characters, and seemingly the best way to do this would be to paint subdivided cubes.
Would there be any method in the texture painting tab to easily do this?

you  could use a low resolution texture and set the image texture to 'closest' in the shader editor, so when painting the mesh, you'll do it per pixel on the texture.

There's a Paint Mask option in Texture Paint mode, once enabled, select the faces you want to paint on with ShiftLMB (and CtrlShiftLMB to unselect) or with the lasso CtrlRMB (and ShiftCtrlRMB ton unselect):

source: Stack Exchange

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

sort: votes


text:
Keep object assigned in the same position when changing animations
I am using animations from Mixamo for my character, but upon making the weapon the child of the hand bone, some animations work fine and others change the position drastically, is there an easy fix?

Hi, you are new here...but...we do this in our free time and we cannot mind reading (yet). So please give us as many details as possible like e.g. which animations work and which don't? You show us nearly no settings - how shall we know what you did? since you seem to be a beginner maybe the best way to help us that we can help you would be if you provide your blend file.

Hello!
Thank you for the feedback, the animation that works is the one shown in the top image, where the weapon is nicely alignged, and the one that isnt is the bottom one. I use the action editor to manage and change between animations in the view port.
What would be the best way to share a blend file?

File-sharing on BSE is via https://blend-exchange.com/ ... follow the instructions there.

This is the file!

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


text:
Normal maps not baking correctly due to correct cage setup?
Using the select to active technique, and when baking from high poly to low poly which is UV unwrapped via automatic unwrap, many smooth planes are made on the bake sheet, is this due to the image being too low res as the texture is 3k.

This might be because your "max ray distance" is too small so the rays cannot reach the high-poly model. try increasing it a bit and see if it makes it better

Also, increase the Extrusion value which creates a cage so the rays cannot hit another leg.


text:
Blender Sculpt Brush changing when moving across mesh
When sculpting on a poly modeled mesh, with the multi-res modifier applied, the brush sometimes moves in a very stretched manner. All transformations are applied on the mesh also. It seems to happen mainly near the creases of the model.

btw i see that crease. looks like you're using a mirror modifier? stick with symmetry X instead of mirror modifier when sculpting.

The mirror modifier has already been and this usually happens when near the arms also.


text:
Best way to rig poly hair?
I have made a model of which I plan to use automatic weights for the body, and parent objects that dont need to move dynamically like the eyes, teeth and such to the armature by selecting the object, the the right and CTRL + P then parenting to a specific bone.
However I have poly modeled the hair, and was wondering if using separate, individual armatures for each group of hair would be smart? And if these hair armatures could be attached to a completely separate armature? How would you go about doing this?
Please see below for screenshots :)

Hello why would you use different armatures? Maybe create a chain of bone for each group of hair? Also maybe consider a bit of physic like cloth or maybe an addon like BoneDynamic or Wiggle Bones that fake physics?

Hello, wiggle bone may work, does that require much weight painting as the way the hair is made it would be tough to manually weight paint them?

If the hair armatures and hair objects are separate armatures and objects, try a parent With Automatic Weights, then you'll join to the main armature and body. Also try BoneDynamic, it may be simpler to use.

If you join several armatures, make sure that they don't have the same bones name before joining

This is all very useful! Thanks! :)


text:
Object not working with global move
I have a problem when i move my object and i set in global.
All object do not move the same way.

pls help

Maybe in the Transform Orientations panel, make sure you've selected Global?

Ah yes, thx both of you, i've resolved my problem!


text:
my polygon stretched out when sculpitng?

Hi, I'm working on this 3d sculpt in blender and Im having this issue on the arm where the lines get streched if you see the torso it looks fine but the arm is messed up. I pulled the arm out. I'm gussing that it could be because of the polygon count if so how do I increase the count in that specific area, new to sculpting. is there a setting that I missed and Im not using dynamic topology im using remash, tried using dt but syaing I got an vertex error or something.
Thanks!

you must have stretched this part with one of the brushes, maybe give a correction to this area with dyntopo and mesh collapse

In the tutorial I was watching she pulled the forearm out using the move tool. https://www.youtube.com/watch?v=d-gSVS4E6zk at 15:29

Sorry this one i mean https://www.youtube.com/watch?v=Xypvsf94onc

yes it looks like she stretches her topology, maybe you stretched too much or you don't have as much topology, but I'm not sure why she uses this method, why don't you use dyntopo at least on this part in order to add topology?

I tried but I get an warning saying Vertex data detected and it slows down my computer and doesnt work

does the message prevent you to use Dyntopo? Also make sure that the Dyntopo Detail Size is not too low? If you don't want to use Dyntopo, I guess you need to cut this part or use Remesh

you can also simply boolean with a another object

I don't know what you mean by boolen but I just cut the arm off and used a cylinder instead of streatching it

Boolean is a modifier, you can create another object and add it (Union) to your object


text:
RTX 3090: Unsupported Graphics Card or Driver - OpenGL 3.3 or higher recquired
I have 2x RTX 3090 and the drivers up to date, running on windows 10, I also have the latest version of blender.
I get the following error when I try a render or try opening some menus in the application.

Unsupported graphics card or driver - A graphic card with support for OpenGL 3.3 or higher is recquired.

I have tried running the program that checks OpenGL version and found out I have OpenGL 4.8 so it can't be that.
I have tried reinstalling blender.
I have tried downloading some OpenGL.dll and put it in the blender folder which was a suggested way I found online but to no success.
I am starting to run out of options, any help appreciated.

This is a known issue reported at https://developer.blender.org/T85628

It seems to avoid crashing by going to the Nvidia Control Panel, under Manage 3D Settings either in the Global Settings tab or in the Blender specific Program Settings, if you set OpenGL GPU to Auto-Select to NVidia GeForce RTX #### (2 of 2).
I also had the choice to use "NVIDIA GeForce RTX 3090 (1 of 2)", so I'm wondering if choosing just one will impact performance or if it's normal.
Nothing to report so far though, render went through.

Nice find, seems to fix the issue on my end as well. Blender used to fail to even launch on my system if my startup layout had two windows on different monitors Also if opening any child window like the file browser the secondary monitor.


text:
Set absolute dimension of object using Geometry Node
How can I set the absolute dimensions of an object using Geometry Nodes?
I could find a "Transform" node but not e.g. a "Dimensions" node.

This group will set the dimensions of your object, before any object-level scaling, which takes place after the mesh is modified:

If you wanted to offset (add or subtract) to/from the X,Y and /or Z dimensions of your object, the arithmetic is just slightly different:

The above group exposed the offsets in X,Y and Z to the interface, as a single vector...

Thanks.
Where do you set the actual dimension values in this setup?

Hi @Bernd ! In the modifier interface. (or in the node-group  interface, if you use this as a sub-group of another tree)

If I wanted to add a centimeter to my model's height, not set the height to a fixed value, can I do it using this graph?

Hi, @Richard .. see edit.

When I try to copy your second diagram 1) my Offsets is a vector type, not dimensions, - so I can set it to like 1.5 (times), not 1.5 cm.  2) My group output box says Bounding Box not Geometry

It is a vector, yes, you can make 3 separate offsets, 1 each for XYZ. so to add a centimetre to the height would be [0, 0, 0.01] .. will reconstruct for you....

@Richard See edit for  a shared file.

Isn't a vector of 0.01 10%? Not 1 cm or 1 m or 1 mile. I don't understand

The vector is just a way of clustering 3 values. In this case, the amount you want to add to the dimensions, in X,Y,and Z, (in Blender Units). Check the Dimensions panel, while switching the modifier on and off.  You'll see.. (unless I'm going barking mad :) ) Sure, it achieves it by a non-uniform scale of the object. Do you mean you want some sort of extrusion, instead?

@Robin, if you have any time to look I'd appreciate it. - https://blend-exchange.com/b/o7SqljDx/.  I'm trying to use your offset and set nodes to expand a wall outwards, then squash it, to make a skirting board. But the offset seems to scale not set, and the setting seems to force unspecified axes to become 0.

Hi, Richard.. nowhere did you specify you wanted dimensions to be altered towards minimum Z... :) There is a more general problem though, with this approach to your file. All your walls are scaled in Object Mode. That transform is carried with the object. It takes place after modifiers have manipulated the mesh (for which the Object is a 'vehicle' .. origin and coordinate system) so all the effects of any modifier are scaled, too. Also, the origins of your walls are halfway up one side. Any GN group made to compensate for this would have no generality, just solving a one-off problem.

Try the Bounding Box node.
It gives you 3 outputs:

Bounding Box: a rectangular mesh representing your object's bounding box. (Essentially a cube sized to fit your mesh perfectly.)
Min: The minimum X, Y, and Z positions of your mesh (how far it extends in the negative X, Y, and Z directions.)
Max: The maximum X, Y, and Z positions for the mesh.

Thanks. As far as I see the Min, Max are outputs. Shouldn't there be inputs for those values to allow me set the Bounding Box size per parameter?

Sorry, I misunderstood. I thought you only wanted to read the values :)

Use the answer above, it should do what you want.


text:
animation is not exporting to glb/gltf
I'm using blender 2.93 and I'm trying to export a cat with animation to treejs.

basically, it's a low poly cat with an armature, and a short animation on its tail.
I have tried to export the cat to glb and gltf but the animations are always blank.
I tried different things but nothing works... I think the armature is ok. I changed the name of the action in the NLA tracks. I also tried to bake it and play with the exporting setting.
I'm new to blender and would appreciate any response that might give me an idea of what I am missing.
I have uploaded the file here-
https://pasteall.org/blend/965a1f1763a34e49a51452d727a330e8

In the export window, tick "Always Sample Animation", seems to solve this.

Also note you didn't apply modifiers, you will only get half a cat wiggling half a tail.

I already tried that option, it must have been off because I played with the settings.. anyway I applied the modifiers and tried again (with that option) - still no luck

did you make sure to select both your armature and object? because you have "Only Selected" ticked as well. edit: the animation IS exported as seen in Windows 3D viewer. the problem is probably in your integration with ThreeJS.

I didn't know you could use Windows 3D viewer like that and I can see the animation now- thank you! I spent days blaming blender but apparently, the problem was actually treejs... though I have no idea why.

I have experimented with threejs. feel free to ask a new question ;)

You need to use the animation mixer in 3js.  Something like this mixer = new THREE.AnimationMixer( gltf.scene );
gltf.animations.forEach((clip) => {mixer.clipAction(clip).play(); });


text:
Grease Pencil not responding
I’m using Blender 2.93.5 (after leaving UPBGE behind), and I’m trying to use the Draw mode in the Grease Pencil, but it simply doesn’t respond: I draw, the pointer crosses the screen, but nothing happens.
Does anyone has an idea on why it’s behaving like that? (Or NOT behaving, whatever…)

With the new version of Blender you have to explicitly create a keyframe for the layer you want to draw on (press I on the 3D window in Draw mode), or enable the Autokeyframe Record button on the timeline to go back to the previous automatic new keyframe creation.

That works! Thanks for the explanation.


text:
How to make Mouse Look work in the logic bricks editor in UPBGE 0.3 Alpha?
I have the following bricks in the editor:

But nothing happens when I move the mouse in the play mode.
What am I doing wrong?

You need to have a Mouse sensor with the type Movement instead of an Always sensor.

Thanks!! It works!

Glad I could help!

I am having an issue with very jaggy/sometimes not moving at all - does anyone has a clue?
I used the exact same setup and it works in Blender 2.79 BGE, while doesn't work in UPBGE 0.3.1.


text:
How can I disable the rest position programmatically?
I am currently trying to write a custom importer for the model format used in Ocarina of Time 3D, but I've reached a bottleneck in regards to how Blender stores models internally.
In OoT3D, models are stored as a skeleton, with bones at rest positions/rotations relative to their parent bone. In each animation, it specifies new positions/rotations for each bone that are meant to overwrite the rest pose.
However, in Blender, it looks like the rest pose is always active. Any animations that you define are added on top of the rest pose, rather than replacing it.
This introduces bugs into animations, such as:
Incorrect Rotations

Since the rest and animation rotations are added together, at first I tried naively using (animation rotation - rest rotation). However, no matter what I did this didn't work.
It turns out this is because they aren't merged together as ZᵣZₐ * YᵣYₐ * XᵣXₐ, but rather ZᵣYᵣXᵣ * ZₐYₐXₐ. Because the rotations are applied by rest/animation rather than axis, it would accumulate error over the second set of axes.
I found it was necessary to switch to quaternions, by calculating the inverse to counteract the first ZᵣYᵣXᵣ. So it's effectively ZᵣYᵣXᵣ * inverse(ZᵣYᵣXᵣ) * ZₐYₐXₐ. This works visually, but requires a keyframe at every index in the animation. This would make it really tedious to edit any of these animations.

Incorrect Translations

I'm currently having trouble adding animations on top of the rotation approach. Again, I tried the naive approach of (animation position - rest position). This was close, but this didn't work either.
This seems to again be due to how transformations are applied in Blender. It looks like transforms are roughly calculated as: mat(translationᵣ) * mat(rotationᵣ) * mat(translationₐ) * mat(rotationₐ). Like above, since the translations are separated, that rotation in between introduces some error when the second translation is finally applied.
There might be some way to calculate new positions based on the rest position/rotation, but this sounds complicated for what should be a straightforward problem.

I've been trying to find documentation on this issue, but I can't seem to find it addressed anywhere online. I've been thinking of trying the following approaches to fix it:

It looks like PoseBones have a number of constraints you can add that change how the final transformation is calculated. It seems plausible that there would be a constraint that could disable the rest pose from being considered in the final calculation...
I've been working with the keyframe API this whole time, but it looks like you can also update the matrix take "snapshots" of the keyframes that way. This still seems like it would require additional keyframes, but it would take care of the translation issue.

Does anyone happen to be familiar with this issue?


text:
What is the process for animating rigid bodies and then having them switch to dynamic?
Good Afternoon,
I am attempting to learn the intricacies of Blender and I am stumped by the animation. I am trying to put my own spin on the typical wrecking ball into blocks, in that the ball swings into the blocks and breaks into pieces rather than the blocks falling over.
I have cell fractured the wrecking ball and I am trying to get all the pieces to move together via animation. Its a basic fracture, resulting in only 8 pieces. Here is my workflow:
-Cell fracture a UV sphere
-Make them active rigid bodies
-Attach to chain
-Keyframe the loc/rot, keyframe the animated property
-Advance the timeline, rotate ball into place and add loc/rot and animation keyframe
Its at this point I'm unsure of what to do next. Ideally, I'd like to have the ball swing down dynamically towards the wall and then right before contact is made (i have the blocks set to passive rigid bodies) have the ball just fall apart.
I've tried using 'Connect' under Rigid Bodies, however I'm not sure exactly how that constraint works and it seems to jitter around too much to be truly useful for this purpose.
To sum it up, I'd like to know how exactly to keyframe an object to be animated for half the frames and then dynamic for the other half.
Your help is greatly appreciated. I have been trying to figure this out for the past 5 days!

Keyframe "animated" on for the last frame that you want to retain control of the objects.  Advance one frame, turn off "animated", keyframe it.

Would I start the sim with all the objects keyframed "animated" on, or would the first instance of "animated" on be during the last frame you described?

It doesn't matter if you have an initial keyframe set to animated.  It matters only that the final controlled frame is keyframed.

I need some advice with this aswell. I can get my rigid bodies to get up to speed by animating them the first few frames. Turning on and keyframing dynamic works to start a physics animation.
When i try to switch it back to animated and keyframe it my body just goes back to the last position i animated it in before.
I can´t figure out how to take control of it again after the simulation in the same place as it sits.


text:
one edge with different bevel
I have an edge with different bevel (smooth).
The picture shows the marked edge is start smooth and changed in a hard edge.
How can I fix this edge to a smooth edge like in the front?
Thank you
.

Hello, your question is not clear, do you mean you've used a Bevel modifier? If my answer is not correct please share your file: https://pasteall.org/blend/

It's hard to guess without the file.
Probably your edges look smooth because you must have enabled the Subdivision Surface's On Cage option, in order to you see the modifier's effect in Edit mode. The other ones don't, maybe because the normals are inverted. Try to select all, then Mesh > Normals > Recalculate Outside (or ShiftN).

Thank You for the solution. It was the second.
The normals were inverted. Now everything is correct.


text:
how does UV unwrapping work
How do you get symmetrical parts to line up when unwrapping? Usually, when I try using the Smart UV project, symmetrical parts don't seem to stick together, despite the lack of seams. The location that the faces end up seems to be random.

You should unwrap manually. Manual UV unwrapping is mainly marking edges as places to “cut” the mesh surface and “unfold” it. After that, select all and unwrap, and adjust UV map as necessary. See docs.blender.org

It doesn't answer directly bur you could use a Mirror modifier and apply it when you want, the UVs will overlap and the texture will be perfectly mirrored


text:
How do change a fluid into a mesh?
I just bought FlipFluids and one of the simulations that i would like to recreate is in this video https://www.youtube.com/watch?v=FARyt4s3T7E&t=197s (Minute 3:43). Any suggestions?

I think that it is just simple transition done with changing alpha value, they filled capsule with fluid and once it was full it dissapeared and the bottle object appeared at the same place

ahh alright, thank you


text:
Error when baking FlipFluid simulation when using add-on curve spiral as a force field
Error message appears when trying to bake a curve force field. The curve is from the "Add curve : Extra objects" add-on. Is it because I'm using the free demo version of FlipFluids?

Here is the file : https://drive.google.com/file/d/10lZzyx8psbADO4PqFjNc36FKIGEKpET1/view?usp=sharing

in flip fluids you can read about the demo restrictions. I would assume: no, it is not a restriction. If it would be, i would expect an error message for this. Maybe the better place for asking is in github for flipfluids and create an issue. Or short: seems like a bug to me.

Yep, just got a reply from a dev and apparently it was a bug which will be fixed by the 20th


text:
Physical behavior of fluid changes as i change resolution, so what is the proper workflow?
I'm trying to wrap my head around the best workflow when dealing with fluid simulations. Everyone says to use low resolutions to preview it but when I increase the resolution for the final bake, it almost always never looks similar. The fluid flows too slowly, or sometimes sudden explosions happen. So how do you guys preview properly before doing a final bake?

Well that's more a question of opinion with no distinct solution. First of all, it is absolutely normal that the fluid reacts differently. It's as simple as that: you cannot preview how a high resolution fluid with very small voxels flows for example through a hole by simulating it with low resolution and voxels that are much too big to pass the hole. But what to do against it? That's the opinion-based part. I usually never preview with too low resolutions, I always start with medium resolutions - and for the final render I try to get away with not too high resolutions.

understood, but why does the fluid become slower as the resolution increase? Im not talking about the viewport display lagging but rather the particles themselves. Apologies for my ignorance

More surface, more interaction with surrounding geometry, more friction...


text:
Is FlipFluids still relevant in version 2.93+ of Blender?
Im considering getting the FlipFluids add-on as mantaflow seems to be just too inconsistent for me. Any thoughts on this? With version 3.0 coming soon is it worth it to get the add-on now?

Depends what you mean with "relevant". If you want a quicker and much faster result than mantaflow - i can recommend using FlipFluids. I do all my fluid simulation with it and i am very satisfied with the result. But i am sure some guys have different opinions on this here.


text:
Why does my Cycles-X render look different when saved as a png?

Here's how it looks after rendering

Here's the result after saving as a png
Any idea why it looks so different?

Check if you have Save As Render checked in the save dialog so the image goes through color management. Else than that, you are using an experimental unreleased version, so... That's to be expected. Maybe report it as a bug after checking if it's not fixed in today's build or already reported.

this helped. i think my problem was that there was emissions with large valuels. it's really jarring to take the render result image, save it, and open that same image in the built in image viewer, seeing a totally differently lit picture


text:
How do I emit smoke at a specific frame?

I'd like to emit smoke from this object at a specific frame. Before that frame, I'd like there to be absolutely zero smoke visible. I've tried animating the "Use Flow", density, surface emission, initial velocity, but no matter what I do, there will always be this smoke that just stays there until it shoots out.

Does this answer your question? How to change the start simulation time for smoke in Blender

no but thank you for offering the help, i'll repost this question in a bit

3 things you have to keep in mind:

keyframe "use flow" unchecked 1 keyframe before it should start
keyframe "use flow" checked at keyframe where it should start
change any settings on the domain that it takes effect (or delete bake)

Already did those, the smoke still remains. I think i'll rephrase and repost this question

this works...then please provide your blend file. Maybe you have another domain/emission object?


text:
Is it a bad idea to have multiple smoke domains?
I have this scene with 3 smoke domains, each with different properties. Whenever I try to render in cycles, it crashes. I'd like to know if using multiple smoke domains is significantly more demanding compared to using a single large domain.

Just to try it I placed 1 vs 3 vs 8 domain with low res render to make quick comparison, you can render multiple domain but it is quite growing in demand...
1 domain 1.33 seconds... 3 domains 3.44 seconds ... 8 intersecting domains 7.45 seconds... so yes it pretty much multiplies it for me, 1 domain 1 second = 8 domains cca 8 seconds

thanks for the help, i'll try to avoid it then

This question might suffer the fate of being closed because as the title is articulated now, it's asking for opinion-based answers. I didn't vote to close since as @MikoCG points out it makes a difference, which might be useful information. However, and this is why it's opinion-based, it strongly depends on what you want to achieve and what you are willing to compromise. If I want to mix different smoke and fire elements because some settings give better results than others for different parts, then sometimes it might be better to mix multiple domains - if your machine can handle it.


text:
How do people model photorealistic products?

To accurately recreate a product, do people use 3D scans? or perhaps they request for / make their own blueprints to get the accurate measurements? right now, I'm trying to model a gaming mouse and I'm facing a lot of difficulty, I was wondering if there are easier ways to achieve photorealism rather than model off orthographic reference images from google.

IMHO this question is not opinion based because there are a finite number of methods and list each with a brief explanation would satisfy the question without offering opinions.  Voting to reopen.

People do any of 1) Get the cad files from the product designer; 2) 3D scan; 3) manually measure perhaps drawing blueprints or just committing measurements to their model; 4) model from photographs that are imported into the scene; 5) model from photographs viewed outside the scene; 6) model by examining the actual object; 7) guess; or some combination ov the above.

@MartyFouts this was the summary I was looking for, thank you. Hope this question will be reopened

these mouses are mostly designed related to human hand organic shape , also you must consider many other parameters such as a computer mouse features and functionalities ( if you're modeling for production)  , afterall you must get help from your imaginations , also you need to know about topology and study about that , which will help you to better understand how a three dimensional model get formed , in that way you'll not even need a blueprint to work with (but if you want to get the idea you need the blueprint , cause blueprints don't do any magic)


text:
How do i add extrusions to a mesh with Sub-D without deforming the shape?

I want to make an inwards extrusion along the red line but whenever I add loop cuts the shape of the rounded part changes. I know that's how support loops work but how do I add detail to a subdivided object?

once you've added the edge loop, move it a bit to correct the shape?

@moonboots the shape would still change though

you could duplicate your shape, create the edge loop on the duplicated version, make it stick to the right shape with a shrinkwrap modifier with the original as target


text:
How do i bevel an object with n-gons?
So what i have now is this object :

I applied a simple deform modifier on it which is why there are many edges. Also i deleted all the edges on the front and back faces.

The problem : When i bevel the edges this pinching occurs. My question is, how do i overcome this and is avoiding n-gons just not possible when i want to bevel the ends to make it curved?

You can use a bevel modifier with an angle high enough not to bevel the corners or using vertex groups to only bevel the oval loop. Does that work for you?

the ngon is not the problem here, the problem is your topology density, if you have a too dense topology you won't be able to bevel correctly because it will cause faces overlapping, I'm not sure why your topology is so dense, you should keep it as much low as possible


text:
HardOps - Can't change default autosmooth angle

Select object > Q > Bevel then smooth shading and auto smooth is enabled automatically. Problem is that the default auto smooth angle is 60 degrees and I would like to set the default to 30. When I open the HOps Helper menu to set it to 30, it works only for that object. If I were to add in another object and apply bevel the same way, the auto smooth angle would still be 60 degrees. Is this a design flaw or is it just meant to be that way?

Hardops is a third-party addon, so best to ask on the official site.

@JohnEason I've tried searching, doesn't seem that there is a forum for it though. Could be wrong

You could try mailing the author directly via this link on the Docs start page.


text:
How do I access the list of selected assets from an event in python?
Key thing here is from an event - this answer does a great job at explaining how to get the list from inside the asset browser window, which is not what I am looking to do (unless I'm missing something).
For context: I am trying to create an add-on that assigns the currently selected material asset to the current object(s) via a shortcut.
In other words - I'd like the user to be able to

select a material
select a mesh
press Shift-Ctrl-A and assign the material to the mesh
select another mesh
press Shift-Ctrl-A and assign the material to the new mesh

in python I know

how to assign a material to a mesh
how to detect events

but I cannot for the life of me figure how to get the currently selected assets from an event. Bold because I am aware of this answer on how do one gets the selected Assets in the Asset Browser using the API - but it doesn't seem to work unless I invoke the functionality from a button inside the asset browser (which is not what I am looking for).
I got this far:
import bpy
import os
from pathlib import Path

from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       FloatVectorProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Menu,
                       Operator,
                       PropertyGroup,
                       )

class WM_OT_GetAssetContext(Operator):
    bl_label = "Get asset context"
    bl_idname = "wm.get_asset_context"
    pass

def cycle_all_areas(context):
    for screenArea in context.window.screen.areas:
        if screenArea.type == 'FILE_BROWSER':
            print('here')
            params = screenArea.spaces.active.params
            print(dir(params.bl_rna))
            # context.area = screenArea
            try:
                print(context.selected_asset_files)
            except Exception as e:
                print(e)
                pass
            print(params.asset_library_ref)
            break

class WM_OT_ModalOperator(Operator):
    """Move an object with the mouse, example"""
    bl_idname = "object.modal_operator"
    bl_label = "Simple Modal Operator"

    @classmethod
    def poll(cls, context):
        return True

    def modal(self, context, event):
        if not context.mode == "OBJECT":
            return {'PASS_THROUGH'}

        if event.type in ["A"] and event.value == "PRESS" and event.ctrl and event.shift:
            print("Assignment")
            print('area', context.area)
            print('space', context.space_data)
            cycle_all_areas(context)

        else:
            return {'PASS_THROUGH'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        print('been invoked')
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

classes = (
    WM_OT_GetAssetContext,
    WM_OT_ModalOperator
)

def register():
    from bpy.utils import register_class

    for cls in classes:
        register_class(cls)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()
    bpy.ops.object.modal_operator('INVOKE_DEFAULT')

but all the lines printing area and space data output None and shen I press shift+ctrl-A I get the following error:
Context' object has no attribute 'selected_asset_files`

What's the right way to achieve this?

I think it's the same problem as when trying to access selected objects in the outliner, it's only possible from an operator run from within the context of the asset browser unfortunately. I'd love to be wrong though

@Gorgious - I was trying to work around it by detecting clicks on asset browser items, but that fails too

@Gorgious - yep: so you start a modal from an operator in the context, which is a bit mindboggling but it works - see https://blender.stackexchange.com/questions/262306/ for how


text:
How can I convert a CURVE to a MESH object
I am trying to convert all the curves in a blendfile to meshes - like this, as explained here:
import bpy

for obj in [ obj for obj in bpy.data.objects  ]:
    if obj.type == "CURVE":
        print(obj, obj.type, obj.parent.type)
        print([ o.type for o in getChildren(obj.parent) ])

        dg  = bpy.context.evaluated_depsgraph_get()
        obj = dg.objects.get(obj.name)

        me = obj.to_mesh()
        print(len(me.vertices))
        try:
            o = bpy.data.objects.new(obj.name + "Mesh", me)
        except Exception as e:
            print(e)

However it throws an error:
 Error: Can not create object in main database with an evaluated data data-block

I've also tried using:
 obj = obj.evaluated_get(dg)

like explained here but this fails too.
What am I doing wrong?

I don't understand why you're trying to use the depsgraph, but you have a Python issue:  You are using obj both as the loop variable and as a variable within the loop.  Try changing the internal name to something else.

The docs of bpy.types.Object.to_mesh state :

The result is temporary and can not be used by objects from the main database

Which means you can't use this evaluated mesh as data for an actual object in the scene. It will be thrown to the garbage collector once the scope it was created in completes.
As the other answer suggest, you may want to use the bpy.ops.object.convert operator to do it. I would add the optional keep_original argument since your code seems to hint that you want to keep the original curves.
As I discovered in my endeavour to document all operator overrides, this operator can't be overriden. So you'll have to select objects by code.
import bpy

bpy.ops.object.select_all(action='DESELECT')

for obj in bpy.data.objects:
    if obj.type == 'CURVE':
        obj.select_set(True)
bpy.ops.object.convert(target='MESH', keep_original=True)

You can also use lower-level functions :
import bpy

for obj in bpy.data.objects:
    if obj.type == "CURVE":
        mesh = bpy.data.meshes.new_from_object(obj)
        new_obj = bpy.data.objects.new(obj.name, mesh)
        new_obj.matrix_world = obj.matrix_world
        bpy.context.collection.objects.link(new_obj)

Credit https://blender.stackexchange.com/a/277424/86891 and https://docs.blender.org/api/current/bpy.types.BlendDataMeshes.html#bpy.types.BlendDataMeshes.new_from_object

Turns out there is an even simpler solution, if you copy the evaluated mesh, it will create a mesh datablock you can use for real.
import bpy

for obj in bpy.data.objects[:]:
    if obj.type == "CURVE":
        me = obj.to_mesh()
        o = bpy.data.objects.new(obj.name + "Mesh", me.copy())
        o.matrix_world = obj.matrix_world
        bpy.context.collection.objects.link(o)

AFAIK to convert a curve to an object you have to select it. So I guess you can do something like this:
obj.select_set(True)
bpy.ops.object.convert(target='MESH')


text:
How do I avoid gamma color correction in specific materials?
I am trying to create a set of textures for Web Colors via Python.
The materials I create are plain BSDF with only a color input.
If I look at the colors via the RGB values everything looks fine - they map to the values I used in generating them.

However the HEX value gets gamma corrected,

and does not look consistent with what I would expect (pulled from Wikipedia)

So how can I avoid gamma correction only for specific colors?

If you input a color to node via python, blender does not do Gamma Correction on default. Here is a question may be can help you: https://blender.stackexchange.com/questions/260956/convert-rgb-256-to-rgb-float/260961#260961

You should put the hex code instead, in your case 800000.
In web sRGB is used, and in Blender - linear colors. Hex color is equal to web color, if you put here  hex code of the color it will be converted to linear and R value will be lowered less than 0.5 automatically. Then you can get this values to use in Python.
Linear colors lighter in mid-ranges:

I used a ShareX's Screen Color Picker to find out the color of the maroon stripe you posted:

800000 got copied to clipboard.
Now I create a new project in Blender, go to Shading, and set this color for the cube:

the red component is $0.216$ which in 0-255 scale is $0.216 \times 255 = 55.08$, quite far from 128. But this is actually what you want to happen - Blender converts sRGB color space (BTW, it assumes you measured your color in sRGB color space which is not necessarily correct assumption) to linear color space, because while sRGB is perception-oriented, linear is physical-oriented, and Blender tries its best to be physically accurate. This accuracy is related to things like conservation of energy, however, the color you input is supposed to be the same when you output (render) your image.
...So why isn't it the same when you use a color picker on the cube?

The red is neither 128 nor ~55! The reason is the output is converted from linear color space to yet another, Filmic. To change it, go to  Render Properties > Color Management and change View Transform to Standard

Now the color picker shows the same value. You can see it twitching and sometimes being off by 1 - this is due to dithering:

Why does Blender output noise even when rendering only flat colors?


text:
How do I redraw the Cycles viewport after a material update?
I use a modal operator that assigns materials to meshes via a shortcut.
Everything works fine except that there is a lag (close to a second) between when a material is assigned with the shortcut and the time that's visible on screen.
Is there a way to overcome this? I have used
bpy.context.view_layer.update()

but it seems to do nothing.


text:
Where is site-packages on Windows and Blender 3.0 onwards?
I am trying to install a package via Blender's python's  pip on Windows but first I get:
defaulting to user installation because normal site-packages is not writeable

and then the add-on that is supposed to find said package doesn't find it anymore.
Where is "normal site-packages" for Blender 3.0 onwards on Windows - so that I can try to make that writeable, and install the package so it can be found? or is there a better way to do this?

Does this answer your question?  It's "PATH_TO_BLENDER_INSTALL\3.X\python\lib\site-packages" replacing X with 0, 1, or 2 as appropriate.  If you installed Blender in the default location it's ""c:\Program Files\Blender Foundation\Blender 3.X\3.X\python\lib\site-packages"


text:
Using python how do I append cameras and lights from another file?
Please note: this is NOT the same question - mine is about how one does the same thing with python.
I am trying to use python to append cameras and lights from one .blend file to another, like this:
with bpy.data.libraries.load(os.path.abspath(camera_file), link=False) as (data_from, data_to):
    print("Importing cameras %s" % (", ").join(data_from.cameras))
    print("Importing light %s" % (", ").join(data_from.lights))

    data_to.cameras = data_from.cameras
    data_to.light   = data_from.lights

The lists of cameras and lights are output correctly but nothing seems to happen.
What am I doing wrong? I think I should probably import camera and light objects too as objects - but how do I do that?

Hello and welcome. Please don't post the same question more than once. If you feel your previous question was incorrectly marked as duplicate, or the linked posts don't adequately address your issue, go back to your previous question and edit by pressing the Edit button below, including information of what you have tried, why it failed and how the duplicates don't address your issue. Once edited the question is automatically queued up for review so it can be reopened.

Please read the proposed duplicate, you are making the same mistake. With Python or without you need to be linking objects, you are linking camera and light settings rather than objects.

@DuarteFarrajotaRamos - thanks, I'll do that later today or tomorrow. I did not know how to address the closing, and it came across as if you hadn't seen the python bit at all

I did, but this is a common issue and it seemed likely this was your difficulty as well, rather than how to link objects. If that is not the issue feel free to edit your other question with an update so it can be reopened.


text:
How do I deserialize materials?
I have managed to serialize materials with the following code:
from rna_xml import rna2xml
import bpy
import sys
import os

print(os.getcwd())
scn = bpy.data.scenes["Scene"]

for i in range(len(bpy.data.materials)):
    with open(bpy.data.materials[i].name + '.xml', "w+") as f:
        print(f)
        rna2xml(fw=f.write, root_node="something", root_rna=bpy.data.materials[i].node_tree)
    print(bpy.data.materials[i].name)

Now I am trying to de-serialize with the following:
from xml.dom import minidom
from rna_xml import rna2xml, xml2rna
import bpy
import sys

scn = bpy.data.scenes["Scene"]

# reload test

from os import listdir
from os.path import isfile, join

materials_path = '/some/path'

onlyfiles = [f for f in listdir(materials_path) if isfile(join(materials_path, f))]

for f in onlyfiles:
    if f.startswith("Materia") and f.endswith("xml") :
        print(f)
        xml = minidom.parse(join(materials_path, f))
        xml2rna(xml)

but I get the following message:
Traceback (most recent call last):
  File "/deserialize_materials.py", line 21, in <module>
  File "/home/simone/blender/blender-2.92.0-linux64/2.92/scripts/modules/rna_xml.py", line 346, in xml2rna
    rna2xml_node(root_xml, root_rna)
  File "/home/simone/blender/blender-2.92.0-linux64/2.92/scripts/modules/rna_xml.py", line 251, in rna2xml_node
    for attr in xml_node.attributes.keys():
AttributeError: 'NoneType' object has no attribute 'keys'

How do I do this round-trip right?

I can serialize and deserialize any Blender material configuration in JSON. It is possible for me to save my materials in a FreeCAD file and restore all these materials in Blender from this FreeCAD file. for more information see this thread on the FreeCAD forum

Your first argument should be xml.documentElement rather than xml.
xml2rna requires a shader node tree as the root_node argument if you want to restore a material, so you have to create a material before you call it, make sure that the material has use_nodes enabled and pass it the material's node_tree: xml2rna(xml.documentElement, root_rna=material.node_tree) and material would be the new material you created.
Once you've fixed that you'll run into this bug that was closed with a To-Do added to the Blender python todo list.  They symptoms are:
>>> xml2rna(xmldoc.documentElement, bpy.data.materials["blue"].node_tree)
Size Mismatch! collection: links
Size Mismatch! collection: nodes


text:
Convert and optimize materials for WebGL automatically
(materials newbie here)
I understand and appreciate that materials conversion for various use cases is an art, and I want to convert complex materials for use in SketchFab. That is - basically WebGL with additional constraints explained here
However I need to maintain a large library, and manual conversions are too time consuming and just stripping down nodes until something that converts ok won't necessarily work in an aesthetically correct way.
Are there tools that would optimize an a conversion to within a certain tolerance in an automated way?
Example of complex material (maybe it's just complex to me:

You need to bake your materials into textures, have you explored that area of Blender ?

Yes, though not enough for sure. But I suspect in some cases textures might be too blunt an instrument: I could keep roughness, metallic, normal map cross both. Am I wrong?

Yes, you can bake pretty much every map that's listed in the bake dropdown, and even make your own by using the output of your shader. The main problem in your case is that it's very time consuming and you need to re-bake the materials again if you make changes to the procedural shader in blender. But there is next to no-interoperability in terms of procedural materials between softwares, so you don't really have a choice...


text:
Edit image data via Numpy and OpenCV
As an intermediate step for further evolution I am trying to edit the pixels of an image via Numpy, like this:
for img in bpy.data.images:
    print(img.name, img.size[1], img.size[0], img.channels, img.type, img.colorspace_settings)

    img_arr = (np.array(img.pixels[:]) * 64).reshape((img.size[1], img.size[0], img.channels))
    print('begin write to pixels')
    # tried different things here
    img.pixels = img_arr.flatten()
    img.update()
    print('image updated')

    if img_arr.shape[0] and img_arr.shape[1]:
        # output image via OpenCV
        img_arr = cv2.cvtColor(np.float32(img_arr), cv2.COLOR_RGB2BGR)
        cv2.imwrite('out_cv2_' + str(i)  + '.png', img_arr)

        # direct save of image
        img.filepath = 'out_direct_' + str(i)  + '.png'
        img.file_format = 'PNG'
        img.save()
        i = i + 1

My expectation is that the image in Blender would be darkened, and more transparent. However that is not happening. The images I save via OpenCV for comparison are darker and semi-transparent.
I've tried different ways of writing to the pixels

divide the numpy array by 255
transofrm the numpy array into a tuple with np.asarray

What am I missing?

Do you reload the image in blender after saving it ? Because the image is not automatically reloaded everytime the file is changed in your disk. Also you can use foreach_get to populate numpy arrays very efficiently

@Gorgious - In my intention,nothing is written to disk, and everything happens in memory. The images written to disk in the question are just for comparing and checking that the transformation happens correctly

You can directly inspect the images in an Image Editor inside Blender. Here's a script example that will lower an image with random colors' $r, g, b$ channels and its transparency.
import bpy
import numpy as np
from random import random

resolution = (10, 10)
img = bpy.data.images.get("Input")
if img is None:
    img = bpy.data.images.new("Input", width=resolution[0], height=resolution[1])
values = img.size[0] * img.size[1] * 4
random_colors = [random() for v in range(values)]
img.pixels.foreach_set(random_colors)
# You can start your script here if you already have an external image loaded in
colors = np.empty(shape = values, dtype=np.float32)
img.pixels.foreach_get(colors)

darkening = 0.8
transparency = 0.5

colors[0::4] *= darkening
colors[1::4] *= darkening
colors[2::4] *= darkening
colors[3::4] *= transparency

output = bpy.data.images.get("Output")
if output is None:
    output = bpy.data.images.new("Output", width=img.size[0], height=img.size[1])
output.pixels.foreach_set(colors)

Result :

Source : Read pixel color with foreach_get() on image data

Thanks - it kind of looks like this works, as when I save the images the edits are there. However they are not reflected in the materials that used the image that has been edited. Is that a different question?

and is it possible that the message "Error: Unable to pack file, source path '/blah/blah/blah.png' not found
ERROR: Image "/blah/blah/blah.png" not available. Keeping packed image" has something to do with that?

Are you using a packed image or an external image ?

I am using a packed image. Checked using  img.packed_file


text:
Using/updating BlendsCAD to 2.92
I am trying to use BlendsCAD, but I keep getting error messages:

AttributeError: 'Material' object has no attribute 'use_object_color
AttributeError: 'Material' object has no attribute 'use_transparency'
AttributeError: 'Material' object has no attribute 'transparency_method'

I cannot find documentation for the attributes in the current API docs, but I do in 2.64.
Is this an API update issue? or something else and if so, any hints as to what to search for? and is there documentation on deprecated APIs?

I think these properties are for the older, deprecated Blender Internal render engine. Looks like the add-on hasn't been updated in 4 years. That means you'll have to use an older blender version (or manually update it, but that looks like a big undertaking)

Newer versions of blender use a Principled BSDF for the starting (base) material - it's likely these attributes have been renamed since 2.64. If I had to guess, "use_object_color" would refer to the BaseColor --  (bpy.data.materials["Material"].node_tree.nodes["Principled BSDF"].inputs[0].default_value = (1, 1, 1, 1))  -- "use_transparency" would be Alpha - (bpy.data.materials["Material"].node_tree.nodes["Principled BSDF"].inputs[19].default_value = 1.0)  -- and "transparency_method" would be Blend Mode - (bpy.context.object.active_material.blend_method = 'BLEND')

@ChristopherBennett - thanks that's a good lead. Do you know of a document suimmarizing breaking changes? or alternatively of a good guide to debugging (better than launch - fail - shutdown - fix - relaunch, which is taking me ages)


text:
Is there a text-based way of generating Blender geometries?
I have been a happy user of OpenSCAD for a while, and I've gotten to appreciate the fact that you can set and review measurements easily, keep track of versions, modify files programmatically.
Now I am in the process of switching some workflows to Blender, as rendering capabilities in OpenSCAD are limited, and would like to have the best of both worlds.
I have explored OpenSCAD importers, but they go through the STL export in OpenSCAD, so everything comes out as a single block.
I've also looked at BlendSCAD which looks interesting, but a bit raw around the edges, especially to one that isn't very familiar with Python yet.
So the question is - are there other ways to generate geometries via text input? I can totally handle everything else (colors, materials) via the UI, but for things such as rough-modeling a kitchen (mostly parallelepipeds as far as I'm concerned), I'd like to write things in a text file.

There isn't one that's any better than BlendSCAD.  If OpenSCAD can output obj files or other similar formats that blender can input, I would suggest doing the CAD in OpenSCAD and then exporting the file in a blender readable format.  You can import the result to blender and use it there. EDIT: I checked the OpenSCAD documents and it can export STL, so I would export STL files and import them into blender.

@MartyFouts - thanks, but unfortunately OpenSCAD exports everything as one single blob, no matter what, so any logical structure I built in the source goes lost (colors, for starters). I am trying BlendSCAD, but keep getting errors even running the demos: File "/home/simone/Downloads/blender-2.92.0-linux64/2.92/python/lib/python3.7/site-packages/blendscad/__init__.py", line 74, in initns     import blenderscad ModuleNotFoundError: No module named 'blenderscad'

will this fix work for you?https://copypaste.guru/WhereIsMyPythonModule/how-to-fix-modulenotfounderror-no-module-named-blendscad

@MartyFouts Nope - same problem. I installed blendscad both via the system pip and the blender pip but the problem is still there


text:
Rotate object around point other than the center without bpy.ops
I'm trying to build upon this answer to rotate an object around an arbitrary point.
I get that if I do:
rot_mat = Matrix.Rotation(-pi / 4, 4, 'Z')
orig_loc, orig_rot, orig_scale = obj.matrix_world.decompose()

orig_loc_mat = Matrix.Translation(orig_loc)
orig_rot_mat = orig_rot.to_matrix().to_4x4()
orig_scale_mat = Matrix.Scale(orig_scale[0],4,(1,0,0)) * Matrix.Scale(orig_scale[1],4,(0,1,0)) * Matrix.Scale(orig_scale[2],4,(0,0,1))

obj.matrix_world = rot_mat @ orig_rot_mat @ orig_scale_mat

instead of
obj.matrix_world = orig_loc_mat @ rot_mat @ orig_rot_mat @ orig_scale_mat

I will have my object rotated correctly and centered on 0.0.
So I guess I need to perform some transform on orig_loc_mat so that the location is also moved.
What's the transform I need to do?

@batFINGER - sorry about that - I'm in the process of leaning both Python and Blender, so often I have trouble with the naming of things, and as a consequence with hitting good google results. The duplicate you point to didn't pop up in two days of googling for "rotate around point blender python" and following every possible link. Should I delete question and answer? BTW - thanks for the amazing answers

NP,  will close as dupe. Have same issue with numpy.

If you rotate around the center (i.e.: location) of the object, the process is:

translate the object to location (0, 0, 0)
rotate the object
translate it back to the original location

which is what this does:
 obj.matrix_world = orig_loc_mat @ rot_mat @ orig_rot_mat @ orig_scale_mat

In order to rotate around an arbitrary point the process is:

translate the object to location (0, 0, 0)
rotate the object
rotate the location
translate it back to the new location

where rotating the location is the same as rotating any object, so what you do is:
# get the rotation matrix (deg is negated - bpy goes clockwise, mathutils counter-clockwise
rot_matrix = mathutils.Matrix.Rotation(math.radians(-deg), 4, axis.upper())

# decompose the world matrix
orig_loc, orig_rot, orig_scale = obj.matrix_world.decompose()
orig_rot_matrix =   orig_rot.to_matrix().to_4x4()
orig_scale_matrix = mathutils.Matrix.Scale(orig_scale[0],4,(1,0,0)) @ mathutils.Matrix.Scale(orig_scale[1],4,(0,1,0)) @ mathutils.Matrix.Scale(orig_scale[2],4,(0,0,1))

# this does the job
#                       1. translate to center
#         2. rotate     |
#         |             |                  3. translate back
#         |             |                  |
new_loc = rot_matrix @ (orig_loc - center) + center)

# make a matrix out of the new location
new_loc_matrix = mathutils.Matrix.Translation(new_loc)

# all together now
obj.matrix_world = new_loc_matrix @ rot_matrix @ orig_rot_matrix @ orig_scale_matrix

I pieced this together from answers on rotating without bpy.opy and on rotation around a cursor, so I was clearly standing on the shoulders of giants. Summing things up here in hope it's useful for someone else.


text:
How do I reset the location of an empty object with python and NOT move its children?
I would like to use the Python API to:

set the parent of a set of objects to an empty object
then set the location of the empty object to the midpoint of the bounding box of all objects

but not move all the objects
Step 1 works ok - but I am stuck on the second.
I start with this situation:

and after grouping things look like this:

and

with the origin of e (the empty object) set at [0, 0, 0]
Now if I try to re-center the empty doing this:
def recenter(obj, point):
    try:
        obj.data.transform(mathutils.Matrix.Translation(-point))
    except:
        print('obj has no data')

    print('translation', obj.matrix_world.translation)
    print('location', obj.matrix_world.translation)

    obj.matrix_world.translation += mathutils.Vector(point)

    print('translation', obj.matrix_world.translation)
    print('location', obj.matrix_world.translation)

    return(obj)

tidy_names(locals())

recenter(e, [1.5, 1.5, 0.5])

I end up with:

Is there a shorthand way of doing this? I suspect I could recurse through all the children and reset, but that seems quite insane...

Related https://blender.stackexchange.com/questions/229292/change-parent-only-location-via-script  and  https://blender.stackexchange.com/questions/223858/how-do-i-get-the-bounding-box-of-all-objects-in-a-scene

@batFINGER - thanks. So it looks like recurse it is, then?

Why recurse? Example linked It is only iterating over immediate children, or if setting up for scene objects children will be those without a parent.

I thought: in a generalized solution I cannot rule out that there will be children of children. But I now realize that re-setting the position of the children will take the grandchildren along

You could do it more easily if you calculate the midpoint first, move the empty there, and then parent, perhaps?


text:
Does bound_box take into account an object's location?
I am trying to write code to align an object to another. To do so, I calculate the objects' bounding boxes like so:
bbox_a =  [Vector(bbvert) @ mesh_object_a.matrix_world for bbvert in mesh_object_a.bound_box]
bbox_b =  [Vector(bbvert) @ mesh_object_b.matrix_world for bbvert in mesh_object_b.bound_box]

then compare the min or max along the chosen axis, and move the location of the second object accordingly.
However I've noticed that, even if object_b has a location of
<Vector (-4.0000, 0.0000, 0.0000)>

bbox_b is
[
 Vector((-1.4142135381698608, 0.0, -1.0)), Vector((-1.4142135381698608, 0.0, 1.0)),
 Vector((0.0, 1.4142135381698608, 1.0)), Vector((0.0, 1.4142135381698608, -1.0)),
 Vector((0.0, -1.4142135381698608, -1.0)), Vector((0.0, -1.4142135381698608, 1.0)),
 Vector((1.4142135381698608, 0.0, 1.0)), Vector((1.4142135381698608, 0.0, -1.0))
]

i.e.: it looks like it has ignored location.
Did I get it right? do I have to apply location on top of matrix_world in order to find out the actual bounding box of the object? and (to future-proof the question) is it so for all other transforms too?

The correct syntax is matrix @ vector, not the other way around

@Gorgious - yes it does, thanks. I got the vector @ matrix thing from https://blender.stackexchange.com/questions/88914/how-to-get-3d-vertex-bounding-box-around-the-object-in-python

You're right, the answer you linked is wrong. (the error was pointed out in the comments) It will be edited, thanks :)

@Gorgious - I edited it already but I'd appreciate any check, as a newbie

Alright, you're all set. Thanks for the feedback :)


text:
Understanding the interaction between difference, beveling (and maybe shrinkwrap)
I am trying to learn how to use boolean operations and modifiers as part of an attempt to build a functional-ly oriented library for Blender (which is why most of what I an describing happens in python scripts)
Specifically, I tried to subtract a cube from another cube like this:

and then bevel the edges of the result like this:

However I want also the edges formed by the difference operation to be beveled - but that does not seem to happen. Also, when I dump the number of edges of the difference the count is 12.
By googling around I ended up thinking that the problem could be handled by first shrink-wrapping, and then beveling.
However the result shown here (different angle than the pictures before - for clarity) is decidedly not what I was looking for.

I guess I am either missing an intermediate step or getting some parameters wrong.
What is it?

is it what you want? https://zupimages.net/up/21/29/mkwj.jpg You can get bevel in the inner angles if that's what you're looking for. Also I'm not sure about your Shrinkwrap thing. Maybe try to reformulate your question to make it clearer?

@moonboots - yes that is what I was looking for for now. The shrinkwrap thing is probably a different question then - like "how can I turn a boolean into a single mesh?"

Bevel the boolean object before you apply it.

@moonboots - it all happens in a script - I'll have to extract that into something sensible, later today. Thanks in the meantime. Re shrinkwrap: what O wanted is this: https://blender.stackexchange.com/questions/202297/convert-boolean-objects-to-a-single-mesh


text:
Why does it look like the Y and Z axes are swapped in the animation graph editor?
I am using the python script from this answer as a base to learn about clothing and animation.
However as I try to use the graph editor to change the movements I struggle because the Y and Z axes seem swapped in the editor:

Why is that? what am I getting wrong?


text:
What's the setup to reproduce the BSDF examples?
I am starting to explore materials and rendering in Blender, and as an exercise, I wanted to reproduce the examples found on the BSDF manual page using the Python API. I mean this one

and the other two.
How do I do that? The ball is ok - but I don't even know how to google a question for the reflected images.

Hi :). Are you asking how to get the reflection? Simply use an HDRI.

@JachymMichal - yep, that's 80% of it, thanks. It's hard to google for something you don't know the name of. It'd be great to also know what the materials settings were, but I can get that by trial and error.

the material settings are to leave everything as default, except for the setting that's named in the first column.  Each ball represents the chosen setting set to the value (0.0, 0.1, et cetera) at the head of the column.


text:
In python, how do I go back to the unedited mesh?
I am trying to do the following:

use a mesh to knife project onto another mesh
duplicate the faces that have been cut
extrude the duplicated faces by a given amount

in one operation.
I have asked about extrusion in a separate question, but I am also stuck at how do I return the mesh that's been knife-projected to its original state. This is because I only need the duplicate faces - the mesh that's projected onto should stay unchanged.
What I tried is:
# save mesh data - s is the object being projected onto
or_s_data = s.data.copy()

# do a bunch of things

s.data = or_s_data
# this should assign the saved mesh data, right?
# but actually it doesn't seem to
bpy.context.view_layer.update()
# don't know if this is necessary

So what's the right way to save a mesh's state, and re-instate it after a series of ops?

It depends if you modifiy or_s_data in between

@Gorgious - nope, I do not. The purpose is to restore it to the state before the knife project steps. Though I think that for future searchers an answer that covers changing things too might be interesting...


text:
How do I flatten a mesh preserving thickness and area?
I have a mesh that looks like this:

Is there a way in Blender to flatten this mesh so that:

its thickness is preserved
the deformation of faces is minimized

In real life terms the process I'd like to obtain is the one by which you'd flatten parts of a rubber ball by putting a weight on it. It would give horizontally, but the thickness would stay the same(ish).
This picture kinda shows it:

but the fact that it's from a Siggraph paper doesn't give me much hope...

Hello :). Could you please add what you already tried to solve it?

@JachymMichal - HI! I tried shrinkwrapping on a plane, but it didn't work out. I can add that in the question if it helps. But my question could also be formulated as "what do you call a thing that does this" - often 70% of my problem is to find out what to google for, as I am new to Blender. Once I know, I'm usually on the way to a solution.

Could you please add link to siggraph paper.  Suggest the tennis ball is akin to a spherical UV mapping, keep one "peanut". Similarly a 2x1 plane can be warped into a sphere. 360 degrees one way and 180 the other. https://blender.stackexchange.com/questions/24043/how-to-animate-morphing-a-rectangular-plane-into-a-sphere    IIRC @moonboots has an answer re something similar.

LInk to siggraph paper: https://www.cs.cmu.edu/~kmcrane/Projects/VariationalCuts/?utm_source=pocket_mylist and another nice one: https://geometrycollective.github.io/boundary-first-flattening/?utm_source=pocket_mylist Also: I could let go of the thickness, but minimization of distortion of faces is important

If you can reproduce the shape by adding Solidify Modifier to a one-sided mesh (no thickness), then you can just add shape keys and scale it to 0 on the second shape key. This doesn't retain volume:


text:
How do I make an object stick to another like a plaster?
My goal is to:

take a 2-D shape
give it some thickness so it becomes 3-D
make it adhere (like a plaster, a band-aid or a sticker) to another shape

So far I've managed to thicken the shape with the solidify modifier, but using the shrinkwrap modifier to make it stick to a sphere failed.
See picture of what I managed so far:

and shriwnkwrap parameters:

What am I doing wrong that this does not work?

does your 2D object has enough topology to be bent?

@moonboots - hmm... I suspect not. How does one make that happen?

you need to create inner topology so that your object will be able to bend, otherwise it will stay flat, for example try to create some edge loops with the knife tool (K to activate)


text:
Why are project and surface deform not working?
I am trying to make the project and deform processes described here to work, but in neither case do the plane or the cube deform towards the cylinder.
This:

is the plane to cylinder shrinkwrap
and this

is the cube to cylinder surface deform
The plane and cubes seem sufficiently subdivided to me:

so I'm wondering what am I getting wrong?

Make sure you keep it in order: first add the Surface Deform modifier to the cube, then set the plane as target and bind the cube to the plane. Next add the Shrinkwrap Modifier to the plane and set the cylinder as target.

@GordonBrinkmann - thanks! done that, didn't work. Cube flattens nicels on plane, but when I add shrinkwrap to the plane the effect is gone. And the project modifier doesn't work either

Your screenshot shows two cylinders next to each other, one with a plane not wrapped to it and one with a plane wrapped to it and the cube seemingly not bound to the deformed plane. How is your setup exactly? When I use the setup below and keep the order it works as expected for me.


text:
Can I match the viewport direction to gravity with python?
In order to simulate a specific production process in Blender I need to ensure that the scene's gravity "down" is aligned with the viewport's angle.
In other words in this case:

"Down" should be along the x-axis, like this:

I know I can get the view matrix and decompose it like this:
t, r, s =  bpy.context.space_data.region_3d.view_matrix.decompose()

and I can get/set the scene's gravity like with
bpy.context.scene.gravity

How do I combine the two so that things always fall "from" the viewpoint and "towards" the point being looked at?

It sounds like you want top view.  Numpad 7 gives you top view and numpad 5 toggles between orthographic and perspective.   If you do want to manipulate the viewport viewpoint see this answer

@MartyFouts - thanks, but actually, no: I want to simulate the process of glueing of a patch onto a curvy surface withminimal distortion: this process would not always happen along the Z axis

Did you see the answer I posted the pointer to?  It shows how to do the combining.  Isn't that what you want?

Yes, I did. Maybe it’s me but I don’t get the connection - apart from getting the rotation matrix. Should I brush up on matrices and vectors instead of asking questions?

I can't know what do and don't already know, so I have to ask when things I thought might help didn't so I can figure out how to help.  I also have to ask questions to make sure I understand what you really want.

Sure! That’s the way I read it, and I appreciate you doing that. Sorry if it came across otherwise. And my question was without sarcasm - it could be that working harder on understanding matrices would get me there

Let us continue this discussion in chat.


text:
Is there a way to convert SVG without going through a file?
For an add-on I want to use additional data coming from the SVG for further steps after importing.
I know that I could do the following:

import SVG
parse SVG and extract information
post-process the imported objects using IDs to connect objects to SVG elements

but I'd rather

parse SVG
convert SVG elements into objects one by one
post-process the converted element immediately

Is there a way to do things with this flow, rather than import and post-process all imported elements?


text:
How do I select faces vertices or faces that are visible in the 3d viewport and unobstructed by other faces of any mesh in the 3d viewport
Title kind of says it all: how do I select faces vertices or faces that are visible in the 3d viewport and unobstructed by other faces of any mesh in the 3d viewport
I am trying to get the viewport camera location like so:
def get_3d_view_camera():
    area = [area for area in bpy.context.screen.areas if area.type == "VIEW_3D"][0]
    region = [region for region in area.regions if region.type == 'WINDOW'][0]

    r3d = area.spaces[0].region_3d
    view_mat = r3d.view_matrix

    loc, rot, sca = view_mat.decompose()

    return loc

and then to get all the faces that get hit like so:
def visible_faces(bm, if True or face.select):
    indices = [(index, face.calc_center_median_weighted()) for index, face in enumerate(bm.faces) ]

    outside_faces = []
    for index, center in indices:
        direction = (center - camera_origin).normalized()
        # Cast a ray from the camera position to the face center
        result, location, normal, face_index, obj, matrix = bpy.context.scene.ray_cast(bpy.context.view_layer.depsgraph, camera_origin, direction)

        # If the ray hits the same face, it's visible, so we keep it
        if face_index == index:
            outside_faces.append(index)
    return outside_faces
``


text:
Why does blender check for a ton of non-existen directories?
I opened a file on the command line on Linux and Blender started checking a ton of non-existing directories. Here's a part of the log:
Read prefs: /home/simone/.config/blender/3.4/config/userpref.blend
Read blend: /home/simone/uv_experiments/warp_question.blend
/boot/efi/ non-existent directory
/dev/fd/17/ non-existent directory
/etc/cups/ssl/ non-existent directory
/etc/polkit-1/localauthority/ non-existent directory
/etc/ssl/private/ non-existent directory
/home/_simone/github/blender/release/datafiles/preview.blend/ non-existent directory
/home/_simone/github/blender/release/datafiles/preview_grease_pencil.blend/ non-existent directory
/home/_simone/github/blender/release/datafiles/startup.blend/ non-existent directory
/home/_simone/github/blender/release/scripts/startup/bl_app_templates_system/2D_Animation/startup.blend/ non-existent directory
/home/_simone/github/blender/release/scripts/startup/bl_app_templates_system/Sculpting/startup.blend/ non-existent directory
/home/_simone/github/blender/release/scripts/startup/bl_app_templates_system/VFX/startup.blend/ non-existent directory
/home/_simone/github/blender/release/scripts/startup/bl_app_templates_system/Video_Editing/startup.blend/ non-existent directory
/home/_simone/github/BlendSCAD/config/startup.blend/ non-existent directory
/home/_simone/github/BlendSCAD/config/userpref.blend/ non-existent directory
/home/_simone/github/boundary-first-flattening/foo.blend/ non-existent directory
/home/_simone/github/boundary-first-flattening/shoe_parts_for_unwrapping.blend/ non-existent directory
/home/_simone/github/DazToBlender/Blender/appdata_common/Blender Foundation/Blender/BLENDER_VERSION/scripts/addons/DTB/dependencies/link_library.blend/ non-existent directory
/home/_simone/github/SketchFabShowAndHide/uploads/001_microtus_agrestis.blend/ non-existent directory
/home/_simone/github/SketchFabShowAndHide/uploads/006_ursus_arctos.blend/ non-existent directory
/home/_simone/github/SubstanceBridge/samples/furnitur.blend/ non-existent directory
/home/lost+found/ non-existent directory
/home/simone/.cache/.fr-vCq80b/HSL_nodes.blend/ non-existent directory
/home/simone/.config/blender/2.82/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/2.92/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/2.92/scripts/addons/blenderkit/blendfiles/cleaned.blend/ non-existent directory
/home/simone/.config/blender/2.92/scripts/addons/blenderkit/blendfiles/material_thumbnailer_cycles.blend/ non-existent directory
/home/simone/.config/blender/2.92/scripts/addons/blenderkit/blendfiles/thumbnailer.blend/ non-existent directory
/home/simone/.config/blender/2.93/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.0/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.0/scripts/addons/BlenderMalt/.MaltPath/Malt/Pipelines/NPR_Pipeline/Defaults/defaults.blend/ non-existent directory
/home/simone/.config/blender/3.0/scripts/addons/MB-Lab-1_7_8/data/face_rig/face_rig_lib.blend/ non-existent directory
/home/simone/.config/blender/3.0/scripts/addons/MB-Lab-1_7_8/data/face_rig/facial_rig.blend/ non-existent directory
/home/simone/.config/blender/3.0/scripts/addons/MB-Lab-1_7_8/data/humanoid_library.blend/ non-existent directory
/home/simone/.config/blender/3.1/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.1/scripts/addons/BlenderMalt/.MaltPath/Malt/Pipelines/NPR_Pipeline/Defaults/defaults.blend/ non-existent directory
/home/simone/.config/blender/3.2/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.4/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.5/config/userpref.blend/ non-existent directory
/home/simone/.config/blender/3.5/scripts/addons/BlenderMalt/.MaltPath/Malt/Pipelines/NPR_Pipeline/Defaults/defaults.blend/ non-existent directory
/home/simone/.local/share/podman-static/share/containers/storage/overlay/8b45dbd81526ace47db4b00939d222d762a2e7263cecceee906362755578e136/work/work/ non-existent directory

This does not seem to happen with other files.
Peculiarities of the file:

it's probably been created with a later version of Blender (3.5 vs. 3.4)
it's been saved and updated on Windows and Mac before landing on Linnux

Well each path should give a hint at what it is looking for. There seem to be missing scripts, addons, configs, and lots of linked or library blend files, including Manuel Bastioni characters and rigs.  You can check the Outliner in Orphaned Data mode for cleanup, and in DataAPI for diagnostics

I'm very curious about why it logs/boot/efi/? I think it is something related to python, not Blender. I suppose, an add-on may check folders.


text:
Continuous Drawing setting on grease pencil
I understand that there is a Keep Strokes / Continuous Drawing setting somewhere in Grease Pencil but I cannot find it no matter what.
Am I mistaken? where is it? Is there something else that will separate strokes when I lift the pen from the tablet?
Blender 4.1


text:
Missing bone rotation when exporting FBX animation to Unity
I've been trying to fix an issue i've been having when exporting a viewport animation to unity,
basically the knife is parented to two bones that controll it, one of the bones controls the knife and the hand that is parented to the knife, the other one only controls the knife, so I use that one for rotation only but when I export it to unity as an FBX the animations from the rotating bone are missing

as you can see when it gets exported to unity the knife doesn't rotate and stays in it's original position

I don't know which procedure you followed to export from Rigify to Unity, but if you used some automatic functions, it's possible that the new bone has to be named starting with the DEF- suffix, and has to stay in the bone layer n. 29 (counting from 00 to 31, as Blender internally does), same as all deforming Rigify bones.


text:
Soft bodies go through each other
Help I'm trying to make soft bodies collide with each other but nothing seems to be working instead they just go through each other.

Enable „collision“ for the soft bodies.
Your second picture in your question shows it. You will find it under the physics tab.


text:
Physics tab is not appearing for the hair particle emitter system
I am watching a tutorial and the user has a physics tab in the hair particle emitter but I do not, how do I make this appear? I've included screenshots of my screen versus theirs.

Have you tried checking "advanced"

that worked, thanks


text:
Blender bevel modifier odd artifact
Does anyone know how to fix this artifact issue caused by the bevel modifier? I have normals hardened and the bevel is weighted not angled.

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

@moonboots here's the link https://we.tl/t-6Grc65a1WM

It's caused by your bevel, there's a slight bevel weight on your edge, if you apply the Bevel modifier you can see what it gives. It creates a ngon and therefore this artefact:

You can use this topology instead:

is there an "easy fix" or would I have to convert the geo to quads/tris? I was planning on uploading it to substance and if im not mistaken substance painter triangulates your objects

with the Bevel modifier there may be a way but I don't know it, I personally prefer to create real bevel, see my edit

alright, thanks


text:
Blender operations panel not showing up at all
The operations panel is not showing up at all. I know it does disappear if you click away but it is not showing up in the first place. I can press f9 and a window will show up but it does not stay. Please help

From the View menu drop-down enable the Adjust Last Operator option:


text:
loop cut not stopping my bevel
I am trying to bevel this edge but I want the bevel to stop at the loop cut that I made, however the bevel just goes straight through the loop cut, how do I make it stop at the loop cut? As you can see the bevel on the right stopped but when I bevel the left side it doesn't stop.
ps- I am trying to get it to stop at the edge loop because I want the bevel to be "flatter" instead of having an even distribution

If your bevel looks like this:

And you want it to stop on the closest edge, you need to check this option called Clamp overlap, that will lock it as soon as it arrives to the closest edge, at this moment going with Width to higher number does nothing at all:

Also, to control the curve and flattnes of bevel you need to change Shape value in that pop up menu, don't forget to apply scale before beveling


text:
Blender- Glare node not working
I am using a glare node and it is doesn't seem to be effecting my rendered image at all. Does anyone know why this is?
Ive included my node set up with the glare node connected and without

You need to lower the threshold value on the glare node until the threshold is below the value of the light you want to glow.

You're running Glare on the emission pass.  Are you sure you're getting any effect from that?  Set Glare's mix setting to 1 and look at it through the viewer.

Your Composite and Viewer node are also receiving different inputs.  That may not be important just yet, but something to look out for on final output.

@AllenSimpson https://we.tl/t-pAvv8wEQ0x heres a link to just a cube and light with a glare node, I simplified the scene but still can't get it to work. Would you mind checking it out?

There are multiple issues:

The main problem is that you have the emissive pass hooked up to the glare node. This results the glare only applying when emissive surfaces that are directly visible to the camera. This means reflected and transmitted light will not receive the glare effect.

To fix this, you should use the denoised image as the input for the glare node.

The structure of your node tree indicates that you wish to control the strength of the glare effect by adjusting the 'Fac' (factor) for the Add (Mix) node. However, you need to change the 'Mix' parameter on the Glare node so that you you are only adding the glare effect and not adding the image with the glare applied.

To fix this, set the 'Mix' parameter of the Glare node to 1.

After doing these two fixes, you may need to adjust the threshold parameter (as others have suggested) depending on the intensity of light in your scene.

Try this, i don't whether this is the effect you want, but you can see a difference at least:


text:
How to set up textures for a UV tile layout
I am exporting textures from substance to blender in a uv tile layout (1001-1005). How do I set each texture to each uv tile?
I tried connecting the textures using the node wrangler but it only placed one image texture. (I've included a picture of what this, it only used the strap texture).
Ive also included pictures of the uv layout in blender and substance as well as what the texture looks like in substance.
I need to know how to connected each uv tile texture  form substance(height, normals, etc.) to each tile in blender.

The image files of the tiles must be numbered. E.g. Body Diffuse.1001.png, Body Diffuse.1002.png, ....
In the Shader Editor, switch the Source (4th combobox) of the Image Texture node from Single Image (default) to UDIM Tiles to use the images as texture.

In the Image Editor, select the image, open the N-panel, choose the Image tab. Make sure Source is UDIM Tiles. Then you will find above the section UDIM Tiles where you can manage the tiles.


text:
How to unwrap duplicate objects in blender to export to substance painter
I am making a backpack in blender based off a tutorial by 3dex on YouTube. In the tutorial he uses Maya to unwrap and export and for his repeat objects he says that he "offsets the uv's because substance painter sometimes doesn't bake overlapping UV's". He says that he moves the uv's to another quadrant. Does anyone know how to do this in blender? I have attached images of the duplicate objects so that you can see what I am referring too.

Select the UV's of the duplicated object, hit N to open up the UV Vertex panel and add (or subtract) 1 to the X or Y coords (the direction doesn't matter):

Consider that if your asset is not be used in a game or any real-time application, there is no reason to set it up that way. You'd save some texture space this way but you would lose the opportunity to texture each object/dupe differently so I'd suggest just go with UDIMs and place your UVs accordingly (painter can handle UDIMs as of the latest versions).


text:
How to paint on a pbr texture
Does anyone know how to paint on an image texture? I only want to paint the lower part of the building but because it is a pbr texture the marks gets replicated throughout the rest of the building. I have attached my nodes, texture paint attempt, and reference. Thanks

Your uv us too big and makes the texture tiling, you will have to create a new uv and uv the whole four sides of the building, after that using a new image as mask you will be able to paint on the bottom of it, the other texture (not the bricks) will have to be a new node like principled bsdf or similar.

Adding to what I commented before: check out this video for clearing it out.  https://youtu.be/HC6hHnSseXI  that is the general workflow, I can send you a demo file tomorrow if you are still stuck.

I am attaching a file as an example.

Create a 2nd UV for the mask, the first UV is for the tiled texture, so you can scale it as you wish.
Mixing two PBR materials (or any materials) using black and white mask (another image texture).

sorry for the bad quality image


text:
Clay strips sculpting brush cutting inward in certain areas and cutting outward in others
I am making an axe and am using the clay strips brush to make marks in the axe but when I draw over the part of the axe that is carved out the clay strip digs into the mesh instead of adding to it. I have attached images showing the issue. Does anyone know why>?

Are the normals of that section flipped?

yes you should check the normals but I wonder if there are not bugs sometimes

how wide is that axe? one person had a similar problem recently and the problem was pretty simple, the brush was too big and it was sculpting backside of the object with the front side as well, it can cause a problem... look at the top panel, there are brush settings, try to activate "Front face only" option and try again if it helps

I changed to front face only and that worked! Thank you very much!


text:
Blender Booleon affecting sculpting geometry
I am following a tutorial made by Grantt Abbitt and I added a Boolean to my axe head and when I enter sculpting mode after applying the Boolean I get really weird object shading. Ive tried different objects and they all cause the goemoetry to shade weird. Ive attached photos of the geometry shading and wireframe geometry before the Boolean.

Is your model Shaded Smooth? (https://blender.stackexchange.com/q/100221/107598) and have you Auto Smooth enabled? Auto Smooth doesn't work in Sculpt mode. If yes, switch the shading to Shaded Flat -- or just do the remesh operation. The result will be the same.

I had smooth shading on! Thank you so much!


text:
Blender bevel modifier corner distortion
I am trying to turn my mailbox into a high poly object by beveling the edges. Does anyone know how to bevel correctly so that the corners dont distort as is shown in my screenshots? (I am using a weighted bevel modifier btw). Ive inckluded pictures showing what it looked like before and after the modifier.
Thank you.

Not really sure which corners you're talking about, but you could try clicking the Geometry entry in the modifier panel and changing the Miter Outer entry from the default Sharp to Arc in the dropdown which might help.

If the method John mentions does not work, it's possible you could fix this issue by drawing new connecting lines in edit mode. If you upload the file, we could inspect the topology.

@LittleAden here's the link to the file. I tried what John said and it fixed some of the bevel issue but there was still some artifact/distortion. The lowly file is on the right and the high poly is on the right (im trying to bevel). https://wetransfer.com/downloads/9ea9b06e5cddb2aca2ce5044ac01de3120211029235516/d0e1ca288cae3fedb06d3ace019efac520211029235543/8d23d4


text:
Low poly bake causing deformation around edges
I am baking a low poly to high mesh and everything baked fine except for the edges. Does anyone know how to fix the edges so that they don't deform like this? Here is a link to the file if you'd like to check it out.
Ive attached photos of the low poly mesh as well and what the normal map distortion looks like as well as the high poly mesh (last photo).

Is the first image the low-poly with the baked normal map or the low-poly and high-poly overlapping when they are in the same spot? Have you used Extrusion?

that looks like a cage problem. try messing with the settings of the size of the cage.

@Blunder the first image is the low poly with the normal map. The high poly is hidden in that image

Can you add the link to the file that you mentioned? I guess you have forgotten to add it.

@Blunder sorry I thought I added it, I I had to rebake and change the image texture to non color then it worked fine

ah ok, so it was the infamous Non-Color data issue with the normal map. Glad you solved it.


text:
Lattice modifier causing object to scale weird
I am using a lattice modifier but every time I use it the object scales up, does anyone know why this is? my scale is applied and it is just a basic cube. Heres is a before and after picture

@moonboots that was kinda confusing, you said don't scale it in edit mode then you said do into edit mode and scale lattice vertices, what's the difference?

sorry my bad I meant when you create your lattice and scale it so that it contains your cube, scale it in Object mode, not in Edit mode. You'll go in Edit mode to deform the object. Also don't apply the scale of the lattice.

Yes, place the lattice over the object in object mode and leave all of its transform properties as they are.  Go into edit mode and move the lattice verts around to deform your object.

Ran into the same problem, kind of strange that you can't apply transform on the lattice, usally it's the otherway around. Hard find the error when you are being extra careful by applying any transforms, which is the culprit most of the time.


text:
How to add ambient occlusion to image texture to add dirt look
I am making a barn and need to the bottom of the barn to show dirt build o pin order to add an extra layer of realism and separate the ground and wood better. I have tried using ambient occlusion to no effect. The texture is an image texture which I have ran through a color ramp to make it red. I have attached the nodes as well as the render before and after I added the ambient occlusion node. As you can see there is not difference. Does anyone know how to add dirt build-up to an image texture (I have attached a reference)
The first barn picture is just the image texture, the second picture is with the ambient occlusion node.

hello, maybe share just the ground + one plank so that we can try (don't forget to pack your images)? https://pasteall.org/blend/

I fixed it! I had to switch the color ramp to the color 2, not 1


text:
how to retopologize a cylinder Boolean properly
I applied a circle shaped Boolean to a cylinder and now have artifacts, I am trying to retopologize it but am not sure how to do it, I have attached the methods I have tried, does anyone know a better way to do it?

https://blender.stackexchange.com/questions/28103/creating-a-truck-exhaust-mesh https://blender.stackexchange.com/questions/5856/cutting-a-circular-hole-in-a-hollow-cylinder-without-distorting-the-cylinder

If you're trying to maintain an all quad mesh, then you could lower your number of vertices on your cutter object
Then it would look like this

Since we have an all quad mesh, with the help of subdivision surface modifier, we could make it look like this

If you're not aiming for an all quad mesh, you could watch this tutorial from Josh Gambrell to maintain perfect shading while having ngons in your mesh
https://www.youtube.com/watch?v=W8FDlPcUCME&t=335s


text:
What is the best way to retopologize a beveled corner to get rid of beveled pinch
I used a bevel modifier and now I have pinched corner, what is the best way to retopologize a 1 segment bevel corner. It is a pretty simple object I am just practicing retopolgy.

could you please share your file? https://pasteall.org/blend/

@moonboots https://we.tl/t-1Q5QAtpbDC here you go

it seems to work fine if I use the topology you show, I've just enabled Auto Smooth: https://zupimages.net/up/22/01/oh61.jpg

@moonboots I  was just just trying to see if there was a way to retopo it, the way it is now the corners are pinched and it makes unwrapping more difficult

I can't see any pinching though (see my photo)


text:
How do I add an emissions node to a material with a mixed shader?
I am making a scene where there are curtains behind a window and lights are supposed ot emit through the curtain and be seen through the window. The issue im having is that the glass is too reflective and not transparent, is there a way to reduce reflectiveness and increase transparency. If I look straight at the window I can see the curtain fine, the angle is causing issues. ive attached my reference as well as my test render as we and the glass material node.

Try reducing the IOR (incidence of refraction) - the default 1.45 is for glass but I find it's more suited for curved glass - for flat glass, you can go closer to 1.

@ChristopherBennett that worked! thanks!


text:
Is there a way to make an all white/no colored render?
I have rendered the following scene, is there a way to render the scene as as white/all grey without assigning materials? I think there's a way to do it in compositing using the ambient occlusion node.

You must mean something other than graytones, because that simply to select the BW instead of RGB in the Output Properties.  You might consider adding more detail to your question.

@james_t sorry for the confusion, I essentially want the scene to be a numeral/grey/white color similar to if your watching a vfx breakdown. I tried changing the output to BW and it still came it in color which is weird

add a color ramp in the compositor?

Yes I would say use the Compositor with desaturation etc

changing the output to BW: actually if you hit F12 it will still render in color, but if you use the ctl-F12 to render and store the output frames, it will be in B&W.  Quirky


text:
Is there way to make an array modifier match another object?
Im trying to array a light fixture so that it shows up on the column of this wall. The wall has an array modifier, is there a way to set up the array modifier for the light fixture so that it shows up in the same location on each column? Ive done this before with lights and a plane but I cant remember how.

Do you need the light fixture to be a separate object? Because if not you can select the wall and the light and use CMD+J you can combine them into one object so the array modifier works on it.

@NascentSpace the light fixture needs to be a separate object because it will throw off the normals

@PeterRandall Being a part of the same mesh can change normals (which can also be fixed with custom normals) but just being part of the same object, barring unusual circumstances, will not change normals.  You can have multiple, separate meshes inside a single mesh object.

As Nascent Space and Nathan have already mentioned - unless you have custom normals/separate set of modifiers for the fixture and the wall, you can simply join these meshes into the same object (CTRL+J). It's the easiest way which should work out of the box.
If you have to keep two separate objects, it's still feasible, although hacky.
You can add another Array Modifier to the fixture and sync its Count with the wall's Array Modifier's Count:

RMB on the source (wall) Array Count > Copy as New Driver
RMB on the dest (fixture) Array Count > Paste Driver

You'll still have to set the appropriate Constant Offset along Y for the fixture. I believe you don't want to calculate the value manually, but rather have it filled in automatically, based on your walls dimension. You can use another driver for this:

RMB on the fixture's Array Constant Offset Distance Y > Add Driver
set the Type to Scripted Expression
change Input Variable type to Single Property and name it (eg. offset)
set the Prop to your Wall Object and the Path to dimensions.y (as long as your wall is duplicated along the Y axis)
turn on Use Self in the expression and set it to offset / self.count

It's also good to parent your fixture to the wall so that it follows the transforms, but again - this is a hacky approach which has its negative implications. I'd strongly recommend joining both meshes into a single object.


text:
Blender 3.4 knife tool not working
The knife tool is not snapping to verticies when cutting, and also when I make cuts it will only make some cuts (see example). I dont have any duplicate faces or vertices, does anyone know whats causing this?

these are two screenshots taken while trying to use the knife tool, as you can see the knife tool did not connect all the cuts.

knife tool NOT snapping to vert (the circle should be purple, not green).

It's snapping fine here. Can you share a simple Blend file that it's not working on? https://blend-exchange.com/

@JohnEason heres a wetransfer link https://wetransfer.com/downloads/08e2e905b05ba01d1862874230ccb94e20221211005338/692c1dccf43156435db03b36fbc4aa9e20221211005414/60232a

Still working fine here with your blend file using Blender 3.4.

@JohnEason thats weird, i cant seem to get anything in the file to cut correctly..

Is it working ok with a new file and something like a subdivided UV sphere?

@JohnEason Im going to add a video to the orginal post, i tried adding a sphere and its doing  some very odd stuff ive never seen before. its like its cutting on the other side of the sphere, its very weird

@JohnEason heres a we transfer link, it wouldnt let me post the video   https://we.tl/t-w0qa7IQCl5

To be honest I've never seen anything like it and can't imagine what is causing it! Is it deleting those faces as well? Might be worth updating to Blender version 3.3.2 (You're using 3.3.1, not 3.4 as in the title) but I don't think there have been any bug fixes which would affect that.  Perhaps someone else here has an idea of what's going on.