text:
Why is my model all triangulated and messed up on export to .FBX and .OBJ?
So I faced this problem when exporting a simple chair model that I modelled in Blender, to FBX and OBJ (Haven't tried other formats yet), here it is in Blender preview.

The Base is quite low poly and the cushion is high poly as it is a cloth modified and subdivided mesh.
As you can see here, nothing seems wrong whatsoever but when I export it and open in a 3D viewing software :

It appears the edges have formed tris in a very weird way, I tried Merge by Distance but it didn't help. I tried opening the file in other software as well, no luck. What is this and how can I fix it?

Hi, what format are you exporting to? Please [edit] your question and add more information.

Are you using any modifiers on the object?

Looks like the ngons in back of chair are causing grief. Try fixing the back to match the legs (all quads).

@susu I used Mirror Modifier on the chair base, but they all have been applied before export.

@Timaroberts FBX and OBJ

@batFINGER Ok, I will try that, thank you

@batFINGER thanks, it worked! I converted the n gons to tris, and then to quads. The topology now is quite bad but atleast it worked!

please consider posting an answer.

So I found out the problem, I had a lot of N Gons (Faces made out of more than 4 vertices). These N Gons were specifically in the back of the chair, hence the results on export. To fix this, go into edit mode, deselect any of your mesh, F3 and search for Select Faces by side and click on that function, then in the bottom left menu set the Method to 'Greater Than' and the number to 4. This will show you the faces that have more than 4 vertices. Then with those faces selected by the above function, search 'Triangulate faces'. This will divide all the faces to triangles. Now search and click.

Follow up to the last answer, now search and click to quads. This will promptly convert all the triangles to quadrilaterals. Now recheck if there are any n gons in the scene by redoing the steps mentioned above. This solved the problem upon export, hope it solves your one too.


text:
How to add face/ fill edges to inner geometry in geometry nodes?
I have generated a randomized floor effect in geometry nodes, but some values give an empty face in the middle. To fix it, I thought of converting it to a curve and using a "fill curve" node before converting it back to a mesh, but it does not work, and it gives weird triangles on the edges. I want to get rid of the empty spaces in the middle, since it won't make sense for the floor plans I want to create.

Please do not take photos of your monitor, make proper screenshots.

About Gordon comment: use the main menu entry Window>Save Screenshot (Editor). (see https://docs.blender.org/manual/en/latest/interface/window_system/topbar.html#window-menu)

Spawn another grid aligned with what you currently have and delete edges based on proximity to edges on your grid.

Sorry @Gordon Brinkmann, I did not know. StefLAncien, thank you for the tip, I did not know there was this feature in blender. Markus von Broady, that solution might work if I was working with one static mesh, but since the mesh changes with every randomized seed, it won't work when the seed is changed.

Ok.... so, what is the final purpose of this? If you fill the gaps, won't it be just a normal grid?

I misunderstood earlier screenshots (photos), I thought you actually want to keep some holes. The solution is to not immediately delete faces, instead mark for deletion, select non-deleted, separate, extrude boundary edges, than use that for raycasting to detect which faces marked for deletion are inside the boundary (and therefore shouldn't be deleted).

@Daniel Moller, I only want to delete the faces around the grid not inside. If I were to make a house with this, there would be a random hole that most modern houses (if any, except a courtyard, which I do not want) do not have. It won't be a grid, because the faces surrounding the edges would still be deleted.

@Markus von Broady I am not completely sure on how that process would go (like which node to use, and which ones it connects to). Which node to use to mark for deletion, selecting non deleted, and extruding the boundry edges? I am guessing for seperation, I would need, "separate geometry" right?

So, what about deleting only "border" faces? This sounds like an answer unless you explain your goal better:

Delete faces with a random probability, provided that their neighbor count is less than 4 (which means they're not in the middle of the grid)
Delete spurious faces that may be left at the corners without any neighbor

This answer is exactly what I was looking for. I did the node group of deleting faces with random probability twice (I duplicated it), instead of once with a lower probability the second time, before deleting spurious faces without any neighbors (I had to change it to less than or equal to 1 instead of equal to 0, after repeating the 1st step twice). Now it looks really similar to how a base floor plan would look like. Thank you for the help!

@JessieFerret, cool. You could try to use the "equal 0" twice. The difference is having the probability of creating L shaped sections, while when you do "less or equal 1" you remove the Ls

Using the less or equal 1 does give less Ls and less random faces that stick out. The reason I did so though was when I put the probability to less than 0.4, some seeds randomly give faces that float alone with no connected faces. So either I put them both as equal to 0 and put the probability over 0.5 or put one as equal to zero and the other equal to 1 while bringing the probability lower than 0.4.

source: Stack Exchange

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

sort: votes


text:
Pinching problem with Sub surface modifier
I tried to make the compensator for an AK-74, but I encountered the following problem. I don't know how to solve it, bevel doesn't work as it's supposed to because after using bevel some verticals always go up and I get this problem. How to solve this problem?
The problem:

Grid without bevel:

Grid with bevel:

Blend file:

i can't reproduce the problem. the file you shared doesn't have any bevel modifier to it so i tried adding one myself but it seems fine result so I can't reproduce your problem. please attach a file with the problem in it.

@HarryMcKenzie Sorry maybe I didn't fully explain the problem. The problem is that when I manually add a bevel to the necessary edges in order for the modifier (Subdivision surface) to work normally, then after adding the subdivision surface itself, clips appear there that make the compensator cylinder a little crooked. Link to the Blend with "Subdivision surface" modifier https://blend-exchange.com/b/mjZV0Wnl

the problem with your mesh is that it has this curving non-planar n-gon face which causes the shading problem. you have to add more geometry to it. non-planar faces are a no go especially if they are not quad faces unless it is all flat. i recommend trying to make the faces all quad

@HarryMcKenzie Thank you very much, you have almost solved my problem, I just watched the video how to solve this problem, and did everything as in the video, just for my shape, unfortunately it seems that this problem cannot be completely solved because when using a bevel, some vertices are raised, which causes the clips to reappear, but this the problem was very much minimized, now it is visible, but we need to look closely. Thank you so much, now I have learned a little more and I will better understand how to solve such problems

Related https://blender.stackexchange.com/questions/40788/how-to-avoid-subsurf-distortions-on-cylindrical-objects  https://blender.stackexchange.com/questions/218507/how-to-cut-or-extrude-a-cube-rectangle-from-a-cylinder-curved-surface https://blender.stackexchange.com/questions/296646/pinching-problem-with-sub-surface-modifier

You can use this topology................

can you please send me blend file?

I realise that there is still a bit of pinching with a 16 vertex cylinder so you probably need to switch to a hight resolution, like 24 or 32

By the way, I noticed that when I increase the number of edges in the cylinder, there are almost no clips left, I'm just used to working with 16 edges, since for me this is the optimal amount when Shade smooth works well. So I'll have to change the number of edges. Thank you

authors: Сергей Ленов

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


text:
Drivers to connect locked track object constraint to camera?
I'm trying to do something pretty specific with the hair in my character rig; it's highly stylized, attempting to mimic a 2D look. What I want to do is this:

Have each chunk of the hair mesh set so it always faces the camera on the x axis (done with the locked track object constraint)

When the camera rotates to the other side of the character, have the locked track constraint's influence drop to zero, while a second constraint's influence goes up to 1 as soon as the camera is facing the exact front of the character, so that the hair flips and is now facing the opposite direction, but still locked to the camera.

If my wording is a bit unclear I apologize. I'm familiar with very basic shape key drivers, but I don't know how to do much with drivers in general without following step by step tutorials, and I can't seem to find any for what I want to do. If anyone could help me out I'd really appreciate it, thanks!
Edit 2: added some more detailed images
The right view is the camera view, left view is to see how the hair rotates to face the camera.
1 - Camera is on the character's left, hair object is locked to face it, as can be seen in the object constraints tab.

2 - The hair stays locked on the camera until it faces the front

3 - Here is where I want it to switch, when the camera starts to move to the right of the character. Now I want the first constraint to stop having any influence, and the second one to start, so that the hair flips.

4 - And now the hair, flipped, stays locked onto the camera again, so that it looks flat.

Hopefully this clarifies? There's no animation in the file, so I don't think adding the blend file itself would be very helpful.

i would recommend adding a sketch or image if you think your wording is unclear and i think it would help too. ...and...what did you try? where are you stuck at? do you know drivers at all or do you have problems in this specific case? maybe a small example blend file with the animation would too.

Added some images to clarify! I don't know much about drivers other than how to add the most basic of shape keys unfortunately.

i still have no idea how the hair should look like and where the camera is. The hair looks for me always the same on your pictures.

Added some new images and descriptions to hopefully help clarify?

here is one driver (you have to do the same thing for the other side)

so in my example there are the camera and and empty object.
I have two input parameter (xCam and xObj) which both have the world x coordinate of each object. i can get values from 0 to 1 if the camera is on the left side. And since there is no negative influence possible, i get 0 as result, if the camera is on the right side.
Here you can see it working:

of course (!) you have to adapt this to your special case. So you have to adapt the "/10" to your settings and since you didn't provide a blend file, i cannot know what coordinates your objects are sitting on.
I just tried to explain how the principle works. Hope that helps.

To restate the problem, you want an object to rotate about its Z axis to face the camera, unless that would involve a rotation of greater than 90 degrees, in which case, you want the object to face away from the camera.
We have two different locked track constraints.  One is set to face the camera.  One is set to face away from the camera:

The trick here is, how to tell Blender which one to use at any given moment?  We could use scripting, but I'll instead create another object which will be able to tell us which side of the object the camera is on; then, we can create a driver referencing that object to control the influence of our second constraint.
First, we'll create an empty at the location of the head's midline, and parent it to the head.  Then, we'll give that empty a floor constraint targeting the camera, with "use rotation" enabled, flooring to the camera's Z plane:

When the camera is pointing at the head, the empty will move to the camera's plane.  It will move in its +Y axis if the camera is pointing at the front of the head (as delineated by the "rest" position of the empty) and in its -Y axis if the camera is pointing at the back of the head.  So we can use value of this empty's local Y transform to drive the influence of one of our constraints:

When the camera rotates past the Y plane of the resting empty, it switches the second constraint on or off.

Had to use the x axis rather than the z one for some reason, but this works PERFECTLY!! Thank you so much, this is going to make a HUGE difference in the style I'm developing for a project. Very easy to follow your directions too, thank you!


text:
Get driver variable value via python
Since it can't access the driver variable value (or I'm missing from the api), I am doing a function to get that value. Is there a better way to get them? I need some help in line 14, line 16 is also wrong

import bpy

def get_variable_value(var):
    try:
        if var.type == 'TRANSFORMS':
            tar0 = var.targets[0]
            obj0 = tar0.id
            tar0_type = tar0.transform_type
            tar0_space = tar0.transform_space
            ch = tar0_type[0]
            if ch == 'L': # location
                loc = obj0.location
                if tar0_space == 'WORLD_SPACE':
                    loc = ???
                elif tar0_space == 'LOCAL_SPACE':
                    loc = (obj0.matrix_local @ obj0.matrix_parent_inverse.inverted()).decompose()[0]
                else: # TRANSFORM_SPACE
                    loc = obj0.matrix_basis.decompose()[0]

                if tar0_type == 'LOC_X': return loc.x
                elif tar0_type == 'LOC_Y': return loc.y
                else: return loc.z
            else:
                print("other case, no discussion this time")
        else:
            print("other case, no discussion this time")
    except:
        return None

def scene_setup():
    import bpy

    objs = bpy.data.objects
    for obj in objs: objs.remove(obj)

    bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))
    cube = bpy.context.object
    bpy.ops.object.empty_add(type='PLAIN_AXES', align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))
    empty = bpy.context.object
    cube.select_set(True)
    bpy.ops.object.parent_set(type='OBJECT')
    empty.location.x += 1.1

    bpy.ops.curve.primitive_bezier_curve_add(radius=1, enter_editmode=False, align='WORLD', location=(2, 2, 2), scale=(1, 1, 1))
    bezier = bpy.context.object

    bpy.context.view_layer.objects.active = cube
    bpy.ops.object.constraint_add(type='FOLLOW_PATH')
    cube.constraints[0].target = bezier
    md = cube.modifiers.new("Bevel", "BEVEL")
    fc = md.driver_add("angle_limit")
    dr = fc.driver
    vs = dr.variables
    v = vs.new()
    v.type = 'TRANSFORMS'
    v.targets[0].id = cube
    return v

# Set up the scene for testing, first delete all objects, and finally return a driver variable.
var = scene_setup()

print(get_variable_value(var))

I made some research and found this answer

The problem is blender is not recalculating the matrix
immediately after modifying the transformation.

You are missing an update bpy.context.view_layer.update() which you should call before get_variable_value(var)
var = scene_setup()
bpy.context.view_layer.update() # we need this update
print(get_variable_value(var))

Then you can get the cube's world space coordinates with:
loc = obj0.matrix_world.translation

Thank you, that's great

you're welcome! :)


text:
draw_callback_px in specified area
Using the Python code below which draws the text and shape shown in these screenshots, I want to clip the graphics outside the red box shown in my second image so it is not drawn.

Goal:

import bpy, blf, bgl, gpu
from gpu_extras.batch import batch_for_shader

class Test_operator(bpy.types.Operator):
    bl_idname = "object.test_operator"
    bl_label = "test"

    def draw_callback_px(self, op, context):
        self.draw_rec(500, 800, 200, 400, (0.2,0.2,0.2,1.0)) # Window A
        self.draw_rec(500, 800, 400, 428, (0.1,0.1,0.1,1.0)) # Title bar B
        font_id = 1
        blf.size(font_id, 53, 72)
        blf.position(font_id, 500, 300, 0)
        blf.draw(font_id, self.text)

    def draw_rec(self, left, right, bottom, top, color):
        self.shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
        self.shader.bind()
        self.shader.uniform_float("color", color)

        vert = ((left, bottom), (left, top), (right, top), (right, bottom))

        bgl.glEnable(bgl.GL_BLEND)
        self.batch_panel = batch_for_shader(
            self.shader, 'TRIS', {"pos" : vert},
            indices=((0, 1, 2), (0, 2, 3)))
        self.batch_panel.draw(self.shader)
        bgl.glDisable(bgl.GL_BLEND)

    def modal(self, context, event):
        context.area.tag_redraw()
        if event.type in {"ESC"}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}
        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.text = "Hello World"

        args = (self, context)
        self._handle = bpy.types.SpaceView3D.draw_handler_add(
            self.draw_callback_px, args, 'WINDOW', 'POST_PIXEL'
        )
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

def register():
    bpy.utils.register_class(Test_operator)
def unregister():
    bpy.utils.unregister_class(Test_operator)
if __name__ == "__main__":
    register()

Is your goal to clip everything outside the precise red box you included in your second screenshot (which would cause the left vertical line of the "H" to disappear, as well as the right half of the "r", and the entire top darker part of the background rectangle)? Or is your red rectangle imprecise and your intention is to actually just clip text so it doesn't draw past the background rectangle?

You can use the scissor test.
        bgl.glEnable(bgl.GL_SCISSOR_TEST)
        bgl.glScissor(500, 200, 300, 200)  # adjust to match your red box
        blf.draw(font_id, self.text)
        bgl.glDisable(bgl.GL_SCISSOR_TEST)

This work! thank you very much.

blf.enable(font_id, blf.CLIPPING)
blf.enable(font_id, blf.WORD_WRAP)
blf.clipping(font_id, 200, 200, 800, 800)
blf.word_wrap(font_id, 800)
import bpy, blf, bgl, gpu
from gpu_extras.batch import batch_for_shader

class Test_operator(bpy.types.Operator):
    bl_idname = "object.test_operator"
    bl_label = "test"

    def draw_callback_px(self, op, context):
        self.draw_rec(400, 800, 200, 400, (0.2,0.2,0.2,1.0)) # Window A
        self.draw_rec(400, 800, 400, 428, (0.1,0.1,0.1,1.0)) # Title bar B
        font_id = 0
        blf.enable(font_id, blf.CLIPPING)
        blf.enable(font_id, blf.WORD_WRAP)
        blf.size(font_id, 53, 72)
        blf.color(font_id, 1, 1, 1, 1)
        blf.position(font_id, 400, 300, 0)
        blf.clipping(font_id, 200, 200, 800, 800)
        blf.word_wrap(font_id, 800)
        blf.draw(font_id, self.text)

    def draw_rec(self, left, right, bottom, top, color):
        self.shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
        self.shader.bind()
        self.shader.uniform_float("color", color)

        vert = ((left, bottom), (left, top), (right, top), (right, bottom))

        bgl.glEnable(bgl.GL_BLEND)
        self.batch_panel = batch_for_shader(
            self.shader, 'TRIS', {"pos" : vert},
            indices=((0, 1, 2), (0, 2, 3)))
        self.batch_panel.draw(self.shader)
        bgl.glDisable(bgl.GL_BLEND)

    def modal(self, context, event):
        context.area.tag_redraw()
        if event.type in {"ESC", "RIGHTMOUSE"}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}
        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.text = "Hello World"

        args = (self, context)
        self._handle = bpy.types.SpaceView3D.draw_handler_add(
            self.draw_callback_px, args, 'WINDOW', 'POST_PIXEL'
        )
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

def register():
    bpy.utils.register_class(Test_operator)
def unregister():
    bpy.utils.unregister_class(Test_operator)
if __name__ == "__main__":
    register()


text:
how to glow light area like emission shader
Light Area has some advantages over Emission shader. For example, the Spread parameter and few other convenient settings. An obvious advantages, isn't it ? And other advantages are described here : Area Light vs. Emissive Polygon.
Question
How to make the Light Area :

Glow itself like Emission shader
Light direct in one side like in https://www.youtube.com/watch?v=5Oij5Oo-B74

If by glow itself you mean make it visible, create a plane with emission that you parent to the area? As for light in one side, is it not already the case with area?

a plane with emission -----------------------------------
So I will get two light sources and I need to adjust both of them?

The right way:
Select the light object:
Properties > Object > Ray Visibility > Camera checkbox
Thanks to Google https://devtalk.blender.org/t/area-lights-still-not-visible-in-cycles/9430

Many thanks to the development team and community for implementing this feature!!! ❤❤❤
Before it was like this:
Poor and outdated way:
How to make lamp visible to camera in cycles?
https://www.reddit.com/r/blenderhelp/comments/pcalin/simple_solution_to_make_light_sources_visible/
More fine and realistic adjustments by passing light through various combinations of materials - this is the way of professionals, experts.
In this topic I considered replacing the trivial glow from the outdated approach through the emission shader. This approach has its limitations and disadvantages, which were later eliminated and implemented in light objects.


text:
I want to realize a bridge zigzag rope with geometry nodes
Suppose I have two upper and lower curved ropes in a geometry node,
I would like to achieve a zigzag rope in that section.
Ideally, I would like to learn the points of the upper curve and the points of the lower curve, I would like to create a curve that alternates back and forth, but it won't work.

Supplementation.
I have added the information in an addendum. The curves used are pre-created at the node.

Solution 1 (ALEX)
https://blender.stackexchange.com/a/314898/89484
ALEX's excellent answer gave me the answer. I will share the blender file with you.

Solution 2 (StefLAncien)
StefLAncien provided a great geomery node that also takes UV textures into account.
I want to realize a bridge zigzag rope with geometry nodes
There are several answers to the question of UV texture development for curves, but this one is clear and straightforward.
My goal is to output it in FBX in the end, though,
By changing the setting here from Vector to 2D Vector, the UVs are expanded and output in FBX without any problem.

You could actually do this with a single curve

Basically, you'd need to offset every two points of the curve. You can do that by using the index node in a math modulo node value of two.
You can then offset a duplicate of the original curve by the same amount to make the top curve.
For the points at intersections, simply use instance on points on the zigzag curve
You can see I also made it so the curves react to radius and twist in edit mode for more control (the cross product of the curve tangent and normal will offset the curve based on the tilt and direction)

You can also use two separated curves if needed with a different method

Here, you can sample the points position of the first curve, and transfer this position to the second curve. Like the first method, use the index node a math modulo node with a value of two so you only move one out of two points of the curve
This method only works if the two curves go in the same direction as it samples the points position based on the curve's factor

Thanks! I don't understand the logic, but it seems to work. I will try to implement it as soon as I get home.

Dear. I have a follow-up question on this script. If you don't mind. Is it possible to control the upper and lower curves separately? This node seems to be based on a single curve.

I have added additional information to the question.

@mml Hey, I just posted a second method with two curves input. Hope that helps

Thank you! Works really great no problems!
I will share the blender file later for community contribution (^o^)

(Using Blender 3.6.8)
(NB: documentation to be continued...)
Objective
To connect two independent curves, roughly parallel and in the same direction, with a third one in a zigzag pattern, keeping the ability to edit original curves while adding some thickness and texture to all three.

Approach
The upper and lower curves are kept without Geometry, nor Bevel, nor Modifier to not prematurely convert these into meshes. To make meshes from these, a dedicated GeometryNodes Modifier is added to Single Vertex meshes, to thicken and to define UV Map for shading.
To make the connecting zigzag mesh, cylinders are instanced because it could be tricky for a curve with sharp bends to adjust normals, these controlling achieved thickness.
GeometryNodes modifiers
Zigzag rope

1. User defined input parameters are:
1.1. Lower rope: target curve with the prescribed number of knots.
1.2. Upper rope: target curve with the prescribed number of knots plus one.
1.3. Knots: number of knots.
1.4. Radius: radius of the bars connecting curves.
2. The _Zigzag_curve node group is building the curve connecting upper and lower knots.
3. The _Zigzag_bars node group is creating the bars.
4. The material Rope Bump is defined in the Shading Editor.

1. Let $N \ge 2$ be the number of knots on the lower rope. A Bezier Segment of $2N+1$ control points is initialized. The index $n$ of those control points is varying between 0 and $2N$.
2. Control points with odd indexes are put on the lower rope; those with even indexes are put on the upper rope. Index parity is computed by a Modulo 2 Math node.
3. Knots are evenly spaced along ropes using the Factor parameter varying between 0 and 1. So the factor increment between two adjacent knots is $\Delta f = \frac{1}{N-1}$.
4. Let $n=2i+1$ be the index of an odd control point. The value of $i$ is recovered as the integer part of $\frac{n}{2}$. $i$ varies between 0 (for $n=1$) to $N-1$ (for $n=2N-1$). So the factor value $f = i \Delta f$ varies between 0 and 1. $f$ is input in a Sample Curve node to recover the associated position along the lower curve. This vector is transferred to the zigzag curve node of index $n$ using a Set Position node. NB1: Using a Float Curve node, the value of $i \Delta f$ can be adjusted before the Sample Curve node to make uneven the knots distribution. NB2: Instead of sampling by factor, the control points position can be directly transferred if the lower curve has exactly $N$ control points, by replacing the Sample Curve node with a Sample Index node.
5. Let $n=2i$ be the index of an even control point. The value of $i$ is recovered as $\frac{n}{2}$. $i$ varies between 0 (for $n=0$) to $N$ (for $n=2N$). Knots along the upper curve are shifted by half $\Delta f$. So the factor of these is computed as $f = (i-\frac{1}{2}) \Delta f$, varying between $-\frac{1}{2} \Delta f$ (for $i=0$) to $1 + \frac{1}{2} \Delta f$ (for $i=N$). $f$ is limited to the range 0 to 1 by activating the Clamp property of the Multiply Math node. Thus for $n=0$, $f=0$ while for $n=2N$, $f=1$. As a consequence, the end points of the zigzag curve and of the upper curve are at the same positions. The position vector is transferred from the upper curve to the zigzag curve as at step 4.

1. Bars are created as instances of a Cylinder:
1.1. By default, it is aligned with Z axis, and its origin is at mid-length.
1.2. Its Radius is controlled to the user defined value. Its Depth (i.e. length) is set to 1, so it can be easily scaled along its axis.
1.3. The visual quality of the rope procedural texture is a function of the mesh resolution. Here, 65 vertices are distributed in the axial direction, i.e. 64 Side Segments. 36 Vertices are distributed in the tangential direction, i.e. 12 per strand for a three strands rope.
1.4. By default, its UV Map is such that $U$ is in the tangential direction while $V$ is in the axial direction. Because the reverse convention is used for ropes, a Separate XYZ node followed by a Combine XYZ node are used to swap $U$ (i.e $X$) and $V$ (i.e. $Y$).
1.5. The thread pitch is controlled by scaling $U$, $V$ varying between 0 and 1 for one turn around the cylinder. By trial and error, a scaling factor of 16 was adjusted for the present demonstration. NB: This factor could be added to the user defined input parameters.
1.6. The modified UV Map is stored as a named attribute with type set to 2D Vector and domain set to Face Corner.
2. The curve output by the _Zigzag_curve node group is converted to a mesh made of $2N$ edges by a Curve to Mesh node. Then points are put at the middle of these edges using a Mesh to Points node set in Edges domain. Finally, a cylinder with origin at mid-length is instanced on these points with custom rotation and scaling.
3. An instance scaling factor is the length of the segment connecting two adjacent curve points. This value is computed from the vector between end points of the associated edge, which position is recovered through an Edge Vertices node. So the scaling factor is captured as an attribute in the Edge domain. It is combined with ones on X and Y directions to scale the cylinder only in Z direction.
4. An instance rotation vector is such that the cylinder Z axis is aligned with the vector between end points of an edge. As at step 3, this value computed by an Align Euler to Vector node is captured in the Edge domain.
Upper and lower ropes

1. .
2. .
3. .
4. .
5. .
6. .
7. .
8. .
9. .
Shading

1. .
2. .
3. .
4. .
5. .
6. .
7. .
8. .
9. .
Resources

Blender file:

UV Maps: see Curve to Mesh with UVs in Blender 3.x?

Rope texture: see Blender - steel rope with a procedural texture

Thanks! I was able to check it out! Great UV node! This makes it more perfect! (^o^)


text:
Blender port from SFM eyelashes
i am porting SFM models into blender, on this model i have a problem with the eyelashes. can someone help me fix this? it shows up like this on rendering also.
I have already tried applying particle and changing the emitter to hair but nothing happens or lines sprout from every part of the body
thank you in advance. below pictures apply. I feel like this is advanced but i would like to learn!


text:
eye texture issue
i'm not sure why the eye texture is appearing this way. I've already tried recaculating normals / flipping them for the eye but this has not worked. any suggestions?

That last image shows your up is not aligned to make use of the image detail, did you unwrap it again after already having it work?


text:
cycles render not showing changes in render viewport, only materials viewport
hello i'm working in cycles blender and the changes i made to my eyebrows in node show in the material viewport but not the render viewport, screens below. any suggestions? i don't think i unwrapped anything, is this causing the issue? i'm new to cycles, thank you in advance.

EDIT:::
i fixed it somewhat, but do you notice the lightening of the skin color around the eyebrow? anyone know how to fix this part?

about the eyebrow, I'm not sure about your node organization, maybe plug the Image Texture and the Transparent shader into a Mix shader, and use the alpha of the Image Texture as the factor of the shader?

thanks moonboots this worked. tell me how i can upvote you and i shall!

Plug the Image Texture and the Transparent shader into a Mix shader, and use the alpha of the Image Texture as the factor of the Mix shader.

solved, had to add in the mix shader like moonboots said


text:
Modelling this triangular prism pointy shape with good topology
To learn and practice blender I try to model food. My current model has a triangular prism base shape with pointy ends on it.
Please show me another way of modelling this shape with those pointy ends, but with good topology (no tris on the surface).

this is what recently i came up with. and quite satisfied for now.

That topology should be fine, could you expand more on what your trying to do?

@FrosticWolf i thought that way too. but, if we check near those three conic points, they don't really look like conical much. pardon my english.
those ends have kind of obvious steps on them. unlike smooth cones.

I am sorry but I cannot spot any triangle faces. The topology looks fine.

The topology looks great .. maybe 1 more edge loop around the perimeter for flexibility at the corners? Or if you're feeling extravagant , 1 level of subdiv applied, and continue modeling the irregularities?

i've came up with different way of modelling the shape. going to edit the post to show you.


text:
Making Rounded Tile Corner From Procedural Brick Texture
i've found an old video tutorial on youtube about creating Procedural Tile Material and been able to followed it.
not satisfied with the node setup without the Principled BSDF shader, i've tried to make another nodes setup. although it still bothers me on the comparison of results, with the glossy shader and roughness node in the Principled BSDF, i like the solid colours randomness in the material.

after that i went towards searching about making rounded corner tiles, procedurally.
and the only one i've found as a really good one was this of cgslav and Rich Sedman: Procedural square shape in Cycles (with similar effect to Gaussian blur)
problems for me, are;
the discussion isn't started with procedural brick texture.
i am not really that good to understand complex maths nodes setup yet.
the setup in the discussion doesn't seem to show how to generate random tones/colours.
thus, i'd like to ask if there's anyway to adapt that method into this node setup with default procedural brick texture and principled bsdf. or, any other way as long as it could:

generate random colours/tones and rounded corner also.
have that nice gradient for bump/displacement as shown in Rich Sedman and cgslav result.
have possibility to have displacement node without inflating the object's mesh.

this is the blend file i've got so far;

This might help...

@RickRiggs, actually i wasn't looking for iridescence material. thanks to let me know about that kind of material in blender.

Clarification - That was more for the random color part of your question

Nice advertisement

@Dr Blender, what advertisement?


text:
Local axis issues after separating mirrored objects
I'm currently working on a small robot model in Blender, which I built in multiple parts and mirrored using the "Mirror" modifier to ensure symmetry between the left and right wings (see the first image). Once I was happy with the model, I applied the modifiers and separated each wing so they would be individual objects (Ctrl + P > Selection).
Problem :
After separating the objects, I noticed that the geometry center for the left wing is still linked to the original wing (the right wing, as shown in the first image). I adjusted the geometry center for each wing to position it where I wanted (see the second image).
However, in doing this, the left wing has also inherited the axial (local or normal) properties of the right wing. This means the local axes of the left wing do not align correctly with its geometry, preventing me from performing independent rotations as desired (see the third image).
Questions :
Is there a way to recalculate or reset the local axes so that they align correctly with each wing individually, without inheriting the original wing's axes?
Did I miss a step when separating the objects or applying the modifier?
Thanks in advance for any help or suggestions ! On the left is what i have and on the right is what i want

Please add your images directly into your question rather than just providing links to them. You're more likely to get a reply if folks can see what you're talking about. How to upload an image to a post.

It would also help if you shared your Blend file.  You can share it via https://blend-exchange.com/ following the instructions there to copy the full link on that page. Then edit your question here and paste the link into it.

@JohnEason I don’t think sharing the blend file is necessary. It’s pretty clear what happened. The original part(s) had some location and rotation transforms, and applying the mirror modifier(s) and separating the objects just left the new one(s) with the same transforms, unmirrored. Changing the location transforms via setting a new origin(s) did not affect the rotation transforms, and so here we have the issue.

@TheLabCat Fair enough. I agree that an armature wold certainly be the way to go.

Because character animation is usually done with an armature (in which the needed local axes are defined by the bones’ orientation), I recommend you just apply rotation for the objects (giving them all globally aligned axes), then set up an armature and skin the robot to it.


text:
How to rotate and set origin by using command line
I tried to perform a batch operation by using blender CLI.
I want to rotate a mesh by X axis with -90d, and then place the mesh to world origin,
the operation I performed in the GUI is:

press keys: R, X, -90
switch to 'Edit Mode' from object mode
select all the mesh by press A
Shift+S > cursor to world origin
Shift+S > Selection to curson (keep offset)
I tried to convert the GUI opreation to python command, like follow:

import bpy

import math

obj = bpy.data.objects.get("halfface")

obj.rotation_euler[0] += math.radians(-90)

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

obj.select_set(True)

bpy.context.view_layer.objects.active = obj

bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='BOUNDS')

obj.location = (0, 0, 0)

bpy.ops.object.mode_set(mode='EDIT')

bpy.ops.mesh.select_all(action='SELECT')

bpy.ops.view3d.snap_selected_to_cursor(use_offset=True)

bpy.ops.object.mode_set(mode='OBJECT')

But it gave me an error like this
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "D:\SomeData\testdata\skullblend\skull.py", line 36, in <module>
    bpy.ops.view3d.snap_selected_to_cursor(use_offset=True)
  File "D:\OtherSoftware\blender\4.0\scripts\modules\bpy\ops.py", line 109, in __call__
    ret = _op_call(self.idname_py(), kw)
RuntimeError: Operator bpy.ops.view3d.snap_selected_to_cursor.poll() failed, context is incorrect`

And the last step "selection to cursor (keep offset)" not work.
Can anyone gave me some advice ? I really confused about the context
Really appreciate for any help !

The operator needs a View 3D context.
import bpy

import math

import typing

def call_with_override(override: typing.Dict[str, typing.Any], func: typing.Callable, *args, **kwargs):

    if bpy.app.version > (3, 2, 0):
        with bpy.context.temp_override(**override):
            result = func(*args, **kwargs)
    else:
        result = func(override, *args, **kwargs)

    if 'CANCELLED' in result:
        raise Exception(f"The operator has been cancelled: {repr(func)}")

    return result

def get_view3d():
    for window_manager in bpy.data.window_managers:
        for window in window_manager.windows:
            for area in window.screen.areas:
                if area.type == 'VIEW_3D':
                    for region in area.regions:
                        if region.type == 'WINDOW':
                            return dict(window=window, workspace=window.workspace, screen=window.screen, area=area, region=region)

    raise Exception('View3D context not found.')

def call_in_view3d(func: typing.Callable, *args, **kwargs):
    return call_with_override(get_view3d(), func, *args, **kwargs)

obj = bpy.data.objects[0]

obj.rotation_euler[0] += math.radians(-90)

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

obj.select_set(True)

bpy.context.view_layer.objects.active = obj

bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

bpy.ops.object.origin_set(type='ORIGIN_CURSOR', center='BOUNDS')

obj.location = (0, 0, 0)

bpy.ops.object.mode_set(mode='EDIT')

bpy.ops.mesh.select_all(action='SELECT')

call_in_view3d(bpy.ops.view3d.snap_selected_to_cursor, use_offset=True)

bpy.ops.object.mode_set(mode='OBJECT')

Although in this case you should consider a lower level API approach by moving the vertices themselves, some bpy.ops operators are much easier to utilize or have no alternatives.


text:
Rokoko retarget messing up Rigify face MCH bones
I have a basic human model (left) which I'm trying to retarget to mixamo animation.

I matched all the bones and aligned the poses

I retarget the animation (I disable Auto Scale and choose Use Pose: Current) and everything works except... the face bones are all over the place

All the other bones follow mixamo rig perfectly fine. Only the MCH-lid_handle, MCH-lid_end_handle, MCH-nose_endreparent, MCH-nose_offset and so on are completely messed up.
Interstingly the MCH-forearm and other libs are stuck in place but they don't seem to have any effects on DEF bones.

The face MCH bones also don't actually deform anything but the nose.L, nose.R, lip.B.L, lip.T.R, etc... do

And they are parented to MCH bones

I tried deleting face bone channels from the animation but the makes 0 difference

Also no difference if I try deleting channels of MCH bones.


text:
HDRI background image won't show behind glass and artificial area light
i have an interior scene replicated from photo reference as a way to practise blender.
this scene has sun, artificial area lights to help lighting the interior. and a HDR image to get something as a background and not to light the scene.
i don't know how these work up in Blender and Cycles.
as in SketchUp with other render engines, the background would still show up and visible to the camera. even with rectangular lights added behind the window's glasses to help the interior lighting from the exterior.

Edit:
for now i've come to conclusion that the problem is the glass shader i used. adopted from blenderguru tutorial on kitchen modelling. checked out the Material-Preview and got almost diffused shader. then, i look for different approach for the glass.
i've come to these pages/queries;
How to illuminate the darkness inside glass objects in Cycles?
Which glass shader is physically correct?
How can I make a more realistic glass shader?
which suggested "tricky glass" nodes setup material and got strange look at the window in the corner.

it seems to work, are you sure your windows are transparent?

@moonboots, really? from the scene? have you tried to see and render the scene from the fspy's camera? i don't see anything beyond the glasses of the window. but that glowing light on the windows.
i've tried to use the glass material from chocofur and this one with the architectural glass hack material from Andrew Price.
did you see that there are "area lights" in front of those glasses outside?

have you tried to remove the windows to see if it could come from that?

also, the World's Background Strength is very high (15), maybe decrease it at 1?

i've already tried with strength at 1. it was started at that value by default, right?
haven't tried to remove the windows -or, is it the glasses?- i'll check that then.


text:
Scale an area lamp that seems to be locked
the area lamp seems to be locked and cannot be scaled.
how to unlock it to be able to scale it?
edit:
it seems my camera's limit (focus) also locked. the distance cannot be adjusted.

You could check if the Scale properties of the area light aren't locked:

About the camera, you could check these properties:

i've checked those earlier. just found out it's correcter after fiddling around. though it's fixed for now, i am not sure which part that i did fixed the issues. whether "manipulate centre point", "pivot centres" or anything else.

Oh, okay! Sometimes these weird things happen, if you discover what you did you can post here so that other people that have the same problem can see what's wrong!


text:
How to make an object with particles on it looks partially wet
trying to make an object with a material that looks partially wet.
like these reference photos.

i've tried using a "wet map" nodes group provided on a blender user's website. unfortunately, the material almost wholly became more shiny or glossy than before using that wet map.
i wish the material can have two different characteristics; like different gloss/highlight/reflection, and different IOR perhaps.
any suggestion in the material setup with nodes that we can make for that?
plain material without physics simulation to consider, maybe?
*pardon my english. not a native speaker.
EDIT:
this what i've got with the fluid sim.
and the whole thing get shinier all over it. also, the way the palm sugar syrup is flown on the surface was a bit weird.
i wish there's a way i can learn how to achieve this. either with a better fluid sim. and, especially the way we can set the material up in the node editor. even if the model/scene doesn't involve fluid sim.
by the way, there are two parts of the fluid where it's wet on the surface. and they look quite dark as if close to black.

and this is how i made the material setup, using the wet map nodes group provided by planetblender.

is it for an image or is it for animation?

for still image for now.

thanks @moonboots is that way can also applied to wet map? i am also still not sure how to make the wet map caused by the sugar fluid in this case.

I've deleted my message because you must use Hair, not Emitter, I'm checking out how to do it...

found an interesting article on this site: http://planetblender.com/wetmaps/
it looks quite like what i am looking for.

also there was this nice tuto by CG Cookie that might help you (?): https://www.youtube.com/watch?v=zpgnNktugro&

Making a single object look partially wet can be done with a mix shader using a factor that differentiates your "wet" areas from your "dry" areas.  It is more involved to make the "wetness" apply to a particle system as well as the emitter.  The way I can think of involves Dynamic Paint and a Particle Instance modifier.  I'm not sure this will look very realistic, the "fluid" will not "cling" to the particles and won't vary in opacity depending on fluid thickness, like in your photo.  You may be better off with a fluid sim.  However if you want a writeup I could probably do one.

I don't know exactly what you've done with your fluid sim, but it looks like you've let the whole thing run until all the fluid has slid off of your Lupis (?) then used the wetmap from dynamic paint to add "wetness" to the material on the Lupis. What I had in mind was to halt the fluid simulation partway while the fluid is still sitting on top of the objects--that is what creates the "wet" look, not the wetmap (and it will make coconut particles look wet too).  You can pick a frame and apply the sim then "sculpt" the fluid mesh to your liking.  Wetmap/dynamic paint can enhance the effect.

yes, i did. i tried to make the fluid slid off the lupis. because i keep failed to make a thin layer of the fluid on it. and thought of just making wet material on the lupis. and i did bake wet maps from the fluid sim. thought the problem is because i used Metric. tried either in Meters or Millimeters. also adjusting the simulation scale over again several times.
wouldn't sculpt the fluid mesh multiplies geometry/polycount too much later?
i'll try this then. with your answer for the material node setup you gave. thanks.

Although fluid simulation may be your best bet, here is a way to use dynamic paint to simulate an effect similar to your photo.

To create the dynamic paint effect, I made some blobby "fluid like" meshes to act as dynamic paint brushes.  The lupi mesh (and a coconut flake mesh, for the particle system) were the canvas.  From right to left: the meshes including the brush objects; the dynamic paint effect on the canvas; the result on the material.

The material on the Lupi is what uses the wetmap as a factor to mix between two principled shaders.  One shader, the "wet" shader, has a red tint (varied with a noise texture) and more glossiness via a clearcoat.

Getting the dynamic paint to apply to the coconut particles is more complicated.  After the particle system is set up on the Lupi mesh (I used a "hair" type of particle system), it is necessary to apply a Particle Instance modifier to the coconut shreds - otherwise each particle will not act as its own separate Dynamic Paint canvas.  As mentioned before, the coconut shred mesh has a Dynamic Paint canvas applied to it.
The coconut particle material is much simpler, it's just got a base color of white (for "dry") and a reddish tint plus a clearcoat (for "wet"), with the wetmap as the factor of a Mix shader.

The above is not a step-by-step but hopefully it provides guidance as to the general technique.

thanks very much @risingfall.
i should've thought about using 2 principled bsdf as usual. though, i may understand a bit about how to do particles, i still haven't learn about particles instance modifier yet.
i was using a method and wet map from planetblender.com on this page; http://planetblender.com/wetmaps/
just tried to follow that page tutorial. and used the provided wet map.
thanks again, risingfall.  it comes to my sense about the general approach to the case. i'll look into it again in blender.


text:
Adjusting Scene Scale with BLAM to real world estimation measurement
I am remodelling a scene from -presumably- a photo. Using BLAM addon.
I would like to know how to adjust the 3D model in the scene.
To the real world estimated measurement.
As can be seen in the Properties Panel, the z measurement is too small.
According to commonly used real world scale for the counter top board, perhaps there's a way to make the whole model/scene scaled with 30-40 mm thickness of the counter top?

There's actually a button in BLAM to do the first part of this.. 'Set line of sight scale pivot'.. but you can do it by hand.
Set the Pivot Center to the camera by ShiftS putting the 3D cursor there, and selecting '3D Cursor' as the Pivot Center.
Then, selecting all the objects whose dimensions you want to alter, (not including the camera,) with the counter-top active, uniformly scale (S) all the objects in your scene, until the right dimension appears in the Z of the counter-top. The size of the objects will not change in the (perspective) camera view.
You could also place an Empty at the camera, temporarily parent all the objects you want to scale to the Empty, and scale the Empty. This gives the opportunity for more accurate control.
Swipe and  Ctrl C copy the Z dimension of the counter-top into your clipboard. Select the empty, swipe all its scale fields, and type the desired dimension into all of them, followed by / and  Ctrl V ( your typed result would be '30/0.17759', if you wanted a 30mm thickness). Then Alt P , unparent the objects, keeping their transformations.
It's probably better to apply (Ctrl A) the scale of your objects when you're done, to put the new dimensions into the meshes, rather than their object transforms.
EDIT:
Please find the scaled file, with counter-top at about 35mm. Scaling did involve some steps I couldn't include in this answer without seeing the scene: adjusting clipping distances on the camera and in the view.. scaling the camera to make the view practical. The method described still applies, if you need to tweak.

thank you. but how to parent all the objects to the Empty?
i am new to blender. i haven't learn about parent things yet.

In Object Mode, select all the objects, with the Empty last, so it is active, then hit Ctrl-P > 'parent to object'. Un-parenting is Alt-P .. you would want to 'Keep Transformations', in this case.

got Error parsing message while trying to scale the Empty. Blender v 2.79b.
i'll try the first method you mentioned before the Empty.
Edit: no avail. the meshes went off. and can't be seen from either the camera view or orbit view.

Works for me.. I'm not familiar with that error.. maybe BLAM is trying to do something at the same time? BLAM itself creates an empty at the camera for some jobs.. make sure you've selected the right one.

@irwan     Maybe put your file up here, and edit your question to include the link?  This resizing stage doesn't require the actual use of BLAM...

uploaded the blend file as attachment. sorry, have to learn how to add attachment first. by searching the web.

@irwan  Please find scaled file attached.

thank you very much, Robin Betts. that's awesome. how did you do that without making meshes out of scene from cam perspective? or, without having parsing error when using the empty to scale? what blender version are you using? i typed 30/0.17759 in the empty's scaled box and returns error.
would you make a video or gif tutorial somewhere else? thanks very much again, Robin.

2.79, of 2018/06/05.. The one big  difference I noticed in your file was that the 3D Cursor was not at the camera? That's essential... The parsing thing.. the get-around would be to do it in an external calculator, and cut and paste from there,, It's not awesome for me, unless you can do it for yourself, and understand why it works.Me, I find making/editing gifs and videos a bit tricky on my little laptop atm.. maybe you can show me that!

Robin Betts
thanks for all of your replies and answers. i've made it. and somewhat understand it a bit better now.
though i still haven't found the ".. a button in BLAM to do the first part of this.. 'Set line of sight scale pivot'.." yet,
i have found that "active element" as pivot point on the empty (that is also on the camera) works. and it doesn't cause parsing error anymore, afterwards (tried over again to practice).


text:
How to transform a mesh with many objects?
I want to transform (location, rotation, scale and deform mesh) a triangle with 3 animated objects, each vertex of the triangle follows one object.
On this screenshot there are one tirangle whose follows 3 animated cubes that move from position 1 to position 2.
Is there a simple method to do that.
For example by join (or set parent ) each vertex of triangle with each object, but I don't know how to do this!
Thank you !

You need to add some more information to your question.
It's kind of unclear what you are trying to do. Maybe add some screenshots and/or sketches.

Can use the method outlined here https://blender.stackexchange.com/questions/133893/how-do-i-attach-rope-to-a-mesh  Add a hook to each apex of tri mesh, then vertex parent each  hook to cubes.

Thanks very much @batFINGER !

Hook and Vertex Parent.
Triangle in edit mode.

Select each vert, hit CtrlH and choose add new hook.  This creates an empty at the vert.
Repeat for other two verts.
For each empty,

Select empty, Shift select cube to parent to.
Go into edit mode, select one, two or three vertices then CtrlP To make vertex parent.
Note could cut out the "middle man" empty and hook directly to cubes.

With this method, the origin of the triangle stays fixed during the animation.   Is there a way to move also the origin, pivot of the triangle?     In other words, is it possible to convert this Hook Modifier to the 2D curves (location, rotation, and scale) of this triangle in Graph Editor ?


text:
How to convert an object transformed by a Hook Modifier to an object with Loc,Rot,Scal Transformations?
I create one triangle whose is transformed by 3 animated cubes.
To realize this, I use "Hook Modifier" (as proposed in this topic ) , each vertex of the triangle is associated to a hook and each hook is parented to a cube. Each cube is animated.
During the animation (from position 1 to position 2 in the screenshot), the origin and the vertices of the triangle stay in the same position.
Is there a method to move the origin and eventualy the vertices of the triangle when the cubes move ?
In other words, is it possible to convert this Hook Modifier with animated cubes to get Location , Rotation and Scale keyframes of this triangle ?
(Rem: it is the same problem after applied this modifier as shape keys )

You can parent both your object and the hooks to an empty, that would take care of the origin.
You can also use the empty if you want to animate all the cubes relative to each other.
However:
I would strongly suggest you just use an armature with 3 bones and put one vertex to weight 1, and the other 2 to 0 for each according bone. Hooks are dangerous, they have no rest position, and an armature keeps everything neat and tidy.
You'll probably need to check a more detailed tutorial on this, but here is the breakdown:
Add -> Armature
In edit mode on your triangle, select one of the vertices -> cursor to selected.
In edit mode on armature press SHIFT A, it will create a bone at the cursor location. Call the bone 'A', repeat for 2 other verts.
Object mode, select object, then armature -> CTRL P -> with empty groups.
Edit mode on your plane select a vertex, select the group of the bone it's supposed to be dragged by make sure weight is at 1.0 and press assign.
Take One of your cubes, SHIFT-select the armature, go into pose mode, select the corresponding bone, CTRL P -> active bone, repeat.
If this was too abstract there's tons of tutorials on that online.

How , thanks very much @frederik-steinmetz

Edited my answer, make sure to delete the hook modifiers first.


text:
Hair emitting from wrong side of mesh
I made a head using the mirror modifier, and for the hair duplicated the scalp so I could add hair particles across the whole head and not just the side that I had sculpted the actual mesh. I flipped the half of the scalp using Ctrl+M along the X axis, and joined the two halves together into one object. When I went to add hair particles though, all the hair particles coming from the mirrored side were facing inwards.
After a bit of googling around, I though it might be that the normals had become flipped, and that was causing the hair to grow inwards. However, flipping the normals did not seem to change anything in regards to the hair.

I've tried to reproduce your error and, unless there is some baked cache for Hair Dynamics, my hair seem to always update to the new normals. Are you 100% sure that your normals are now correct? Can you share part of your file or some screenshots (you can do it by editing your question)?

Also: does an entirely new particlesystem on your mesh behave in the wrong way, or is the error only happening to a particular set of hair created before fixing the normals?

Sometimes it helps to check "use modifier stack" under "emission" in the particle tab. Sometimes it fixes hiccups like this.

I just dealt with this. Check your Timing panel and make sure the ending is set to 1.0
Hope this helps. It did it for me.


text:
Cloth Simulation For A-Pose Creates Too Many Wrinkles/Wet T-Shirt Look
I am new to cloth simulation so I'm hoping that this is a simple fix.
I have modeled a shirt on a metahuman character which I will be using in Unreal Engine. To create the shirt, I positioned the character in a standard T Pose. I am pleased with the results considering I'm new to this.
The next step is to put the shirt into the standard "A" pose which metahumans use for the rest position so I can transfer the weights from the base mesh. I found a tutorial that suggested taking your shirt mesh, applying a second cloth simulation, and then animating the base pose to go from the T-pose into the A-pose rest position.
I implemented this and technically it does work, however, it produces some strange results on the shirt itself, essentially making it look like it shrunk and became a wet T-shirt...lol  See images below.
Any suggestions on settings or fixes to prevent the shirt from changing shape like this during this second cloth sim?  Or maybe there's a better way to accomplish this?
Original Shirt:

The result after the second cloth sim to put it into the A pose:

Here are screen shots of my cloth sim settings.  Note, anything which is collapsed remains at the default settings:

Hello could you please share your file?

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

Have you applied a Subdivision Surface modifier in screenshot 2? It seems to have way more vertices than in screenshot 1 hence the wet appearance.

No subdivision surface modifier in the second screenshot.  I have the modifier tab open in the image, and the only modifier is the cloth simulation.

Duarte, quite honestly, I couldn't figure out how to describe this question in a way that would make a better title since I don't know what exactly is happening...lol

Could you provide your Blender file using https://blend-exchange.com/ ?


text:
Search and replace a text string contained within all objects, across all collections
Is there a way to bulk search/replace a text string inserted by a plugin (for game development), within an object, across all objects, across all collections?
Example:
Collection 1  ( .. 2, 3, 4... have about 20 of them)

Object 1
Object 2
Object 3 etc... 100's of them

Each object might have >= 0 of any combination of strings inserted like...

/foo/Hoo/Fix/This/Part/123
/foo/Hoo/Fix/This/Part/4
/foo/Hoo/Fix/This/Part/abc

(I do not have a list of all the possible strings)
Now I'd like to bulk edit all objects within all Collections by searching-case-matching for

/Fix/This/Part/

to be replaced with

/Fixed/

so the final outcome for all these string in all objects in all collections are changed to:

/foo/Hoo/Fixed/123
/foo/Hoo/Fixed/4
/foo/Hoo/Fixed/abc

Hoping there is a clever way to do this instead of me having to open each object and fix each of these strings one at a time ... and that's very risky too!
Thanks for the help!!

Have you tried the Batch Rename (Ctrl+F2) operation?

Looked at it, thank you , but this does not work for my need... I don't need to change the name of the objects (or other blender data types) but rather search and replace a string of data contained within each object.  As mentioned: Each obj has string/s attached to it using a (gaming) plugin.  I need to go deeper 1 level into each objects data.

Ok, I see. So where do you find this "data contained within each object" in Blender? Is it a custom property? If so, you will most likely need a script to change it for so many objects.

"Is it a custom property?" -- I think the answer is yes. It comes from a plugin I installed for the game dev. The plug then becomes another option in the Properties window (Once installed it is added to the existing options  like the existing transform, Collections, relations etc options)  So when I then open the "GameDev" Option in the properties window, it then has a place for me to enter these strings -- which are unique to the game being developed.  Thats what I need to search and replace.   So If I need to write a script, what language must it be written in??

Blender allows you to store Custom Properties almost everywhere. For example, you can add them to the scene, world, collections, objects, meshes, materials, etc. You can view them at the bottom of the Properties editor in the Custom Properties section. It is the last section at the bottom. If you see them there, you can change them easily with a Python script. Check out the Scripting workspace. E.g. enter  C.active_object['my_custom_prop'] in the console (left side) & you will see the value of my_custom_prop

Oh this is what I feared -- sounds like script writing is the answer -- of which Python I know nothing about.  I had to learn 2 scripting languages to build my project, now another??!! dang.  Is there a sample python find/replace script you know of that I can reuse please?

Oh this is what I feared -- sounds like script writing is the answer -- of which Python I know nothing about.  I had to learn 2 scripting languages to build my project, now another??!! dang.
Is there a sample python find/replace script you know of that I can reuse please? -- there are a number I found that read and replace things in text files, but this is not a test file issue.  Specific to find/replace things in the properties window, do you know of a sample script anywhere that finds and replaces text in that are contained in the properties window (in a specific plugin) please?

Can you show an example or provide a test file? Here is an example how to loop over all selected objects. Then use the property name as an index (or better the .get() method to check if the property exists (see my previous comment above). If the value is not 'None' you can change it. Here is an example of the replace method https://www.w3schools.com/python/ref_string_replace.asp. Python also supports regex for more sophisticated find & replace operations.

Thanks, looked over the links. Since my S&R is exactly the same for all places entered in all obj in all collections using the plugin named (for this example) "TheNameOfMyPlugin", could it be as simple as:
import bpy     context = bpy.TheNameOfMyPlugin     txt.replace("/findThis/", "/ReplaceItWithThis/")
Will that find/replace ALL instances of findThis?  -- which is essentially the need.  findThis is very unique to the whole project. Also, will this work in 1 collection only, or across all Collections of objects?   I'll test this, but good to know if on right/wrong track?

Tried
 `import bpy.NameOf-Plugin
 context = DatarefPath
 for o in context.DatarefPath
 txt.replace("/foo/", "/Hex1234/")`
(Sorry none of the preformatting seems to be working) -- Errors follow in 2 parts -- too long to be put into one comment.. but its all the same error in the Script test window
Error
` import bpy.NameOf-Plugin
 File "", line 1
 import bpy.NameOf-Plugin
 ^`
 `SyntaxError: invalid syntax
 context = DatarefPath
Traceback (most recent call last):
  File "", line 1, in
NameError: name 'DatarefPath' is not defined
 for o in context.DatarefPath
  File "", line 1
for o in context.DatarefPath
 ^
SyntaxError: invalid syntax`


text:
Rigify Error Message
Just tried to Generate a new Rig and got the following error message:

RIGIFY ERROR: Bone 'palm.01.L': The palm rig must have a parent and at
least one sibling
Incorrect armature for type 'super_palm'

Here is the screenshot of the actual palm armature:

I highlighted the particular section of the Scene Collection where it seems maybe the Thumb components are incorrectly under the Palm 01.L group and instead should be in its own individual group?
If that is the case, how do I move the thumb components to reflect their own separate group standing in that scene list? I tried a drag/drop motion but that didn't work.  Otherwise, any ideas on how to troubleshoot this Rigify error, please.

Can you please upload the images on BSE so you can embed them directly into your question and we don't have to click back and forth? And can you write down the error message in the text of the question so that it is searchable and readable (text to speech)? Last but not least, what did you do to provoke this error? Such errors often occur when you move the bones and accidentally disconnect them.

It looks like your bone hierarchy is messed up. It's ok that the thumb is a sibling of the index finger and they are parented to palm.01. But palm.01.L should be parented to hand.L, and the hand should be parented to forearm.L and so on.
It's basically spine > shoulder > arm > hand > palm > fingers.
For the chin and jaw bones, it's like: spine > face > jaw > chin
For testing, I've created a human meta rig and cleared the parent of palm.01.L. It's now a sibling of the spine.
This is wrong and Rigify complains about it with the same error message you posted.
To fix it you need to select the bones (in Edit mode), child first, parent last, and parent them (Ctrl+P) with Keep Offset. Select the whole bone, not only the head or tail. With Alt+P you can separate them if needed.

Can I simply give you the link to download the blender file and if you have time, to have a look at it. Might be more of an efficient way to resolve it. [link] https://www.mediafire.com/file/dn6oroef5oyk06k/TTTSoldier+WW2.blend/file

You can fix the hand and the face. But there some other issues with the rig. The generated rig doesn't allow rotation of hand, feet, and head for some reason. If you create a new blend file and append the meta rig it will fix this issue. But the face rig is not created. IDK why. Honestly, I would just start over and add a fresh meta rig. It takes not that long to arrange the bones. Make sure the elbows and knees point a bit in the right direction. At the moment you have the knees completely straight and this results in bow legs.

A few other things: The jacket has a mirror modifier. It doubles the mesh, delete it. The character model has many separate parts (give them proper names). 'Autom. weights' work not well in this case. Make a solid copy & transfer the weight paint (https://youtu.be/j823wSrHJnA). Select hierarchy to get them all at once & copy, join them, use the 3D Print Tool to manifold them (Fill with 'F', like in the video, didn't work well for me), in Sculpt mode use Remesh (0.01 voxel size) to create a solid, 1 piece model. Finally, transfer WP to the original mesh. Fingers may need some manual WP/sculpt

I decided to start again with the model armature. After watching that youtube video link you mentioned in your last comment, I decided to only do the first few procedures. I basically selected ALL of the model and then did:  Select / Select All By Type / Mesh.  Then I Right clicked the model and selected JOIN. Those previous parts where now formed into just 1 whole model part. From there I then proceeded to setup the model armature. I successfully managed to generate it without any errors. But when I used the Pose function, it didn't work as I was moving generated armature outlines.

Here is a video link of my attempt: https://streamable.com/vfv86s

And here is the upload link for that new re-done model after Generating the rig. https://www.mediafire.com/file/8nc81gzlqllodfb/RIG+Soldier+WW2+Ranger+NO+FACE+expressions.blend/file

The thumb of the left hand is detached again. How does this happen? Additionally, you need to move the mesh & meta riig up. Z=0 should be at the bottom of the feet. Apply Rotation and Scale. Move the origin of all mesh parts to the 3D cursor at the world origin. There are still some loose parts of the gear that are wonky.


text:
what could be the problem with uv display
I created textures in Substance painter, I don't understand why islands are displayed like this in Blender
some islands look darker in relation to other islands. this stands out a lot in the cycles and eevee render

Thank u, moonboots

Hello maybe it has to do with your normal map? Is its Image Texture node set to Non-Color instead of sRGB?

where can i track it?

when I press Shift+N the normals still look like a checkerboard. those islands that were lighter become darker....

hello, could you please pack your images and share your object?

unfortunately no(
this is a contract project, I can not distribute

You can just share a piece of your object


text:
Hair particles aren’t the same colors as the model
I colored my model using vertex paint because the program would crash if I tried to color it any other way, idk if that has anything to do with the issue but once I add hair particles to my model they are black or rainbow colored instead of the model’s colors. Does anyone have a solution?

It looks like you are in Particle Edit mode. The hair color will not show up in this mode, try switching to Object Mode. And please use proper screenshots on this site instead of taking pictures from the screen.

In object mode it just looks rainbow colored

Okay, but I'm sorry you are not even having a proper screenshot, show us nothing which mode you are in there, not how these "rainbow colors" look, nothing of the settings, the material setup etc. and I haven't got my crystal ball with me...

There’s no feature to add an image for me

What do you mean "no feature to add an image"? Here? You already added an image. Or do you mean you cannot take a screenshot? Go to Blender's top menu, Window > Save Screenshot or Save Screenshot (Editor)

Here in the comment section, I can only write

You can edit your question. It is always best to put all necessary information in the question because it might get easily overlooked in the comments.

Vertex Colors work with particles. I've never used it before but just tried. You have to use the Attribute or the Color Attribute node for the material in the Shader Editor. Feel free to add a screenshot of your material. Also, make sure the correct material is used in the particle render settings.

Please edit your question and click the "Image" icon in the toolbar to upload your image. The link you have posted starts with "file://". It's a local & private link that only you can access.

there's no toolbar

It's not here in the comment section but in the question above. There must be a toolbar because you already added the first image to your question. Just upload any new image there.

Alr I added another image


text:
Rendering Animation error
When I preview my animation it looks fine and everything is there but when I actually render it it just shows one object from the animation with a white screen and not actually the whole animation.
I recorded it as well https://drive.google.com/file/d/1Cuws8NhJ4D32GGXcfJfhct6Ka8TTeRxO/view?usp=drive_link
can anyone help, how do I fix this??

First thing, your viewport is in Material preview mode, how does it look if you are in Rendered preview mode? Also check in the Outliner if you don't have an object that is disabled for preview but enabled for render?

Nothing is disabled for preview but enabled for render, changed from the Material mode to the rendering mode and still nothing

maybe share your file (remove all the objects that you don't want to share): https://blend-exchange.com/

Hi Please use a title that reflects the content of the question. It should be descriptive but succinct, unique and identifying, summarizing the issue so that users can at a glance understand what your post is about. Use the [edit] link below your post and avoid anything not strictly essential to the post. Remember, your title is the first thing potential visitors will see, and makes your question findable for future users. See "What is the problem with posting an image or link and asking “How do I do this?""

here, i just shared the file

Shift left click twice on the Disable in Renders option of you collection, all your objects are disabled:

oh. thank you so so so much. I've been trying to fix this for  5+ hours, you're a lifesaver.


text:
Pivots (or origins?) proper positioning
I want to animate this scene:

How can I place pivots (or origins?) of the objects at proper position, since now pivots are somewhere outside of objects?
Never mind what I'm doing geometry is moving, not pivot.
Is there some simple command as move pivot/origin?
I'll try to find some tutorials on youtube, but on those tutorials guys are step ahead, clicking so fast, using some shortcuts, interface of Blender is different ... etc., so it is not easy to follow.
I watching now some tuts, but they are for clean Blender objects and guys telling what Blender is doing ... not what I need (+tons of shortcuts of course) :)
Regards

Hi. Please use a title that matches the content of the question. It should be descriptive but succinct, unique and identifying, summarizing the issue so that anyone searching for a similar problem is likely to find it. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing potential visitors see, answers you get depend heavily on how insightful it is. See What is the problem of asking “How do I do this?"

Please only ask one question at a time. You can ask as many questions as you like but stick to one problem for each question!

As John says, please ask one question only. If the origin is not correctly placed you can either move it where the center of rotation is supposed to be, or parent the object to an empty and rotate the empty instead

Thanks Chris! :)

@N.B.U if CHris' answer is correct, mark it as such

you can move just the origin (not the mesh) by checking "origin" and then move that point:


text:
How to fix positions of some points in animation?
thanks so much on the replies on my previous question(s).
Last days I watched a lot of youtube tutorials, making remarks on paper for shortcuts and other stuff.
However I place properly parented bones for the main 3 parts (damper looking very, very hard for a moment) and linked main 3 parts to the bones.
My question is: How can I fix 3 points marked in blue in position (dX,dY,dZ=0) just having Y axis rotation (mX,mZ=0)?

Please excuse me previous time I do no add a file.
I'll try now ...

Thanks once again for support!

I'm afraid your description isn't of much use to me.  I'll be going from the way that your mesh looks.
First: we're going to need clean bone axes.  And you've parented your objects with bone parenting rather than bone(relative).  So first thing I do is unparent all, fix the axes, reparent with bone(relative).
Now, let's add a bone to represent a bit that's unparented, and then label some points:

Notice: ABC forms a triangle.  Your description suggest that bones BA and DC should only be able to rotate in world Y axis, about points B and C respectively.  We can do that, with a simple IK, but only by freeing up the position of one of these points-- only by allowing the length of BC to change:

If we do not allow the length of BC to change, then triangle ABC is fixed, meaning the rotation of DC is fixed, meaning that there is only one thing we can do with this structure, which is to flip FE and ED:

But the structure and shape of your mesh suggest that AB is not of a fixed length.  It appears to be a shock absorber that can change length.  If we accept that F, C and B are all parented to some root bone, and that AB can change length, then this is what we can do:

Bone is the control.  It is transform locked in all but one axis.
Bone.002 has a 2-chain IK constraint targeting ikT (which is parented to root).  Because of its axes and bend, it and its parent will only ever rotate in the proper axis, but we could IK lock these if we wanted.

ShocksStretch is parented to root and has a stretch-to constraint targeting stretchTarget, which is parented to Bone.002.  ShocksDef is parented to it and has "inherit scale" disabled.  The other half of the shocks is parented to ShocksDef.001, which is parented to Bone.002 and has a locked track constraint targeting the head of ShocksStretch.

Hello Nathan, thanks for your comment and print screens. Points marked in blue are static and have only Y axes rotations. Of course the damper/shock absorber is not fixed length (AB). This planar, solid parts (constant dimensions) mechanism can be easily animated if degrees of freedom of the joints are set and parts are parented to the previous part. Bones, shortcuts, tons of clicking and options are not necessary. If just degrees of freedom of joints are set, main part will drag in position all other parts ... however I'll try to understand logic of Blender.


text:
Make changes in python scripts of addons effective
I am using blender with an addon called blensor. I have some trouble with this addon and would like to alter its code at some place to see the effect my changes made.
Here is a working procedure:

Edit the appropriate python file of the addon in a text editor and save.
Restart blender
Change is visible when running addon

This however is quite tidious for debugging. It would be nice to be able to reload the addon without having to restart blender. I did some research and tried to following, with no success:

Pressing F8 within blender. Looking at the console I can see that blensor seems to be reloaded but the changes I made are not visible when running it. Maybe the output "addon_utils.disable: cycles not disabled" in the system console means something?
Opening the python script in blender's text editor, changing and saving it and clicking Text -> Reload. Does not seem to have any effect.

Any other ways or idea what I am missing?

F8 should be working, are you sure you edited the script file in the right location? In certain cases, it is unavoidable to restart Blender, see https://developer.blender.org/T37021

@CoDEmanX: Well, pretty sure, since the change I make is applied once I restart blender. As for your link: What I could identify as interesting was "As for F8, it is only designed to reload installed addons/ui scripts/etc., not any kind of random py file.". I think that blensor is an addon since I can disable it using bpy.ops.wm.addon_disable. When I browse under user preferences -> addons I cannot find it however....(edit, for reference: http://www.blensor.org/)

It is an addon and should actually be listed somewhere in User Preferences > Addons. The reason why F8 doesn't work appears to be the missing support for it in the code: __init__.py imports the scripts from the same folder, but doesn't handle reloads (see e.g. io_scene_fbx/__init__.py, search for all occurrences of import_fbx for an example of proper import).

I am the author of the blensor addon.
I used the tip from CoDEmanX and just implemented the reload functionality in the blensor module.
If you have an older blensor version and don't want to compile it from source you can manually add it by changing the file __init__.py
Everything above __version__ has to be changed to
import sys
import traceback
from mathutils import Matrix
from math import pi
import types
import bpy

import blensor.blendodyne
import blensor.depthmap
import blensor.tof
import blensor.evd
import blensor.ibeo
import blensor.generic_lidar
import blensor.kinect
import blensor.exportmotion
import blensor.mesh_utils
import blensor.noise

"""If the blensor module is reloaded, reload all submodules as well
   This will reload all modules at the initial import as well but
   that should not be a problem
"""
import imp
locals_copy = dict(locals())
for var in locals_copy:
    tmp = locals_copy[var]
    if isinstance(tmp, types.ModuleType) and tmp.__package__ == "blensor":
      print ("Reloading: %s"%(var))
      imp.reload(tmp)

After that hitting F8 should reload the submodules as well.

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


text:
World coordinates of objects
How do I see the object's world coordinates. I want to build a scene, view this scene with cameras at different locations and analize what I see. For this purpose, I want to be able to see where my camera and my objects are in the world and how far apart they are. Hence, I need their respective world coordinates and also it might be nice to be able to display the units/meters in the grid.
When I select an object, the location and rotation are all (0,0,0). This must be relative to some starting position of the object but not from the point (0,0,0) in the world.
So:

Where can I see an object's world coordinate?
Can I display units in the grid?
How would I be able to systematically change the position and orientation of the camera with discrete steps in some predefined intervals? Would that be done using animations?

Thanks in advance!

The location of an object is determined by the location of it's Origin.
Most likely all your object origins are at 0,0,0, and not in the centers of your objects.
To move the origins to your objects, select everything (A) and press CtrlShiftAltC> Origin to geometry.
I don't think there is any native way to display units on the grid.
I'm not quite sure what you mean by "systematically", but you could try snapping.

Gandalf3 has done a good job of answering your questions, but I'll share a work-around I developed for the challenges the second question posed: I use "helper geometry". Helper geometry consists of objects I use as an aid to making a particular model. These objects include place markers, label holders, and modeling tools. Place markers and label holders are self explanatory; an example of a modeling tool would be in the circumstance where I want two objects to be a designated distance apart, say 8.235 blender units, but the distance is not parallel to the x, the y, or the z axis. In this instance I might create a plane mesh that is 8.235 blender units in one dimension, place it so that one edge of the plane is at the first point, and orient the plane in the direction I want to measure the distance, and then locate the other object at the edge opposite the first.
To help me remember the locations of objects in the grid, I'd create an object of suitable size. In the case of an object to remember the location of camera 1, it would probably be a cylinder of very small diameter, named "camera1location". As long as I don't apply the location transformation to helper geometry, I can read the co-ordinates of the item in the properties window, object tab.
To keep my modeling projects orderly, I place all cameras and lamps in layer 1; all helper geometry in layer 2, and do my modeling in layers 3 through 20.

Helper objects are very useful and since Blender is designed to build and view textured models, you can take this a step further by modeling digital versions of real tools like a ruler that has a picture of a real ruler on it, or the half circle tool that is used in geometry for measuring angles.

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


text:
How can I export animation frames in WIREFRAME mode?
I need your support :)

How can I export animation frames in WIREFRAME mode?
I don't need renders, materials, cameras ... etc. just to export frames in wireframe mode as they look at my screen.

Also how can I change background color?

Is there option some of the objects to be in wireframe mode others in other visualization modes or modes affect whole scene?

Regards

Go into View > Viewport Render Animation and it will render in the folder you've chosen in the Output panel:

To change the background color open the Viewport Shading, click on Background > Viewport and click on the color block to pick the color you want:

In Wireframe display mode all your objects will appear as wireframes but if you want some objects to appear as wireframes and others to appear as solid you can switch to Solid display mode or any other one, select the object and in the Object panel > Viewport Display > Display As, choose Wire:


text:
Fixed stream of particles that represent pride flag?
I've been wracking my brain on how to get a stream of particles to emit from a 5 face plane and have the texture that is on the faces. I tried using Particle Color based on where the particle is emitted? this question to make it work but it just did not.
I'm looking to avoid having more than one emitter for the process.
Here is my file: https://blend-exchange.com/b/51xXL0g6

Your instance object, the icosphere, has two materials on it: "odd" and "Oddness". The first material slot gets automatically assigned to all faces. The second one you don't need on the icosphere, to remove it you can simply select it and click on the minus button to the right (note: you can only delete it like this in Object Mode).

Now you need to modify the "odd" material a little bit to work properly: Delete the Color Ramp (if you want to use a color ramp instead of an image, see below), Object Info and Mapping nodes. In the Texture Coordinate node, remove the chosen object by clicking X next to the name and enable From Instancer.

And it works - although the effect will only be visible in Rendered view. The Material View uses Eevee, but this only works in Cycles.

By the way, if you want to get rid of using an image texture and simply distribute the colors with a Color Ramp you can do it like this:
In the plane material, plug the UV output of the Texture Coordinate node into a Separate XYZ node. Plug the Y output into a Color Ramp with the colors as before or which others you want. Do not select an object there and make sure From Instancer is disabled.
The icosphere gets the same material - either by using the plane's material and clicking on the small number next to the name to make a duplicate of it or adding a new material and building it like the first - but with a little difference: in the icosphere material, you enable From Instancer.

Thank you for explaining it with such detail! It's working now!


text:
Is there a way to get thousands separator in a Value to string geometry node? (so it is easier to read)

Hello
I can't seem to find a solution to this issue.
I have tried to enter a geometry node that get the value going from 0 to 3M$ but there is no option to enter thousands separator to make it easier to read.
Is there a way to do this in a simple way?
Thanks


text:
Problems with Curve Modifier (I tried all methods)

Hello. I need help. I try to roll my flat model by spiral with curve modifier. But it doesn’t work properly.

I’ve tried all the ways. I changed deform axis in curve modifier, aplied all transformations to spiral curve and to flat object, set up curve radius to 1, rotated origin curve and object. It all don’t work. I attached blend file. please help.

Could you provide your Blender file using https://blend-exchange.com/ instead of dropbox that requires login ?

@StefLAncien done

(Using Blender 3.6.8)
First attempt
Assuming that the flat model should roll like a film, the first parameter to change is the curve Tilt, to set to 90°. Furthermore as the underlying Plane object is remaining flat, it is disconnected in the Geometry Nodes graph, to keep only the box instances and to produce the following result:

Resources:
Second attempt
Assuming that the flat model should remain flat and coplanar to the spiral, and that it should not be stretched radially, but only bended in the (X,Z) plane, the parameter to change is the Curve Deform/Radius parameter to uncheck in the curve Object Data Properties panel. Otherwise, the scale perpendicular to the curve tangent is modified. Furthermore, the flat model is scaled down to remove overlaps and to produce the following result:

Resources:

ok. And what next? It still doesn't work.

you can see flat object at first picture. I need to curve it (to roll up) without any distortion

I try an other proposal, but I have to confess that as English is not my native language, I am facing difficulties to understand how to marry "curve & roll up" with "no distortion". If I am still far away, could you provide a sketch of what you are trying to produce ?


text:
tried to copy this stylized water shader? it's only showed pink. How do I fix it?
I tried to copy these stylized water nodes, from img.
Link to my blend file: drive
But the result I got is pink shaded plane...

I tried to reconnect these nodes and found that maybe the color mix beside CAUSTICS SHAPE or the whole WATER SURFACE DISTORTION fault
Edit: Link to the blend and texture here

wow seems pretty complicate for a water shader ^^

Yeah, but the result is pretty. Worth it, lmao

pink means missing image texture, it can be in the water material or the world HDRI image

Tried to disconnect the whole riverbed nodes which the only one node which use image. nope, still pink...

Actually, the texture image is fine as on screenshot 2. Also I didn't use HDRI
HALP TT-TT

I've downloaded your blend file. The images are not included but the plane is not pink. Still the riverbed texture is missing and when I preview it with the Node Wrangler add-on it becomes finally pink. Have you checked for missing files? Main menu File > External Data > Report Missing Files. Any missing files are shown in the statusbar/log.

It says no missing files
Also I updated the post with texture image

Maybe it's just my computer couldn't handle the render... c': Thanks for the answers guys


text:
Blender API - Use data-block name as if condition
I'm trying to make a python script that searches for an existing camera data-block in the scene and creates it if not found.
I've gone with a rather simple code:
for dcam in bpy.data.cameras:
     if dcam.name == "PERSP.Camera":
         break
     else:
         bpy.data.cameras.new("PERSP.Camera")

However, what I've written will keep creating increments of "PERSP.Camera" despite the condition checking if there isn't already a camera with this name.
I'm relatively new to python. Am I missing something about data-blocks where their names cannot be accessed if they're within a loop/not linked to an object in the scene?

This is a common python gotcha. You're iterating over a list while modifying it.

I've read about python gotchas on this but I got confused as this very same code worked for bpy.data.collections. Aren't both considered Lists? Why didn't it work for cameras but worked for collections?

Thing is this code has a chance to work without you noticing it is broken, if all the conditions are met. eg if your target cam is found first then it works. Or if your target is not found, you create it, then it somehow gets placed in second place of bpy.data.cameras iterator, the code works. All other possible scenarios will make it not work as intended.

Oh ok I see. I'll go fix the collections code as well then. Thanks a lot!

Your code is only creating the data block for the camera. You also need to create a camera object and link that to the a collection in your scene. Also, your for loop creates a new camera every time it finds a camera data block NOT named "PERSP.Camera"
You want something more like:
import bpy

col = bpy.context.collection # get active collection
test = False

for dcam in bpy.data.cameras:
    if dcam.name == "PERSP.Camera_Data":
        test = True # remember one of the camera data blocks is named PERSP.Camera_Data

if not test: # camera data block not found
    new_cam_data = bpy.data.cameras.new("PERSP.Camera_Data") # create the camera data block
    new_cam_obj = bpy.data.objects.new("PERSP.Camera", new_cam_data) # create the camera object
    col.objects.link(new_cam_obj) # link the camera object to a the active collection

I think you're overcomplicating things with your loop.
Try something like :
import bpy

cam_name = "PERSP.Camera"
cam = bpy.data.cameras.get(cam_name)
if cam is None:
    cam = bpy.data.cameras.new(cam_name)

bpy.data.cameras acts like a dictionary. You can use get to test if an element is inside it. If not, it will return None.
You can also use the slightly more pythonic but weirder
cam = bpy.data.cameras.get(cam_name) or bpy.data.cameras.new(cam_name)

That solved most of my problems! Thanks!