How do I turn on path influence while keeping the object's position? When I go to turn on the influence a path has on an object, the object moves very far away. How do I make it such that the object will stay in the same global position while I turn on the path influence?

I need to move a path to the object, have the object move along the path, then the path needs to move back away. I know how to animate the influence the path has, I just need to be able to make the object stay in place while doing so.

See Blend file below  (Vers 2.77a)

I've done this using an empty to follow the path and the cube simply being parented to the empty at the path's starting frame by using a "Child-of" constraint.  The constraint takes over at the intercept frame and releases the cube again once the path trek is complete.  The path is moved away, leaving the cube behind.

There's a bit of fiddly stuff with the Child-of constraint and that's been outlined below.  My thanks to whoever put this together months back, explaining exactly how to remove the 'Child-of' cleanly and without the model jumping back to it's starting point.

-=================-

The Itty Gritty -

Set up the path first, using an empty to follow the path.  Get that working right.   In the Dope sheet, slide it's valuation keyframes forward to the frame where the cube is to enter or intercept the path.  The path's empty will then delay it's start until that frame.

Animate the path to intercept the cube a frame or more before the path empty is due to move.

The cube must now be parented to the path's empty using a "Child-of" constraint.

Take the timeline cursor to frame 1 and set the constraint's influence slider to zero.  Keyframe that.

Take the timeline cursor to the frame before the path empty is to move and keyframe the constraint's influence slider again. (still at zero)

At the next frame give the influence slider a value of 1 (100%) and keyframe that.

The cube may want to jump when this is entered.  Simply click the 'Set Inverse' button in the constraint.  The cube should return to where it was and will then be parented to the empty.

The empty will follow the path and take the cube with it

-===========-

At the frame where the path-following stops, keyframe the constraint's influence again. (value of 1) and also keyframe the cube's Location & Rotation.

Move 1 frame forward

Select the cube and open the Object menu below.  choose "Apply -> Visual Transform", do not move the timeline cursor!

Keyframe the Child Of Constraint's influence to 0%

Keyframe the cube again. (Location & Rotation)

You can now move the timeline.  The cube should again be free of constraint.  i.e. no longer parented to the path's empty.

The path can now be animated away, leaving the cube behind.


Cannot get armature to move the mesh I made the Armature Layout to mirror up to my mesh but I cannot get it to symmetrize.
The armature also will not connect to the mesh.
When I move it it doesn't grab the mesh, this is my first project, so I'm thinking its something simple that I just overlooked. Any help is greatly appreciated.

See this answer regarding mirroring bones.
The armature has to be a "parent" of the mesh in order to move it. In order to do this, in Object Mode select the mesh then Shift + click the armature. Ctrl + P to parent and select With Automatic Weights for best results. You can move the bones by selecting the armature and switching to pose mode.
I suggest watching/reading a comprehensive guide for rigging a character and adjusting it, as it's challenging, even for intermediate users.


How do I export an object from blender to Unreal Engine 4 correctly? Now even though I have an object imported in Blender and one that made myself but I can't seem to export them correctly. And how do I make scales match with those of Unreal Engine 4?

You save your model as Obj or Fbx and import it to your scene. Fbx is more practical for rigged models and I would suggest that you use the TGA file type for textured meshes.


Brick texture - controlling the randomness I'm looking to create a brick like texture, but with 3 different 'subtextures', so much like in this question: Brick texture with multiple colors . However my problem is that I would like to have (statistically) the same amount of bricks of each color. So the color ramp approach doesn't work for me, because if I have (say) 3 different brick colors, they are chosen randomly from a range of 0-1 and if I set break points in my color ramp at 1/3 and 2/3, then there is no guarantee that out of my 3 colors, one is in the first interval, the second in the second and the third in the last. So that may cause my 3 colors to be reduced to 2 or even 1, depending on the random generator initialization.

Fundamentally I guess my problem is that I need to know the other colors that are used in the brick texture in order to know about how to classify each color, but afaik there is no way to get information for other pixels in each shader invocation (at least not in Blender Nodes). But maybe I'm just going about this the wrong way, because I'm thinking about this as a programmer and how I'd write this as an OpenGL shader. Probably what I need to do is change how I look at the problem, but I can't really figure out how.

I hope the way I phrased this question makes sense - thanks in advance.

OK well as usual, an hour after you ask you find the solution...

Turns out I was misunderstanding how the brick texture works - it doesn't generate a discrete set of colors, it draws a new random color for each brick. So each color is random across the entire color spectrum, and I can classify them using a ColorRamp after all.


Aligning a single triangle object's local origin (y axis) to the triangle's normal (non-backface side) I have a billboard tree in Blender made up of a single triangle. I applied an Array and Curve modifier to it to instance itself on the curve. I collapsed the trees and separated them by loose parts. Now I have hundreds of trees whose local origins are aligned to the global axis, which is not what I need.

In Unity, I have a billboarding script that automatically aligns the trees to the face the camera. However, this script does not work if the tree's origins (or pivot points as they're called in Unity), are not aligned to the normal of the tree's front face (or back face, it doesn't really matter because I can just negate the script's LookAt function).

Does anyone know if there's a script available for this or would be willing to write a script that can move all the origins of selected objects to each of the objects' individual face normals?

Thanks.

In the mean time, I'm going to look into Python and see if I can figure something out, but I don't have a lot of time and have an intermediate level C# background.

Edit 01 - Added image of what I'm looking for. The yellow arrow shows the re-alignment I'm seeking:

Edit 02 - I cannot reply due to the 50+ comment restriction. @X-27, I followed your instructions, but was met with the following strange tilt after parenting and enabling Face Duplication (not to mention the duplicates stabbing the parents):

The only way to mitigate the tilting is to re-orientate the child tree into some weird angle in order to get the duplicated trees to be standing up, but their rotations are still messed up. Judging by your screenshots, you also have the same problem with the duplicated blue trees being angled in an awkward manner. This is not what I need.

Regardless, I appreciate your suggestion, but I no longer need this solution and do not have time to learn Python and the Blender API to make a script myself.

@yhoyo, I think you may have misunderstood my question. I already know of the Properties Shelf rotation and the script you posted simply zeroes out the Z rotation, which is not what I needed.

First off, you are way over complicating this. There is no need to use a script to correct the origin's rotation at all.

Starting with the tree with the array and curve modifier before it is applied (GCF green in images), instead of separating each tree along the curve, create a second tree (X-27 blue in images) and parent it to the tree with the modifiers.

Then set the the first tree's Duplication to Faces to add new trees with the location and rotation of each of the existing trees along the curve.

Then Make Duplicates Real by pressing Ctrl+Shift+A to make the second set of trees separate objects. Now all of the new trees have there own origins in the correct places.

If you want to, you can delete the curve and the first tree. Also, any tree you now select will also have the correct local rotation.


How to make a bevel on text How can I make a bevel, like in the "Gibson," for my personal inscription?
Is there an automatic method to do so?

You can use curve bevel it is not an automatic one-click-solve-all solution, it will lead to artifacts in narrower zones and cause artifacts in pointy tips.

In fonts or curves with width variations it will never yield a perfectly triangular bevel like the Gibson logo.

You can tweak it locally, but that will always require manual adjustment and modeling.

For these types of complex shapes you best bet is really converting to mesh with a proper topology and manually modeling it. Triangulated mesh from raw curve to mesh conversion will not do.


Electromagnetism Simulation I would like to create a basic electromagnetism simulation in blender; just two separate coils attracting each other (they slide and touch).

I'm good for modelling this, just not sure how to set up the physics.

This can be modeled using blender physics.
The animation was generated in Blender 2.76b from the attached .blend file. It uses the built-in physics. It shows attraction (blue-red), followed by repulsion (red-red).

Create a scene with a plane and two cylinders above the plane. Add two empties.
Parent an empty to each cylinder. The forces will be driven through the empties.
Select the plane and go to the physics tab. Enable rigid body physics for the the plane. Specify the plane will be animated. This will prevent movement of the plane, but give the cylinders something to slide on.

For each cylinder, on the physics tab, enable rigid body physics. This will let the cylinder collide with the plane and each other.

For each empty, enable forces in the physics tab. Set the forces to -100. You may need to adjust the forces depending on the spacing. The negative values indicate that the empties will attract each other. Positive values will cause the empties to push each other apart.

Run the animation to see the result.

A blender file illustrating this approach:

This solution is similar to the approach described in this question: How to have rigid-bodies and charge fields interact?


Export as .obj and .jpg I was wondering if anyone could please help me figure out how to export my work from blender.
I made a snowman in blender render and want to export it. The issue is, I would like to be able to export it as a combination of a jpeg and Obj files rather than a .mtl and a .obj. Is this possible? Any help would be greatly appreciated! Thanks! (I also tried to use textures to give the snowman colors instead however wasn't sure how to bake them to allow me to export as a jpg and obj.

When you want to export an obj file with jpeg textures, simply create jpg textures first.

*.mtl is no image format. A Obj file is made of two parts. The *.obj part contains the mesh data. The *.mtl part contains material settings for a primitive phong shader, including the texture paths. You should not leave the *.mtl part away, it is part of the obj file. And when you leave it away then the textures are not found.

So when you export an obj file with jpg textures, then you should end in three parts. The *.obj file, the *.mtl file, and the *.jpg file.

(As a side note, Jpg is the worst texture format you can choose. It uses a lossy compression. You loose quality. I prefer PNG)


Why Geometry's Tangent are difference from Tangent node? According to the document, geometry node's tangent is surface tangent in world space. And tangent node is from a manually created UV Map for full control when use UVMap. They output difference result to me.

In my understanding, tangent inherently associated with uv, so the tangent node output result is right. I just wonder what exactly is the geometry's tangent to. Can anyone explaning it to me? Thanks

Per your link:

Direction Type
The tangent direction can be derived from a cylindrical projection
around the X, Y, or Z axis (radial), or from a manually created UV
Map for full control.

Geometry -> Tangent is giving you the same output as the Tangent node set to Radial Z.


Can't get 'true white' video output I'm doing a short credits sequence (blend file below), where a few alpha UV materials are overlaid, lit with a single sun lamp.

When I render out the sequence, I can't get a good ol' 8-bit white from settings that I think should get me white. If I export a frame and bring it into Photoshop I get F6F6F6 (246,246,246).

If I increase the sun power I start blasting out the logo colours. Increasing ambient light blasts out shadows. Any tips here?

Blend file: https://www.dropbox.com/s/gklakgma0je92xk/flop3.blend?dl=0

Your render inside Blender is not pure white.

After rendering clic on the white part of your render in the UV/imge editor, watch the values in the bottom part, R 0.92, G 0.92, B 0.92.

You just need pure texture color and lighting, it's too hazardous to try setting the right orientation and strength of a sun to have perfect texture color. You lose some light during ray casting.

You want two things to compose in post processing:

the animation of the logo and the text with the correct RGB values (no need of light for that).
the shadows themselves (need light or tricks that I don't know).

Make a scene without light, and replace the diffuse shaders by emission ones. Now you have the real textures colors, same for the white background. Bonus: you can set the samples to 10 or 20 it's enough

Make a second scene with only the sun, the white background and the text for the shadows. Background and text must have diffuse shader this time. On the render layer panel, under passes activate shadow. Render the frames that matter for the Shadows.

Plug the shadow passe in the fac of a color mix node, put the animation of the logo and text in the second image slot of the mix node, the first one is the color of your shadows.


Loop cut not working on my blender project? friends, I'm confused with my problem. is there anyone who can fix my project?
I want to do vertical edge like in a photo.

my project:https://drive.google.com/open?id=1vgpIo6qGXz5TJQUaBbO2Pn6IEMUJxGot

Press Z to see your object by transparency, you'll see an inner face, you can't create any vertical edge loop because of this inner face: with this kind of topology Blender can't guess what face the edge is supposed to go through. So just select and delete it.


how do i add gloss to, let's say, just over the nose? I can select the faces(geometry) and assign a different material, but, of course, that's not gonna look very good. I don't want the gloss to cut off sharply at the edges (of the faces.) So, how do i go about doing this? Do i have to use an image with an alpha channel?

Thanks!

I'm only fairly new to Blender, but I believe that if you paint the area you want glossy in Texture Paint mode with a new black image as the base (and the glossy part painted white) you can then save that image. Then create a Gloss Node with your newly created image as the Fac input and use a Mix Node to mix it with your skin node/s.


How can I keyframe multiple (like 300) objects' show/hide property? I would need to know how to keyframe multiple (like 300) objects' show/hide property?

Create an Empty, keyframe its Visibility property, select all the objects you'd like to hide/show, select the newly created Empty, press CtrlL to open up Make Links menu and select Animation Data.

Credit for the idea goes to @p2or, see: How to copy animation attributes to multiple objects?


Freestyle Line Set not Showing in Blender 2.79 Similar problem as in this other post:

Freestyle line is not showing

Freestyle Line Set should be in Render Layers ( Properties ), but is not Showing in Blender 2.79

Based on Blender 2.79 manual it should be there. Do I need to activate something. I already activated an addon called: FreeStyle Line Style SVG Export, but that didn't help.

https://docs.blender.org/manual/en/dev/render/freestyle/parameter_editor/line_set.html#edge-marks

Got it solved, thanks to this video by Blender Nerd ( Thanks ).

https://www.youtube.com/watch?v=6ItWP3lGBGY

Basically you need to first enable / activate "Freestyle" in the Properties > Render Tab.

Then you can go to the Properties > Render Layers Tab and you'll see a new section called: Freestyle


How to create volumetric/smoke material in blender game engine? I would like to create a hologram of sci-fi ship. I created materials in blender render and hoped, that they will be easily used in game engine too (my mistake).

And I have been unable to create the effect I want - volumetric/smoke effect (image bellow)

This is what I have been able to come up with in game engine so far. (image bellow)

The trick: Set the object to 'shade smooth' and use the surface normal.
It doesn't work everywhere (such as the left edge of the object, but it works well enough in a lot of cases.
I use this trick quite often, for things like fire, which you can do with a single distorted sphere and some UV-scroll.

Note that this requires GLSL, and uses a node material.

If you mix it with a cloud texture you can make smoke/clouds:

The blend for the cloud can be downloaded from blenderartists


Same Material with different key frames Is it possible to have same (single) material object applied to different objects (mesh or curves) but have different key frames for each (mesh or curve)?
I want to fade-in my text (which is curve) like a window so the text appear fade-In gradually character wise. I have created a material slot, added TransparentBSDF and MixShader Node, but separate Material slot for each Character (curve) because each character fade-In start time index is slightly greater than the previous.
Currently I am doing this using Python Code (Blender 2.83)
fade_objects = bpy.context.selected_objects

frame_dif = 2
frame_length = 40
frame_start = 0

fade_frame_start = frame_start
fade_frame_end = fade_frame_start + frame_length

for fade_object in fade_objects:

    # Create Material Object and Apply to character curve
    mat = bpy.data.materials.new('Fade')
    fade_object.data.materials.pop()
    fade_object.data.materials.append(mat)
    mat.use_nodes = True
    mat.blend_method = 'BLEND'

    nodes = mat.node_tree.nodes
    links = mat.node_tree.links

    #Creating New Nodes
    node_transparent = nodes.new('ShaderNodeBsdfTransparent')
    node_mixshader = mat.node_tree.nodes.new('ShaderNodeMixShader')
    node_bsdf = nodes['Principled BSDF']
    node_matout = nodes['Material Output']

    #Linking Nodes
    links.new(node_transparent.outputs['BSDF'], node_mixshader.inputs[1])
    links.new(node_bsdf.outputs['BSDF'], node_mixshader.inputs[2])
    links.new(node_mixshader.outputs['Shader'], node_matout.inputs['Surface'])

    #Adding Key Frame for MisShader Node (Fade In)
    node_mixshader.inputs['Fac'].default_value = 0
    node_mixshader.inputs['Fac'].keyframe_insert('default_value', frame = fade_frame_start)
    node_mixshader.inputs['Fac'].default_value = 1
    node_mixshader.inputs['Fac'].keyframe_insert('default_value', frame = fade_frame_end)

    #Add frame difference for next character for sliding effect
    fade_frame_start += frame_dif
    fade_frame_end += frame_dif

This code create n number of material slots as my n number of curves.
Can I do this with single Material Object with different values for MixShader node for each curve?

Object Info Node

As mentioned by @Gorgeous can use an object info node.
Control object emission strength (not material)
Using Object.color

Object color,
same as Color in the
Properties Editor ‣ Object ‣ Viewport Display

For the example below am creating two new nodes, an object info node, separating the RGB via a separate RGB node and feeding this into the mix node factor.
Unfortunately I am not aware of how to use the Alpha channel, so am keyframing and using the Red channel.
This way the action is created on and belongs to the object using the material.
Minor adjustment to your code to add only one material with  the new nodes and links, and keyframe the object's red color in the loop.
import bpy

fade_objects = bpy.context.selected_objects

frame_dif = 10
frame_length = 40
frame_start = 0

fade_frame_start = frame_start
fade_frame_end = fade_frame_start + frame_length

# Create Material Object and Apply to character curve
mat = bpy.data.materials.new('Fade')

mat.use_nodes = True
mat.blend_method = 'BLEND'

nodes = mat.node_tree.nodes
links = mat.node_tree.links

#Creating New Nodes
node_transparent = nodes.new('ShaderNodeBsdfTransparent')
node_mixshader = mat.node_tree.nodes.new('ShaderNodeMixShader')
node_bsdf = nodes['Principled BSDF']
node_matout = nodes['Material Output']

objinput = nodes.new("ShaderNodeObjectInfo")
seprgb = nodes.new("ShaderNodeSeparateRGB")

#Linking Nodes
links.new(node_transparent.outputs['BSDF'], node_mixshader.inputs[1])
links.new(node_bsdf.outputs['BSDF'], node_mixshader.inputs[2])
links.new(node_mixshader.outputs['Shader'], node_matout.inputs['Surface'])
links.new(objinput.outputs['Color'], seprgb.inputs['Image'])
links.new(seprgb.outputs[0], node_mixshader.inputs['Fac'])

for fade_object in fade_objects:
    fade_object.animation_data_create()
    fade_object.animation_data_clear()
    fade_object.data.materials.clear()
    fade_object.data.materials.append(mat)
    fade_object.color[0] = 0
    fade_object.keyframe_insert("color", index=0, frame=fade_frame_start)
    fade_object.color[0] = 1
    fade_object.keyframe_insert("color", index=0, frame=fade_frame_end)
    #Add frame difference for next character for sliding effect
    fade_frame_start += frame_dif
    fade_frame_end += frame_dif

Other things to consider would be using drivers on the color field based on the current frame, or by using a single action that is attached to each object and offset via the NLA


Camera view shows transparent object This is how my imported stl looks inside the view port in Blender 2.92:

When I view it through the camera it looks like this:

The object seems to be transparent which is not what I want. Any suggestions on how I can make it look like in the view port?
Edit:
Please note that I want to create a svg from the front view of the object. This is why I set the camera far away from the object and increased the focal length, to obtain straight object lines:

It seems to help when I switch from perspective to orthographic:

I am still not sure which camera settings I should choos for my use case (create svg in Blender's Freestyle addon). I thought of having a tele camera and therefore choose the perspective view with a high focal length. Which settings do you suggest?

This is just because you are viewing it from the front. Move the camera a bit in any direction, and it should look better. You could also give the text a different color in rendering. It isn't transparent, just hard to see


Wrinkling in flat UV Adjusted a model to accomodate a few holes. For some reason there is a wrinkling in the applied UV. I went in and tried eliminate any overlapping uv's that may have produced this issue. I cant seam to figure out the cause when rendering.

SOLVED
I was able to solve this issue by creating a new edge using the knife tool to intercept the weirdly interpreted anchor points.


How to change a character's pose without stretching any body parts? I want to force rain v2 to not stretch. How can I achieve that?
In the screenshot you can see, that I turned off stretching. But whenever I want to change the pose of rain v2 some body part stretches.

You need to select an IK target (can be moved without stretch), while you appeared to select an FK target (should only be Rotated, can stretch the character if Moved).  You can disable FK or Stretch Layers to avoid these when doing IK manipulation.


What is the pixel error in motion tracking? When 3D tracking, you have a pixel error. Is that error the number of pixels the track will stray with each frame, or the entire track?

The re-projection error is the difference in pixels between where the tracker is placing a point in the image, and where it is being re-projected in the geometry when the scene is Solved.
In the perfect world there should be no error, but in the real world there is usually some degree of discrepancy, given the nature of trackers, optics, and user error.
Usually tracking is considered accurate when the re-projection error is less than 1/3 of a pixel (0.3 pixels).

The number is always an average.
You can see the average per tracker (for however many frames the tracker is active) in the dopesheet

Or you get a report of the average of all bundled tracks for the whole scene at the bottom of the page.

How to see bundles and back projecting points of different colors?
and
Single track with bundle should be selected to define axis
Motion Tracking. What do the graphs represent and how are they useful?


Does transparency work in eevee I have been trying to create a transparent lens using the eevee rendering engine in 2.8 but the transparency slider has no effect. Has this feature not been implemented yet? I've looked all over the Web for an answer with no luck. I'm a noobee so am probably doing something wrong.

Use these settings:

Render → Screen Space Reflections - On
Render → Screen Space Reflections → Refraction - On
Material → Surface → Principled BSDF → Transmission - $1.000$
Material → Surface → Principled BSDF → Roughness - Adjust to your needs
Material → Settings → Blend Mode - Opaque
Material → Settings → Screen Space Refraction - ON
Material → Settings → Refraction Depth - Adjust to your needs, I generally suggest $0.8$ but depends on the thickness of the object.

Result:

(It's quite similar to Albert's answer but different)


How does a texture image file get mapped on an OBJ model? I am trying to understand how a texture image is mapped on an OBJ file. For example, if you map below color grid image (texture) on the capsule obj model (screenshot #1), it looks like the screenshot #2.

QUESTION:
How do we know where the first pixel on the top left corner of the texture file will stay on the OBJ model surface? Does the OBJ file carry such a data? Or are there certain rules/protocols about texture mapping? Or does Blender have internal logic? I'd like to know the fundamental principle of texture mapping. Any help would be appreciated.

Grid Image (texture)

Screenshot #1

Screenshot #2

Model source: http://paulbourke.net/dataformats/obj/minobj.html

The reason is because the capsule object already has a UV Map, as shown in the image below.
The OBJ file format keeps the UV coordinates, which are assigned during unwrapping of your model in the UV space.

The answer to "How do we know where the first pixel on the top left corner of the texture file will stay on the OBJ model surface?" is unwrapping. Basically, when you unwrap your model, you unfold it so you can have a 2D projection of it. A simple object like the capsule is fairly simple to unwrap to a single part. But if you have a more complex object (such as Suzanne), you have to separate your mesh in several parts by creating Seams, and unfold one part at a time, to get a result like this:

This procedure is fundamental to apply textures on your model: any other texture will be applied based on the UV map coordinates that you have created. My suggestion is to use a checker color grid while you unwrap your model, so you can have a nice preview of how the textures will be applied on your model:

Keep in mind this concept: any other texture will be applied in the same exact way the color grid is applied. You have to take control of the distortions: it's normal to have some distortion while unwrapping your model (because you convert your model from 3D to 2D). Adding seams reduce a lot the distortions on your unwrap. Anyway, common mistakes at the beginning are:

stretched and/or squashed uvs (first image below)
not uniform scale of the projections (second image below)

The model is correctly unwrapped when you see perfect squared numbers of the color grid texture over all the parts of your model.

Useful resources:

Darrin Lile - Basics of UV Map
Darrin Lile - Character UV Map


Toon Shading Light Direction I am making a node setup in Cycles stylized after the toon shading in Legend of Zelda: Wind Waker, and I have two questions. Using the "normal" node, how can I have the first normal input (the first sphere in the node) automatically point to the nearest light, and when the nearest light changes, smoothly animate the movement of the normal direction? Second, how can I make a light that illuminates all the vertices in it's range, not just the ones pointing towards it?

This is my node setup.

Unless you have special reasons to use Cycles, I would consider using EEVEE for, at least, the main passes of your work, because of the Shader to RGB node.

The Shader to RGB node, which really can't be implemented in a path-tracer like Cycles without calling the whole renderer twice, allows you to take the actual light-response of a surface, capture that color, and then use it in any way you like further down the pipeline.

In that workflow, you could, for example, choose to forget coloring by Normal, and actually light a pure-white diffuse version of your model, and maybe a black highly specular version of your model, and so on.. by using different shaders all in the same node tree.

You can then grab the tones from those shaders as RGB, put them trough thresholds, quantize them, use them as masks for textures, do half-toning with them,  tint them with colors that are not actually in the scene .. almost anything.

Not your style, but there's an example here of half-toning and tinting. A search on 'NPR' and 'Shader to RGB' turns up plenty of examples, some good, some not-so-good...


Assigning faces to new materials I am currently learning to work with blender, and i have a problem. By assigning faces to new material it turns transparent and there is nothing i can do. How to solve this problem?

I would check the transparency blend mode settings of the material in the Properties Editor, Material tab:

You don't have these settings visible if you have Cycles selected as the render engine, but EEVEE is used to display stuff in the viewport, so just in case they are not there, just switch the render engine to EEVEE temporarily:

Also check face orientation:

Red would mean that normals are inverted.


How do you script batch changes to bone constraints I need to understand how to script a batch change to bone constraints like copy location, limit distance etc.

I have a couple of hundred bones, with a set of constraints on them. It took forever to set up and I need to tweak them.

A friend who has written scripts for me before gave me a solution to one problem. I've tried adjusting the code he wrote to do something else but I've written something wrong. I don't know the syntax and proper context.

I tried changing my friend's code in the text editor:

import bpy

armature = "Armature.001"

arm = bpy.data.armatures[armature]

for bone in bpy.context.object.pose.bones:
    bpy.ops.pose.select_all(action='DESELECT')
    bone.bone.select = True
    arm.bones.active = bone.bone

for constraint in bpy.context.active_pose_bone.constraints:
    print (constraint)
   if "Copy YZ only" in constraint.name:
        CopyLocationConstraint.use_y = True

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

I understand what this SHOULD do but don't see the relevance of some of these lines of code. I need some assistance to find what I am missing.

The next bit I need to change is a distance value on transformation constraints (to_max_y = 2cm?). I guess the solution is similar but I need to learn how to word changes like this correctly.

I've spent hours reading examples online but still need help.

I'd go about it this way.  I use context = bpy.context on test scripts, that can later be pasted into Operator or Panel code.  Work from the context object, rather than using a name like "Armature.001" (guilty myself on many occasions)

I use list comprehension out of preference.

import bpy
context = bpy.context
# the rig object
rig = context.object

# all copy location constraints on all pose bones
constraints = [c for pb in rig.pose.bones
                 for c in pb.constraints
                 if c.type == 'COPY_LOCATION'
               # and "XY" in c.name
              ]

# set the desired properties
for c in constraints:
    c.use_y = True

# similarly for Transformation
# type from mousing over add constraint in UI
constraints = [c for pb in rig.pose.bones
                 for c in pb.constraints
                 if c.type == 'TRANSFORM'
              ]

for tc in constraints:
    tc.to_max_y = 0.02 # given 1 blender unit is 1m

# all constraints from preselected pose bones
constraints = [c for pb in context.selected_pose_bones
                 for c in pb.constraints
              ]


How can I get blender to scale based on the barycentric coordinate My blender program is scaling towards the mouse cursor, I don't think it used to do that so I was woundering how I would make it scale to the barycentric coordinate like it used to.

just to help you out in the future, it's called the 3D cursor.  Here's how to fix this, above the timeline to the right of the dropbox where you change between solid shading, wireframe etc. there is another dropbox.  click it and choose, median point.

I hope this helps.


Why trees in the way I have weight paint and made the vertex. I have made 3 tress group. In the particles tab with the tree group selected. The problem is the weight paint i have made i dont need the trees in the way. I have click the side arrow negative the effect. Yet the result as u seen below the trees are in the way. My weight paint vertex is straight like a road but the trees coming the way. Why the trees not arrange in a row so that i can see a straight road.

Fix for the given file

Made the adjustments @Delagone suggested:

Separated the tree object
Set the object origins for each tree object root.
Made sure the three tree objects are in one group
Choose the group instead of the object in the "Render" tab.

In the "Emission" tab

Emit from: "Verts"
Unchecked "Random"

Distributing particle system with weight painting

Particle system source mesh

The mesh resolution of the plane is very low.

The weight painting is saved in the vertices of the mesh. The more control you want over the weight painting and therefore the distribution of the particle system, the more resolution the mesh needs.

Emission of the particle system

The emission from setting tells the particle system where it should emit the particles. In the case of a plane with weight paint it should be set to "Verts" or "Faces".

Weight painting

You want a road with trees on both sides.

Then you need to weight paint to lines of both sides of the street where the trees should be.
The weight painting tells the particle system where it should put the trees.

The weight paint tells the particle system the probability

Example weight paints for road straight and with side street:


Font special ASCII characters in 2.6 To display a special font character (a character that does not have it's own key on the keyboard) in most Windows apps you press and hold the Alt key then enter an ASCII character number using the numeric keypad (located on the right side of the keyboard).

This technique does not seem to work in Blender text edit mode.

Any solutions?

To enter special characters for a Text object,

enter editmode
type any letter
go to Redo panel (it should show Insert Text)
open Notepad or another text editor
enter your special char using Alt key
copy and paste the char to the Text property field in Blender's Redo panel

Another way is to

load an external text file with the Text Editor,
then click the menu Edit > Text To 3D Object > One Object.


Why is my armature not symmetrical? I tried duplicating one side of my armature and mirroring it to the other side with Shift+D, S, X, -1. It works except that in pose mode, the arm and the leg are not symmetrical to the other side. Is there a way to fix it other than manually replacing them? I really want to keep it clean. The rest position is ok though.
My file is here -
https://drive.google.com/file/d/13oPK4rJQuXMJ106jL1chpc0jwh5cdrmY/view?usp=sharing[][1]

I'm new to blender but I think you can remove on a object like one hand and the select the arm go to modifiers and add a new modifier called "Mirror"maybe it'll work for you.
Through mirroring any change you can make in one hand is also applicable to second hand...
Thank you!


Why won't anything in my scene rotate when I press"r", or "r" "r", or go to the rotation tool and click it? Look at the image below please! It's weird. When I press r or rr on the keyboard or drag the rotation tool it doesn't rotate. The rotation you can see is not locked! This bone wouldn't rotate, or any other bones. It was fbx imported, but I've imported it before and it didn't work. Nothing will rotate in the scene.

In the header where you can choose visualization mode(Rendered/Wireframe/Solid...) you have a button with "..." and two arrows below, that mode is causing the problem.


How do I get the position of an object from a previous frame? Not the current frame empty's are ignored when rendering in eevee (but not in sound engine)

I made a some drivers with empties to determine the speed and acceleration of the object, but when rendering, the behavior of the objects on the desired object indicates that the dummies are standing still.
https://youtu.be/1HdPOXR1qCs
But sound engine understand that empties is moving and work's right.
on the sides of the machine there is a display of speed (rear) and slip (front)
The colors of the speed display should match the volume of the acceleration sound

Upd
ok, I realized that in rendering mode the dummy does not execute the driver as I want because the position of the dummy is taken every time from a static scene and the formula(EmptyposX*0.5 + targetX)/1.5 does not work as in the viewport where the position of the empty is taken from the past of its position

How to make it so that when rendering the position of the dummy is taken from its past position?

Image Above.  Graph View shows an FCurve and its attributes.  Location {X,Y,Z} components.  Each of {X,Y,Z} has a different F-Curve. The Python Console View shows querying the active object for an fcurve by name.  Your object name will appear differently.  Next the curve is evaluated at different points.  Note that {0:X, 1:Y, 2:Z} shows the [conceptual] map between the array index and the concept of axis in the [find] function.  This number is labelled RNA axis in the image above.  Please Click on image to see a larger version for improved readability.

Thus you can

Find the FCurve by name and axis index
Evaluate the FCurve value at a chosen frame.
Use the notion of current frame as an integer value in Python
Calculate Vector V1 at frame (X) and V2 at frame (X+N). X and N may be integers.
Calculate velocity vector (V2-V1)/N

Some quick snippets to help you search further at BSE.  Sorry I can not find a simple example in my personal documents.

object_bq = bpy.data.objects[name]
test = object_bq.animation_data.action if (None != object_bq.animation_data and (None != object_bq.animation_data.action)) else None;
if (test):
 fc =       object_bq.animation_data.action.fcurves.find("Some Curve Name Visible in the FCurves Editor Panel");
fc.evaluate(framenumber)

The above old pseudo code is not claimed to be Pythonic or immediately usable.  You  will need to improve the code.  The code above is intended to establish that the FCurve exist for the provided textual name.


Particle color distance to empty in Eeevee? Is there a way to do this with material nodes only?

I can find a particle info node:

https://docs.blender.org/manual/en/latest/render/shader_nodes/input/particle_info.html

But the object info node doesn't have an input... the texture coordinate node does have an input for a different object, but then I can't find the distance node:

https://docs.blender.org/manual/en/latest/editors/texture_node/types/converter/distance.html

The distance node is part of the (kinda-deprecated) texture node editor, which is different from the shader node editor. To get the distance between two locations, use a vector Math node set to Distance.

Result :

Note : The shader should go on the particle object, not on the instancer.


How to loop cut a cylinder into squares I recently came across this issue while trying to model a fence; I want the sides of a cylinder to be cut into squares, but currently I have to guess if they look right or not.

My current workflow is just add a loop cut and scroll up with the mouse wheel until it seems to be right. As far as I know, there's no better  way to do this (at least easily).

So, how can I achieve this?

This can be done by starting from a circle instead of a cylinder.

Open the properties panel (P) in the 3d view and enable 'Length' in the 'Mesh Display' section to view edge lengths in the 3D view:

In front view, with all edges of the circle selected, extrude with E and constrain to the Z axis by pressing Z.

You can now extrude upwards and match the extrusion length with the original edge length. In this case it is 0.196. To do this perfectly you can just type whatever the edge length is (0.196) while extruding and constraining:

The last step is to add an array modifier to to create the other 'rows' of the cylinder. As long as the object has it's rotation and scale applied you can just set an offset of '1' in the Z offset field:


How to get indices of the faces to which a material has been applied, using Python? I have many objects similar to this and I import them into the scene using bpy.ops.import_scene.obj(filepath='model.obj', split_mode="OFF") to do some renderings using Blender's internal rendering engine. I want to loop over all of the materials and get the indices of the faces/polygons to which each of the materials have been applied to. However, I do not know how to do that. I initially tried to get the indices of the faces that use the same material_index as shown below:

matDict = {}
polys = bpy.context.scene.objects.active.data.polygons
mats = bpy.context.scene.objects.active.data.materials
for idx, poly in enumerate(polys):
    if mats[poly.material_index].name not in matDict:
        matDict[mats[poly.material_index].name] = []
        matDict[mats[poly.material_index].name].append(idx)
    else:
        matDict[mats[poly.material_index].name].append(idx)

However this method does not give me back the list of all materials and misses most of the materials in mats and therefore, the number of keys in matDict is not equal to the number of materials. I'm not entirely sure why, but it could be because some of the materials are applied to the same faces and material_index returns only one of them. I wonder if someone can offer a better solution?

This script iterates over the polys and adds their indices to the appropriate key (material name) if the material is applied to each of the current faces:

import bpy

o = bpy.context.object # Active object

# Initialize dictionary of all materials applied to object with empty lists
# which will contain indices of faces on which these materials are applied
materialPolys = { ms.material.name : [] for ms in o.material_slots }

for i, p in enumerate( o.data.polygons ):
    materialPolys[ o.material_slots[ p.material_index ].name ].append( i )

print( materialPolys )

For this object, an icosphere which has 4 materials (3 of which are actually applied to faces), this is the result:

{
    'Material.002': [7, 12, 41, 42, 53, 54, 55],
    'Material.004': [],
    'Material.003': [10, 19, 34, 35, 47, 48, 49, 62],
    'Material.001': [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 43, 44, 45, 46, 50, 51, 52, 56, 57, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]
}


Animating judo throws and working with two animations at the same time? I'm trying to make a shared animation between two characters, and I am not sure about how to do it correctly. When I mean shared I mean that both characters interact in the animation, not that the animation is used by various characters.

I wanna make a Judo throw, in which case I figured after reading some tutorials that the best approach would be to make two animations, Throw01Caster (the player throwing people off) and Throw01Target (and the target being thrown off).
This is the gif of the throw I wanna make (not with the follow up to the ground, just the throw)

I tried to put an animation with two sets of skeletons to animate, but when I try to animate one the other just stays in rest pose all the time.
Considering the nature of the movement I'm gonna need to work with two bodies being visible all the time in order to avoid constant clipping.

What would be the most efficient way to do this? or is there any way to make both animations at the same time and then separate them? I'm open to suggestions.

This doesn't seem normal. Make sure both your armature are set in Pose Position.

That way, you should be able to animate one armature while the other play it's own animation.

If it doesn't, maybe provide your .blend file so we can dig deeper and faster.


Possible to add more than one object via Boolean modifiers? The following script adds a boolean modifier to the active object. This works great for one cutting and one target object.

Imagine you have one cube and 4 spheres and you would like to end up with the cube having 4 boolean modifiers and each modifier uses one of the four spheres.

Would it be possible via python to collect / sort all the non-active objects and one by one add a modifier to the cube and then add a sphere?

    target_obj = context.object
    cutter_obj = bpy.data.objects['Sphere']

    bool_mod = target_obj.modifiers.new('cutter', 'BOOLEAN')
    bool_mod.operation = 'DIFFERENCE'

    bool_mod.object = cutter_obj

Why not add Boolean modifiers based on selected vs active states. If you have 5 selected objects, the last one selected is active.

The concept

import bpy

def get_active_and_selected(context):

    active = context.active_object
    selection = context.selected_objects
    selected = set(selection).difference(set([active]))
    print('active:', active.name)
    print('selected (not active):', [o.name for o in selected])

get_active_and_selected(bpy.context)

If the cube is selected last it will print:

active: Cube
selected (not active): ['Sphere.004', 'Sphere.002', 'Sphere.001', 'Sphere.003']

The function

Adding multiple modifiers to the active object

import bpy

def add_selected_to_active(context):

    active = context.active_object
    selection = context.selected_objects
    selected = set(selection).difference(set([active]))

    if not (active and selected):
        return

    for idx, cutter in enumerate(selected):
        bool_mod = active.modifiers.new('cutter_' + str(idx), 'BOOLEAN')
        bool_mod.operation = 'DIFFERENCE'
        bool_mod.object = cutter
        cutter.hide = True

add_selected_to_active(bpy.context)

The operator

This could be easily turned into an Operator and employ error checking to avoid doing anything until all necessary conditions are OK.

At this point it's worth your time to read up on operators. How to make them, register them and call them from UI. It's just a bit of boilerplate which is similar for all add-ons. Blender's TextEditor has a few Operator templates, most notably: TextEditor > Templates > Python > Operator (Simple)


How do you specify the name of a primitive created via the Python API? For example, the command to create a cube is:

bpy.ops.mesh.primitive_cube_add(view_align=False,
                                enter_editmode=False,
                                location=(0.0, 0.0, 0.0),
                                rotation=(0, 0, 0),
                                layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

But how do you specify its name so it's not automatically determined (e.g. Cube.001)?

After some  more searching I found the solution here Adding Named Objects in Blender with Python API

The following example creates five cubes with names 'LittleCube000', 'LittleCube001', 'LittleCube002', 'LittleCube003' and 'LittleCube004'

for i in range(5):
   add_cube(location = (i*2, 0, 0))
   bpy.context.active_object.name = 'LittleCube{:03}'.format(i)

You can also find an object named 'OldName', and updated to 'NewName':

object = bpy.data.objects.get('OldName')
if object:
    object.name = 'NewName'

However, if 'NewName' is already in use, then a numerical suffix will be automatically added to it.


2.8 or 2.81 for beginner I wanna try to switch from Max to Blender and after the release of 2.81 I have the following question - Is it better to use 2.8 or 2.81 for someone who has never used Blender but at the same time is not new in 3d. The reason I ask is that I want to try some cool plugins such as mira, mesh machine, hardops, boxcutter, etc... In Max when you download a new version you have to wait for the new versions of plugins as some of them do not have forward compatibility and may work pretty buggy in the new release. So, have Blender plugins been already updated for the new version or do they have forward compatibility with new version. (and if they need an update how long does it usually take, I still have some time to learn the UI and the basics)

There is no harm in trying out 2.81 and exploring Blender.
If you are new to Blender, go to page 4 for the playlists of tutorials, which I consider the BEST for absolute beginners.
Blender Tutorials scrapbook

Some addons or plugins get regularly updated. I have two versions of Blender on my PC: 2.79 and 2.8. I just changed the name of folder containing 2.79b files, before downloading 2.8, as I wanted to keep 2.79b because of old addons and Blend files.


Is it possible to dynamically reduce the number particles based on distance from camera? I want to render an animation in which a car drives along a certain stretch of road. To one side there is a grass field, but this is quite big, both in the direction perpendicular to the car, and along the direction of travel. I don't have enough memory to put highly detailed grass on the whole field, so I was wondering if it was possible to reduce the number of grass strands based on the distance from the camera.

Or maybe there are other tricks to achieving this?

You can use a script that calculates the distance of each vertex in your grass field from the camera at each frame, and updates a vertex group controlling your particle system's density accordingly.

To get this to work:

Your grass field needs to have a vertex group, with all vertices included (create then select all verts and press "Assign").
In your particle system, you need to set this vertex group as the Density group, with inverted weight (see the image below).
Make sure to replace the names of your grass field object, particle system and vertex group if needed in the script (they're called "Plane", "ParticleSystem" and "Group" in the code below).
Open a text editor window, create a new text file, copy the code there and press "Run Script".

Here's the code:
import bpy

def weight_from_distance( scene ):
    floor = bpy.data.objects['Plane']  # <== REPLACE "Plane" with the name of your grass field object
    cam   = bpy.data.objects['Camera']

    vert_distances = [
        ( cam.location - floor.matrix_world @ v.co ).length for v in floor.data.vertices #Updated for 2.8+: Replaced '*' with '@'
    ]

    maxDist = max( vert_distances )
    minDist = min( vert_distances )

    for i, d in enumerate( vert_distances ):
        # Normalize distance and set as vertex weight
        floor.data.vertices[i].groups[0].weight = ( d - minDist ) / ( maxDist - minDist )

    pSysName      = 'ParticleSystem' # <== REPLACE with the name of your grass' particle system if needed
    vertGroupName = 'Group'          # <== REPLACE with the name of your vertex group if needed

    floor.particle_systems[ pSysName ].vertex_group_density = vertGroupName # Update / Refresh

bpy.app.handlers.frame_change_pre.append( weight_from_distance )


Is it possible to export specific components of a .blend file? Let's say I've made a nice rig, but it relies on a Python script I made. I prepare a .blend file to distribute: I put all of the objects into a group and a store the script with a conspicuous name.

In order for some unwitting user to use my rig in one of their files, they must use the Append function once to import the group (.blend → Groups → [group]), and once more to import my script (.blend → Text → [script]).

While it's only a mild annoyance for those who know what they're doing, inexperienced users often get confused with this, especially with extra clutter whilst Appending (Scene? Node Tree? Brush? FreestyleLineStyle?).

Is it possible by any means to export specifically the components I'd like a user to import, like specifically this group and specifically this text and nothing else from the file?

Ideally, opening the resulting export would import the chosen components, eliminating the need to Append at all.

You can simply create one new "partial" file, and import into it only (eg) armatures, from your "complete" file and share that "partial" , of course.

Or create a copy of the "complete" file and delete everything except (eg) armatures. There is no "export only (eg) armatures" command.


Cone shape smoothening Hi,
I am trying to render the green cone shaped hats as you can on the pictures above, but there are weird stripes around it
I followed youtube instructions and did turn on auto smooth (30 degrees) under 'Normals' section, but it does not seem to work at all
What am I missing out and what other ways would you recommend?
Thanks :)

The smoothing algorithm fakes normals across polygons with a linear interpolation across the triangles into which they are divided  for rendering, between the vertex normals at the triangles' corners. Asking that interpolation to simulate the curvature of a surface when the triangles are very long and thin is, literally, a bit of a stretch.
To give smoothing a chance, it's better to have those triangles approach equilateral as closely as possible, and to have smooth transitions between the sizes of faces, where you want smooth transitions between interpolated normals.

Just CtrlShiftB bevelling the vertex at the point a tiny amount, CtrlB bevelling the base perimeter a bit, with 2 segments and a profile of 1, and CtrlR cutting some edge-loops around the cone, as above. gives the smoothing algorithm more to chew on:

If you're getting really fanatical, you can delete the N-gon at the tip, and CtrlF Face menu > Grid Fill it, putting a couple more edge loops in there to aid the transition:

.. and even Catmull-Clark Subdivide the result... It depends on how far you want to go.


How can I get a cabinet projection camera? How can I get a camera to render with a cabinet projection?

I know it is possible to get a gaming isometric projection, but that's not really what I want.

I've tried positioning an orthographic camera in almost all possible ways but still can't get one. Actually an orthographic camera wouldn't work because as soon as you get the world x-axis parallel to the viewport x-axis, the world y-axis is always parallel to the viewport y-axis.

I think it is something like shearing, but I am not so sure.

Cabinet projection:

Image from Wikipedia

Demonstrating in 2D what is going on:

Mathematically it should be correct to render with a orthographic camera
and later transform the image. I think this is the easiest method when
you have multiple objects (so you do not have to add modifiers to each).
First you should shear in 2D (skewing) the rendered image then (if needed)
stretch to get the correct aspect.

Original:

Sheared:

Streched:

Most raster graphics editors have the tools to preform the above
transformations. This can also be done in the compositor using a
Blend texture and the Displace node.


Color Correction of a Video So I have rendered an Image Sequence and created a video of those images. Suddenly I realised that if I had only one image (shot by a camera or created with Blender) I would now go to Photoshop and do some colour correction (for instance set a white and a black point).

How best to do this with videos? Is it possible to color correct the whole Image Sequence in Blender or is that to be done in another software (like Adobe Premiere)?

Yes, you can do color correction in both the compositor, and in the color management tools of the Scene Tab.

I would use the Scene Tab option for Black and White, as it is pretty simple to do.

My recommendation would be to render one frame, get this set the way you like it in the UV/Image Editor, and then render your sequence.

Here's a look at the compositor (NOTE for just B&W adjustments, BrightContrast Node might be all you need). For rendering an existing Image Sequence change your Input to Image Sequence. If you want to influence color there is a Color Balance node just for this reason (although you could just play with grayscale values here as well). This is a huge topic, so this is not definitive, just a good starting point. You could use all sorts of things like color ramps, blurs, etc... to get the "LOOK" that you are going for.

If you find that you need to animate the color balance at any point in your timeline, you can keyframe any slider value by hovering your mouse over that value and hitting I as well.


Weird shading in my faces I have used blender for some time and have never seen something like this, I tried: Changing normals; Flat/smooth shading; deleting the faces; making the faces planar, and I can't find the solution.

It also appears in the render.

I would try removing double vertices and recalculating the normals.


How can I programatically evaluate each pixel before final composition? I'm using a complex compositor node setup, which in the end reduces the image to just a few solid colors. I would like to remove any pixels from the image which have no pixels of the same color in the 8 surrounding pixels (and replace them with whatever color is most common in those 8 pixels). I don't want to affect any of the other pixels.
Is there any method within the compositor I could use to do this?

An example of a pixelated image in the compositor.  This may help for one part of your question.


Rotate view around vertical Y-axis What I want to do while modeling is start at the Top Ortho view (NumPad 7) with green Y-axis pointed up and down on the screen. I then want to rotate the view left or right around my model, moving only the X & Z axis' while keeping the Y-axis vertical.

Ctrl Shift MMB  zooms the view in and out if the wheel is held down and the mouse moved. If the wheel is scrolled the view rotates around the Z-axis.
Going to view 3 and Alt Shift MMB  allows rotating around a Horizontal Y-axis.

Is there a way to rotate around a vertical Y-axis?

By default, blender is set up with turntable navigation style, which means the Z is held vertical through your orbit manipulation. There is another style of navigation which used to be common in 3D, called trackball. This lets you orbit without the restriction of Z-up, but it also makes it easy to lose your sense of space in the scene. You can change this setting in the user preferences, under the input section. The left column contains those settings.

In 2.8+ "trackball" option is now in the "navigation" tab of the preferences:


Shadow only plane isn't working. Keeps sending me the ground as being pitch black, and I have compared it to a working file I have tried copying the settings from (http://rgbmix.blogspot.com/2014/08/shadow-only-material-in-cycles.html) To no evail. Here is my .blend (http://1drv.ms/1GO6f2F)

Any questions on this solution I came up with, just ask. Sorry for the late reply. Hope this helps the rest of you! You can use an HDRI with this BTW!


blender bones not work in unity I created a pants model, and bones for it in a blender. Bones work in blender, but when I import it to Unity, they are not working, actually, they are not doing anything...

I used automatic weights when I was rigging.

Blender:

Unity

Model: https://ufile.io/gd6vz

A little late, but maybe you need to highlight the FBX in Unity and change the rig to Generic or Humanoid. It might have exported from Blender as "None".


Distribute an cylinder to a hexagonal grid with python I have create mesh cylinder with distribution hexagone, i use method from modifier array, I created a cylinder dimension x * y * z or z is the depth of this mesh

Are you a script to draw this distribution
exemple

This will do the trick (EDITED to also generate ellipses):

import bpy

rowLen = 10 # Number of cylinders per row (along X)
colLen = 10 # Number of cylinders per column (along Y)
xDist  = 4  # Distance between cylinders in X
yDist  = 2  # Distance between cylinders in Y

ellipseRatio = 1.5 # X/Y ratio (cylinder xScale)

for i in range( rowLen ):
    y = i * yDist
    for j in range( colLen ):
        x = j * xDist if i % 2 == 0 else (j + 0.5) * xDist

        bpy.ops.mesh.primitive_cylinder_add(
            vertices      = 24,
            radius        = 1,
            depth         = 5,
            end_fill_type = 'NGON',
            location      = (x, y, 0)
        )

        o = bpy.context.object # Newly created cylinder is the active (context) object
        o.scale.x = ellipseRatio

Change the xDist and yDist to control the distance between cylinders in X and Y.
Change the rowLen and colLen to change the number of cylinders in each row or column.

The number of vertices, radius, depth and end fill type are specified within the bpy.ops.mesh.primitive_cylinder_add operator as parameters.


Wire with SubSurf doesn't follow surface in Edit mode How do I smooth the grid along the mesh? I've been looking for the answer all day and I couldn't find anything.

Click on the triangle with vertices icon - last one on top row of SubSurf modifier panel.

Not always you want to have it enable in Edit mode since it can be sometimes quite confusing moving vertices affected by modifier. SO if you will have difficulties disable it to check situation.


How can you smooth out the transition between these two objects so that they appear seamless? I have two objects. One is the club head which has a subsurf modifier and the other is the shaft which doesn't have any modifiers. Is there a way to smooth out the transition between these two objects so that they appear seamless?

The main reason for the sharp transition between the two are the fact that the normals are discontinuous between the two objects at the intersection.  You can soften this transition considerably by creating custom normals for one of the objects using a data transfer modifier.  Target one object with the other, set it to affect custom normals, and transfer from nearest face interpolated (usually).  You need to enable autosmooth in properties/object data/normals in order to use custom normals.
You'll almost certainly want to use a vertex group to limit the effect of the data transfer.
Almost all of that is shown in the image below, which compares the effects of copied custom normals on the left with regular normals on the right.

Normals are vertex data, so the closer you can get the affected vertices to a face of the target object, the closer the match will be.  Sharp transitions can still affect actual shadowing and ambient occlusion.  If you have problems with the join because of these factors, you might consider using a shrinkwrap modifier as well, evaluated before (above) the data transfer modifier.


How do I export material preview scene data so I can render it with my own engine? I am implementing RenderEngine.render_preview(self, scene) and want to export the scene data, to then render it with my engine. I wrote the export script myself, so modifying it is an option, if that helps.

Any ideas are greatly appreciated!

PS: I tried:

Overriding the context for the operator: seems not to be an option, since it needs to contain active_object from the scene the material preview scene was created for. Results in a Blender crash, actually.
Adding a scene attribute to my exporter: cannot be passed to bpy.ops.export_scene.foo as blender properties would be.
bpy.props.PointerProperty: not an option, since you cannot point to Scenes. Usually you would pass the scene index, but in this case the material preview scene is special enough to not show up in bpy.data.

Two options:

If you really wanted to go the route of exporting the material preview scene, which would allow for forward compatibility in case the preview scene should ever change in blender, the only option would probably be to create a temporary scene, copy all the data from the scene received in the render_preview function and then export that.

But this is probably not worth the hassle, so I recommend to anybody who needs something like this:

Get the material preview scene as a .blend from the blender code repository and export that once. Finally in the render_preview method, just manually serialize the material properties to get those into your custom engine.

I hope this helps somebody else struggling with this.


Deforming/curving a mesh in two directions I have a mesh which is a "rough cut" of a final shape that is to be 3D-printed  and I now want to curve the mesh into the final shape but am having trouble understanding how the deforming tools work.

The shape needs to be curved in two directions, see the red lines in the images below:

...so that the final shape looks like this (from the front and the side respectively):

It's important that only the top of the object deforms; the bottom has to mate with the thing below it and so must not change.  How best to go about this?  Answers may begin with the usual "don't start from here" :-).

To complete the picture, here is the back of the shape to show that it is a shell:

If you need to loft a specific set of curves, Bsurfaces is a very good option: it can be used for modelling as well as retopology.

But for this job, probably:

Duplicate ShiftD the front edge of your box.
Rotate it up, and use it to form the back profile, and remove doubles at the corners. (Blue, below) .There are many ways of getting the shape here - the Loop Tools Add-on > Space, Proportional Editing, Vertex Smoothing are all handy.
Select all but one or two of the corner vertices, and extrudeEY,EZ the edges a bit. The sections to be bridged must have the same number of vertices for a clean result.
After selecting the new inner edges, CtrlE Edge Menu > 'Bridge Edge Loops'
In the tool's settings, adjust the number of cuts, and the smoothness, to suit.
Cut the result in half, and assign a Mirror modifier to manually fill the holes, make other tweaks, perhaps using the tools already mentioned.

The approach in this answer is sub-division modeling, in which you keep the hand-made topology as simple as possible (not necessarily regular,)  and let Catmull-Clark sub-d do all the work of creating smooth curvatures. With relatively few vertices, you can manually adjust the number to be equal in the horizontal and vertical profiles to be bridged.

Ctrl-select the path between two symmetrical vertices in one profile - you will see the number selected  at the top of your 3D view. Select the corresponding segment in the other profile, and note the difference.
Add vertices by subdividing edges, or remove by dissolving, to make the numbers equal. Don't worry about where..
..because you now use the invaluable Loop Tools > Space feature to spread the vertices evenly along your chosen segments. If it's a lot of work, you may do this work under a Mirror modifier, to halve it.

You will probably want to match segments with high curvature in separate batches from straighter ones, to maintain sufficient density in those areas.

You could forget the extrusion step, and just bridge the original edges, but I don't think the curve is quite as good.

You can assign your Subdivision Modifier after this, with the rest of your model, so they match.


Inverted mirror/live duplicate When mirroring the mirrored side of the object gets inverted (just like a normal mirror). I need the mirrored object to be exactly the same as the other one. Much more like a live duplicate so when I edit the first object the same thing gets applied to the duplicate. How would I do this? If there is no way using the UI then there sure must be a way to do this in a script, right?

You can press Alt + D to create an instance (live duplicate as I called it in the question)


Blender graph editor bezier I know how it works in Autodesk Maya but I prefer Blender more. The problem is that in Graph Editor animations curves are not Bezier curves and it's not handy to use for animation. This way I can't handle the animation curves completely as in Maya. Here is example. https://www.youtube.com/watch?v=RGuHdP_b3sk
Can you add Bezier curves in Graph Editor?

On top of other forms of interpolation, blender does use Bezier curves in the Graph Editor

The interpolation modes for segments of a curve can be determined by selecting a point in the graph an pressing the T key.

Or on the menu Key->Interpolation Mode:

Moreover the default interpolation mode can be determined in the preferences (CtrlAltU)

Some examples.


Blender unwrapping problem I had an unwrapped model, so i imported it to blender. But no seams are visible. But model is still unwrapped and unwrapped island are visible in image editor
Image for reference. https://drive.google.com/file/d/132FCa4OlEHIK8n1LIrpiDTE2OwzDSNHQ/view?usp=drivesdk

Seams are something Blender uses internally to let it know where you want to cut. They cannot be exchanged between different programms. In fact internally they don't exist at all and those vertices are actully duplicated, since no vertex can have more than 1 position in UV Space.
I'm not sure why you would need them though, since your mesh is already unwrapped.


3d connexion space mouse: how to move objects? I recently got a 3Dconnexion Spacemous and everything worked perfectly, at least in the training setup. Now I tested the device in blender and even though the control of the viewpoint works excellently I can not rotate/move objects, like the cube in the startup example. I read some posts, with older timestamps stating that this option is no available, but really? It worked in the training why does not it work in blender. There must be some solution to this problem since I can not be the only one who wants to use such a feature. Please help!

Moving objects with the Spacemouse has not been implemented in Blender, but good news is somebody is working on it! See How can I move an object using NDOF?


Windshield is pink although I have searched missing files I'm new to Blender and I know something is wrong but I'm not sure how to fix it. The windshield is pink as something has happened with the texture. I looked under the nodes and this is my view. ( Already tried to find missing files ) Any help?

The color of the whole piece looks a little pink. You might check your light tints. The windshield texture looks like it's okay as you have the window sticker in the right place.
To make the windshield look less pink, but you like the scene light color the way it is, you could color the windshield tint nodes with green to counteract the effect of the pink light.


can't execute the blender python through subprocess My blender is at the path of '/home/abc/Destkop/blender/blender-2.78'. When command line is at the path '/home/abc/Destkop/blender/blender-2.78', executing './blender -b /home/abc/Destkop/blender/car.model' through command line is working.

I am trying to execute blender in python through subprocess, but the code doesn't work with an error "/usr/bin/python: can't open file ./blender -b /home/abc/Destkop/blender/car.model", but the path is all right

here is my code

import os
import sys
import subprocess

if __name__="__main__":
    os.chdir("/home/abc/Destkop/blender/blender-2.78")
    subprocess.Popen([sys.executable],"./blender -b /home/abc/Destkop/blender/car.model ")

First I expect you should use subprocess.run() rather than popen, which is a lower level call that offers more options that you aren't using.

I would suggest using a full path rather than the ./ prefix to a command.

The main source of your error is your arguments list, the first parameter to run() or popen() is called args and is the arguments used to run the external application. In your case you are passing the path to the current executable, which would be the python interpreter you are running the script in. The next argument is a single string, which python appears to be interpreting as a file path to a script to run.

The arg parameter should be a list of strings that you would use in a terminal, the first string is the executable and each following string would be each option passed to the executable.

By defining the list on multiple lines for clarity -

myargs = [
    "/home/abc/Destkop/blender/blender-2.78/blender",
    "-b",
    "/home/abc/Destkop/blender/car.model"
    ]
subprocess.run(myargs)

The full path can be made more flexible by using bpy.app.binary_path.

You also have a trailing space after the filename which would get interpreted as part of the filename.


Why does the same material look different on another object? I have a PBR material. I have assigned it to the floor and the side wall. On the floor it has good scale, but on the side wall it looks compressed. The side wall and the floor has the same material. How can I get the same correct scale on both objects?

The procedural Brick texture in the 'WO_Wood Texture' node group has no vector input connected to it so it uses 'Generated' texture space that maps the texture's x y z values to the bounding box of the object so it depends on the size and orientation of the object - if you rotated the object and applied rotation (ctrl+a) you would see the texture change its orientation. To solve the issue you need to use texture space that is uniform in size. You could use 'Object' space and it would be the same size for objects with the same scale, but you would need to match orientation by applying it while the object rotation is aligned to the texture and then rotating it back to the way it needs to be in the scene. My recommendation however would be to use UV texture space and match the sizes and orientation of your UV maps:


how to create new scene with no default objects? It's very annoying to have to delete the cube, camera, and light every time I start a new scene. I only use Blender for games, so I never use those things. I would love for a new "General" scene to include a clean slate.

When you create a new scene, you can choose empty (new), so I guess you mean new file?
So your solution should be: Delete everything, make the layout the way you want and go to File -> Defaults -> Save Startup File


Finding grease pencil erasers via python in 2.8 I'm writing a script to index through the grease pencil brushes but I would like to filter out eraser brushes. I can determine if the brush is used for grease pencil by bpy.data.brushes[0].use_paint_grease_pencil but I can't find how to determine if it is a grease pencil eraser.

You can check the gpencil_tool property of the brush object.

According to the documentation, it will contain one of these options:

  DRAW Draw, The brush is of type used for drawing strokes.
  FILL Fill, The brush is of type used for filling areas.
  ERASE Erase, The brush is used for erasing strokes.

So you can make sure you only access DRAW brushes by using this if statement in your loop:

if brush.gpencil_tool == "DRAW":
    #Do something


How Can I Use Dynamic Sky from a Python script? I'm working on a script that will render several still images at a time. Most of the time it'll be using an alpha background, but I was thinking that if I could include settings for Dynamic Sky in the script, it'd be nice to quickly change, with one check box, from using alpha to using Dynamic Sky in the background. (Or maybe, when it's rendering a series of images, to render some with an alpha background and some with a sky background or, in some cases, to do both for some images.)
Is there a way I can have my Python script check if Dynamic Sky is installed and, if so, interact with it? I haven't been able to find a good reference showing me how I can pass data to Dynamic Sky (or activate it) from a script.
If there are other ways to easily use a sky background, I'd be interested in that as well. If it involves using external files, I'd need to know how the script can load those files into the current project.

I'd recommend enable Developer Extras in the Preferences to get the actual operator (button) call. Once enabled, this is going to add a new Edit Source entry to the RMB context menu which allows to inspect the associated code coming from the the add-on in the Text Editor:

Turns out to be a pretty simple add-on, just creates a certain world node tree and allows to control its contents using a panel. The code itself consists of only one sky.dyn() operator, one scene property Scene.dynamic_sky_name storing the name of the current data-block and the panel of course.
Proof using the python console on how to create a 'Dynamic Sky', get the reference, assign it to the world data-block and set the brightness to 2:
# Call the operator
>>> bpy.ops.sky.dyn()
{'FINISHED'}

# Get the created world data block
>>> dyn_sky = D.worlds.get(C.scene.dynamic_sky_name)
>>> dyn_sky
bpy.data.worlds['Dynamic_1']

# Assign the data-block to scene world
>>> C.scene.world = dyn_sky

# Get the Scene_Brightness node
>>> scene_brightness = C.scene.world.node_tree.nodes.get("Scene_Brightness")
>>> scene_brightness
bpy.data.worlds['Dynamic_2'].node_tree.nodes["Scene_Brightness"]

# Set the strength to 2
>>> scene_brightness.inputs['Strength'].default_value = 2

How to enable a certain add-on is nicely explained in the following Q&A:
How to enable and disable Add-ons via Python?


How to transfer render data from one object to another.? The other day I was thinking about wormholes and thought if it is possible to transfer the render view data of an object with a glass BSDF to another object, so the environment that we can see through the glass BSDF should look like that of the original object. Remember the wormhole in Interstellar, where they were able to see the other end of the wormhole through that sphere floating around.

Unfortunately, real time "portal viewports" are not supported in blender. However, one way around it is to transfer pre-rendered data into a new scene. Here's an example - see if it works for you.
Make your initial scene and put your object (sphere?) in it. Select the sphere and press Shift + S and select "Cursor to selected" to put the 3D cursor directly in the center of the object.

Then select your camera, and press Shift + S again, this time select "Selection to cursor" to put the camera where the cursor is (in the center of your object).

Now, remove your object (sphere) from the scene, leaving the camera in place. Don't just hide the object - it will still appear in the render if you hide it. Either move it or delete it.
Make sure you are using Cycles engine (this particular camera perspective only works in cycles), and in your camera settings, pick Panoramic - Equirectangular.

Now render and save your image. It should look something like this (bent).

In your other scene (other side of the wormhole), add your object (sphere) and for it's material, assign an Environment Texture (not an Image Texture), and pick the saved image you rendered. Use Reflection Texture Coordinates so the "wormhole image" will change perspective as you rotate the camera. (If you lower the roughness, the sphere will even reflect the current world environment, while still showing the "wormhole" environment inside)


Speed of baking fluid simulation slows down drastically When baking a fluid simulation the process slows down.

The simulation has object of type inflow and object of type control.

The speed of baking will go down from rate 1 frame/min to 0.06 frame/min within 50 frames.

Is this typical behaviour?

Time is a resource and if this is typically true then it helps to plan time allocation.  If there are methods to increase the rate then that is useful.

Using Fluid Control objects can significantly affect your bake times - particularly when using a large Radius in the control object.

The control object 'radius' determines how close fluid needs to get to the control object before it is influenced by it. When fluid is being influenced by a control object the fluid simulation has to do a lot more work to determine how that fluid is affected by the control object (which effectively emits a force on the fluid). Therefore, the more fluid is within the radius of the control object, the longer the simulation will take.

This means that at the start of the animation the baking may take a small amount of time but as fluid gets closer to the control objects it will drastically slow down.

To limit the overhead of control objects, keep the Radius of effect as small as possible for your purposes. If you are only using stationary control objects you may consider reducing the Velocity Force radius to zero.


Animation Nodes: Is it possible to instance nested instances? Edit: This thread is not concerned with Instances and their usage in normal blender but with the usage of instance object node in animation nodes

I struggle with a probably simple question. I created a simple circle array. The elements of the array are created with object instance node. In my advanced case i want to create smaller circles, offset them and so on. I can do this by simply copying the circle-array-loop but it is not handy.

I tried to to it with a simple example but i does not work out. I created a simple loop that offsets 4 instances of a cube. I created an object list output for the loop to put the results in a new object instance node and offset it with a new loop. But it works only with the first element.

Some advice?

Here is my current project including node tree. By instancing the loop i thought I'll be able to change the number of orbiting circles on the fly (inluding some math for the radius)...

Unfortunally the Object Instancer does not work in subprograms, because node it has to monitor the scene to keep track of a specific set of objects. It's very similiar to the Separate Text Object node.

There are two main ways to work around that:

Calculate the number of objects you need and create that many before the loop starts. For a simple grid there is also a template:

Make the first row of instances using AN and then use the array modifier like I did in this audio animation:

For that the source object needs an array modifier and you have to activate Copy Full Object in the Object Instancer node so that the modifiers are copied to the instances as well.

[EDIT]:

I just created a node tree that does parts of what you want to archieve. You may be able to use it as a reference:

Basically I use approach 1. here. The first loop splits the long object list into multiple shorter lists with equal length. The second loop calculates the positions of the objects.


Can you Export edited textures out of Blender? I'm not sure how to describe it in one sentence for the title.
But I really mean is that for example:
I add an image texture to the material> Base color, I slot inbetween the 2 nodes a Hue/Saturation Node. Its it possible to export the texture WITH the Hue/Saturation Node changes??

Referring to what you have told in the question , i am assuming that you have an image texture , you did something to it , and now you want to take it out as another image, well thats called texture baking , what you need to do is to open the image editor (i hope you know how to )

and then in your node tree , Add an image texture and create a new image , name it whatever you want and DONT connect it to anything.Then Switch to cycles renderer , apply the material to a plain and then in the render settings , go to bake , and give it a Diffuse Bake , Not combined bake. Then you will see in the image editor , that your black image has turned into the result of your node tree. Click on image>Save as to export it as a jpeg or png.


Alpha channel and specular map together I am trying to make this can label with some transparency around worn-out edges but I just cannot figure out how to add specular map to the texture at the same time. That fac slot is quite busy. Is there some way to do that with mixing?

Maybe you have an object just for the label, in this case use an 'add' shader to combine your diffuse and glossy shaders and connect them to the mix.

If you had only one object and your specular was supposed to be applied to metal parts only, then you could use a mix with the inverted alpha as factor.

You can mix and add shaders without limits so setting up these kind of material is preferable in some cases (if you wanted to add a texture that affects both the can and the label).

This is what I mean:


Animation in Unity look different than in Blender - rigify addon I am working on a school project and need to import this simple model and animation of a crane to Unity. It was made using a Rigify rig. In Blender the animation looks like this:  https://imgur.com/a/APOse0S
And in Unity it looks like this: https://imgur.com/a/OgPGWMH
The difference is in how the left wing and the head are distorted in some parts of the animation. It happens when I export in .fbx and also when I import a .blend file to Unity.
What can I do to fix this?

You probably have stretched the wing/neck and that's where the exported animation looks different.
Try to avoid squashing or stretching the bones and the problems should be fixed.
If you have an hour or so I have a video that explains why this happens. I recommend watching the whole thing but the squash/stretch problem is covered around 39:32
https://www.youtube.com/watch?v=1Xm1h700uhk


Bezier handles (tangents) on spiral addon I've added a spiral, using the spiral addon. It doesn't have bezier handles, nor does it behave like a Nurbs Curve, what can I do about that?

I want to curve the edge of the selected vertex, but I don't know how.

depending on which type of spiral you are creating there are some spline options often only 'POLY' or 'NURBS'.

However in EDIT mode on the tools panel you can change the spline type.


Is there a way to "lean" hairs without combing? I'd like all the hair to lean in a particular direction in relation to the normals, but don't want to have to comb the entire thing. Is there a way to do this? For example, say I had a torus, can I make the hair emit at an angle like in the diagram below?

You'll want to be doing something with the tangents.

TL;DR Enable Advanced, set 'Rot' to 0.5 and play with the Normal and Tangent values.

You'll need to enable Advanced in the hair options:

Then go to the 'Velocity' section, under 'Emitter Geometry.' The 'Normal' value is set to the length of the hair divided by four. (Just don't ask me why.) Increase the Tangent value to something like 0.1, increasing the influence of the tangent on the length of the hair. (Those strands on the side are doing their own thing; that's lazy modelling on my part and should not happen.)

Then modify the Rot attribute (Tangent rotation) to 0.5 to make the particles rotate in the direction you wanted. If you wanted you could change it to another value to make the hair rotate in a different direction. Just play with it for the effect you want.

The 'Rot' parameter is basically rotating the tangent around the normal, with -1 to 1 mapped to -180 to 180 degrees. This makes sense if you imagine that there are two imaginary lines for every hair (in this case, on every face.) The red is the normal and the blue is the tangent. The hair is being pulled in both directions at once, so its length outwards is the Normal value (0.075) and its length sideways is the Tangent value (0.8). The diagram is nowhere near to scale.

If you want to change the rotation side-to-side of the hair you will have to do a bit of fiddling with the Normal and Tangent values, but not the Rot. Because of the way the Tangent and Normals work (as I explained above), we can do a little trigonometry to find the length and direction of the final strand. In particular, with a Rot value of 0.5, if the Normal value is n and the Tangent value is t:

the length of the final hair strand will be sqrt(n^2 + t^2) (Pythagoras)
the rotation of the final hair strand side-to-side will be arcsin(n/t).

(arcsin is the inverse sin function.)


how does the color ramp interpolation work? how does the interpolation of the color ramp node in cycle affect the behaviour of the color ramp. During modelling the interpolation meant the shape of the curve, but while using node it must be something different........... How would this affect the values physically and technically(i.e. how would it carry out internally and how would blender interpret the input value of the color ramp)?

An easy way to visualize this is to add a plane with a displacement modifier with a Blend texture and Colors > Ramp selected. Start by adding and subdividing a plane:

You can add a subdivision-surface modifier as well for added detail. Now add a Displace modifier, and click New to make a new texture. Go to the texture panel and select Blend:

Now you can edit the waypoints and the interpolation types as you wish and view their results in real time. This will really help you see how the colors are mixed using a color-ramp.

Constant:

B-Spline:

Linear:

Cardinal:

Ease:

To visualize Cycles

Add a plane, unwrap it and add a gradient texture to an emission shader:

LINEAR

QUADRATIC

Easing

Diagonal

Spherical

Quadratic Sphere

Radial


Hello. My strips are suddenly unlabeled. How do I get the labels back onto my strips? Thank you Incredibly new to this. A minute ago the strips were labeled, and would display a waveform. I messed around with some settings, and now I can't get the labels back onto my strips. PLease help me get the labels back onto my strips. Thank you.
!(https://ibb.co/74w4LcY)


How to make a force field concentrate only on a specified area? For example if I use 3 different object emitting particles, I only want 1 of them to get affected by the force field.

I tried adjusting the area to be concentrated, but the force field affects everything which is in the same layer.

These are the settings that I’ve done to adjust where the force field should take effect.

You can set the Effector Group to limit the force fields which can affect a given particle system:

Add an empty (or really anything that's not a force field)
With the empty selected, create a group (⎈ CtrlG)
Specify this group as the Effector group for the systems which you do not want to be affected by any force fields:

Optionally delete the empty.

Result:


Is it possible to render an object just with the normal map? When an object with a normal map is rendered, there are always artifacts of the polygons of the original model on the outline of the model. Is there a way to make them invisible?
Here is what I mean -

What I get (notice the outline) -

What I'm aiming for (notice the outline) -

I think that this would impossible because if the outline polygons were invisible, the model itself would be invisible.
Any ideas?

Question Update: I thought of this idea because when a model with normal map is rotated, the outlining polygons are not shaded by the map. I was thinking of making that area invisible. Is it possible?
Here is a render with more extreme example to show what I mean -

A normal map will allow to simulate high poly details on a low poly mesh (using light) but won't change the shape of it. You won't be able to remove the visibility of the topology on borders with good result. You can try a fresnel or layer weight node to mix a transparent but this will make holes. This could work on a volume but not on a surface shader.

All you can really do is adding a subsurf to add some topo and smooth the borders.


Is there a way to execute code before Blender is closing? My add-on needs to do some clean-up action before it is ended. This is done in the unregister() function in __init__.py when the user unchecks the add-on in Blender's preferences dialog and works fine in this case. But if the user just closes Blender the unregister() function seems not to be called. How could I achieve this or force Blender to do some other action before closing? There is no handler list for the event "Blender is closing" in bpy.app.handlers as far as I can see.

Yes, this is possible, You can use Python's atexit module.

This can be used exactly as you would writing regular Python code (no Blender specifics are required.).

eg:

import atexit

def my_cleanup_code():
    print("cleaning up!")

atexit.register(my_cleanup_code)


Selecting a smaller object hidden inside another big object How can I select a hidden object to rotate , remove or resize which is hidden inside another bigger object ("hidden" means a smaller object is inside another bigger object) ?
Clicking with the right mouse button on the bigger object may help but that is not an obvious approach as I don't know exactly at which position the tiny object is located.Moreover , What about a tiny object inside a super big object ? (Like a luggage in an airplane model)

In this case, and in the case where you have a large scene with many objects, selection is done more easily using the  Outliner.


How to model objects inside environment texture I'm currently attempting to model the inside of a church. I have some of the rough dimensions and an equirectangular projection which I am using as an environment texture. I'm running into problems getting the objects to map onto the right places as I rotate the environment. It's probably a simple issue of scale and mapping the environment texture correctly into the scene, but I'm really not sure what the best workflow is to solve this. Are there some tools inside of blender that may make this a little easier?
I don't need a lot of detail. I really only need the walls and floor.

To get equirectangular texture mapped correctly it is usseful to know distance of the camera (that took a shots) from a ground. Usually it is about 1.5 - 1.7 m.

This should be a distance of floor face from object's origin, because  the origin represents the place of real camera and all pixela of equirectangular texture are like exploding sphere into all directions from origin location.

It is quite useful to position also Camera object at Plane's Origin. Lock position at X=0, Y=0, Z= Plane's Origin and enable under 3Dview side Properties panel (N) View tab > Camera to View.
In Shader editor > World set the same equirectangular texture. Now they should match from Camera view.

With Plane selected switch to Edit mode and start to reconstruct environment ...

Note:

Or if you know some distances you can ensure with those. Like if you know size of floor, set that in edit mode and by moving this face along global Z axis you can adjust position to match with a texture.
and sure ... you have to use Environment texture node (not Image node) ;)
You don't have to use a Camera setup described above, you can directly extrude faces in 3Dviewport, but gives you nice overview what is where.


How can i create a realistic water material with foam in cycles for a water simulation So i made a water simulation in blender and applied a simple water material with a glass shader ior 1.33 and roughness 0.1 However it doesent look really good and I would like it to have some foam on the surface when it moves quite fast. Im new to blender materials and i dont know how to do it. Can anyone help?

Use a float particle. Create an object like box > Go to physics tab select fluid, then apply fluid type as particles > check float (Note: there are 3 types  Drops, Float and Tracer) you'll probably need Drops and Floats, but will do float first and the rest I leave to you... The box that you added will be our emitter when you bake the domain make sure under the fluid particles that the value generate = 1.000 then tracer is equal to the number of particle count. Make sure before you bake that the cache location of the domain and the fluid particles are the same then bake... Then you'll see the emitter after baking. > Go to particles Tab you'll see Fluid Particles > select it and go to object place and add another object onto it make sure that the object's scale is a bit too small so it will appear realistic probably an icosphere with 1 iteration these method will definitely slow down your system if the object scale is quite too big. You can bring down the display to 10% just for viewing purpose not a 100% this method can be used for post bake... Result: Foam or particles will appear on your fluid when the fluis is disrupted or in motion then particles die if fluid is at rest... Hope this help... If you want to add another particles just use the same method just use a different count value in the fluid generate... (Note: Drops particles create splashes when fluid is at a peak, Tracer leaves trace like a raindrop on a glass it also leaves traces on the domain... P.S to make your fluid look good select domain > go to Fluid boundary > add subdivisions probably 2 smoothing 0 Or crank up final resolution to 200-400 for better fluid result..