text:
Solidify Modifier: how can I remove the inner mesh in a complex artifacts?
First of all I want to specify my final goal: use the Solidify Modifier in order to create a cage.
I think that my workflow, used since now,

Duplicate my low poly
Alt + S with the new mesh (i.e. cage)

isn't the way to achieve the best result, because it creates too much distorsion and doesn't preserve the original shape of my low poly, in particular with hard surfaces' meshes.
Therefore I found the solidify modifier that works pretty well. There's only one problem that i will show you with an easy example:
1) This is my High Poly

2) This is my Low Poly

I duplicate my Low poly and then with my new mesh (cage) I apply the Solidify Modifier in order to cover my high poly. The problem is that the solidify modifier double the mesh. In the final result i have my low poly, high poly and the cage, with 2 "meshes" (not divided, they are still a unique mesh in the Outliner) one inside the other like in the image below.

How can i delete the inner mesh?
In a simple mesh could be easy, like this cube, but when i have complex artifacts?

Not sure if I understand correctly but I think you may be misunderstanding what the Solidify modifier does.
It creates thickness on an object by duplication it's faces and offsetting the  by a specified distance along its normals. This makes it two sided, and creates a new set of faces virtually "duplicating" your object.
That being said you may use it for what you want by activating the options Fill Rim and Only Rim, that way only the distorted "cage" will be created, and no duplicates will be found.

Edit
See an example of an open area bellow where additional faces are created.
Have you tried the Smooth modifier instead? It wont create additional faces, and will have a similar offset effect, though it may cause some distortion in tighter corners.

Edit 2
Apparently the user's problem was with selecting linked geometry in edit mode.
You could apply the Solidify modifier with the Fill Rim option unchecked, and then enter edit mode and either hover one of the unwanted vertex and press L or select one of the unwanted vertex and press Ctrl + L to Select Linked

Already used this trick. The problem here is this: checking "Fill rim", it adds vertices to my cage (in blender there is written: "Create Edge loops"). I'm creating a complex mesh with multiple smoothign groups etc . . and i want to have the same amount of vertices for my low poy and the cage. I can't tick it

Yes, I see, if you have single sided parts in your mesh then it will create a border around them. Could you isolate those parts into a separate object so that you could use a different technique on them?

I really don't know ^^. In my mesh i can't distinguish them onestly. On 2000 vertices, using the method you tell me, the difference between low poly and cage is 20 vertices. It's hard to find them

Edited my answer above. Have you tried the Smooth modifier instead? It wont create additional faces but may cause some distortion.

Yeah already used but as you said it causes deformation. It is similar to the classic alt+s

Well I'm out of ideas then, maybe someone else smarter than me can chime in with better ideas, or you'll probably have to do it manually

@Fuboski, I dont understand why you have to check "fill rim" ?

I don't want to check it . . . @DuarteFarrajotaRamos advises me, cause it's the only way to actice "only rim" and remove the inner mesh automatically. My goal is to remove the inner mesh without using "fill rim"      ---> "only rim" beacuse this trick add unwanted vertices.

@Fuboski so do we agree that you will obtain two separated parts if you dont check "fill rim" at all ? Is that not enough in your problem ?

These 2 parts won't be separated at all, doesn't matter "fill rim" checked or not. The problem is that i would like to understand if there is a simple and quick method to separate these 2 parts and then delete the inner one; because when you applied the modifier, these 2 part, although don't share vertices, edge or faces, are a unique mesh like i said in the question.

Have you tried after applying and entering edit mode pressing L to select linked geometry? They are one and the same object but should be two separate chunks of mesh altogether.

@Fuboski, +1 for what Duarte just said (but Ctrl+L)

@Fuboski or eventually "separate by loose parts" : select all in edit mode, then P

Yeah it works @DuarteFarrajotaRamos!! Thank you so much! If you edit your quesion with the new answer i'll tick it as solved, in order to close this thread Thank you again

Answer above updated, and image added.

authors: Михаил Байраков

authors: م.منيف النعسان


text:
Can I explode my mesh in Blender?
Is there a modifier or a quick way to explode a complex mesh in Blender?
In order to be as clear as i can, when I write explode, I mean:

Is each component a separate object?

Yes it is. Every single part of my mesh (not the one in the gif, that is an example finded on youtube) is a separate object

Did you want your object to explode or create something like an exploded drawing?

What you will do to start with is add a rigid body simulation to one of your objects and set it to active. You can do this in the Toolshelf, or in the Physics tab.

Then, in order to have the objects react to each other in close proximity. use the collision margin option. Adjust this to be as high as needed. The maximum is 1.0. If this needs to be animated, you can keyframe this as well.

Next, select all objects that compose the model being exploded, or rather that should share the same rigid body properties that you just made. I sometimes find it to be faster to take advantage of wireframe here to quickly select anything behind with border selection. Now, with everything selected go to the toolshelf>physics and select copy from active to copy the physics settings to all selected objects.   It is a good idea to remember to do this anytime you change the simulation or you may have an unexpected result.

After you have done this, head over to the scene properties, and you can bake the rigid body simulation.

I just used a sphere after a cell fracture as an example, but this works with anything else also that is made of separate objects. You may also find it necessary to adjust the mass of objects in the rigid body settings.

What you explain is making the object explode. What is asked in the question looks to me like an exploded view or exploded drawing, a kind of technical schematics where a complex object is shown with its parts spacially separated to give a clear overview. But anyway, the OP accepted this answer so it doesn't matter.

I was curious about it too, and I found a pair of solutions:
1- Using the option Locations and scale the objects in the desired direction:
I share you the tutorial I found about the guy explaining it.
https://www.youtube.com/watch?v=_9GYrjhjtdo
2- Use option Explode of TexTools Addon. It will try to create an explode vision at frame 50 of our selected objects. Take in consideration the names of the objects, if they are not different they will not explode, and you have to be in frame 0.
https://github.com/SavMartin/TexTools-Blender
I hope it helps! (:

Randomize Transform will achieve this.
Object>Transform>Randomize Transform.
Make sure to uncheck Randomize Scale and Rotation and pick through random seeds to get different results.

source: Stack Exchange

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

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

sort: votes


text:
Number of vertices and edges report no changes after adding boolean intersect modifier
I am trying to check if a cube and a cone with 7 vertices (python will show 8) intersect or not. To do so, I am using a boolean intersect modifier and check how many vertices are there, after adding the modifier.  If it is non-zero then they are intersecting otherwise not.  I am running the following codes.
# read the objects and print number of vertices and faces
cube = bpy.data.objects['Cube']
cone = bpy.data.objects['Cone']

print (len(cone.data.vertices),len(cube.data.vertices),len(cone.data.polygons),len(cube.data.polygons))
>> 8, 8, 8, 6

# select the cube and add intersect boolean modifier

bpy.ops.object.select_all(action='DESELECT')
cube.select_set(True)
intra = cube.modifiers.new(type="BOOLEAN", name="intersctn")
intra.object = cone
intra.operation = 'INTERSECT'

# check the number of vertices now
print (len(cone.data.vertices),len(cube.data.vertices),len(cone.data.polygons),len(cube.data.polygons))
>> 8, 8, 8, 6

The issue is, whether they are intersecting or not - the number of vertices or faces returns the same as the original cube. I can clearly see that number of vertices and faces has increased after adding the boolean modifier but the python giving me the wrong result. When they are not intersected, the faces and vertices supposed to be 0, but I am still getting 8 and 6. Is this a common issue with the intersect boolean modifier or do I have to update something?

Use the evaluated object
Modifiers don't alter the mesh, they "Modify, Generate, Deform or Physics" the mesh result ... using the mesh as input.  Think of it like a method in mathematics sin(x) doesn't alter x it returns a result using x as input.
The result is available in newer versions of blender as the evaluated object.
How do I get a mesh data-block with modifiers and shape keys applied in Blender 2.8?
This is the result of all modifiers applied. It in no way applies the result to the mesh.  As with most modifiers they are often not easily reversible if applied, and is not required to simply test if geom would be changed.
Test script looks at difference between edge count of cube unmodified and with all modifiers.
import bpy
context = bpy.context
scene = context.scene

cube = scene.objects.get("Cube")
cone = scene.objects.get("Cone")
if cube and cone:
    print(len(cube.data.edges))
    bm = cube.modifiers.new(name="Foo", type='BOOLEAN')
    bm.operation = 'INTERSECT'
    bm.object = cone
    dg = context.evaluated_depsgraph_get()
    eval_cube = cube.evaluated_get(dg)
    print(len(eval_cube.data.edges))

A better option would be to look at the evaluated object both before or after to see the change in evaluated meshes. (eg the cube could already have a stack of modifiers)
import bpy
context = bpy.context
scene = context.scene

cube = scene.objects.get("Cube")
cone = scene.objects.get("Cone")
if cube and cone:
    cube.evaluated_get(context.evaluated_depsgraph_get())
    print(len(eval_cube.data.edges))
    bm = cube.modifiers.new(name="Foo", type='BOOLEAN')
    bm.operation = 'INTERSECT'
    bm.object = cone

    eval_cube = cube.evaluated_get(context.evaluated_depsgraph_get())
    print(len(eval_cube.data.edges))
    cube.modifiers.remove(bm)

If the mesh has no modifiers of shapekeys prior to adding could check for this to avoid an unrequired evaluation.
prior_cube = (
    cube.evaluated_get(context.evaluated_depsgraph_get())
    if (
        cube.data.shape_keys
        or cube.modifiers
        )
    else
        cube
    )

Test run, default cube on RHS has subsurf modifier. Results (before, after) are 12, 64 and 92, 192
An interesting technique to test for intersection.  Could be on the slowish side.  Looping over objects getting data and adding modifiers, then looping again would require only evaluating  the context depsgraph twice instead of twice for each object.

It's really slow. I have 2400 cubes to check if each of them intersects with the cone or not. Just run the script and it seems like - it will take ages to complete. Do you have any suggestions on a faster method?

Thought it may be. Commented here   https://blender.stackexchange.com/questions/196970/get-all-the-objects-intersects-or-falls-inside-a-specific-object#comment330337_196970  There are a number of other object in object Q&As been posted over the years.  Wrap in simple tests like distance from centroid or bounding box tests to narrow down the selection before any expensive intersection test.  Please consider editing other question with what you have tried or found so far.

The problem is you are not applying it. You should apply before printing.
bpy.ops.object.modifier_apply(modifier="intersctn", report=True)

Add the line above, after setting the modifier parameters.
Changed Script: (worked for me. Just make sure that you've selected the cube before running the script)
import bpy
cube = bpy.data.objects['Cube']
cone = bpy.data.objects['Cone']

print (len(cone.data.vertices),len(cube.data.vertices),len(cone.data.polygons),len(cube.data.polygons))

# select the cube and add intersect boolean modifier
bpy.ops.object.select_all(action='DESELECT')
cube.select_set(True)
intra = cube.modifiers.new(type="BOOLEAN", name="intersctn")
intra.object = cone
intra.operation = 'INTERSECT'
bpy.ops.object.modifier_apply(modifier="intersctn", report=True)

# check the number of vertices now
print (len(cone.data.vertices),len(cube.data.vertices),len(cone.data.polygons),len(cube.data.polygons))

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


text:
Joining Two Cubes and Get Total Face Area
I have two identical cubes (1 and 2). Both of them have a face area of 216 units. If I "Join" them with Ctrl+J button and create a single object then
face area of new object = face area of Cube 1 + face area of Cube 2 = 2*216 = 432

Even when one cube is overlapping 70% with another cube, the joined surface area is still 432.

I just want the total face area of the new object where the overlapped area will be counted once. The BoolTool does the job for this case, but when one cube has a deleted face (open end, as shown in figure 3) it completely messes everything up and does not perform at all.
However, is there any way to calculate the surface area of the new object when the overlapped area will be considered once only? Joining the objects then just scanning through the surface area or anything else.
The final objects will be cut from a rectangular object (length = 14, width = 14, height = 4). They will be irregular in shapes. The objects I want to merge will be found here

Volume calculation is ok for manifold meshes only.

@lemon can you please explain a bit?

Volume calculation is the sum of oriented volumes of elementary tetrahedrons. These tetrahedrons have the same summit (say the mesh center) and each tri of the mesh as base. These volumes are oriented depending on the base orientation (+ if normal outside, - if not). If non manifold, volumes are considered several times or can in opposite be absent This can't be (or should it?) an answer as it does not solve what you want to do. But in short if boolean can't make a manifold mesh, I'm doubtful about the possibility of the calculation you want.

Is this just for cubes/cuboids, as illustrated?

....as for  axis aligned as shown could simply calc surface area from bounding box or convex hull.

@RobinBetts I tried to simplify the question. Actually the final objects will be cut from a rectangular object (length = 14, width = 14, height = 4). They will be irregular in shapes. The objects I want to marge will be found here - https://blend-exchange.giantcowfilms.com/b/bsZ3mlYG

@Sourav, if not simple cube, if not overall convex hull "able"... and if boolean dores not work... no solution. But in the specific case from your blend file, you can try: convex hull each volume (to close it), boolean union them all, then calculate the volume... but in this case (blend file) that won't work it seems...


text:
Add-on installed but not showing in sidebar (Blender 2.92)
I am trying to use blender to do my animations for unreal engine. To do this, I installed the addon Mr Mannequins Tools (which is compatible with Blender 2.92) as a zip. After installing it and ticking the checkbox, it does not show up in the sidebar. I've tried reinstalling blender and downloading the zip file and installing the addon again, but it still does not show up.
Here is how it looks on my screen - you can see that I have enabled the addon but it is still not showing up on the sidebar.
It would be great if someone could provide me with some assistance.

I've never used that addon (though I know it used to be quite popular among UE4 users) - is it supposed to put a tab in the sidebar, or are the options accessible from the Add menu?

@ChristopherBennett Woah im dumb its under the add thanks!

@ChristopherBennett Please post this as answer.

When you activate an addon, the field "Location" tells you where you'll find it.

Addon's can put their tools in different places - It seems the Mr. Mannequin addon does not add a tab to the sidebar of the Number Panel, but rather, the tools for Mr. Mannequin Templates can be accessed from the Add Menu.


text:
Practicing Baking textures Problems
I was working on a model and tried to bake the texture but didn`t work well so I decided to practice on a simple cube with just a basic noise texture. Baked it and then I plugged into the shader to see the result. It did bake it but the noise is different then the original texture why is that? thank you for your help

Use the 'Normal Map' node instead of the 'Bump'

Damn it was that simple! Thank you very much!

Just another question. When creating an image texture for normal how should I set up Alpha and 32-bit Float?

Alpha for normal maps are unnecessary. 32-bit Float could result in a better normal map quality since it stores information more precisely, but it's also more computation heavy. I would say it depends on the use case


text:
The accurate modelling of a xbox controller
I started modelling about 2 weeks ago, and I was looking forward to expend the tools that are in the bedroom, I modelled. I am currently working on a project -it is a controller I tried using blueprints that I obtained from a website-, and I could really use some assistance from the members of this community. Things seemed to be going smoothly as I followed the blueprints, but I encountered a challenge when attempting to manipulate the vertices. It resulted in a messy outcome. I hope that someone with expertise in modeling can provide me with guidance, tips, or even a step-by-step tutorial, to accurately model a controller. I attached some images, so you can understand what I am talking about.

I hope you don't plan to build a submarine   :p

Duplicate your reference image in order to have a proper top, side and front view:

Begin by drawing the most characteristic shape, which seems to be the top view:

Then switch to the side view, extrude up:

Bend the shape, add an edge loop and move its vertices:

In front view, move up the middle bottom:

You'll need to lift a bit the bottom:

Thank you for your help, I really appreciate it. I literally copied everything you did, and of course it worked. Thank you fopr that, although I have some additional questions. when you created the top part, you added more edges, and created a face with it. how did you know where to put those edges? Or are you just like "I want the faces to have exactly 4 edges, so here, here, and here" ?

Thanks but I've realized that the shape is actually not accurate because the bottom doesn't look like this but it was hard to guess with the blueprint only, I'll try to correct that. As for your question, I put the edges a bit randomly then I can add if necessary or dissolve the useless one

naah, let it go my man, I'll deal with the bottom part (I didn't even realize it was problematic). Thank you for the tips, and the advices, I really appreciate it! <33


text:
Double-Jointed Leg Rig doesn't equally distribute rotation amongst joints
I'm trying to make a simple leg rig, but I want to make the knee have its own bone. The rotation should interpolate between the other two bones. I have Inverse Kinematics set up, but it doesn't rotate the joints equally when I move it around. Are there any good methods to do this? Of course, this could possibly work with Forward Kinematics, but that is not how I want to go about it.
I'm not worried about mesh deformations since my model is made up of multiple objects.
As you can see in this image, it's a little off. Its shape should look like an isosceles trapezoid, but this one isn't symmetrical. It seems to rotate the shin more than it does the knee. Does anyone know how to fix this problem?

If the thigh and shin bones are the same length, there is a simple solution.
Step 1

Create an offsetted IK system as shown in Figure 1. In the figure the Knee.L.001 bone has a Damped Track constraint to the ShinIK.L one. And the Thigh.L.001, Shin.L.001, ShunIK.L and KneeIK.L bones make up the basic IK system.
Step 2

Add deforming bones, Thigh.L  and Knee.L, as shown in Figure 2. However the Thigh.L.001 and Knee.L.001 bones are intentionally hidden. In the figure the Thigh.L bone's rotation is constrainted by the Thigh.L.001. And the Knee.L bone has a Damped Track constraint to the Shin.L one.


text:
Blender 3.6 Transform Panel, adjust amount of rotation for one click?

Hi, I mean the little arrows in the marked area. It was 0.1 degree per click (and also when hold & drag the minimum steps) before but now it's 1 degree after Blender 3.6.
I do product renders and I used to adjust camera angle here. But now 1 degree is way too big, I have to type in a number or use R key + XYZ key which  IMO is not as convenient as befoe.
Is it possible to change it back to 0.1 degree or adjust the number and how?
Thanks

It seems like that's impossible. Could use Python to make some operators and place some buttons on the UI, but is it really worth the trouble?.. It's possible to make really fine adjustments with regular rotate while holding shift down.


text:
Create smooth displaced surface meshes without high face counts
So I am trying to model a smooth surface for a lamp, that will eventually be 3d-printed.
I want it to look like this:

Unfortunately, to get this looking smooth, it needs a ridiculously high subdivision count, like 7 or 8 which results in this 'simple' design having many, many millions of faces and becoming a completely unwieldy mesh.
The problem is that with less subdivisions, which keeps the mesh very manageable, it looks like this:

My limited knowledge of 3D modeling tells me, that such a result would typically be done with a shader effect rather than actual in-mesh geometry, but since this needs to be 3d printed, it actually needs to be solid geometry.
Applying something like the smooth modifiers doesn't help, because the problem is that the quads are being "bent" over the generated ridges. In an ideal solution, I think I would want to somehow remesh this thing so that vertexes run along the ridgelines.

Does anyone have a good idea of how to generate forms like this (displaced noise wood texture) without absolutely blowing the mesh budget?

How the surface elevation is defined ? From a mathematical expression ? It looks like from the second picture to be computed on a XY cartesian grid.

@StefLAncien I used the displace modifier, set to texture mode, and used a wood grain noise texture

Welcome to computer graphics and 3d (this is a completely normal situation where you need more geometry or better topology)
Sometimes some forms need a lot of geometry. Since it needs to be 3d printed the geometry also needs to be real so no shader trick will work here.
What you could do is avoid all the unneeded topology subdividing creates by modelling it manually so you can make sure you only have topology you really need to hold the form. More deliberate topology can hold the same forms as larger amounts of uniform topology:

You could also use decimation that will also try to take forms into account automatically and may in some cases be the only practical approach even though it may deform the forms in some undesired ways. There is Decimate modifier for that or you have Decimate operator that you can use for selected geometry in edit mode:

Is there any procedural way of generating the better mesh topology like in your first example? A core goal is for me to be able to modify noise, size, distortion, etc and a hand-modeled approach loses that flexibility

Probably. You should ask another question specifically about that and geometry nodes, maybe someone could help with that.


text:
Render ONLY the Reflection
So I have these balls flying like meteors from behind an Earth.
Each ball arrives at it's location and the next one comes out.
Since I'm rendering the balls separately (Programmatic Sequence Rendering ), I had to get rid of the Glossy effect showing the particle effect of ball 2 reflected on the glossy texture of ball 1 (etc....).

Is there a way to render ONLY that glossy reflection parts, that appear in the images above?

Not sure what is the problem without screenshots, but try rendering Glossy Direct and Glossy Indirect render passes; they contain information about reflections (enable them in Render Layers tab > Passes rollout).

There, added images.
Can I render ONLY those passes? How?

To render only one pass enable it in Render Layers tab > Passes rollout and uncheck everything else. Although this might not be the solution as reflections can conflict because of separate rendering of those balls.

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


text:
How to select outer edge of selected faces?
For example, when faces like below are selected, is there any fast way to switch the selection from the faces to the edges that are marked as blue? (Deselect the faces, select only the outer edges.)

Damn Vegetables asking some damn good questions :)

With the desired faces selected, go to Select > Select Loops > Select Boundary Loop.
If you use it frequently, right click on Select Boundary Loop, and add it to the Quick Favourites menu (Accessed by Q)

Why didn't I know about this yesterday? :)


text:
How to add a submenu to "Object" -> "Set Origin"?
I tried to do the same thing as an existing answer but Under Object -> Set Origin. I mean, the Set Origin currently shows 5 elements. How can I append First Menu at the bottom of it so that the Set Origin would have 6 elements?
import bpy

class MyCustomMenu(bpy.types.Menu):
    bl_label = "First Menu"
    bl_idname = "OBJECT_MT_custom_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello First Menu!", icon='WORLD_DATA')

def draw_menu(self, context):
    self.layout.menu(MyCustomMenu.bl_idname)

def register():
    bpy.utils.register_class(MyCustomMenu)
    #bpy.types.VIEW3D_MT_curve_add.append(draw_menu)
    bpy.ops.object.origin_set.append(draw_menu) #Does not work.

def unregister():
    bpy.types.VIEW3D_MT_curve_add.remove(draw_menu)
    bpy.utils.unregister_class(MyCustomMenu)

if __name__ == "__main__":
    register()

It is not a menu you can append to using method shown in linked answer.  It is a menu created from the enum items available for type property of origin set operator.  layout.operator_menu_enum("object.origin_set", "type")

@batFINGER So, it is not possible to add a menu item under "Set Origin" using add-on?

Not impossible, would need to overwrite (rewrite) set origin operator, or blenders UI code, both options I would not recommend.  (Altering UI code is IMO a very slippery slope to go down)  Writing a new operator with same bl_idname is a lesser of two evils. Low level versions of most options for origin type have been used as answers here.  Do you want to go down this road?

batFINGER is right, it's the only item of that menu which you can not append to, see the source code: https://i.sstatic.net/pnJrb.png

@batFINGER. I am not familiar with Python or Blender add-on. What is the least hacky way for doing it with an add-on? If adding a submenu below "Set Origin" is a difficult one with no clean way, I could just add the item at the bottom of the "Object" menu. Sure, having a menu for setting a custom origin at the bottom of the Object menu is not as well-organised or convenient as having that in the "Set Origin" submenu,  but if Blender has been designed that way... In case that it is not that hacky, please show me an example to add a menu there by creating a new operator with the same name.

Just replace VIEW3D_MT_curve_add menu type with VIEW3D_MT_object, done.

Adding a new op and / or overriding the old.
It is not a menu you can append to using method shown in linked answer. It is a menu created from the enum items available for type property of origin set operator.
layout.operator_menu_enum("object.origin_set", "type")

Not impossible, would need to overwrite (rewrite) set origin operator, or blenders UI code, both options I would not recommend. (Altering UI code is IMO a very slippery slope to go down) Writing a new operator with same bl_idname is a lesser of two evils. Low level versions of most options for origin type have been used as answers here. Do you want to go down this road?

In case that it is not that hacky, please show me an example to add a
menu there by creating a new operator with the same name

Ok let's go down that road. Overriding an operator is as simple as registering a new one with the same bl_idname

Ran the code first with bl_idname = "object.simple_operator" and the next time with origin set.  Simple is prepended atop menu, the latter replaces the enums of original in menu
The example below uses the simple operator template.  The options for the type property of the original are used to build the items of the new.
Have only added code to change origin for bottom center (using code from https://blender.stackexchange.com/a/42110/15543 )
NOTE: test code below overrides the origin set operator.  Will most likely need to restart blender to get the old one back.
import bpy
from bpy.props import EnumProperty
from mathutils import Vector, Matrix

def origin_to_bottom(ob, matrix=Matrix()):
    me = ob.data
    mw = ob.matrix_world
    local_verts = [matrix @ Vector(v[:]) for v in ob.bound_box]
    o = sum(local_verts, Vector()) / 8
    o.z = min(v.z for v in local_verts)
    o = matrix.inverted() @ o
    me.transform(Matrix.Translation(-o))

    mw.translation = mw @ o

def main(context, origin_type):
    ob = context.object
    if origin_type == 'BOTTOM_CENTER':
        origin_to_bottom(ob)
    else:
        print(f"Add code for {origin_type}")

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    #bl_idname = "object.simple_operator"
    bl_idname = "object.origin_set"  # override the old one
    bl_label = "Simple Object Operator"

    def items():
        items = []
        rna = bpy.ops.object.origin_set.get_rna_type()
        for i in rna.properties['type'].enum_items:
            items.append((i.identifier, i.name, i.description))
        items.append(('BOTTOM_CENTER', "Bottom Center", "Set origin to Bottom Center"))
        return items

    type : EnumProperty(
        items=items(),
        default=rna.properties['type'].default)

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context, self.type)
        return {'FINISHED'}

def draw_menu(self, context):
    self.layout.operator_menu_enum("object.simple_operator", "type")

def register():
    #bpy.types.VIEW3D_MT_object.prepend(draw_menu)
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

Prepend another or overwrite the old?
Leaving the choice up to you. Not currently aware of a way to copy the execute method of a built in operator hence will need to rewrite each of the other origin types.  Some are covered in the links below.
My suggestion would be to not override, instead make a new operator that uses the bounding box as a coordinate system.  The origin (arbitrarily the) front bottom left corner and all other corners scaled such that opposite corner to origin is (1, 1, 1).  In this case bottom center would be (0.5, 0.5, 0)
The user could be given the option of choosing from predefined list (that sets the offset) or a custom option with popup to set the offset themselves. eg origin a third along bottom front edge of bbox set offset to  (1/ 3, 0, 0)
Related
How to compute the centroid of a mesh with triangular faces without using Blender's built-in functions?
Get center of geometry of an object
https://blender.stackexchange.com/questions/161823/origins-to-the-down-of-the-object-by-default/163258?r=SearchResults&s=6|8.6222#163258
Setting mesh's origin in python (2.8)

There is a problem. After running the script, only the newly added "bottom centre" works and existing methods like "Origin to 3D cursor" do not work any more.

Please read the answer fully. "Have only added code to change origin for bottom center"  in way of  example of how to append to that menu,


text:
How to hide the main menu and the toolbar of the 3D View?
I'd like to hide the main menu and the toolbar of the 3d View:

How can I do this?

From what I can gather, you're using an Apple computer. I work on Windows. The second row is the view's menu bar, THe first row is the global menu bar. For the view's menu bar, you can do it via context menu on the bar (right click on Windows), and select Show Header or Alt+F9. For the global menu, it used to be a part of the python console, but now it is stand-alone, so I'm not sure

There should be some kind of switch for Mac to integrate Blender menu into the app menu, it is present in some software, but it is a Mac only thing.

When you look for these kinds of things, the Preferences > Keymap (keyboard shortcuts) is very handy, because you can search all the commands. Also you have the space-bar (execute command). Interface switches may be spread acrross the Interface, System, Theme and Editing tabs of the Preferences window.

View menu > Area > Toggle Fullscreen Area.
Keyboard shortcut: Ctrl+Alt+Spacebar.

... and right-click on the header bar to disable Show Header


text:
How to add a parent to multiple disabled objects?
I select couple of objects in outliner and they are disabled (monitor icon is off). I don't want to enable it. I want to add a parent to those objects. If I select them in outliner and in object property, I set the parent (and pressing Alt), it's going set the active one only, not the selected objects.
If the objects are not disabled, then Alt will work to apply the parent for multiple objects.
Anyone got a solution using python or any other manual way?

No need for Python, you can do it in the Outliner. Select all objects that you want to parent in the Outliner, then with Shift+LMB drag them onto the object which should be the parent.


text:
How to sort multi-user objects?
I have a list of all multi user objects per layer:
multi_user_list = []

for obj in bpy.data.objects:
    if obj.layers[0]:
        if obj.data.users > 1:
            multi_user_list.append(obj)

How I can sort the list by objects with the same user?
E.g.: [(cube, cube1), (cube2, cube3)]

It's probably not optimal but I found a method that works:
multi_user_list = []

for obj in bpy.data.objects:
    if obj.layers[0]:
        if obj.data.users > 1:
            multi_user_list.append(obj)

group_list = []
group = []

for obj in multi_user_list[:]:
    for ob in multi_user_list[:]:
        if obj.data == ob.data:

            group.append(ob.name)
            if ob in multi_user_list:
                multi_user_list.remove(ob)

    if group:
        group_list.append(group)
    group = []

print(group_list)


text:
Refresh the UV Map with a new topology
I will use an easy example to focus my problem.
I have a cylinder, with this unwrap below. I scaled and moved the islands in the UV layout in order to optimize my UVs.
Right now, I don't want to modify my Uvs' island more . . . Suppose island's position and scale are perfect for my purposes. They have just to stay there.

Here's the problem: I can't export my cylinder with this topology (problem of my engine) then I have to fix my mesh in this way:

I didn't touch any mark seams during the process.
My question is: is there a command or a path in order to refresh the UV map? I would like to "refresh" the UV map with the new topology for the top and bottom face of cylinder without doing again the unwrap and scale-move my island.
P.S. I don't want to move again my UVs' islands because I already created the texture (with the first UV) and I'm afraid of not bieng able to match all perfectly with a new unwrap.
Thank you!

How did you convert Ngon to trianglle fan ? If with Poke Faces then there shouldn't be any need to fix UV map, the poked faces will be there.

I delete the big face (delete only the face) - select the edges around - extrude them - Alt M - Merge in Center

In cases like this it's better to avoid deleting any geometry because it means no way to update UV map without unwrapping once more.. However you can unwrap only one face. Or pin everything you don't want to touch and unwrap. Related - http://blender.stackexchange.com/questions/26791/selecting-part-of-a-object-for-the-uv-map

That's wonderful !! I'll try using pin. If i unwrap a single face, with all the rest "pinned" do you think the face will be unwrap in the same inital position of the older uv map? Like in the example of the cylinder: how could be the workflow? @Mr Zak if you upload an answer will be awesome!

In this example you have 2 options. One is to poke face, which will divide it without distorting UV map and second is to pin vertices of the UV map, do what you need to do with the face and unwrap everything again without moving UV map.
Here is how it's done:

Perfect this is the workflow @Mr Zan was talking about! Tahnk you so much!!


text:
The "reset of the scale" flips and destroys my normals
I had this mesh with these Normals:

The column had a "wrong" scale

and I wanted to set it to 1 1 1.
Then I pressed Ctrl + a and scale.
The result was that:

The normals are upeset and destroyed (if I flip all with Ctrl + n the final result isn't good . . .  the normals, although flipped in the right direction, don't come back to the origin.

My question is: is there a way to set the scale (1 1 1), avoiding the total distorsion of the normals? Or maybe, am I making any mistakes?

It should work to duplicate your object, before applying scale, and use a Data Transfer Modifier to transfer the custom normals from the duplicate object to the corrected object:

Hopefully that does the trick.


text:
Problem of extrusion with mirror
This is my mesh (the cube) and the goal is to extrude the upper part

The idea is to get THIS FINAL RESULTS BELOW:

In order to achieve this goal, I used ,as always ALT + S, but the result was this one:

My question is: Alt + s works perfectly with all the mesh i used before: why in this case, with a mirror, i get that distorsion? Is there a way to fix it?
Thank you!

You need to switch "even thickness ON", after command starts...
eg: after pressing ALTS...

then pressing S or ALT, thus getting:

which it seems to be what you wish to obtain...

Or, to put it simpler, initiate with Alt+S, then press S again to turn on "even thickness". The "interactive" variant would be Alt+S, then press and hold Alt.

authors: Ирина Резниченко


text:
How do you remove a uv map by index with python?
Can  delete a UV Map / Texture, via
bpy.ops.mesh.uv_texture_remove()

But how can I delete a UV Map by it's Index?

Set the active index,
Similarly to materials and other lists where the active and active index can be set.
Example in python console.  The 3rd UV map is active
>>> C.object.data.uv_layers.active_index
2

Change instead to second (index 1)
>>> C.object.data.uv_layers.active_index = 1

Operator removes the active UV map
>>> bpy.ops.mesh.uv_texture_remove()
{'FINISHED'}

See also How to find and delete extra UV layers on many objects? : can remove directly using the remove API method.
>>> C.object.data.uv_layers.remove(C.object.data.uv_layers[1])

Thank you so much!!


text:
How do I make a hotkey that changes a property?
In my addon (Blender 2.8) I would like to have a hotkey that changes the value of a Property (to be exact: a BoolProperty which is a part of a PropertyGroup). I have found a way of doing this for an Operator, but I can't figure it out for the Property.
Properties are mentioned as a possible space_type for new keymaps, but it wasn't enough info to get me going. How can I achieve this?
The code I have right now does not work (i.e. the hotkey 1 is not executed):
import bpy

class FP_PT_user_panel(bpy.types.Panel):
    bl_idname = "FP_PT_user_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_label = "Test Prop"

    def draw(self, context):
        layout = self.layout
        col = layout.column(align=True)
        col.prop(context.scene.brush_properties, 'is_smooth_brush', text='[1]Smooth brush', toggle=True, icon="BRUSH_SMOOTH")

class BrushProperties(bpy.types.PropertyGroup):
    def smooth_brush_handler(mod, context):
        # some other stuff here #

        for a in [a for a in bpy.context.screen.areas if a.type == 'VIEW_3D']:
            a.tag_redraw()

    is_smooth_brush: bpy.props.BoolProperty(default=False, update=smooth_brush_handler)

addon_keymaps = []
classes = (
    FP_PT_user_panel,
    BrushProperties,
)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

    bpy.types.Scene.brush_properties = bpy.props.PointerProperty(type=BrushProperties)

    kcfg = bpy.context.window_manager.keyconfigs.addon
    if kcfg:
        km = kcfg.keymaps.new(name='3D View', space_type='VIEW_3D')
        items = []
        addon_keymaps.append((km, items))
        kmi = km.keymap_items.new("wm.context_toggle", type='ONE', value='PRESS')
        kmi.properties.data_path = "scene.brush_properties.is_smooth_brush"
        items.append(kmi)

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

    km, items = addon_keymaps.pop()
    for i in items:
        km.keymap_items.remove(i)
    addon_keymaps.clear()

    del bpy.types.Scene.brush_properties

if __name__ == "__main__":
    register()

Possible duplicate https://blender.stackexchange.com/questions/58486/add-toggle-hotkey-to-custom-checkbox   Please add detail of property, re getting its path from context to use bpy.ops.wm.context... operators.

@batFINGER Thanks a lot for that reference! I was able to create this MCVE, but I must be missing something since it still does not work.

Can confirm that bpy.ops.wm.context_toggle(data_path="scene.brush_properties.is_smooth_brush") works as expected in the console. This will also work, but another shortcut assigned to 1   eg object mode hide collection. is taking precedence.  Search for those assigned to 1 and take them out to find the one, or choose another keymap.

@batFINGER thank you for your assistance, I think I can make this work now.


text:
Scatter objects addon not working
I was following a tutorial on youtube and trying to make a city in Blender. I used the scatter object mod to scatter buildings around. It worked at first but then I am not happy with the result. So I deleted them and tried to redo them. But when I try to scatter the buildings again, I can't. I pressed f3 selected the scatter object option but when I draw, nothing happens. And when I press enter, an error message popped up. Please help.
Here are some photos:
When I selected the Scatter Object option and try to draw the objects:

When I pressed enter:

Here's a photo of my addon preference:

And here is the error message:
Traceback (most recent call last):
  File "C:\Program Files\Blender Foundation\Blender 2.90\2.90\scripts\addons\object_scatter\operator.py", line 81, in modal
    self.create_scatter_object()
  File "C:\Program Files\Blender Foundation\Blender 2.90\2.90\scripts\addons\object_scatter\operator.py", line 130, in create_scatter_object
    self.get_all_matrices(), len(self.objects_to_scatter))
  File "C:\Program Files\Blender Foundation\Blender 2.90\2.90\scripts\addons\object_scatter\operator.py", line 453, in make_random_chunks
    return make_chunks(sequence, chunk_amount)
  File "C:\Program Files\Blender Foundation\Blender 2.90\2.90\scripts\addons\object_scatter\operator.py", line 457, in make_chunks
    return [sequence[i:i+length] for i in range(0, len(sequence), length)]
ValueError: range() arg 3 must not be zero

location: <unknown location>:-1

Please help.

I fixed it and I realized I was a total moron. I didn't know you have to select the plane instead of those buildings when using the scatter object addon.


text:
"Bake" Array and Curve modifer animation for GLTF export?
I'm having a bit of an issue optimizing my model for export to GLTF. Specifically, since GLTF does not allow modifiers, and any animations need to consist of basically pure keyframes. This causes an issue, most easily explained with these two gifs:

In Blender
In GLTF Viewer

Here is my modifier setup on the "power beads":

The issue, as I understand it, is that when the modifiers get applied, their path-following goes away.
So, is there any way to convert this specific animation from "modifier-driven" to something that works with pure keyframes or is otherwise GLTF compatible? Is there a completely different approach that would serve me better here? I want to animate power flowing from point to point, and have the ability to control the speed and direction of the animation in JS (which, for example, three.js can do)
Thanks!

Alright. I figured it out, but the process is a bit of a pain. Here's how I did it:

Create single sphere and curve. Use Ctrl+P and Follow Path to parent the sphere to the curve.
Select the sphere, and use the Object menu to Clear Origin. The sphere should jump to the start of the curve.
Fiddle with the Follow Path settings in the curve's properties to get a speed you like.
Once satisfied with the animation, select the sphere, go to Object, then Animate and Bake Action. Make sure to input how many frames and check the Visual Keying box.
With the baked animation, the sphere jumps somewhere else so you need to clear the parent: Clear Parent on the right-click menu of the object.
Go into Animation, and make sure you're looking at the Dope Sheet. With the object selected, duplicate it in the 3d viewport, and then offset the duplicates of the keyframes by however many frames you want.
Repeat this process until your entire loop is seamless. You'll need duplicates going both forwards and backwards on the timeline.
Select all the duplicates and delete all keyframes that are outside of the looping portion. This is important for GLTF, because otherwise it will start at the first keyframe regardless of where your Start is set and go to the last keyframe regardless of End frame.
Group the animation actions. Change from Dope Sheet to the Non-Linear editor, and then for each object, click the Push Down button in the bright orange section. A new, gray line will appear with a star. Name this something--all elements such named with the same name will be grouped as a single animation in the final GLTF file after export.

Thanks for this, finally a solution that works. Any chance you also figured out how to apply a curve modifier in the gltf? (Think conveyor belt where blocks curve around the ends)

This deserves an addon or something. I'm trying to animate a tank track and although I totally understand this process works, I'm going to lose my mind have to repeat this 200 times.


text:
Not finding my renders
I changed all paths in the blender output to the download folder and I hit render
I find there a new .blend file and a new empty folder called blender_evqBBq.
Can anyone figure out where my image render is?
yes I changed the paths in preferences and by the output render settings EVERYTHING
oh and I'm on a Macbook

https://docs.blender.org/manual/en/latest/render/output/properties/output.html

Hi. This question is not answerable, since only you know how you set up your render and only you have access to your own computer. Nobody can say for certain even if you rendered any images at all. Also, I don't think this questions meets BSE quality standards. You are supposed to put at least minimal amount of effort to research on your own before asking.

Only the rendered animations will be saved into the folder set in your Output panel. For a single image (Render > Render Image or F12), you need to open the Image Editor (or use the window that pops up when you render, which is an Image Editor window), go into the top bar > Image > Save As. Note that the Image Editor has several slots, you can temporarily keep several images during your Blender session, but they will be lost as soon as you'll close your file.

So thank you very much for this answer because no one tells me that to see a single image you have to save it after the actual rendering...
and only a video animation will be saved there by itself


text:
Shoulder Movement following the arm
I would like my shoulder bone follows the movement of the arm like this gif below;

The theory is very clear but I can't realize it in Blender. I think the key should use Copy Rotation but I can't set it right.
Is my supposition correct? If yes, what should be the worflow to use the constraint in this situation?
If copy rotation doesn't work, there could be another solution for this problem?
Thank you!!

Set the shoulder bone copy rotation from the upper arm bone, both to local space, with influence not complete (1.0, in my example is set to .411).
In the armature tab of the properties panel activate the axis visualization, to see which is the only axis to copy (i.e. Z axis).

You tick the Z axis. If I also select X and Y, the shoulder will follow the arm all Long the 3 axis? Or this could create problem? I'm not at home and I can't check right now

Yes, with all 3 axis ticked the shoulder will follow the arm rotations in all three axis, wich can simply lead to innatural movements. The choice it's up to you, also depending by the model. In the GIF in example the rotation is only on 1 axis.

Ok Thank you! As soon as I can I try your solution and I'll tick as correct at home.

In my case I had to use a Transformation constraint in order to make the model depicted in this question and referenced in this answer: https://blender.stackexchange.com/a/41550/50766 work properly since the shoulder X axis matches the upper arm Z axis. But this answer helped me in my way to figure all this out. Thank you.

@Kevin Remo you're welcome, it's easiest if you think that the axis visualisation is located at the root of the bone, not at the tip (actually, I don't know why they decided to draw it on the tip!)

As far as I know, there is no clean way to automate the shoulder rotation in Blender.
It creates a dependency cycle, since the shoulder is parent of the arm bone, that could be only avoided with a more sophisticated dependency graph that could handle multiple updates orders:

the shoulder drives the arm position/rotation
the arm drives the shoulder rotation
=> cyclic dependency.

The solution given by josh sanfelici leads to this cyclic dependency unfortunately. It's an important issue because it:

gives incorrect bones rotation
leads to lags when manipulating the rig
slows down script execution
slows down Blender performances

So this should be avoided at all costs.

I know I'm a little late to the party, but the way I do this without causing cyclic dependencies is by using an action constraint. This way what is driving the shoulder movement is entirely independent of child positioning. I just made an answer about this below.

I know I'm a little late to the party, but the way I do this without causing cyclic dependencies is by using an action constraint. This way what is driving the shoulder movement is entirely independent of child positioning.
To do this, create one action for each shoulder that rotates the shoulder up to it's maximum possible upwards position. Key that position on frame 20 of the animation, and key the rest position on the first frame.
Then use similar settings to mine in the screenshot below.

authors: Сергей Васильчук


text:
Why will 'Copy Rotation' constraint make this object point in an unexpected direction?
I'm trying to get an IK rig set up for a lamp and have tried to use constraints on the objects in the scene.

What I'm trying to do is to tell the lower strut of this leg to copy the rotation of the strut next to it (which is parented to a bone in the armature), however, as soon as I set the target to the parallel leg, it flares out from the model in a way I didn't expect.

I've tried to change the axis in the 'Copy Rotation' constraint settings to no avail, checked the origins of the objects but I can't quite wrap my head around why it's behaving like this - any idea where I've gone wrong?

You might want to upload your .blend so others can more easily investigate what's wrong with it's rig.

Examination on your blend file points to the fact that your lamp_arm_lower_A and lamp_arm_lower_B have mismatched local axis. Since their local axis are different when you copy the rotation from lower_A to lower_B the rotations are applied in the wrong places.
What I did to fix it.

Select both lamp_arm_lower A and B.
Hit CtrlA select "Rotation". This reset the local axis orientation.
Now apply your "copy rotation" constraint. It should work.

Observe that the white axis belows to the lower_A. The colored axis belongs to the lower_B object. X is pointing towards the left for lower_B and X is pointing towards the right for lower_A.

Here is the blend file after applying the corrections.

Excellent! Thank you. While I may approach this specific IK rig differently from here on, this should come in handy in the future if I come across a similar problem with any constraints.

Yes I would suggest you pay great attention with the way local axis are oriented. They are the bad boys when it comes to rigging.

From my experience, unless you have a good reason to use the Copy Rotation constraint, it is best to parent the object in question to the armature. If, as I believe to be the case here, there's no need to deform the mesh (i.e. all movable parts are separate objects), you can use the Bone parenting mode. Using this mode will make it so you're not required to use weight groups, which are irrelevant if the object is not to be deformed but only transformed.

Thanks for the reply - with this rig, my idea was to have the armature control the struts at the front of the model and use object constraints (Locked Track with empties as targets for the joints of the lamp and Copy Rotation to make the struts at the back to follow the struts at the front) to make the rest of the model follow along with the armature. I've uploaded my .blend file (thanks for the upload link). I'm a novice - if that - when it comes to rigging so I may be way off-base in regards to how to rig this particular lamp. Blend File

Oh.. I see what you mean. Then this might not be a good approach, no. You see to have tried to use Inverse Kinematics but then gave up..? The driver bone has an IK constraint, but it's not setup.


text:
Cycles GPU renders transparent
I have (remote) access to a pretty powerful machine: i7/128GB RAM/2X Titan-X 12GB GPU/ Ubuntu 14.04, but when I try to use it to render any scene with Cycles (Blender 2.69/2.71) using GPU Compute all I get a checkerboard fully transparent render (similar to this post).
There are no errors in the "info" screen and in the top of the render view it says: "Frame 1| Time 00.00.25 |Mem:26.35M ,0.00M Peak 34.28M".
Unlike the post in the link, this is clearly not a GPU RAM shortage problem.
I'd appreciate any help here - even an educated guess can help me at this point, thanks!

It's probably a driver problem. Does it happens with all the scene? You have problem with other CUDA applications? If you think it's a genuine bug file a bug report with step to reproduce. But when you are asking for help it's always good to attach a file and show that you've taken away all the most obvious issues (like driver installation, user preferences, render layers, etc) otherwise you'll see little reaction because it can be anything...

authors: นัธวัฒน์ ทองแจ่ม


text:
Swap two curves in the Graph Editor
There is another question on this forum with the same title but the answer given and accepted has nothing to do with what I am asking here. What I ask is this:
Suppose I have a cube rotating by X and Y. Now I need to transfer all keyframes in X to Y and vice-versa or, in other words, swap X and Y rotation animations.
Is that possible from the graph editor or by any other mean?

Quite simply swap the array_index property, which designates which component of an array property (eg location.x or location[0], has array_index == 0), of the two fcurves.
Example below using the python console, location as an example, change to rotation_euler for Euler rotation.
action = D.actions['CubeAction']
fx = action.fcurves.find('location', index=0) # location.x
fy = action.fcurves.find('location', index=1) # location.y
fx.array_index, fy.array_index = fy.array_index, fx.array_index

It is. Now, there may be another, more efficient way of doing this (add-on, maybe? or a bit of Python would probably be the quickest way), but here's one approach I've found just using the graph editor:
Basically, the method below is just like swapping two variables (say X and Y) in programming where you'll need to have a third variable (say Z) for an intermediate step. To recap, the steps are:

Assign Z = Y
Assign Y = X
Assign X = Z

To do the same thing in Blender in the graph editor, you'll need a channel where you can temporarily store the keyframes from the Y-channel. For this you might be able to make use of the Z-channel in the same object if that's not being used (e.g. its keyframes all have a value of 0), but if not you can always create a dummy object with at least one keyframe and pick whatever channel in that object to act as the "Z-channel" mentioned below. (The same process can be used with a dummy object, you'll just need to switch between the objects to make a channel visible.)
I'm assuming some things here, like you're familiar with how to select all visible keyframes, but let me know if any clarification is needed.

Make sure your current frame is frame 1 and select the object you need to switch channels
In the graph editor, isolate the Y-channel (turn off visibility of the other channels) and select all of the Y-channel keyframes
Press Ctrl-c (Cmd-c on Mac, right?) to copy the Y-channel keyframes to clipboard
Turn on the Z-channel and make sure it's the active channel
Press Ctrl-v (Cmd-v on Mac?) to paste the keyframes copied in step 3. Your Z-channel should now look exactly like the X-channel
Isolate the X-channel (turn off visibility of the other channels) and select all of the X-channel keyframes
Press Ctrl-c to copy the keyframes
Turn on the Y-channel and make sure it's the active channel
Press Ctrl-v to paste the keyframes copied in step 7. Your Y-channel should now look exactly like the X-channel
Isolate the Z-channel (turn off visibility of the other channels) and select all of the Z-channel keyframes
Press Ctrl-c to copy the keyframes
Turn on the X channel and make sure it's the active channel
Press Ctrl-v to paste the keyframes copied in step 11.
Reset the Z-channel keyframes back to whatever they need to be.


text:
Why blender keeps crashing while rendering this simple animation?
I'm running blender on Windows, and every time I try to render the animation to an .mp4 H264 video with audio blender crashes between the frames 300-400. This video has about 16,000 frames. Each frame takes about 4 seconds to render
By reading on other forums I found that sometimes the problem is that blender runs out of memory but I think this is no the case because blender is always using about 450MB of ram in my 8GB computer.
Here are my specs and some of the rendering settings:

Intel Core i7 2.4GHz

8 GB Ram

Windows 10

Shading (Textures, Shadows, Ray Tracing, etc...) - All disabled

Antialiasing 8x

Render size: 1920 x 1080 at 30fps

Threads: Auto (4)

Tile size: (Tested with both 64 and 512)

Video codec: MPEG-4 H.264

Audio codec: AAC at 192 bps
I haven't modified any other performance settings

The scene is a music video done with animated cubes with GxAV and a plane with a particle emitter with 10,000 billboard particles
Is there a way to reliable render this with blender?

What is the Blender's version ? Probably this is a bug; try rendering those frames where it crashes manually (i.e. set frame in the Timeline to desired one and render). Is the render done with CPU or GPU ? Is this animation the only one where Blender crashes ?

Blender version is 2.7.6.0 and the rendering is done on the CPU. I think I found the solution, that is to render with console only and limit the number of threads to 2 instead of auto. If my render finishes correctly i'll post this as an anwser

I found the solution, that is to render with console only and limit the number of threads to 2 instead of auto with the command:
blender -b "file name.blend" -a -t 2

Thanks for sharing! Might it be due to a CPU problem? You might try out a stress test to confirm your CPU is working properly. Oh and you should mark your question as answered as well...


text:
Shadow artefacts when rendering with bevel-modification
When rendering with bevel-modification some parts appear non-beveled on the shadow side of the object.
This doesn't appear when using the "manual method", ctrl-b. File attached: spraycover.blend
What is going on, how can I prevent this?

In short - you have to change Profile Shape to 0.5

With Segment = 1 it's fine ...

... but appears on 2 segments. Why?

Because with 2 segments the beveled edge is split onto two faces and since your Profile Shape is set to 1 in generates back angle 90deg and only shading (Normals) stay smooth. There is still enabled Auto Smooth in Data Properties driven by modifier that seems to be confused - shade it smooth or flat? You can check that if you Apply modifier to see topology ...

... if you go to Data Properties > Geometry Data and hit Clear Custom Split Normals Data it becomes fixed.

Anyway, back to your issue. What you have to do is to change Profile Shape to 0.5 so the bevel create interpolation between those two faces - round it.

Excellent! This solved my problem and your thorough and comprehensive explanation demystified the matter for me (also I have noticed the phenomena when changing step 1 to 2 in segments). Thanks alot.

It is possible that you have duplicate geometry, or that the corners are made up of 2 unconnected faces. To clean up your mesh, you can try Mesh > Clean Up > Merge by Distance. This will "snap together" all vertices that are within a certain distance of each other.
If this doesn't solve your problem, you might have to manually inspect the faulty areas of the mesh. Select the  vertex you are having issues with, and move it out of the way to see what's going on. This might help you understand how the mesh is connected, and what is causing the problems.

Thanks for your suggestion! Double vertices is a major cause of troubles and are on my troubleshooting list :)
I'll also acknowledge your proposal of manual inspection.


text:
Cannot inset on mesh properly
im first time making 3D head model an when i try to inset face it makes this weird shape. I think it's because of my scuffed mesh? When i tried doing it on simple cube it works as it should.
And yes i have applied scale. Anyone got a solution?

Hello could you please share your file? https://blend-exchange.com/

@RobinBetts worked thank you very much

Your object is mirrored, and the edges of your mesh in contact with the mirror-plane are boundaries (i.e. they neighbour only one face).
So in this case, unchecking 'Boundary' in the F9 Adjust Last Operation box, or hitting B to toggle it, will cause the regions split by the mirror-plane to be treated as if they were single mesh-islands.


text:
How do i disable topology on weight painting mode?
I have this problem where when I choose an object and go into weight painting mode i can see all edges and cannot paint. This only happens on one object. I do not even know how I got this problem in a first place.

But when I go paint the body for example it is normal.

Can anyone elaborate what is happening and how to prevent this issue?

Deactivate the Paint Mask option:


text:
When using inset, rest of the face becomes angled
I am trying to create 3 squares on a face; so I use the inset tool. But then the rest of the face becomes angeled so I cant inset it. I feel like there is an easier way to achieve this?

Add 2 vertical loop cuts and inset the resulting 3 faces the same way.

Before insetting the middle face, try adding loopcuts along the width of your object. Hit ctrl+R, run your mouse wheel once or hit 2 on the number row, left-click to add and finally right-click to cancel the consecutive slide operation. Now that you have three faces instead of one, you can select all of them and do the inset. Remember to toggle "individual" by hitting I while doing the inset.


text:
Solidify Material Offset won't show up in cycles render
I'm trying to make a stick figure character, so I decided to have a white orb with black Material Offset for the head. However, the white material on the orb disappears in viewport rendered shading, leaving the entire orb black. However, it reappears in material preview. This also only happens in Cycles. Any idea as to why that could be?

can you share some pictures to better explain the problem?

Hi, Graham, Not without  more details.. or at least we can only guess. Perhaps easiest to share the faulty head in a .blend on https://blend-exchange.com/

I'm new to BSE, how do I send pictures?


text:
when I symmetrize armature it won't mirror the y axis 3.5
I am trying to symmetrize this armature in blender 3.5 so that it is mirrored across the y axis. it is on the x axis right now. when I use symmetrize it gives me a rotated version intersecting the current .l version, but i want it mirrored across the y axis.
I have tried switching what axis it is on, moving that orange dot, parenting it to a main head, and also mirroring it along the x and/or y axis, but still it is not a perfect mirror. How do I make it mirror like I see in tutorials when they click symmetrize and it's mirrored right away?

Is your armature object rotated 90 degrees?

yeah i did that when i started so now it is along the x axis

Your object's rotation doesn't impact its content rotation. Your bones may look like they are on the X axis thanks to your armature object's rotation, but in local space they are still on Y axis.
Either apply your armature object's rotation using ⎈ CtrlA > Apply Scale in object mode, or remove your armature object's rotation by hitting ⎇ AltR in object mode, and reposition your bones in edit mode instead.


text:
I'm exporting my character but the mesh keeps getting lost in export as an .fbx file why is this happening?

I Really cant imagine why the mesh wont appear when I try importing the FBX into Ue5 let alone see it in 3D viewer. I checked to each pieces data properties and they all should be visible when exporting but to reiterate its simply not appearing in the file at all. Please Help.

so while I had exported the file the mesh was included in the fbx along with the intended deform bones which was exactly what i had hoped to export though im still running into the issue when importing the fbx into Ue5 it not being able to figure out the file..

when i had imported it back into blender it hadnt saved the animation data i had hoped for it to but strangely saved the last pose from the original scene and just that frame


text:
when I install sverchok 5.9.6, the search is blank
I still use blender 2.79c and sverchok 5.1.1 ... when I install sverchok 5.9.6, the search is blank. I presume everything else works. I use Windows 10 and my PC has no GPU card installed, so I can't use blender 2.80+. Is there anything I can do with blender 2.79c to correct this?

ask the addon developer

OK thank you for the reply


text:
Blurry (Not pixelated) black spots on my surface using only Cycles
I have been trying to render my doughnut. However, I have been experiencing difficulties when I use Cycles. The doughnut would have blurry black spots whenever I was using Cycles to render. This doesn't happen when using Eevee. The render settings and also the screenshot using render viewport is provided (same effect with render viewport or normal renders)

Hi, could you provide a screenshot of your icing's material please?

Hello, the icing material is within the post after I re-edited it. Thank you!

Does the icing intersect with the doughnut mesh? Cycles uses volumetric subsurface scattering, so weird things can happen when there is a surface inside of the scattering volume. This is a common problem with skin, such as where lips touch and joints bend inward. You can check if this is the issue by hiding the doughnut mesh. If it's still happening, check if the icing intersects with itself.

Could you please share your file? https://blend-exchange.com/

@SupaKoopaTroopa64 I hided the doughnut mesh and rendered with only the icing. The problem still exists. How do I check the icing intersects with itself?

@moonboots I don't think that's possible, as the files are too big to send through. There is an entire scene with other objects included within the project. However, no other objects during rendering have this problem.

only keep the donut and its icing and share?

Maybe not the cause of the issue, but that's definitely too high of a subsurface value, usually we use values around 0.01. See materials - How to use Subsurface Scattering in Principled BSDF - Blender Stack Exchange. If you want translucency (which isn't really common in icings i think), adding a Translucent BSDF to your shader would be more appropriate.

Thank you all; by disabling the subsurface value, I was able to make the donut render as I intended. Thanks for all your help and contribution

@Outsidermm I don't really know if there is an easy way to tell if a mesh intersects with itself besides looking very closely. Another thing that might be the problem is that your scattering depth is higher that the thickness of your mesh. I don't know how thick the icing is, but assuming the doughnut is the size of the default torus, I'd guess the icing is 30-50mm thick. Dividing your scattering amount by about 5 might do the trick.

Thank you for all your input! I was able to resolve this issue by turning down the subsurface value.

Check your topology. Black spots usually mean bad topology. If not that, then mess around with the subsurf value.
EDIT
Ok, I know one other solution. Turn up your transparency bounces until the black portion goes away. Maybe you can send a picture of your donut in edit mode as well?
For the transparency bounces, go to RenderProperties > LightBounces

What does topology specifically mean? I am a beginner, so I don't really know. Thank you for your help!

Hello, Fanimation, this really needs fleshing out to be considered a truly helpful answer, IMO. For completion, I think you'd need to illustrate how bad topology can look like this. (Incidentally, this effect looks more like an anomaly arising from Subsurface Scattering settings .. but of course, I could be wrong)

Yes, thats right @RobinBetts

Topology is generally how cleanly or uniform the object has been modelled with consideration of vertex and edge spacing in relation to each other on a per model basis and clean edge loops in models which are going to animate or deform. The comment does need more clarification but I suspect they're referring to making sure there are no open faces, duplicate vertices/edges/faces which can cause a similar rendering effect. I've found Blender does this a lot when you're chopping and changing your models, especially when doing boolean operations and merge vertices operations sometimes don't work.


text:
Object Scatter not placing on the surface, any solutions that places it on the surface?
Recently, I have been working with placing down objects, including candy canes and rocks, with the Object Scatter Blender Plugin. However, I have found that the scattered duplicator (the triangles) would be placed on the surface. On the other hand, the instances of the objects (The rocks and the candies) would be placed above the surface, with no certain offset. I am experiencing this issue through three different imported models. When I used this with a candy cane model, it worked. However, I am unsure the reason behind this when I followed the same instructions.

This looks like when I tried placing these candies on the ground. While the duplicator is on the ground, the actual instances are way above the surface.
Any help would be appreciated!

Did you make sure that the origin of the object is at its geometry?

this worked. Thank you so much!

Put the origin of the object at its geometry


text:
Connecting automatically made texture nodes with bpy.ops.node.nw_add_textures_for_principled(etc.etc.etc.) with other parts of the node tree
The code I have creates an addon which takes an existing material on my model and then grabs baked image textures from my laptop before it adds them using the principle texture setup feature from the node wrangler. The image below is an example of the output after I have ran my code and hit the button on my addon.

class SHADER_OT_bunnygirl_body(bpy.types.Operator):
     bl_label = "Bunny Girl Body"
     bl_idname = 'myaddonbody.my_operator'

     #Executes once the button is pressed
     def execute(self, context):
        win = bpy.context.window
        scr = win.screen
        areas  = [area for area in scr.areas if area.type == 'NODE_EDITOR']
        regions = [region for region in areas[0].regions if region.type == 'WINDOW']

        with bpy.context.temp_override(window=win,area=areas[0], region=regions[0],screen=scr):
             bpy.ops.node.nw_add_textures_for_principled(filepath="//Body Color.png", directory="C:\\stable internship\\bunny girl\\bunny girl baked textures ATTEMPT 3\\", files=[{"name":"Body Normal.png", "name":"Body Normal.png"}, {"name":"Body Specular.png", "name":"Body Specular.png"}, {"name":"Body Roughness.png", "name":"Body Roughness.png"}, {"name":"Body Color.png", "name":"Body Color.png"}], relative_path=True)

        #I have no idea whether the following line of code works
        body = bpy.data.materials.get("Body")
        #My idea here is to connect the top Base Color image texture's alpha thing with the
        #alpha slider on principled BSDF

        return {'FINISHED'}

However, in all the tutorials I watched they manually created the new nodes on the node tree using code rather than condensing it to 1 line like I have. Because of this I don't exactly know how I can grab the image texture on the top that says "Base Color" and connecting it with the Alpha slider on my "Principled BSDF" node.
Please don't flame me if this question is really dumb I am new to this kind of stuff. Many thanks!

Assuming your material is named 'Body' instead of the default 'Material' on the selected object (bpy.context.object), you can use the following script to connect the Alpha socket output of your Base Color Image Texture node to the Principled BSDF Alpha socket input:
import bpy

material = bpy.context.object.data.materials['Body']
principled_bsdf_node = material.node_tree.nodes['Principled BSDF']

base_color_texture_node = None
for node in material.node_tree.nodes:
    if node.type == 'TEX_IMAGE' and node.label.startswith('Base Color'):
        base_color_texture_node = node
        break

material.node_tree.links.new(base_color_texture_node.outputs['Alpha'], principled_bsdf_node.inputs['Alpha'])

Works perfect thanks so much man!

Is it possible for instead of just grabbing the body material that it checks to see whether the body material exists on the object that is selected? Like for instance if I have the body object selected before hitting the button it would check whether the body material exists on the body object?

you're welcome. yes just check if material exists like if "body" in bpy.context.object.data.materials: print("do something")

thank you so much for your time man


text:
Normal Map Baking edge problem
I tried to bake my normal map tile but it didn't give me any result

When I add the bevel to the tile giving me this normal map but my tile don't have this smooth edge it's a hard edge any advice about it.

Normal bake saves the faces orientation. The bake won't happen if the rays meet orthogonal or frontal normals, it will only work if the normals are tilted. Here in picture 1 the faces won't be baked, but in picture 2 the ones that are tilted will be:


text:
Align all selected faces with the last selected face
I have written this script to try and align the orientation of all selected faces with the last selected face:
import bpy
import bmesh
import mathutils

context = bpy.context
ob = context.object
me = ob.data
#Get the translation of the object in world space
mw = ob.matrix_world.copy()

selfaces =[]

bpy.ops.object.mode_set(mode='EDIT')  #Processing must be done in EDIT mode
bm = bmesh.from_edit_mesh(me)

#Show face selection order
for e in bm.select_history:
    if isinstance(e, bmesh.types.BMFace) and e.select:
        selfaces.append(e)

# Get normal of last selected face
axis_src = selfaces[-1].normal
# local z-axis
axis_dst = mathutils.Vector((0, 0, 1))

#Rotate all faces to match the orientation of the last selected
for f in selfaces[:-1]:
    diff = axis_src.rotation_difference(f.normal).to_matrix().inverted()
    print(diff)
    bmesh.ops.rotate(bm, cent=f.calc_center_median(), matrix=diff, verts=f.verts)

bmesh.update_edit_mesh(me)

It is aligning the faces as desired. But it also seems to mirror the vertices along the y axis intersecting the centre of the object. Can anyone figure out where this is happening? I have looked at the rotation matrices for this and it looks like it is just applying the 45 degree and -45 degree rotation around the y axis.

Flip if normals are opposing.

Speculating somewhat re  the issue here, first would suggest
diff = f.normal.rotation_difference(axis_src).to_matrix()

The rotation created  is an angle about an axis, eg for cube if select top and bottom face, to rotate Z to -Z,, would require a rotation of  180 degrees about any axis on XY plane.  An example print of rotation difference quaternion to angle axis,
(Vector((-0.7071068286895752, -0.7071068286895752, -0.0)), 3.1415927410125732)

ie a rotation of 180 degrees about vector (-1, -1, 0)
For  this case it may be more logical to not rotate at all, as it is arguable that despite facing different directions the top and bottom cube  faces are "aligned".
Taking the non acitve face and winding around a full 180 will produce the crossings on vertical edges as shown in question
Perhaps could look at dot product and if the normals are going in opposite directions, flip, or ignore, an example of flip.
#Rotate all faces to match the orientation of the last selected
for f in selfaces[:-1]:
    n = f.normal
    # print the angle axis of unflipped
    q = n.rotation_difference(axis_src)
    print(q.to_axis_angle())
    print(f.normal.dot(axis_src))
    # normals opposite so flip
    if n.dot(axis_src) < 0:
        n.negate()
    q = n.rotation_difference(axis_src)
    diff = q.to_matrix()
    print(diff)
    bmesh.ops.rotate(bm, cent=f.calc_center_median(), matrix=diff, verts=f.verts)

NOTE may require a more robust test for orthogonal face normals where dot product $\approx$ 0
If any selected faces are connected to the active face the resultant faces may not be aligned. An option here would be to look for these and hinge on the joining edge(s), or single vertex, rather than face center.
    verts = [v for v in f.verts if selfaces[-1]  in v.link_faces]
    cent = (
        sum((v.co for v in verts), mathutils.Vector()) / len(verts)
        if verts else f.calc_center_median()
        )
    bmesh.ops.rotate(
            bm,
            cent=cent,
            matrix=diff,
            verts=f.verts,
            )

Thank you, this was really helpful and was exactly what I was looking for


text:
vertex coordinates in panel made with python script do not update
I modified the UI panel simple template so that the coordinates of the vertices of the selected object will be listed:
class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout

        obj = context.object

        row = layout.row()
        row.label(text="Hello world!", icon='WORLD_DATA')

        row = layout.row()
        row.label(text="Active object is: " + obj.name)
        row = layout.row()
        row.prop(obj, "name")

        row = layout.row()
        row.operator("mesh.primitive_cube_add")

        vNum = len(obj.data.vertices)
        for i in range(vNum):
            v = obj.data.vertices[i].co
            layout.label("vertex " + str(i) + ": (%f %f %f)" % (v[0],v[1],v[2]))

This does print vertex coordinates in the panel:

However, the coordinates remain unchanged when I move the plane. How can I make the vertex coordinates update real-time?

When I run this here, the values are updated on leaving edit mode (you have to move the vertices in edit mode because you read the raw mesh coordinates without object transformations).

@B.Y.O.B. Ok, that worked. I didn't realize that moving the object around as a whole shouldn't change vertex positions.


text:
'tags' attribute of a property function
It looks like that since Blender 2.80 all property functions in module bpy.props has an extra argument tags.
Documentations says

Enumerator of tags that are defined by parent class.

I don't understand which values this attribute expects and how this argument should impact on a property.
I was trying to find something in release notes of 2.8 version and didn't find any hints on this matter.

Do you know of an ID type can set this for... most throw TypeError: FloatProperty(): property-tags not available for 'Object'

Yes but: >>> D.meshes[0].polygons[0].test (<built-in function IntProperty>, {'tags': {'TEST'}})
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
AttributeError: 'MeshPolygon' object attribute 'test' is read-only```

First comment result of bpy.types.Object.foo = FloatProperty(tags=set())  whereas you are trying to set it to the Face via bpy;types.Polygon.foo which wont work because to work  the bpy.props.Foo  method  requires the type to be a subclass of bpy.types.ID or a bone. Properties on non ID types display the error as shown in comment.  You are simply monkey patching it onto the type, it is not being wired up as a property akin to bpy.types.Foo.xxx = property(setter, getter)

Looks like no one ID type can get a property with tags attribute. No sure that this knowledge is make us closer to understanding purpose of the attribute.

Sorry to resurrect a dead question, but did you ever find the answer to this? I've wondered about it for a while, and like you, I couldn't find anything about it...

@StrikeDigital No, I guess someone who is able to read C++ have to have a look at the source code to shed light on this.

tags control various UI behaviors and structure, but to me, it seems that the Python API was exposed by mistake. some comments on what each tag do are here as for Blender 4.2: https://github.com/blender/blender/blob/v4.2.2/source/blender/makesrna/RNA_types.hh#L194 but it's not useful much for us anyway. browsing the code we can see that PROP_NEVER_NULL is set for CollectionProperty, PROP_HIDDEN for various private properties that devs don't want to expose, etc. i hope some core dev will explain this mystery some day, but i think tags is useless for addon developers

authors: Сергей Солуянов


text:
BlenRig Cage Hip Collapsing
I've started working with BlenRig for my characters and It was going really well until i got to the hips.
The Left hip has no problem, it will stretch out as far as I want.
The right works good too:

So whats the problem? I work with these measurements:
Units: Meters
Length: Metric
Angle: Degrees
Unit Scale: 0.01
Therefore I must scale the rig up a fair amount.( and yes I am using Reporportion. I have also tried scaling in Object Mode and the result is a pancaked cage.) That's when this happens:

This ONLY effects the hips. I've caged the model with all other parts, but the hip just does not work.
Is there any why to fix this? What is odd-er still is that X-Axis Mirror still functions even with the mesh messing up like this.


text:
is there an easier way of doing corners like this?
im doing models of interiors and one of the parts used molding around doors. is there a easy way of doing my corners other than having to get 2 frames and work inwards towards eachother?

Can you articulate your question a little better please? What do you mean two frames? Also please describe what you mean by working inward toward each other?

I know what he means. He's using two objects and trying to join them into a door frame. There are many methods to do this, One way is to use a cube scaled to the outer parameters of your frame, and then to subdivide it or loop-cut it to mark out the inner opening, then just delete the faces and bridge the open faces along the inside.

Here's a pretty solid workflow if you don't desire to use multiple objects in the creation.
I'm posting the image sequence for now, so I don't mess that part up, then coming back to give the commentary per image.

Shift+A >> Mesh >> Plane.

Tab to enter edit mode.

I to inset the active face the desired amount.

Delete >> Only Faces.

Result of Deleting the face (giving you the major frame profile).

A to select all faces.

E to extrude the desired overall frame thickness.

Ctrl+R >> 2 >> LeftMouseButton >> RightMouseButton

Click on the Face Mode icon/button.

Z >> Select the inner ring of faces (as shown).

With your cursor just outside the outer edge of the frame E >> S >> Move your mouse toward the center of the frame the desired amount >> LeftMouseButton

Click on the Edge Mode icon/button.

Select the Edge Loops at both the Inner Top & Inner Bottom of the frame.

Ctrl+B >> Move your mouse outward the desired amount >> Either type the number of segments & hit Enter OR scroll up on the scroll wheel of your mouse the desired amount & LeftMouseButton.

Hit Tab & you are complete if you desire a 4-Sided frame.

If your desire is to have a 3-Sided frame >> Tab to enter edit mode. >> C >> Select the bottom most horizontal edges of the frame.

Delete >> Only Edges & Faces.

The result is two empty holes that we must repair/fill.

Loop Select the left most hole. >> F to fill.

Loop Select the right most hole. >> F to fill.

Select both Edge Loops again.

S >> Y >> Numpad 0.

From Steps 18-21 the profile looks wrong because I accidentally did some steps twice on my end trying to put the document together. I fixed this and the steps are good.


text:
Problems rendering hair in cycles render
I'm currently modeling a Red Panda for animation I am doing and I am having trouble rendering the hair. My model looks like this-

The render looks like this-

These are my nodes:

And here are the particle settings-

What do I do?
I've only been using blender for a few months so most things are new to me because I am only 14 years old. All answers are much appreciated. My intentions for this is to make a continuous flowing fur on the Red Panda in order to produce a seamless effect when animating and rendering the final product. I do not want a spotty fur coat with missing patches. After rendering, the object mode view of the panda is all messed up and the hair is sticking up in all different directions (see below) instead of the way I had it combed. When I press undo (Ctrl+Z) it goes back to the way I had it before.

We do not see the same size of your panda...but I believe both are the same, am I right ?

Welcome to Blender.SE! Could you spend a few word describing what exactly don't satisfy you at the moment? I know it may seems obiuouvs to you, but it may be not. Just to be sure. Please add here in the comment the links to screenshot showing the shader's node and the particles 's system relevant settings.

@lemon, you are right

Not sure bu it looks like there may be a normals issue with your model. Have you tried entering edit mode selecting all faces and recalculate normals with Ctrl+N?

@DuarteFarrajotaRamos I tried what you said and still the same spotty result

@Carlo I explained my intentions more in depth, any help and tips is much appreciated.

Well I'm out of ideas, without inspecting the file it's hard to tell what is going on. Make sure in your hair particle settings you checked the option Use modifier Stack

@DuarteFarrajotaRamos I am willing to post the .blend file, how do I do that?

You may use this site http://blend-exchange.giantcowfilms.com/ make sure you strip down your file as simple as possible to to the bare essentials to focus on the problem, and pack any relevant textures and external data

@DuarteFarrajotaRamos This is the link, it says I need 10 reputation to use more than 2 links -

File added to your question

Well not sure what you mean, I am not much into particle effects, and I don't have time to look into this in detail right now, but on my computer everything seems to be working quite fine, except for the missing textures. https://i.sstatic.net/T1x5v.jpg

@DuarteFarrajotaRamos Okay... thanks for trying, I appreciate it. If you can find anything else that would be awesome, thanks.

Whenever it comes to differences with particle systems between preview and final render it almost always has something to do with the subsurf modifier.

Always make sure that you have the subsurf modifier enabled in Render and Preview mode when you use "Particle Edit" (cut, comb, etc.). I believe that you had it turned on, when you combed the hair, since it is activated in your file (see image below)
Always set the viewport and render settings to the same value when rendering particle systems. If the render setting is lower than the viewport setting (which is the case in your file, see image below) the render process will undo or at least mess up your combed hair.

Try to set the viewport subdivs to 2 and you'll get the same messed up hair effect you had after rendering.
Set the Render subdivs to 3 and your problem should be gone.

Thank you so much. This worked!! Your help is much appreciated

Glad I could help. Could you mark my answer as accepted, please? Thx.

@jacob-lurie Please mark an answer as accepted if it solved your problem, or at least consider upvoting it if it helped you


text:
Problem with fluid simulation, cannot get fluid to move up a thin pipe

Hi all
So I created a little pipe system which I require water to flow through. It's meant to start by the water getting sucked up through the thin pipe currently located in the water and then flow through the rest of the system. I have tried to create a fluid-inflow object within the bottom end of this pipe (currently covered by water) and set its z inflow velocity up, unfortunately, this is not working. Water starts appearing in random areas outside of the pipe. I think it could be due to the domain being really large compared to the small inflow object, but not sure how to solve the problem. You can also view my blender file at

Any help would be greatly appreciated!

You can upload a file to http://blend-exchange.giantcowfilms.com/

In order for this to work, you at least need to increase your water resolution greatly.  Some of the problem may be that the water is actually going through the tube, which should be fixed by increasing the resolution.

There are several options which make fluid simulator fail while finding correct paths for fluid in this case.

Most objects in this scene have scale / rotation unapplied, so just select them all and use options from Ctrl+A menu. In case of fluid simulation, Fluid Sim modifier will not know that the scale of the object was changed if it wasn't applied to the object data. This may lead to unexpected results (same for rotation).
For more info on why is it important to apply them, see Why is it important to apply transformation to an objects data?.
There is internal face inside of your pipe mesh (assumed to water the big vessel with fluid). The face will effectively prevent fluid from going through the mesh, so delete it.

There are also several double vertices in the mesh, remove them with W > Remove Doubles.
The pipe, assumed to water the top vessel, consists of several objects; the main pipe has holes where they should connect. This will prevent fluid from coming all the way up to the top vessel because of that hole just in the middle of the main pipe:

Smaller part of the pipe was hidden
To achieve expected results of animation, join these meshes and make them manifold in the place of joint:

Topology is horrible, however at least they are joined and closed. This can be easily done by closing the gap in the main pipe, and using Boolean Union option to join objects effectively.
The joint between this joined small pipe and big vessel can be left as is - it will only depend on the resolution of the fluid.
The final result will really depend on the bake resolution. If quite low values are used (as 80 or 100), then make sure to scale the pipe a bit up, because otherwise baked fluid will be too fat to flow into it and will just splash in the bottom vessel. You can scale the pipe along normals for that.
Fluid baked on higher values should deal with that (although I don't know how much those values should be as I didn't tested it).

Thanks for the detailed response and help!! I will make sure to use all the advice you've just provided :)

I would probably place the inflow object inside the pipe, and then cap the bottom of the pipe so it can't flow out the bottom. Then I would fake the draining of the large water object by keyframing it instead of by simulation.
Should be faster to work with as well. Unless you need really accurate water detail on the large water object, this should work fine. You may want to add some rippled animated displacement to the top to help sell it.