text:
texture baking artifacts
im having issues with baking a texture via blender. im only using a bsdf node with white and the sun as a light source. somehow it keeps coming up with these artifacts instead of being smooth with small amount of noise in the viewport. can someone help on how to fix this?

Which artefacts? The flat shaded(?) blocky appearance of the discs?

@Blunder the appearance, its supposed to be solid white with shadows but it looks very jagged. i've increased the sample thinking its noise but nothing.


text:
GeoNodes: Recalculating Normals after Mesh to Curve and then Curve to Mesh?
So, I’m still working on buildng my pprocedural city and have hit a road block in creating block generators.
I started out with a building generator I made following this tutorial: https://www.youtube.com/watch?v=59PeIGmZQdY
It takes user inputs for depth, height and width and creates a single building with those dimensions and instances a wall mesh from a collection onto the vertices. Its all based of generating a mesh cube/dividing the vertices and instanncing on the cube’s vertices.

Here’s a screenshot of the full (messy) node tree.

The tree uses the generated cube’s normals to determine the instance index/rotation/find corners/edges etc and place all the carefully organised elements from a location in the correct places.
So to set about building a block I created a new tree which instances cubes along mesh lines which are scaled based on the plane the node group lives in, and divided by a constant 3m to ensure they are always scaled to fit the dimensions of the mesh walls to be instanced.

I calculate the x annd Y vertices (edge loops)based on their lengths divided by 3

These vertices are derived from the original instanced cube.
However I wanted all my cubes to have random variable heights. As the cubes are instanced, the only way to do that was using Scale Instances node placed after instancing the cubes.
This was all fine, I created a random value to scale in multiples 3m so get an evenly distanced scale.
However, because the height is being randomised after the cubes are instanced, I had to leave the Z vertices at 2 for top and bottom because they would not be spread evenly as the edges of each cube are different.
Plugging the realised output into my building generator worked as expected. It only instanced the first floor and roof as there were no vertices down the vertical edges. Still it instanced everything in the right place - corners, faces, rotating instances for the sides.

So, in order to subdivide my vertical edges evenly, I realised the instances selected only the vertical edges, converted mesh to curve, and resampled them at a 3m distance.

This gave me exactly the sort of vertex structure I needed to instance my walls.

(ICO’s instanced on points.)
So then I converted the resampled curves back to mesh and joined them with the original realised mesh and merged by distance to make sure they become a single mesh island.

However when I plugged it innto the building generator things didn’t quite work as expected.

The ground floor and roof still work as their normals come from the originally realised cubes. However all the middle floors - from the resampled curve are all facing the same direction.

What I think has happpened is that converting the mesh to curve and then back makes all the normals face the same direction, so the calculations my node group has determine instance index/rotation/maskinng isn’t workinng because the nnormals are nnot facing the correct way according to the cube object.
This would make sense as once the curves are converted back to mesh they have no faces.
I’ve tried fill curves, but as my curves are not flat on the z axis it doesn’t work, ad using profile curves creates an unwanted edge justting out of the edge of my cube/building.
Does anyone know how I can ‘fix’ the normals of the edges onnce they’ve been converted to curves and back?
My blend file is here: https://www.dropbox.com/scl/fi/28hluxgvccggsgmu0z4z6/Procedural-Block.blend?rlkey=dqvhv0c4iphmuxvf0zu1p1r4e&st=2z4trnzn&dl=0

I read the question as: "Here's my setup (city generator), and it doesn't work. How do I fix it?" - the title is much better, however looking at the question it's very confusing and it seems it would be better if it simply had the "CONVERT TO CURVE AND DIVIDE EDGES" screenshot. Ideally, you would present your problem in a minimal reproducible example with no "Group Input" node or input being something very easy to understand like monkey geometry (Suzanne). Otherwise the question is not helpful to future visitors and therefore OT.

The ideal .blend file is a very simple proof-of-concept similar to what you're supposed to upload in bug reports: How to upload a blend file on BSE - good practices and advice (I argue it should weigh < 1 MB compressed). Some discussion on how to ask good questions on BSE: https://blender.meta.stackexchange.com/q/2620/60486

I included as much contextual information as possible as previously I had been told off for being too vague. It was my intent to explain WHY I was doing things the way I was doing to help clarify why other methods wouldn't work.
I am not saying "Here's my setup (city generator), and it doesn't work. How do I fix it?""
I am asking how I fix normals after a convert mesh to curves and then curves to mesh, as in the title and as in the last paragraph of what I wrote.

I understand seemingly conflicting advice can be frustrating, but ideally you would explain the problem in the simplest terms, and have a contextual addition. I forgot to write it in previous comments, I suspect the problem comes simply from converting to curve a mesh of intersections of edges, that is vertices with more than 2 edges. Curves can't split, so such a mesh is converted to multiple splines, e.g. horizontal and vertical splines, and the vertical splines will no longer bend normals on corners.

source: Stack Exchange

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

sort: votes


text:
Geometry node: Switching points on the furthest X point
I'm still struggling my way through making a city block using geometry nodes. I'm almost finished getting it to how I want to, but I want to be able to have the ends of my block use a different set of instances to the middle. So the instances on the furthest X and -X edges are different to those along the Y and -Y edges
Here is the node set up for part of my block:
This is the section of nodes I have set up to try and be able to switch the ends of the blocks to choose different parts of my collection.

As you can see below if I use the integer node switching between zero and one will switch successfully between different ID's from the collection.

[

What I'd like to know is how can I isolate the X and -X edges and change ONLY the ends of the block?

since you know what x size you have and how many vertices there are, you can do easy mathematical calculations to get what you want:

Brilliant! Thanks!

you are welcome, glad i could help

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


text:
Colouring instances based on mesh island
I’m currently working on building a city (I have been for a while now). I’m using Blender 3.6 because the shader I use isn’t compatable with 4
I’m using the buildify add-on and have built my own building parts to feed it. I’m editing the Buildify Geonodes setup to suit my purposes. But I’m wondering if it’s possible to give the same colour value to all instances on each mesh island - and have all mesh island’s random colours.
I already have a colour change shader setup which works nicely, feeding a stored named attribute into the shader to drive colours from a ramp:

This works nicely, giving all instances a different colour:

I’ve tried a few different methods to try and assign the same colour to mesh islands, as buildify creates a new building on each island. Here’s me trying the mesh island node in place of the index/domain nodes:

However this just makes all instances the same colour across all islands:

Is what I am trying to do possible? If so, what am I doing wrong?
Thanks in advance.

Question: (I don't have buildify) - Is it "mesh island" or is it "instance"? They're different things.

So, assuming you have:

A "mesh" that contains islands; and
You're adding "instances" to that mesh

You need to store the attribute before instancing (while you still have a "mesh" and only the mesh). Then the attribute will transfer automatically to the instances:


text:
how do i adjust the object to fit the box, kind of like wrapping it just like clothing simulation

i'm trying to figure out how to wrap the vest around the block, so the straps that were meant for a human torso would fit the block

I don't think that there is a way to simulate this because your vest is too complex for it to work properly. I think that only thing you can do is change either block or change the vest manually by lattice, sculpting (grab) or proportional editing

provide your blend file so we can try ourselves...


text:
how can you key frame the entire scene at once?
what im trying to get:
press 1 button
everything that can be key framed is key framed
like in sfm you can select everything and key frame everything at once
any way to do that?

Sounds like an overkill. Maybe you should tell us what you really wanna do? What’s your end target?

what kind of keyframe? You can just press I on your keyboard and select keyframe you want but I am not sure what do you want same as @Chris

I think you might rather want to create a whole new linked scene and tweak the parameters there. Keyframing is notorious for hurting performance and it's not really well suited for such an overkill use :)


text:
Objects become larger when Rendered
When I use render (as render region or render or render preview or actual render), objects become twice as big as I positioned them in front of camera (or camera comes twice closer..)
Here's the regular view through camera:

And here's render preview:

Does anyone have a clue? It's quite distracting.. Would be very glad for any help! Thanks!

make sure that you haven't keyframed the camera (select the camera, open the Dope Sheet, check if there's a yellow dot, delete it)

@moonboots no keyframes there

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

@moonboots here it is https://pasteall.org/blend/188aa2619d764add9621f19806e49d60 thanks for giving your attention to it!

There is another object "Sprinkle_medium" set as active camera, this is not a camera. This is the reason. Though, I don't know why it gives this effect. Select the actual camera then ctrl+numpad 0 to solve the issue

oh ok I think I get it, it must have to do with the default focal lens of an object that is chosen as camera, it seems like  it will be 35mm, and it looks like when you switch back to Solid mode it swtiches back to the 3D view focal lens, which is 50mm in your case

It probably has to do with the default focal lens of an object that is chosen as camera. As Lemon says, you've chosen Sprinkle_medium as camera instead of your camera, as you can see in the Scene panel. It looks like the focal is 35mm for an object camera, and when you switch back to Solid mode, instead of keeping this focal as it would do with a real camera, it swtiches back to the 3D view focal lens, which is 50mm in your case, therefore the difference you see. If what I say is correct, I think there's a lack of consistency here (but objects as camera are not often used I suppose).

Wow, thanks! I haven't even visited Scene panel yet) I've probably used some wrong shortcuts. I looked around and found all you explained except the focal lens of the object. When I click on the Sprinkle_medium object, the camera tab disappears at all. Just wondering where to find it's parameters.

is it the size parameter under Camera tab? It's 36 here, not 35mm so I'm not sure: https://tppr.me/YXk7P

What you show is your camera tab for the camera, isn't it? Because I can't find a way to set the focal lens for an object chosen as camera...

Yes) I also couldn't find that's why I asked how did you find out that "focal is 35mm for an object camera". But I'm just wondering, it's not super important

Well, I don't know if it's exactly 35mm, I'v just set my 3D view to 35mm in the N panel > View > Focal Length, and compared with the Rendered preview with the object selected as camera, and it seems to match (or about to match)

Wow, okay, that makes sense. Thanks a lot for clearing it up!


text:
Quads display differently on the two sides of an otherwise symmetrical object
I'm quite new to Blender and this doesn't make any sense to me. I tried to model a very basic "nose" by importing a cube and scaling groups of vertices in edit mode. Everything I did should have been completely symmetrical. The vertices are perfectly aligned when I look at the nose from the different flat perspectives but when I start rotating it around, one side seems to have a dent in it, while the other does not. Or rather, the triangulation in the two quads on the side is not the same, where one folds in, and the other folds out. How does this happen and how can this be corrected? Thanks.
Link to file:
https://drive.google.com/file/d/1HLzDtOVro0CnYnGc3U3AGXDhmAk1c8Lx/view?usp=sharing

I'm not sure you can control how it triangulates

If you want the whole shape to be symmetrical you could use CTRL-R to put a loop down the centre, delete all the verts on one side and then add a Mirror Modifier.

Thanks for these comments. The thing is it's easy enough to mirror things with a basic shape like this but I imagine that once I make a complex head (or similar), things will get a bit tricky if I cannot control how things "fold"...

Yes, the sides aren't planar, and so their shape depends on how they get triangulated.  All meshes get implicitly triangulated just before render, because our computers draw planes, and planes are defined by 3 points, not 4.  We can see how this mesh is getting triangulated by using a wireframe material:

I'm also comparing to the triangulation on a copy of the mesh with a triangulate modifier, on "shortest diagonal" mode.  You can see that this modifier creates symmetrical triangulation, so long as it's possible, because distances between symmetrical vertices are also symmetrical.
The method Blender uses for its implicit, automatic triangulation is "fixed", which uses vertex order to determine how faces get triangulated.  The reason it does this is to make triangulation work in the same way for a given face regardless of deformation (like armature deformation.)  Whatever you do, you don't want your triangulation popping when your character bends their arm!  The triangulate modifier shown here will do that if you put an armature modifier before it.
Note that using a triangulate modifier can affect the normals of the object.  Here, I've enabled "Keep normals", but that can be misleading: only custom normals are kept.  To create custom normals, I've data transferred the normals from an untriangulated copy of the mesh.
You're right to be concerned about triangulation, but what you should be doing depends on what your end goal is.  In general, you shouldn't be using faces that are so out-of-plane that you can notice their triangulation.  Whenever making a mesh for export to an engine which does not use quads, you should be thinking about triangulating it (after generating custom normals, or before generating a normal map) before export.  For rendering in Blender, there is no single right way to do things.  For example, shortest diagonal triangulation with custom normals before armature is fine, but it will affect subdivision, most likely in a way you don't want.


text:
Not able to individually pose finger because of drivers
I would like to utilize finger drivers, example, fist, chop, spread fingers as well as tweak and pose individual fingers. Using a downloaded blend. Something is preventing this.

why don't you delete the drivers? if you know the cause....you should write everything in the question which prevents us from asking you!

I would like to utilize finger drivers, "as well as" tweak and pose individual fingers. Thank you, Chris, for your quick response. If no other option then I will delete drivers. I'm at the bottom of the learning curve in knowledge of Blender. I came here for helpful advice and direction.

I don’t think you can use drivers and poses as you want it because drivers work „always“ - except you extend the drivers e.g. with a custom variable and do something like „if use_drivers: (…your driver function…) „ and so you could turn on/off your drivers with e.g. one scene variable or you do this on (hand bone) level

I'd have to look at the rig to see how it is done in this case, but it's always possible to have both drivers and tweaks. Can you share the file? (How to add a blend file)

Blend file is too large. I deleted all extra clothes except for active one, etc. still 32 MB.

Maybe google drive? Dropbox? Or try https://wetransfer.com? (there is an option for link, no registration required)


text:
How do I change the values of individual cylinders/points with geometry nodes?
I have created a node tree with a mesh line to instance cylinders compared to the location of a icosphere. I am struggling with making the cylinders change location individually since at the moment It is moving the entire group at once. How would I go about doing this?

To see what I am attempting to do just move the icosphere along the y-axis.

3.0?  If working in beta, you should probably be mentioning that in your question.

In your node tree, nothing compares the sphere location with each individual instance location (vertices positions of the mesh line). So it results in one unique value for all. And in consequence they are all shifted the same way. What do you want to do?

You cannot move the icosphere with geometry nodes because it is not a point/vertex of geometry nodes.
With geometry nodes you can only move/scale/rotate instances and points/vertices which were created by your (or another nodetree), but not any object. That's why the node is named "object info" node - you can access the information, but you cannot change that object.
So if you want to move your icosphere, you can either do it manually in the viewport or animate it as you want it via keyframes or any other "traditional" method like modifiers or physics or....
Here is an easy example, how you can move the icosphere with a "normal" animation, and depending on that the positions of the instances will change:

you could e.g. give the sphere a rigid body and some bounciness...and with this node tree:

you will get:

Looking at @Chris' answer, this one may be too elaborate.. but here's an option:

(Some nodes CtrlH collapsed, to save space.)

It converts a Mesh Line to a Curve to mount the instances.
It uses Ray Cast to project points sampled from the curve down Z onto the sphere, or whatever is underneath the line.
Because the points are on a curve, it's a bit simpler to extract a following-rotation for the cylinder instances.

... But there's a side-effect. As the curve changes length, the spacing between the instances changes accordingly. This may or may not matter to you.. there will be ways to keep the curve-length constant, I'm sure, with some more jiggery-pokery. That would make the tree a bit bigger.

(Blender 3.0b)

Thank you all so much! Both of those answers are perfect for what I am doing, but I definitely understand Chris’ answer better lol!

@pitfall24 Not surprised! :D (That remark is a criticism of me, not you)


text:
Why can i not move individual Vertices
I'm trying to complete the make a donut in blender tutorial, but i am unable to select my vertices
Image is attatched

You are in face select mode. You can tell by the selection squares in the top left corner (next to where it says edit mode). Press 1 to go to vertex select or pick the box on the very left. If you are talking about not being able to select the donut, it is because it is a separate object. Switch from edit mode back to object mode (tab), select the donut, and then enter edit mode again (tab again).

Thank you!!!!!!


text:
How can I simulate water molecules?
I'm trying to use Particle system to simulate water molecules, like this https://www.youtube.com/watch?v=iB7tLjqsKMY  or https://phet.colorado.edu/sims/html/states-of-matter-basics/latest/states-of-matter-basics_en.html . But i don't know how to shake or wiggle the molecules. I'd like to make something very similar.

maybe my answer here will help: https://blender.stackexchange.com/questions/237249/how-can-i-recreate-this-emitting-rigid-body-force-field-animation/237276#237276

Distributed interaction visualization - you may find it useful to start making a Python solution

Thanks so much for the reply.

I am using geometry nodes for this (which for sure will be or is already the better particle system) and with this node setup:

you will get this:

Note: of course you can do this better and play around with the values a bit, but i think it is a good starting point

Thanks so much for the reply. Was the model created in Blender 3.0 ? With all this tips, I think I can create a good model. Tks

The model was just 3 spheres and then I joined the objects


text:
Problem with rigging once meshes are joined
Hi I’m new to blender and just learning how to rig a character model.
My problem is my character model is made up of multiple meshes I’ve joined via Ctrl J. Once I apply any kind of a rig with automated weights some of the meshes that have appeared to have joined, do not follow the armature like the other objects do.
I can’t find any abnormalities with the objects not moving with the armature.
Any assistance would be greatly appreciated, and thanks in advance.

providing your blend file would help to figure it out...

Parent the mesh to the armature again with automatic weights and check the status bar if you see the "Bone Heat Weighting Failed to Find Solution for One or More Bones" error. Watch closely because the message is visible for only a few seconds and then disappears.


text:
Problem with Boolean modifier difference
So I was trying to use the Boolean modifier in order to cut out windows for a vehicle am working on, when I was satisfied with the shape and applied the modifier, immediately I started getting distortions and the hole changed shape.

[

please provide blend file.... what you can try: change fast/exact, increase subdiv

the reason is simple, when you added your bool modifier, you added it at the bottom of all modifiers, which means that it is supposed to be last to be applied...
If you apply all your modifiers in the right order from top to bottom, you will get what you wanted, however, if you apply the last one modifier and let the first 2 unapplied it will make something totally different... Just to try it, take your bool modifier and pull it up above the mirror modifier and you will see that result is the same or similar as you got...
If you want to approach it this way, you need to make bools active but not applied and apply all modifiers at the end of your modeling, the other way would be to cut it, disable your modifiers and retopo your model to fit that bool so that rest of your modifiers works as intended...
Sorry for the long essay but simple answer is : Do not apply random modifiers out of their supposed order

Also the boolean workflow and subdivision workflow are not really well suited together because boolean tends to make ugly geometry, when subdivision only really works well with nice clean quad geometry

Yes that's why I mentioned that you need to repair your topology after bool before using subdivision modifier he has, if your boolean creates face that has 8 vertices, you cannot expect that Blender will make it work somehow, you need to repair it

Well thanks all, my problem is solved now!


text:
How to shrink material/particles on plane while maintaining overall size of plane
Here's some grass I made that I'm happy with:
https://i.sstatic.net/4DSZl.jpg
I want the camera to remain at this height (50ft) because I'm simulating a model plane being at that height.
However, I want the grass to appear the way it would from 50 ft up, which means scaling down this grass and maybe tiling it? If I just scale it down then it will no longer fill the frame, so I think I need to do some sort of UV stuff.
My setup is a plane with this as it's main material:

and then a particlesystem hair that looks like grass. Also, I have this as my HDRI but that's probably not relevant.

Probably the simplest way to do this, that will tile as you suspect, is to use collection instances.  Move the particle emitter to its own collection, then add a collection instance from the shift-a menu in the 3D viewport.  You can add as many instances as you'd like and move them around:

Otherwise, it's necessary to increase the size of the object (not by scaling, which will also scale particles) as well as increase the number of particles.  If you scale the emitter up three-fold in edit mode, you will need to to increase the number of particles nine-fold; to maintain the same density, the number of particles is proportional to the size increase squared.  This will (probably) not tile, which may or may not be good depending on what you want.
You can increase the size of the emitter via an array modifier instead of scaling.  If you do so, you will need to make sure that the array modifier is above (before) the particle instance in the modifier stack and that the particle system has "Use Modifier Stack" enabled in properties/particle/emission/source.  You will still need to increase the number of particles as above.

Hi, thanks for the answer. Question though, do these solutions keep the scale of the background material 1? Put another way, I want to zoom in and see what I see now. Maybe I don't want this as the material will be tiled though?

@kevinlinxc of the emitter material?  I see, I was focusing on the particles, but the two are really different questions.  What you want to do with a material depends on the material, and what you have shown isn't enough to say; I would need to see the shader nodes for the emitter, and preferably any UV maps as well.  Until then, the answer is, "array or collection is instance will probably do what you want; scaling in edit probably won't; try it out."


text:
Adding particle system deletes/hides my main material?
When I add a particle system, it makes my main material suddenly die. See here:
https://streamable.com/rcycq3. How do I avoid this?

Ok I'm dumb, I had "Show Emitter" unchecked in Viewport Display. I thought emitters were weird white balls  but it's actually the layer/material that is emitting unsurprisingly


text:
Piping Blender Camera to Python OpenCV webcam
I have a Python OpenCV computer vision script that runs object detection on videos and webcams.
Currently, I'm simulating a scene in Blender, rendering to an mp4 and then opening it separately in Python. This creates a really long cycle time because the Blender render takes about 10-20 minutes for each small change.
Ideally, I would want the camera in Blender to output to a virtual webcam on my computer that OpenCV could then read from, live. I think it would be possible since they are both Python. Is this possible? I also recognize that having a live rendered feed would probably require eevee over cycles.

As far as I know, no.  It's possible to add hooks to frame change events and use those hooks to output a screen capture to a network socket, but the screen captures take longer than a frame time at 24fps.  I don't know if hooks exist based on moving the scene point of view, but I believe not.

I found only one existing way:

First you need allow Terminal to access to your Camera (*1)
Run Blender from Terminal shell /Applications/Blender.app/Contents/MacOS/Blender

Check your permisses in System Properties > Privacy and policy > Camera

*1 : create simply code sample code name it as sample.py and run it in your terminal python ./sample.py -> allow Camera access.
and thats it!

I think this might be a misunderstanding, I think this would allow Blender to use the webcam? What I want is the camera from Blender to output to a webcam that Python could read using opencv's cv2.VideoCapture()

Yes Sorry, I  posted this response to other problem! My apologies


text:
Hide one particle system using another particle system
I want to put 5-10 2 ft disks on a plane of grass.
I want them to be randomly placed, so it makes the most sense for me to make each a single disk particle and apply it to my grass plane, so I can just change the seed and they'll be placed in new locations.
The problem is that my grass particles stick out of the disks, so I'm wondering what the best way is to hide the grass wherever a disk is placed?

Use geometry nodes with proximity...this can do it.

Can you please elaborate with more steps? I am a beginner stil

i added an answer

So what was the outcome here @kevinlinxc - did you get it working?

Apologies. I just ended up making my "on top" particle thicker, since I was only looking from an eagle eye perspective and so it didn't matter. The example by Chris seems pretty good, I'll mark it as valid.

instance some objects on e.g. a plane like this:

instance some bigger objects on that same plane with less density like this:

add these filter nodes which "subtract" the little objects from the big ones within a certain distance

and with a little math, you can have a nice falloff as well like this:


text:
Blender Python: How to address a particular node when multiple nodes of same name are present?
I use this command for extracting the diffuse bsdfs:
base_material = bpy.data.materials['base_material']
all_nodes = base_material.node_tree.nodes
bsdfs = all_nodes.get('Diffuse BSDF')
Now, when I print(bsdfs),
I get this:
<bpy_struct, ShaderNodeBsdfDiffuse("Diffuse BSDF") at 0x7fec5af57008>
However, I have multiple Diffuse BSDFs in my node graph and printing bsdfs is returning only one such instance. I wanted to know how can I get a list of all these principled bsdfs
Blender version: 2.92.0

There are no two nodes with the same name. If you have multiple Diffuse BSDFs. they will be named (by default) Diffuse BSDF, Diffuse BSDF.001 etc.
Instead you can loop over all nodes and check their .type. Use the Python console to find out that all_nodes['Diffuse BSDF'].type is 'BSDF_DIFFUSE', so you would do
bsdfs = [node for node in all_nodes if node.type == 'BSDF_DIFFUSE']


text:
How to convert a random color ramp material to a simple material for lots of object instances
I have used  Object Info,random output and colorRamp to randomly asign colours to a few hundred different object instances (for example roof tiles, wooden elements, rocks and grass), which works great for renderings.
I want to upload my model to sketchfab which doesn't support this type of material.
My solution right now is to make the object instances unique and select all the objects with the same colour and apply a simple material with the same colour, but this is tedious work.
Is it possible to "bake" or apply the random colours to the objects? Some objects have multiple materials applied this way.
Thanks for any help!

Assuming you have made UVs for all your objects and they all fit in the UV space at the same time:
Add a new texture node, plugged to nothing. Click the New button to create a new texture, name it like color.png and set a nice resolution.
If your objects use multiple materials, make sure to copy paste this node everywhere.
While this texture node is selected, go to the properties editor, rendering tab, make sure the render engine is set to Cycles.
In the Baking panel, set Bake type to Diffuse, check only Color in the Influense subpanel. Pay attention the margin setting in the Output subpannel, this determines how many pixels are calculated out of each UV island to prevent bleeding, too much of it will make the baking bleed onto other islands. This depends on the texture resolution and how you did your UVs so there is no perfect answer, you have to test. I like to start from 8px and see how it goes from there.
Then you can bake, and you will obtain a texture that you can use anywhere. Don't forget to save it by pressing ⎇ AltS from the Image Editor. Or menu Image → Save As....

Thank you for not only a great solution but also excellent instructions with a useful screenshot and coresponding steps marked. The only thing is it's baking every object one at a time, so I have to uncheck clear image in the settings, otherwise the previous bake gets overwritten. I will play with the settings some more, maybe I'll find a solution to that. In any case, a great answer.

That's why you should have all the objects' UVs withing the same space (see my baked image, you can see each cube is a different patch). So that you have all the objects baked in one go. That's the coolest part of it.


text:
How do I "pull up" the root bone one level?
I have a lot of meshes that have an extra bone at the root level:

Unfortunately, this makes it impossible for them to share an Avatar in Unity since they'll all have that extra randomly named transform in there (in this case "Undefined 1_7813"). What I want is to make "hip" the root bone. Is that possible? Thanks!

Is there a reason you can't just delete the 'Undefined' bone?

What you're showing has a single root bone ("hip" in this case.)  "Undefined1_7813" is not a bone; it is your armature object.  I don't know exactly what problem you're having, but it is not that you have an extra bone.  Make sure your armature has no transforms (loc/rot/scale); after that, I would recommend asking in sites devoted to Unity about what's going on.


text:
cleaning up glitched complex overlapping mesh architecture
I am relatively new to Blender (Rhino for now) and tried to collide multiple 3d photogrammetry models. In the end, I glitched it my resizing the meshes to create an unexpected architectural model. The issue (obviously) is now that I got many unwanted overlaps etc. on the inside which I don´t want as there should be open and "big" spaces/rooms inside the model. I am just trying to figure out if there is a possibility to clean that mesh/mess up or if there is basically no chance. Any help would be appreciated.
cheers


text:
How to apply attributes from one instance collection to instances from another collection
I have two collections.
One that contains three Empties at the center of the Geonodes container, with varying rotation (i.e. Orbits)
One that contains three objects with varying position (i.e. Planets).
I am trying to set things up so that the Geonode setup generates three curve circles, positioned at the center of the container, each having the rotation of the Orbits and whose scale would be the distance between the Planets and the Orbits/Centerpoint of the Container.
Except… I can’t figure out how to get attributes from one collection and apply it to the other. I’ve tried using both the Orbits and the Planets as the baseline, with no dice.
From my understanding it’s something to do with how it’s either failing to load in the Instances of one collection at the same time as the other, as such not loading the corresponding attribute, OR it’s trying to apply that attribute to the wrong instance.
How do I do this properly?
My attempts that are clearly missing SOMETHING

I think the best answer to this question wouldn't address the exact issue of OP, but just how to debug an issue :D The spreadsheet and viewer are your friends, at various points you should be able to investigate if you get the data you expect or not.

The solution ended up being to, instead of using Capture Attributes to get the position of the planets, to utilize Sample Index that is fed the Index Attribute of the Orbit Instances in order to properly assign each orbit to each planet.


text:
Blender 4.2 Eevee - Volumetrics show up differently between Viewport, Render and Command Line Render
Basically, I found that there is a major inconsistency in how Volumetrics in Eevee Next are rendered out depending on exactly how you render it out.
At this point I've ruled out running into VRAM limits, since while I only have 4GB of VRAM, an acquaintance proceeded to achieve basically exactly the same results with his 72GB of VRAM. So I now have absolutely no idea what's causing this massive difference in rendering.
This is how it looks like while in Viewport

This is how it looks when I try to render it out in Blender itself

This is how it looks when I try to render it out in command line

This is the .bat file command I use, in case it matters
"%blenderExePath%" -b "Frenzied Flame Animation.blend" -x 1 -a

Well, I've managed to get it to work, but I've had to disable actual volumetrics entirely, i.e. the Density, leaving exclusively Emissive Volumets.
Annoying, but functional.


text:
Edge connect like in 3dsmax
Is there something simmiliar in Blender to the "Connect Edges" feature in 3dsmax?

https://knowledge.autodesk.com/support/3ds-max/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/3DSMax/files/GUID-57E3DDC9-50D2-4467-93E9-B1B103CEA30D-htm.html

Yes, if you subdivide the selected edges, you will get the same result, Ctrl+E>Subdivide.

You can achieve a similar result with the Subdivide operator
Just select the desired edges, press W > Subdivide. In the operator panel options choose the number of cuts.

Have in mind that this is most likely to create lots of NGons at the ends which are largely considered a bad modelling practice, and prone to problems with topology, animation, and texturing.

Thanks - i found this this morning, after discovering the loop cut and slide function.
Subdivide comes close - but its lacking some of these positioning options to get the results closer together or further apart, or some sort of sliding along parent edges.
i come from arch-viz, so bad modelling might be true, but it can give you fast results adding some sort of elements to an facades, as like windows etc. have not discovered any problems regarding the rendering so far.

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


text:
How to export entire object material and texture as an image?
I am making a gun skin for a game and I want to export the material texture node setup as an image in its UV format. I have no clue how to do this.
Gun skin:

node setup:

Hello, you need to bake the various maps: Diffuse, normals, roughness, etc

You can learn how to bake images elsewhere on this site, but that's not the entirety of what you asked: You need to recreate the material in the game engine.  Materials are specific to each engine that uses them.  If the game engine doesn't support a feature you need, you need to write a new shader.  If the game engine doesn't allow to you to change shaders, then you need a new game engine.  See https://blender.stackexchange.com/questions/57531/fbx-export-why-there-are-no-materials-or-textures


text:
How do I rig this cointainer?

I have made this container for a project, and I have to make it so it can be opened.
It has two springs outside and should follow the lid, but the lid's pivot point is a little offset for the spring, as you can see in the image. I added a bone for the container, another for the lid, and I suppose another one for the spring.
Could anyone help? I don't know how to rig it properly.

May be this video can help you:D https://www.youtube.com/watch?v=-Xgw-mutOv4

Ok I figured out by looking another post. I needed another bone that goes to the tail of the spring bone, and a Constrain 'Strech to'.


text:
Play animation stuck
I just shortened the length of my animation by selecting all the keyframes in the dopesheet and scaling them down (as per advice on a thread here on stack exchange) and now my animation won't play. If I continuously hit spacebar it scrolls through a frame at a time and it will play backwards not forwards. Also, if I delete any key frame then ctrl+alt delete, the animation plays fine until I stop it then it won't start again and it's back to the same. Any help with this greatly appreciated!
I've checked start stop in output properties and they are the same as timeline. And this happens in Eevee and cycles. I've tried earlier autosaves (even before this started) and it's the same problem.
The pic shows the fps constantly cycling round itself on a single frame in forwards play

Ok I think I sorted it! The usb power for my sound card had decided to turn off but I wasn't to know as the volume was down at the time so thought it was something more complex! Turned the interface off and on again and sorted it! Hope this solution helps anyone else with the same or similar issue

Ok I think I sorted it! The usb power for my sound card had decided to turn off but I wasn't to know as the volume was down at the time so thought it was something more complex! Turned the interface off and on again and sorted it! Hope this solution helps anyone else with the same or similar issue

In may case "Play animation" button played one frame forward and played normally backward. There was no sound. What I did to fix the issue I deselected the audio device (it defaulted to "PulseAudio") by setting it to "None".

At that point blender froze up for several minutes but finally it started again accepting input. Again I set it to "PulseAudio" and playback started working properly.
I'm on kubuntu 21.1, blender version 2.93.3.


text:
How to stretch one object along multiple curves
How to stretch one object along multiple curves at once?
I want to make hair cards. If I extrude the curves using geometry tab and then convert the curves to objects, I get hair cards and can unwrap them. However, I will lose the ability to edit them using bezier curves (I can just move the vertices).
I have a tape with UV, and I want to stretch it along all the curves at once (without creating a million copies of the tape and applying modifiers to each tape for a each curve). How to solve this problem?

what do you mean by "hair cards" and "tape"?

you can create linked-duplications of your mesh, so that if you change one of its instance, it will change all the others

Create your object as a curve and use it as the "bevel curve" of the other object.


text:
Circles are generating with weird double vertices. How do I stop this?
When I go to Mesh > Circle, it creates a circle like normal, but in generates with these weird double vertices. How do I stop it from doing this? Merge by distance doesn't seem to work.

are you sure that you have 1 circle? This looks like you created one circle and them somehow duplicated it in edit mode and moved it slightly... can you share your file?

To give you a quick way to fix this. If you press M and merge by distance as you say on the bottom left of your viewport there is a small window that says merge by distance.

Increase the value of Merge Distance to get what you need. If the merge is succesfull a text showing this will appear.


text:
Any way to tie an animation curve to particles' age?
I'm working on a scene that requires the animation curve of the halo material's alpha value to be tied to the particles' age, so the particles can fade over time. Is there a way to pull that effect off in Blender 2.7???

you can do it like this (i am pretty sure this works on blender 2.7 too...but i did it on Blender 3.0)

The particle age is in frames, so as you can see at frame 100 alpha is 0, and at frame 0 alpha is 1.
That't why i multiplicate the frame with 0.01 (which is 1 for frame 100), but i want alpha to be 0 so i subtract (1 - thatValue) so i get 1 at frame 1 and 0 at frame 100.
Note: the particle info node with age does only work with cycles

Note: The age of a particle is since the particle was emitted so it's emission_frame + 100 in my example, and because emission_frame is 0 it is as a wrote above.

Note that the age of a particle is since the particle was emitted so it's emission_frame + 100 in your example.

I'm using Blender Internal on 2.7. Is there a way to make particles fade over time in that configuration?

works only for cycles: [1]: https://i.sstatic.net/VaFTr.png

i think it should be possible with animation nodes....

I currently don't have Animation Nodes installed on my instance of Blender 2.7. Is there any way to make halo particles fade over time in Blender Internal without using Animation Nodes?

as i said: works only on cycles...so: no


text:
How do I apply an array in the latest version of blender?
Im still very new to blender but I’m making an array of blocks and there’s no apply button to apply the array and make all the blocks individual objects. I watched videos and all of them have this button but mine doesn’t.

In Blender 2.9 the button is hidden in the drop-down menu. Have a look here https://blender.stackexchange.com/q/17733/107598 - You also can hover the mouse over the modifier and press Ctrl+A to apply it.


text:
Baked Image Artifacts
As seen below, when I bake i get these weird artifacts (left side of image).
I have tried:

Rebaking
Re unwrap then rebaking
Merging duplicate meshes/vertices

Hello, could you please pack your image and share your file?

@moonboots https://easyupload.io/3nfomo

I meant could you please share the .blend file? Before saving, do a File > External Data > Pack All Into .blend

@moonboots https://easyupload.io/u37147, sorry im a noob!

it works fine for me, except I put the Extrusion value at 0.1 and Maximum Ray Distance at 0

@moonboots, that did the trick thanks, If you want to add an answer i will accept it

Put the Extrusion value at 0.1 and Maximum Ray Distance at 0.


text:
How can I combine these meshes and rigs without needing to reparent everything?
I have attempted to  rig this model but I cannot combine the right side with the body. Can someone explain what I am doing wrong and the proper way to join models like this?
I have tried applying scale/rot/loc, setting to delta, and parenting but nothing seems to work correctly.
https://easyupload.io/vx9zed

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

Your armature and mesh objects are cut in two halves. So you should join the left part of the armature to the right part, and same thing for the objects. The problem is that for the moment left and right bones have exactly the same names, so when you'll join, the bones will change their name and they won't be able to control the mesh anymore.
What you need to do first is correctly name your bones. Remove one side of your armature. For the remaining side: Name the bones with the good suffixe, for example the left leg must be named Leg_L or Leg.R. When you'll have finished with this side, go into the Armature panel and Symmetrize, you'll automatically create the mirrored part with the opposite suffixe (Leg_R and so on for the other ones).
Now join your 2 mesh objects, remove the existing vertex groups, parent the object to the armature With Empty Groups, go in Edit mode, select all and recalculate the normals with ShiftN, select the part you want and assign it to the correct vertex group.


text:
Unable to IK rig this simple mech
I made this simple lego mech but when I try to IK rig it, the bones are always deformed and I can never adjust to a standard T pose. I tried following the royal skies tutorial but I could never get it to work once I set the foot IK as the target. I am relatively new to blender and would like to understand why this is happening and if someone could explain how to correctly set the limit rotations to avoid any clipping.
https://easyupload.io/nzp4an

What version of Blender did you use to create that file?

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

It's a compressed blend file 3.0, and not supported by 2.9.

It's hard to see exactly what you're saying from looking at the file.  There is no bone called "foot IK".  And if I look at the armature and model, I would describe this as already being in a T-pose.  (If you want to rotate SHOULDER.L to make a T-pose, the reason it won't rotate is because you have restricted the axis in which you'd want it to rotate, its local Z axis, via a Limit Rotation constraint.)
If you were trying to set "FOOT.L" as the IK target of "SHIN.L", the reason that doesn't work is because FOOT.L is parented to SHIN.L.  The parenting means that foot depends on shin.  But if shin has an IK constraint, then shin depends on foot.  Which depends on shin, which depends on foot.  I think you can see the problem.
If we want IK controls for the legs, here's what we should do:

In edit mode, duplicate FOOT.L (to "FOOT.L.001") and unparent this new bone.
In pose mode, designate FOOT.L.001 as the IK target for the existing IK constraint on SHIN.L.  (Which is already set to a chain length of 2.)

Now we can test it, by moving FOOT.L.001 around.  We'll see the leg tracks our new target just fine:

I've also selected SHIN.L in that screenshot so you could see the settings yourself.
Blender's IK will bend the leg in the direction of its existing (rest pose) bend, and only in that direction.  If that's not the direction you want, you can rotate SHIN.L in pose mode to change the bend (and see how the IK responds.)
If you would instead like to use a pole target, I'd recommend the following:

Enable the display of axes for your armature, in properties/object/viewport display, so that you can see what you're doing.
Change your orientation, at the top of your screen, from "Global" to "Normal".
In edit mode, duplicate THIGH.L (to THIGH.L.001) and move it constrained to its x axis, in the direction that its x axis is pointing.  Because you're in normal orientation, you can do this by hitting 'g' then 'x' then '20' then enter, to move it 20 units in the direction of its X axis.  Then unparent your new bone.
In pose mode, designate your new bone as the pole target for your IK constraint.

You now have a pole target that will control the rotation of the leg-- in particular, it will be same at rest as constrained, and your thigh's X axis will always point at it, wherever you move it:

"How to correctly set the limit rotations to avoid any clipping"?
Basically, the answer is, you don't.  Trying to control clipping via constraints on any object that is more complicated than a cube or a sphere is a losing battle.  You rely on the animator (you, probably) to not pose it that way.  It's like the old joke:

Patient: "It hurts when I raise my arm."
Doctor, "Then don't raise your arm."

I know, it's not a very funny joke.
You can create angle limits for your bones in a number of different ways, but none of those ways are going to have anything to do with your mesh: they are either going to be overly restrictive, or else there will be poses in which clipping is still possible.
There are multiple ways to control angles.  The ones most relevant to you right now are:

IK angle limits.  These can be specified, with a bone that is part of an IK chain selected in pose mode, in properties/bone/IK.  But they should be avoided; used poorly, the will cause IK twitch-- poor interpolations between poses that seem like they should be fine.

Limit Rotation constraints.  These will not work on bones controlled by IK, like your shin and thigh. And they are unlikely to work as new riggers anticipate, because 3D angles are not really 3 independent angles as first intuited, but are actually dependent on each other, and depend on which order you read the axes.

It looks like you've already started using Limit Rotation constraints, and you haven't mentioned any particular problem with them, so I'm assuming that you know about them already.

Hi Nathan, thank you for taking the time to clearly explain this to me. I have applied this to my model and everything works beautifully! I understand everything very clearly know and have a much better grasp on IK rigging. will keep this in mind when working on my future projects!


text:
Sample Curve Node gets Weird result from the Tangent output

Can anybody explain this weird result to me? Shouldn't these instances be all aligned to the curve? Even the Blender Manual suggests so: "This output can be combined with the Align Euler to Vector Node to create a rotation that lines up with direction of the curve. Including the Normal output in a second align node after can align the other rotation axis."

Remember how these inputs like Position are always connected to the geometry for which the output is used? Your Set Position Node is executed first, then the rotate instances node is executed and it uses the newly set positions for the sample curve node. Swapping those fixed the issue.

+1, geonodes are evaluated from right to left


text:
Transfer rotation attributes from one instance to another
I'm using instances from a collection to generate points on which I will place other objects (instances). I want that these new instances have the same orientation as the original instances.

I tried this but it doesn't work

Any idea on how I could transfer rotation attributes between them?
Thanks

It's amazing this is so hard to do at the moment... consider instancing a proxy plane  on a vertex (which will carry the rotation information,) and pick rotations up from its realized normal? Will get to it when I can, but may not be that soon.

If your question has been solved, please be so kind and mark the answer that contributed to the solution as "Accepted answer" so that this question will not continue to be displayed as unsolved. Thank you! Here you can find more information: What should I do if someone answers my question?. If you still haven't gotten a solution to your question, please be kind enough to address it.

As suggested in my earlier comment, in the absence of a Rotation input node.. (Why isn't there one? Maybe it's coming, unless there's some semantic hitch?)..
..You can instance a single-face proxy on one of the vertices of each of your instancers. That will be created with the instancer's rotation. Its face-index, when realized, should be in sync with the point-index (when the instancers are converted to points).

You can pick up the Normal of the realized proxy, to get the Z-axis of the instancer, and then rotate the proxy by 90 around its local Y to have its Normal point down the instancer's X, and extract that vector, too.
A 2-stage alignment can generate a Euler rotation which can be used as the 'Rotation' with which instances are created:

I've only included a 'Factor' input in the group for debugging and illustration. The group is probably better off without it.

(Blender3.0)

Now someone else will answer this in one snappy little move... :D

WOW! Robin, thank You so much. I had no idea that instancing an object on one of the vertices of each of the instances would keep the original instance orientation. I assumed all of the instanced grid(s) would have a unique 0,0,1 orientation. This was an eye opener. Thanks again for taking the time to create the example file and explain this in detail.

@VicMarco np. I did it for myself, as well :)

@RobinBetts Did you mean that "snappy little move"? https://blender.stackexchange.com/a/273186/145249 ...I don't think you can get any leaner than that at the moment.

@quellenform So rude! I never did answer this comment... You did get the +1 at the time.. .. must have been distracted :)

Blender 3.1
With this solution you can create the rotation of the individual objects of a collection with minimal excess geometry:

Here I first move the instances along their local axes on Z and X, and thus create the crucial directions (normals/tangents).
These are then simply turned into a rotation with Align Euler to Vector, and you can use this directly for instantiation or other processing.
(Blender 3.1)
Blender 3.3+
With this version things become a lot easier, because here only the node Instance Rotation is needed:

(Blender 3.3+)

Hehe... I forgot the essential refinement of the prophecy... 'Someone beginning with 'q' . :D


text:
Very weird Normal behaviour
So here we have seemingly two identical squares. The left one was created as a plane and then rotated 90 degrees to stay upright. The right one was created by deleting 4 vertices of a simple cube. On both I deleted the faces and left only vertices and edges.

Next I added a geometry node and made this simple setup:

And then in the spreadsheet, you can see the normals of these 2 identical squares. The one on the left gets the expected normals, but the one on the right the normals are totally off? And more surprisingly they are not identical to the left square, even though the square's geometry is seemingly identical. How is that possible?

The plane edges are centered in the object origin, but a face from the cube is not:

With no face, there isn't a normal to calculate, should it point away from the center? towards it? or maybe to an axis? the best way would be using the vertex order and an option to rotate the direction, which would make it a curve.
Since there's no defined way to calculate the normals, it uses the object origin and the vertex position to get a normal.


text:
Seamingly identical mesh planes get different results with same geometry node modifier. Probably an issue with normals

So here we have 2 identical mesh plane objects. Same position of the origin point, same orientation. The only difference is how they were created, The left one was creted from circle mesh and then most of the vertices were dissolved leaving just the for vertices. The right one was created as a plane. Both of these seamingly identical mesh objects were given the same geonode setum, seen here. But the result is as you can se totaly different. Noto only that but the left one, if you rotate the plane around the z axis, the profile twirls around

It probably has something to do with the tilt of curve or something like that. What makes it weird is that the start of the mesh is identical, so whay do resulting curve (from mesh to curve node)  have different normals or tilts?

I tried to recreate your phenomenon with a Circle (set to 4 vertices) and also with a simple Plane (also 4 verts):

To avoid unwanted shifting, it seems that the Profile and the respective Frame object need to have the same Center Point and all tranforms applied and the Object Info Node needs to be set to Relative. Then, both Plane and Circle look identical.

Also, they show the same weird behavior when rotating:

To solve the twisting problem, you will need two separate Profiles and the respective Profile needs to be a Child of its own Frame:

Otherwise, as soon as the frame is moved, the change of relative distance between Profile and Frame will result in unwanted shifting and/or twisting.

Sorry, but that didn't make the 2 objects identical. If anything it made them even more different since the origin point of the profile curve is now different for each object.

Thanks for pointing this out. Every frame needs its own profile (but it could be 'Alt-D'-ed). I edited my post and tried to clarify what steps it took for me to get identical behavior of circle and plane.

Sorry I didn't get to this sooner, but I realized soon after I posted the question, what was causing this issue. One of the objects was rotated. Check out LaserLars's answer to understand why this different orientation of the objects would cause different behavior.


text:
Align vertices between two edges
The problem is that I have two edges on the correct height. Now I want to align the vertices between those edges to make a smooth transition.
But I can't figure out how to do this without moving the ends which have the correct height.
Does anybody has a suggestion?

There is LoopTools addon way.
Select edges on the border you want to stay untouched. Run LoopTools addon > Curve operator.

Here's another way - more accurate.
Select the middle vertices.
Go to Tool Tab
Click on Smooth Vertex
Untick the X and Y axes in the settings area down below. I set Repeat to 200, but then pressed "Smooth Vertex" a few times more until it was perfectly straight.

This might be a more round about way to do it than necessary, but you could

Select the middle vertices and scale them flat on the Z axis
Select one of these vertices and note the Z value in the Properties box.
Right click on one of the end vertices and note its Z location also.
Work out the difference between the two heights - let's say it's 0.3.
Select all the middle vertices again and type G Z 0.3 (grab and move on Z axis 0.3)

Thanks for the answer :) I tried it. However, this only levels the middle vertices to the top edge, what I want a diagonal alignment between the edges.

Can't you select the middle vertices, then, and rotate them, then adjust the height of them all again - maybe a bit rough but better than nothing till you get a better answer. I overlooked the difference in height between the two ends.  If you put the 3D cursor at the top end before you rotate, and set pivot point to 3D cursor, you only need to rotate, not adjust height.  If it's hard to rotate accurately, you can press Shift while you rotate and that slows it down, so you can be more careful.

Thanks Susan, I used this method for now.


text:
How to project plane with image to another model
I imported a plane and a openstreetmap model to coordinates and want the image of the plane projected to the osm model.
I know it can be done with simple uvmapping by hand but it is hard to align the image with te osm model. I think it is possible to project the image from the plane to the osm model, does somebody know how?

Thanks in advance!

Use the DataTransfer modifier to transfer the UVs of the plane to your meshes.

Can you expand on that?

Thanks! it works like a charm, it did raise another question but I asked a new question for that.

@Robin Betts: Thanks to the answer from MACHIN3 I stumbled on a similar question asked on stackexchange: https://blender.stackexchange.com/questions/51492/how-to-project-uvs-from-one-object-to-another


text:
Scale whole object in normal orientation
As the title says, I want to scale an object perpendicular to the normal of a face.
In edit mode it works fine when I set the transform orientation to normal mode.
But in object mode this isn't an option I believe, local orientation doesn't work eihter, because the rotation of the object.
I can eyeball the scale in edit mode or rotate it in object mode, but it needs to be precise for architecture.
Thanks in advance!
Normal orientation

Wrong scaling orientation in object mode (local orientation)

Maybe there is an method to apply the rotation of an object to a normal or something?

In Edit Mode, create  a Custom Orientation from the face. (That's the '+' in the orientation dropdown at the top of the view, in 2.8 .) Check 'Use After Creation'..Then back in Object Mode, use it, with SZZ
However, it's probably better to A select the whole mesh in Edit mode, and scale that, because non-uniform scaling of the object (giving the object a transform matrix including a non-uniform scale) often interacts in undesirable ways with modifiers and constraints. Either that, or when you're done scaling in Object mode, CtrlA, bake the scale into the mesh by applying it.

Even better answer than I had hoped for, thanks!

@Vince .. but see edit.

Got it, thanks for the edit/information :)

You have some more options depending on your needs...
Shrink/Fatten with Alt-S (displaces vertices along normals) If you need even thickness modify with Alt.
Or Set the Transform Orientation to Normal and move the face.


text:
Join objects with procedural material
I am struggling with this problem for a while now.
I have created a procedural material for my buddy the low poly plant. I needs some tweaking but it's fine for now.

Now i want to join the separate leafs etc. in order to bake/export the plant.
This is where it goes wrong, the procedural material distorts when combining the object. (as in attached images)

How can I prevent this? Is is possible to bake multiple objects to an combines mesh for example?
I want to prevent to bake every part separately because I need to make variations and more high poly models afterwards.

You would need to make sure all the objects have UVs that do not overlap in the UV space. This way baking will work if all the objects share the same material and are selected.
In order to edit UVs for every leaf you would also need to make their data unique with Make Singe User. You can find it using the search in 2.8, or by going to Object>Relations>Make Single User.
It's also now possible to edit multiple objects at once in 2.8 so it's very easy to unwrap all the leafs to one UV map at once.

Thanks so much for your answer, this is setting me on track. However I do not know how I can avoid the UV's to overlap, because the the objects don't share the same UV map (I believe). Could you explain that or direct me to a link?

Oh thanks you edited your answer with the last paragraph I will try that.

You could re-unwrap the UVs by selecting all the objects, going to edit mode, selecting all with a and just unwrapping everything as if it was one object with u->u. You can then edit the UVs as you wish as you would do in 2.7 with one object except it will now affect all the selected objects. One really great new feature.


text:
Control instance ratio in geometry nodes
I'm struggling to control the instance ratio in geometry nodes like you are able to do in the particle system.
In the particle system you can choose the collection and lets say you want 3 cones, 3 ico spheres and 1 torus. I'm looking to do the exact same in geometry nodes but I'm unable to figure out how.

Unfortunately, there is (currently) no comparable option in Geometry Nodes. However, you could control the distribution in this way: https://blender.stackexchange.com/questions/265756

Thank you! I will look into it better tomorrow :)

I guess it's important to know whether you want the selections to be ordered, as in particle 'Use Count' .. or just  random in the right ratio

The second :) random is okay, it just has to be in the right ratio.


text:
Random around empy (animation nodes)
The following images show what I want to achieve with animation nodes.

So far I came up with this, but I have no idea how to combine them or if I'm on the right track:
Random transform & rotation

Transform and rotation around local axis

If someone can help me with this, I would be very grateful.

You can randomly distribute points in a circle with a generator. Don't forget to slice the last element since it will be the center of the circle.

Add your empty's position to translate your circle points.

Add your cube, scale it accordingly and apply the transform with CTRL + A. Then instance it and use the previous coordinates.

Add a random array of vectors for the rotation. You can tweak the seed in the node.

Add a vector wiggle node for location. You can tweak the seed and the evolution for a nice wiggle effect. You can also use this node for the rotation to achieve the same effect. Add a float input for the amplitude of the translation.

Add a relevant shader to the base cube :

Now make it wiggle !

Result :

EDIT : Actually I didn't answer the question. You can do the actual rotation several ways. Here's how I would do it :
Create a subprogram and rotate the cubes along the Y axis, then around the Z axis so that they face the center of the circle.

Actual result :

Very nice and a very clear explanation! I will try it today if I get the chance, but it must go right with your clear explanation :) Thank you very much Gorgious!

Hi Gorgious, I'm almost there, Just one question: What type of iterator did you use in the subpogram named Y?

I believe it is a float. Note that you can directly drag from the "iterator" output to the input of the combine XYZ node, it will automatically create an interator with the right type

Oh yeah, I missed that one, didn't know that was possible. It all works now! Thanks very much!

Yes it's pretty handy ! As you noticed you have to be aware that the new iterator takes the name of the input label, so you can can't know the type right away anymore. Glad it helped :)


text:
Why does my material's vector displacement not look the same in render?
This is the material with vector displacement I created...    (In viewport mode)

This is how it turned out in rendered mode

Why???
I tried changing the material settings to enable "displacement" or "displacement only" but nothing's changed.
I tried setting my Cycles mode to "experimental" but nothing's also changed.
I know this has already been asked here in Blender Stack exchange but those were of different versions. I am using 2.93 and I can't find anything that helps.
Also, here's the node setup if there is something wrong here. (BTW I made this node with the help of CGcookie's Vector displacement tutorial)

Man, this is just something straightforward but it's causing me alot of grief...

I suspect you have a Subdivision Surface modifier with different settings for ‘Render’ than for preview. Check the modifiers and/or the scene “Simplify” settings.

Yes! Problem SOLVED. Thanks Man.. who knew such simple stuff like this could be so obscure...

Great. Yes, there are some conmon things are just waiting to trip you up if you don’t know what to look for. For some - like this - i think it would be best if the ‘render’ one was never allowed to be lower than ‘preview’ without warning the user - since it’s something that shouldn’t generally be the case.

This can be a result of a Subdivision Surface modifier with different settings for ‘Render’ than for preview or “Simplify” settings restricting the maximum subdivisions. Check your Modifiers for Render subdivisions being less than Preview subdivisions.


text:
Lines in joined objects only in rendered animation
I am trying to figure out how to get rid of the joined lines in the rendered animation. This is how the mesh looks and is fine without lines:
This is how the rendered animation looks and is showing the lines (in red)
I tried reversing the normals but it didn't change anything.
Thanks for your help.

This almost looks like a second object clipping through? Do you have any other objects in the scene that could be appearing when you render?

please provide blend file


text:
Blender proton bouncing off of "spongey" atom
Here is my Blender screen shot. I need the proton on the right to bounce off the atom on the left. I need the atom to give a bit (sort of pillow like) when the proton hits it but then regain it's shape when the proton bounces off of it.
Thank you
Dean

Lattice modifier with an animated strength value is one easy solution.

Thanks Allen. I appreciate your help. If I could get a few more specifics from you that would help. I am assuming that the lattice modifier goes on the atom? Any other guidance would be appreciated. Thanks again

Create a lattice object and place it around your molecule with the usual move, rotate, & scale controls.

The lattice has some controls for resolution.  I'll use 3, but change it to whatever you find works best.

Add a Lattice Modifier to your molecule and use the eyedropper tool to select the lattice.

Now, select the lattice object and tab into Edit Mode.  Moving the individual vertices of the lattice will now have a weighted effect on the molecule mesh.

You can leave the lattice in its deformed state, and keyframe the strength setting on the Lattice Modifier to coincide with the collision from the proton.

Thanks Allen, this is great! I appreciate you taking the time to provide the screen shots and descriptions.


text:
Wrapping object is affecting other meshes
I set an object to wrap another object, which is working fine. But when I go to add another mesh, it affects that mesh as well. How do I "turn off" wrapping of other objects?

Are you sure that it's a new object and not a new mesh in the same object?

As @moonboots asks, did you add your new object in Edit or Object mode? If it was in Edit mode, it's actually a part of your original mesh.

It turns out I had the "snap during transformation" set to "on".
Thank you for helping me check off some things. That was frustrating.


text:
Object not following Nurbs path as expected
I made a Nurbs path and set the object constraint on the ball to "follow path" then hit "animate Path". the ball has a blue line connecting it to the path instead of it being "on" the path. Also, it is going backward from the end to the beginning. How can I get the ball on the path and have it begin at the start?
Thank you
Dean

First off, it’s offset from the curve, likely by its own position. Set the object’s position to zeroes in the Properties editor -> Object tab and see what happens.
Second off, you can either reverse the direction of the animation (either by manually animating the offset yourself or probably just moving the existing auto-created key frames in the dope sheet), or you can go into edit mode on the curve and use the Reverse Direction operator after selecting all.

Thank you! This answered my question.

@DeanDoeling PTL! Your welcome, please click the check mark next to the answer, as it helps my rep. Thx.


text:
Non ops way to rearrange material slots or changing active object from inside context menu
I've made an addon that goes through all selected objects materials and sorts them in some way. My addon adds a button to the materials context menu to do just that.

Below is the simplified version of the addon.
What I've found is that it doesn't work - changing active object with bpy.context.view_layer.objects.active = o doesn't work (logs to prove it are below) and because of that bpy.ops.object.material_slot_move doesn't work properly too.
I think the solution would be to either

To find a non bpy.ops way to rearrange material slots. Then there will be no need to change active object.
To find a way to change active object from inside materials context menu (current it's seems impossible).

import bpy

bl_info = {
    "name": "simple addon",
    "author": "Andrej",
    "version": (0, 0, 1),
    "blender": (3, 0, 0),
    "location": "Material Properties > Material Specials",
    "doc_url": "",
    "tracker_url": "",
    "category": "Material"
}

class SimpleAddon(bpy.types.Operator):
    bl_idname = 'object.simple_addon'
    bl_label = 'Simple addon'
    bl_description = "Simple addon"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        selected_objects = bpy.context.selected_objects

        for o in selected_objects:
            bpy.context.view_layer.objects.active = o
            print(f'Changing active object to {str(o)}. Result: {str(bpy.context.object)}')
            bpy.ops.object.material_slot_move(direction='UP')

        return {'FINISHED'}

def simple_addon_menu(self, context):
    layout = self.layout
    layout.operator_context = 'INVOKE_REGION_WIN'
    layout.separator()
    layout.operator(SimpleAddon.bl_idname, icon='NODE_COMPOSITING', text="Simple addon")
    layout.separator()

def register():
    bpy.utils.register_class(SimpleAddon)
    bpy.types.MATERIAL_MT_context_menu.prepend(simple_addon_menu)

def unregister():
    bpy.utils.unregister_class(SimpleAddon)
    bpy.types.MATERIAL_MT_context_menu.remove(simple_addon_menu)

if __name__ == "__main__" :
    register()

Logs result:
Changing active object to <bpy_struct, Object("x0_yoke") at 0x0000024E8E231608>. Result: <bpy_struct, Object("x0_wings") at 0x0000024E8E231D08>
Changing active object to <bpy_struct, Object("x0_seats") at 0x0000024E8E232408>. Result: <bpy_struct, Object("x0_wings") at 0x0000024E8E231D08>
Changing active object to <bpy_struct, Object("x0_fuselage") at 0x0000024E8E233908>. Result: <bpy_struct, Object("x0_wings") at 0x0000024E8E231D08>
Changing active object to <bpy_struct, Object("x0_wings") at 0x0000024E8E231D08>. Result: <bpy_struct, Object("x0_wings") at 0x0000024E8E231D08>

I think I've made a solution based on Marty Fouts answer. It works without ops but it adds more material_index juggling which could be even less perfomant than ops in some cases. And another thing you have to keep in mind is that you also need to reassign indices for object's faces to keep them valid.
Example of sortings materials in alphabetical order without ops:
selected_objects = [o for o in bpy.context.selected_objects if hasattr(o.data, 'materials')]

for o in selected_objects:
    # sort all materials in alphabetical order
    active_material = o.active_material
    current_materials = [ms.material for ms in o.material_slots]
    sorted_materials = sorted(current_materials, key=lambda m: m.lower())

    material_index_translation = dict()
    for m in current_materials:
        material_index_translation[current_materials.index(m)] = sorted_materials.index(m)

    for i, m in enumerate(sorted_materials):
        o.active_material_index = i
        o.active_material = m

    # preserve correct material for the object's faces
    for face in o.data.polygons:
        face.material_index = material_index_translation[face.material_index]

    o.active_material_index = sorted_materials.index(active_material)

One non-bpy.ops way to arrange material slots is to

somehow identify the object
make a list of the materials in the slots.
organize the list the way you want it.
Assign the materials into the slots using the list.

The basic thing is that if object is your object and material is your material, then object.material_slots[slot_number].material = material puts the named material into the slot.
I don't know how you want to ID the object, probably by selecting it from bpy.data.objects but once you do, you can create a list of materials from the slots via code like this pseudocode:
material_list = []
for slot in object.material_slots:
    material_list.append(slot.material)

once you've reorganized material_list, then you put it back with code like this pseudcode:
for index, slot in enumerate(object.material_slots):
    slot.material = material_list[index]

There are other ways that take into account the order of the material.  You could even go so far as to create a UIList instead of material_list and use its sort and filter functions to filter for you.
But this one is very few lines of code and since you rarely have very many materials on an object, it shouldn't have a  noticable performance impact.

It will work but how do you preserve the active material for the object?
Example of my experience in blender:

You have object with materials m3, m1, m2, m4 and m2 (2nd slot is active material);
You change the order of materials and now the order is m1, m2, m3, m4. Now m3 is the active material;
You try to change it to m2 by o.active_material = m2 and now the order of materials is m1, m2, m2, m4.

To cover the case when the material list doesn't include, say, an empty material, break out of the reassignment for loop.
`for index, slot in enumerate(object.material_slots):
if index >= len(material_list):
break;
slot.material = material_list[index]

`


text:
importing .aep files in blender 2.79
I know someone asked this question... But mine is slightly different... I don't have after effects but I would like to use an .aep file (downloaded from internet) on Blender.. Is there a way I could do that?

Duplicate of Importing After Effects .aep file, but cannot be voted as there is no answer..


text:
Bones stretches the body instead of rotating

I followed a tutorial on rigging a character but do not achieve the same results. Re watched the video many times and still cant figure it out why some bones stretch instead of rolling. Do i need to enable something for the bones that have connection option turned off?

The bones in an armature are almost like separate objects. If a bone is not connected to its parent bone or restricted in some way you can move it freely as you have shown.
When a bone is parented, there is an option to have it connected, when enabled, this prevents a bone from being moved out on its own, effectively only allowing rotation. With it disabled, you often only want to rotate the bone, instead of moving it. This also prevents a bone being positioned away from the parent bone as the legs are in your armature.

The simple way to prevent the movement you show is to enable the transform locks.

Constraints can also be used in some situations to control bone movements.
In your example armature, you could also add a hip bone that it connected to the spine and the leg, preventing the movement you show.


text:
Texture Painting Not Appearing In Render Mode
I've modeled a medieval Tankard here. It has been UV unwrapped and a wood texture applied to it. After doing so, I decided it would look nicer if the bulged portions were made of metal instead of wood. I opened texture paint mode, found a metal texture and attempted to paint the area.

But when rendered it does not appear
Decently new to Blender and am not sure how to fix. This is my first post on Stack Exchange

Looks like updated paint missing in render could be fixed if you saved image you painted it on before rendering.

Figured it out. Needed to save the painted texture as a new image


text:
Mesh does not move with the Rig
As a summery I used a preexisting model removed it's rig as it does'nt satisfy the requirements, and used a basic human rig in rigify and generated the version as in file.But right now i am stuck in moving the model as my mesh isn't moving with the joint motions.Anyone have idea of where I might have gone wrong?
Blender File: https://drive.google.com/file/d/1NT1oiu2R7IW5UBJFVDuPxx07A88AaQoR/view?usp=sharing

Well fixed the error,the mesh wasn't selected with the joints, if anyone else come to this point,
After generating the rig as above follow the following steps,
Hide up the additional rigging stuff by H
select the bone structure, you can find it in the layers in the display menu
Ctrl + Z to get wireframe of the model
select the mesh then the joint structure (Use shift)
Then apply automatic weights (setting joint structure as the parent)
For more info follow this tutorial: https://www.youtube.com/watch?v=dYiAd_08-0k


text:
Euler list output in steps (Animation nodes)
I try to create an euler list that adds a rotation every so many times. In this case adding 72 degrees every 3 times.
I would be thankful if someone could help me.

By using Float Range and Repeat List Element node you can do this.

Thanks for your anwer Hari, yes indeed, but then repeating values every 3 times. So I want index 0,1,2 to have a value of 72. Index 3,4,5 to have a value of 144. Index 6,7,8 to have a value of 216 and so forth. Like the blue text indicates in the example image. Do you maybe know a way to do this? Again, thanks for your answer.

@Vince I have updated answer

Yes exactly like that! I tried everything with a repeat list which was wrong apparently. Thanks for your answer, it helps me a lot!

there is repeat list and repeat list element node, may be be you confused by those two :)


text:
Animation nodes Group instances

I want to know if there is anyway I can make random instances of a group or list of object in to a mesh.
In the example I want to instance the 4 objects in to the 8 vertex of the big cube.
I tried also whit the instancer node but doesn't work
Thank you

Use the Object Instancer Node to create a number of empty objects, fill a random list of the required source objects, copy the mesh data from the random object list to the empty objects, then position them as you want.


text:
Efficient way to programmatically copy shape key animation from one mesh to another
Is there more efficient way to copy keyframes programmatically from mesh A shape key to the similar shape key in the mesh B?
Here's the approach I'm using but it's kind of slow (for 160 shape keys it works at speed 3 keyframes per second) and creates lots of unnecessary keyframes.
for kf_i in range(scene.frame_start, scene.frame_end+1):
    print(f'Current keyframe - #{kf_i}')
    bpy.context.scene.frame_set(kf_i)
    for dest_sk_name in shape_keys_convertion:
        base_sk_name = shape_keys_convertion[dest_sk_name]
        base_sk = o.data.shape_keys.key_blocks[base_sk_name]
        dest_sk = d.data.shape_keys.key_blocks[dest_sk_name]
        dest_sk.value = base_sk.value
        dest_sk.keyframe_insert('value', frame=kf_i)

If you have one action on the base sk that you want to copy over to one new action on the dest sk, renaming keyblocks, there's a much faster way. Is that what you want?

@scurest kind of

Well, it kind of matters. keyframe_insert is for inserting into existing fcurves. If you're making a new fcurve it's much faster to use foreach_set. And it's even faster to just copy an action and rename the keyblocks its fcurves target.

Oh my god, I just spent so much time writing new version of my script that would create fcurves identical to the base action. I was not realizing that actions are not attached to the mesh and I could have just rename all shape keys and that would work. Thank you!
PS Never heard of foreach_set method before know, it might actually save some time in the future, thanks.

Actually there is no need for some special script to transfer shape key animation from one mesh to another. Because animation is attached to the action but actions are not attached to some mesh - meaning you can just run the same action on the other mesh. Possibly you will need to rename some of shape keys but it will work.

As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.


text:
How can I import a set of OBJ files that represent animation frames for a mesh?
We need to convert a 4D (multi frame volumetric data) medical scan to an animated 3D mesh, for use in realtime 3D rendering.
Some 3rd party medical software we use can extract polygonal meshes for each frame but it has no animation support - if the input file has 10 frames it will export 10 OBJ files describing the mesh in each frame.
It can guarantee the meshes are topologically identical i.e. it creates the mesh then deforms copies for each frame, so the 10 OBJ files are deformations of the same mesh, not 10 separate meshes which could be different structure.
This is really inefficient for our rendering purposes (WebGL) where we'd rather load a keyframe animation in format like FBX or glTF than have to load 10 meshes and toggle between them.
Is this something Blender can do? It's akin to creating a video from a bunch of image files representing each frame.

What format do you have the point clouds in?

It's DICOM data but I'm not sure why that's relevant. We've already chosen the tool used to deal with that side of things.


text:
How can I export STL->OBJ without the coordinate system getting messed up?
We use a 3rd-party tool which generates STL files with a specific medical coordinate system (either RAS/LPS for those interested).
Our software can only load the 3D meshes in OBJ format but whenever we load an STL into Blender and export as OBJ, it appears upside down and back to front.
Worse, our other software emits metadata for annotations in the same coordinate system (as JSON/XML), and these are now garbage as they're not in the same coordinate system as the resultant OBJ.
Given we have explicitly defined coordinate systems we need to use, how can we get Blender to play nice? I have done a little googling and it seems Blender enforces its own axes which cannot be reconfigured but why does this mean it changes our X->Y, or whatever is happening?
Perhaps we can find a standard transform to apply to every model to counteract this but we would want that baked into the vertex positions not stored as a transform in the OBJ file (if OBJ even supports that?)
Thanks for any help.

In the obj exporter in blender 2.76 I have axis settings like that:

If you want to export your object with an origin other than (0,0,0), you can move the object so that origin will in the desired location before exporting.
Here's how to do it:

Select the object you want to export in the 3D view.
In the 3D View header, select "Object" > "Set Origin" > "Geometry to Origin" from the menu.
This will move the object's origin to the center of its geometry. You can now move the object to the desired location by translating it in the 3D view using the move tool (shortcut G).
Once the object is in the desired location, go to File > Export > Wavefront (.obj) to export your object as an OBJ file.
In the export options, make sure the "Selection Only" box is checked so that only the selected object will be exported.
In the "Objects as OBJ Objects" section, make sure the "Objects Origin" option is selected.
Set the desired export location and filename for your OBJ file, and click "Export OBJ".

This should export your selected object as an OBJ file with its origin at the location you moved it to in step 3.


text:
My 3D View is not the same as my render result
I'm new with blender and I don't know what's happening with my 3d model.
This is what it looks like with 3D view

When I tried to render, this is the result that comes up with

I've google some keywords but I still can't really solve my problem. I don't know what's going on with my render, I've tried to close Blender, then restart my computer several times, and even shut it down for a couple of hours but it doesn't help.
I'm totally new with 3D and Blender so I just follow some tutorials I watched in Youtube.

Opposite version of dupe

@Sazerac  thanks for replying, sorry but what is that "Opposite version of dupe" you're talking about? i've tried to google it with "Opposite version of dupe in blender" but i don't get it. sorry i'm not a native english speaker

dupe is short for duplicate. In the linked duplicate, the asker has essentially the same problem, but the opposite way around (object not appearing rather than appearing). The solution is the same, make sure that the render visibility is set the way you want it on each object.

@Sazerac OMG. yes thank you so much. I put the round object beforehand to help me model the head and forgot to delete that sphere.
thank you for your time


text:
Migrating geometry shaders to Metal
I'm working on BlenderBIM (architecture addon for Blender) and we have a bunch of shaders to support plan annotations in viewports. Mainly it's simple shapes based of lines - lines, segment based circles, triangles etc. Our approach was to take the each edge verts to geometry shader and based on their position create neccessary shapes by adding geometry with EmitVertex and EndPrimitive.

Now we need to support Metal backend for Mac M1 (and supporting it's very important given the performance it has compared to other backend on Mac). What I've learned there is no geometry shaders on Metal but there are some Metal features that allow to manipulate geometry in vertex shader. So we do need to rework our shaders.
I've found that there are 3 options:

Write two glsl shaders for each type of annotation - one for Metal and one for non-Metal. Creates more complexity and it will be harder to maintain.

Write one more complex glsl shader for each type of annotation - it will do the work both for Metal and non-Metal from the vertex shader. It seems possible since on non-Metal we can emulate Metal feature that gets position of the neighbour verts by passing additional data to vertex shader. But it also will add more complexity to rather simple shaders. Not sure if there are other techical limitations we might meet.

Calculate all verts positions in python and just use builtin shader for lines. It's seems  the most simple and robust solution that will definitely work and (hopefully) won't break in the future. So basically we'll have 1 geometry function to generate geometry for each annotation type. It will be in python and it will be atleast as simple as geometry shaders we currently have or simpler.

    coords = [(1, 1, 1), (-2, 0, 0), (-2, -1, 3), (0, 1, 1)]
    shader = gpu.shader.from_builtin('3D_POLYLINE_UNIFORM_COLOR')
    batch = batch_for_shader(shader, 'LINES', {"pos": coords})
    shader.bind() # required to change uniforms of the shader
    shader.uniform_float("viewportSize", (bpy.context.area.width, bpy.context.area.height))
    shader.uniform_float("color", (1,0,0,1))
    shader.uniform_float("lineWidth", 5.0)
    gpu.state.blend_set("ALPHA")
    batch.draw(shader)

From my point of view solution #3 looks really good.
Since we're using just python to generate all coords it should be a bit slower than geometry shader and it also doesn't have those compiler optimizations. But we tested it and both pure python and custom geometry shader seems to get laggy with big amounts of edges anyway, so I'm not sure if performance of the geometry shaders is that advantageous.
Other thing we missing from custom shader is option to have custom frag shader - the only use for it currently is dashed lines but we can either avoid dashed lines or to create 1 custom shader to create dashed lines without other geometry manipulation.
Looking for some outside opinions on the best way to perform this transition to support Metal too.
Any other advantages of geometry shaders I might be missing?
Maybe there are some other catch for this transition?
PS Our shaders code can be found here.

I don't know if it's applicable in your case, but one pipeline almost everyone doesn't notice is to use Python + Geometry Nodes - perhaps because almost no one is proficient in both. Since Geometry Nodes are implemented in C, using Geometry Nodes from Python is similar to using numpy: you communicate through a limited interface, but gain the performance by escaping the Python interpreter. Actually numpy is a good way to send data to geometry nodes (set positions of vertices foreach_set) and read it back (evaluate the object, read positions foreach_get)


text:
Understanding the dynamics implementation (rigid, soft body and Force Fields)
i'm currenty studying the blender dynamics and physics implementation for research purpose, but i'm struggling to do so. I've already searched extensively in the documentation pages but still I haven't found a more in depth description on how the developers implemented those functionalities, neither I'm able to grasp a general understanding of the system.
The core components I'm researching are Rigid Body, Soft Body and Force Fields.
While i've got confirmation that Rigid Body is handled by the Bullet physics engine, looking at the source code i've realized that the Soft Body is internally developed, and still I cannot figure how those two systems interact with each other, with the Force Fields effecting also both of them.
What do you suggest I should look into, to grasp some more information about that?
If you happen to know any of this, how would you summarize the interaction between forces, rigid body, soft bodys and particles so I can go and look how each component is made?
I was also wondering if there's some documentation on the original papers by which those implementations were inspired, but the only piece of evidence i've found so far is some link to the "Fast Simulation of Mass-Spring Systems" paper, from which I guess the devs wrote the code for the deformable meshes

Rigid Bodies and Softbodies don't interact (sadly).

@Leander that's another piece of the puzzle, thanks :)


text:
Fluid not working, stuck at midair
I've set a simple scene, big box containing everything set as domain, container inside the domain set as obstacle, icosphere at the center as inflow (shell, like the obstacle). What i got is this behaviour, the liquid floats mid air like there's some box obstacle

I've noticed the center of the axis (sorry don't know the exact name) was not at the center of the object, also followed here and it worked


text:
Assigning textures to a certain area of the model?
How can I apply textures from the selected areas to the model ?

the simplest way would be to assign it a new material

Could you give me a step by step guide by sending me a reply?

what kind of texture are you talking about? are you using an image texture?

Yes, I want to apply an image texture to that certain area.

please read this and tell if it answers: https://blender.stackexchange.com/questions/516/add-different-materials-to-different-parts-of-a-mesh

Yes, that answers the question. Thanks.


text:
Rendered result is blank
So I animated this cube,changed the render settings a bit and put it for render. But the render is blank. How do I make everything visible in the render? Here is the file download link:
https://drive.google.com/file/d/1VHFGgjWzLmmsA2DxNGYQB2Ahhk1Kg8dt/view?usp=sharing

In the Viewport Shading panel, you need to reactivate Scene Lights and Scene World and you will see that for the moment you have no light and no world

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.


text:
Rig moving to another location in edit mode
I was rigging a character. After my rigging was finished I got out of edit mode and the rig moved away from the character. If I move the rig and align with the character in object or pose mode. The rig move in edit mode. Even if I reset the origin it does not work. My enter code here question might not be clear just open my file and answer my question.
Here is the link:
https://drive.google.com/file/d/1_WGivtF_Y7PThvR8xbzmY_8rPUjVRePH/view?usp=sharing

did you try to delete all keyframes? i didn't see a problem after that

You've moved your armature in Pose mode, so it is not aligned with the Rest pose anymore. The Rest pose will show the bones as they are in Edit mode. To reset the bones position, select them all in Pose mode and press AltG (reset location), AltR (reset rotation) and AltS (reset scale).

Thanks it worked. After reseting things in the rig another problem came up. I was not able to select any object. Then I restarted blender and everything was fine.