Particle system to create texture I've made a forest scene with Botaniq add-on with lots of grass and trees which means lots of particles. Obviously slows everything down massively.
Is there a way to "freeze" layers or manage the layers so that I can add extra things.
For example I want to add a fire but I'm pretty sure the combination would actually set my computer on fire.
Basically, what is the best ways to deal with multiple particle systems?

Hi if by freeze layer you mean can you freeze the particles in their current place and stop them from further emitting, then yes.
You can select the particle system
under the modifier tab,
you have the option to convert the particles to a static mesh.


How to accurately position the start/end color of linear gradients in blender? I have two 2D meshes next to each other in Blender. I plan to scale-animate one of them (with the connecting edge remaining constant). I'd like the two meshes to have a linear color gradient go across them. The following image shows a schematic of what I'm trying to achieve (the 2 rectangles representing my 2D meshes in Blender).

This schematic is drawn in figma, which provides a handy "from-color-1-to-color-2" overlay over the shape to be colored making it easy to coordinate such a color gradient across two shapes because this tool lets you specify the start/end color right at the edges you're interested in.

However, all I have seen in Blender so far when it comes to color gradients doesn't suggest a way to precisely determine the start/end color for any given edge of a 2D mesh. Is this possible? Thanks!

To add a basic gradient you first need a Texture>Gradient_Texture node, and have it's color output connected to the base color of a shader.

To add color to the gradient use a Convert>Color_Ramp node, and assign whatever colors you want to the extremes.

To control the placement you must understand texture coordinates. In this case, because there are no explicit coordinates set, the default is "generated coordinates". Generated coordinates start at the bottom left of the object's bounding box.

To rotate the gradient so that it starts at the bottom of the object you have two choices:

1- Select the Gradient texture node, open the item properties and use the rotation on the Z axis to rotate the gradient -90 degrees.

2- (preferred option) Use an Input>Texture_Coordinates and a Vector>Mapping nodes  to control the placement of the texture. Why is this better? Because it is easier to see what is happening if anything goes wrong...

The exact location of the colors is thus determined precisely by the location, rotation, and scale in the mapping node.

The next step would be to learn even more about texture coordinates, and use UV coordinates instead, that will give you coordinates based on the actual geometry of the object and it's vertices.

But since the goal of this answer is not to teach you how to use blender in a single post, you can do the rest of the learning into coordinates by watching Bartek Skorupa’s video on How to Manipulate texture coordinates


2.8 proportional edit hey guys so i love using the proportional edit when moving vertices around on a project that i have already sub divided. that way everything still keeps , you know.. the proportional shape that i am looking for. I have recently come across a problem in blender 2.8 its not a bug as far as i know.. something in the settings just isnt allowing the prop.editing to do anything ..

I.E: I select one vertex, move it hoping that the surrounding vertices will follow proportionally. what happens though is that no proportional editing takes place what so ever. the only vertex that move is the selected vertex.

I read in a previous post that the mouse wheel adjusts the proportional radius, but mouse wheel is just for zoom in/out as far as i know.

if anyone has a solution i will be for ever grateful.

DB4L

When you have the vertex selected the mouse wheel will work when you are actually moving the vert. Select the vertex, press G (move) and as you move roll the mouse wheel. Make sure prop ed is switched on (shortcut O).


Can I copy UV map to many objects with the same and/or symmetrical topology? I made a shoe, which needed to fit 7 different characters. So I made a mirror object for another leg, and then copied resulting 2 boots 7 times and changed shape to fit the 7 characters. Then I found I have a problem in my UV map layout.

Is it possible to fix it once and then propagate it through all 14 objects, or I have to start again from 1 shoe?

I used the suggestion given by gandalf3 and made it all work for my case. Here is the procedure:

I have 14 shoes objects with identical broken UV, 7 of them are mirrored (using CtrlM mesh mirroring).
I fix UV on one of the shoes
I go to its mirrored version of the fixed shoe, flip normals and then use CtrlL -> Transfer UV layouts. (If I do not flip normals transfer does not work right and resulting texture is a mess).
I flip normals on the mirrored object again. At this point one size of the shoes has right texture with correct UV map for both mirrored and not mirrored mesh.
I use mirrored mesh to transfer to all 7 mirrored sizes  by selecting all mirrored objects and selecting last the mirrored object with corrected UV and using CtrlL -> Transfer UV layouts.
Repeat the same procedure for not mirrored 7 sizes.


How to make distance fog I've been trying to use volume scattering to get this effect though it doesn't look as nice as this one does, with the blue-ish shade.
I was wondering what the trick is. Thank you!

Use the mist pass. You can enable it by going to the Layer Properties and under "Passes", enable "Mist". Then, in the camera settings, under "Viewport Display", enable "Mist" so you can see where the mist begins and where it ends (the location where an object will be completely invisible, shrouded by mist). This can be adjusted in the World settings.
Now head to the compositor workspace and you will see a "Mist" output. Plug that into a coloramp. There you can adjust values, and clamp the pass as you want. It will make sense once you mix it with the output using a MixRGB set to "Add".
Here is a very quick youtube video I found detailing the parts: https://www.youtube.com/watch?v=uXXYUv-793c


Face Mesh Disappears when I bind it to a Facial Rig I am trying to create a facial rig with the FaceIt Plugin from Blender Market.
I'm trying to bind the facial mesh to the rig it created. I'm finding that the face mesh disappears whenever I try and bind it.
Before binding the mesh

After Binding the Mesh

Any help would be appreciated

The disappearing of your mesh is actually most probably just a huge difference in scale.
Faceit scales the mesh and armature during binding. Older versions of Faceit applied the scale after binding. This is not happening anymore. By upgrading the Faceit add-on to a more recent version, you should be able to bind again.
By the way: What you are trying to do is binding a mesh that is already bound to an armature to a new armature (the Faceit armature). Faceit will overwrite the weights. You should work on a duplicate, as described here: https://faceit-doc.readthedocs.io/en/latest/workaround/


Problems with IK Rigging and Ragdolls I'm currently working on a game that uses an AI system that heavily depends on having humanoid rigs (and ragdoll physics), and I have a modeler/animator who made this character for the game that looks great, it's just having some problems due to the way it was rigged.

The animations work great (though I was unable to make the rig humanoid), but the major problems happen when I force the character into a ragdoll when they die, which results in the following:

We immediately figured out that it was because of the way the animator used IK targets to make the animations (specifically for the legs), and that since there were no actual feet in the rig aside from the IK targets on the legs, the rig would always think the feet are still standing normally.

We thought adding "dummy" feet into the rig that follow the IK targets would fix the issue, but unfortunately the problem has persisted. What I really want is to not only fix the problem with the feet, but also make the rig a humanoid (for my sake), but unfortunately simply trying to use the dummy feet to make the rig a full humanoid didn't work that great, the characters just kind of stutter around and never pose properly. This is probably because the animations are depending on the IK targets to work, which complicates things.

To give you an idea of the rig, here is my attempt at making the rig humanoid:

So far the only solution people have recommended has been to completely re-do the rig and the animations, which my animator really doesn't want to do as it would take a significant amount of time and prevent him from doing anything else for the game for a few days.

For this reason, I am making this post to see if anyone has any other solution that could fix this problem and not add a significant amount to our work load. Anyone got any ideas?

You can go to pose mode, choose the menu "pose-animation-bake action", activate "visual keying, clear parents, clear constraints, and click OK: the animation will be baked as it was done without IK.


How to get location and rotation of light instances with python? I am trying to collect information about lights existing in the scene with python. For now I have color, strength, type and so on but now I need to store also location and rotation of the instances. How should I approach it?
For now this is how it looks like:
import bpy
import math

def get_lights():

    lights_list = []

    for light in bpy.data.lights:

        light_dict = {}

        light_dict['type'] = light.type

        light_dict['name'] = light.name

        if light.type == 'SPOT':
            light_dict['angle'] = int(light.spot_size*180/math.pi)

        if light.type == 'SPOT' or light.type == 'POINT':
            light_dict['size'] = light.shadow_soft_size

        light_dict['strength'] = light.energy

        light_color = []
        light_color.append(round(light.color.r, 2))
        light_color.append(round(light.color.g, 2))
        light_color.append(round(light.color.b, 2))
        light_dict['color'] = light_color

        lights_list.append(light_dict)

    return lights_list

l = get_lights()
print(l)
```

For global locations use matrix world
To make sure the global transform of light is as shown visually recommend using the matrix world.  Eg for default lamp global location and rotation
All the global transform info is available in the matrix.
>>> C.object
bpy.data.objects['Lamp']

>>> C.object.matrix_world
Matrix(((-0.29086464643478394, -0.7711008191108704, 0.5663931965827942, 4.076245307922363),
        (0.9551711678504944, -0.1998833566904068, 0.21839119493961334, 1.0054539442062378),
        (-0.05518905818462372, 0.6045247316360474, 0.7946722507476807, 5.903861999511719),
        (0.0, 0.0, 0.0, 1.0)))

>>> C.object.matrix_world.to_translation() # global location
Vector((4.076245307922363, 1.0054539442062378, 5.903861999511719))

>>> C.object.matrix_world.to_euler() # global rot in Eulers
Euler((0.6503280401229858, 0.055217113345861435, 1.8663908243179321), 'XYZ')

Remember all angles are in radians.
By using ob.matrix_world.copy() in code below it creates a "snapshot" of when script was run. If ob.matrix_world is used it is bound to the reference of the light and will change when transformed, an most likely crash blender if referenced after object is removed.
import bpy

def get_lights(col):
    assert(hasattr(col, "objects"))
    def to_dict(light):
        d = {}
        # add stuff already got
        d["matrix_world"] = light.matrix_world.copy()
        return d

    return [to_dict(o) for o in col.objects if o.type == 'LIGHT']

# test call
# lights in scene
print(get_lights(bpy.context.scene))
# lights in blend
print(get_lights(bpy.data))
# lights in active collection
print(get_lights(bpy.context.collection))


Problem with x-ray mode So, I started using blender 2.8 for a while now. And couple of months ago I started experiencing some really weird white dots on x-ray mode in the view-port shading. I use this mode a lot to model assets with reference images. And it's pretty hard to see the shapes I'm modeling with that horrible shading problem. Is it a setting that I have changed by mistake? Or is it just a bug? (thanks for taking your time to read this)

My pc specs: Ryzen 7 first gen, vega 64 (sapphire nitro+), 32 gb ram.

Update: I don't like using wire-frame mode, cuz there are some details that I prefer seeing with the solid shading, like good edge flow with smooth faces, or some parts with the curvature on. Here's another example on another file that for some weird reason works just fine, but at times I get the same problem:

Just click off the solid view, whilst in x-ray etc.  If you have wireframe mode on instead it should be fine. Hold z-select wireframe, hope it helps. It just happens with solid view.

You seem to not have overlays turned on in the mode you want, in any view etc.
I tried it, and it shows the same without overlays. I assume it is wireframe-mode turned on in the overlays above icon, that creates the shading you dislike. Turn it off. Then try changing views.


I can't load an image from a script I'm trying to use Blender's mesh displacement from a script to create stl's. Once this works, I'll run blender with --background to create the stl files from the command line.

I start Blender with:

blender ~/3D/Models/4x4UVSquare.blend -d -P ./test.py

the script is:

import bpy

bpy.ops.image.open(filepath="junk.jpg", \
    directory="/Users/me/3D/Art Work/", \
    files=[{"name":"junk.jpg", "name":"junk.jpg"}], \
    relative_path=True, show_multiview=False \
)
bpy.data.images["junk.jpg"].reload()
bpy.data.textures['displaceImage'].image = bpy.data.images['junk.jpg']

I put in the ".reload()" hoping it would help. It doesn't.
Blender starts up, loads the .blend file, loads the image and assigns the image to the texture. When the UI comes up and displays the scene, there's no displacement. In the UI Image area under Texture, the filename is correct, but a little message reads "Can't load image".

When I hit the "reload" icon, the image reloads, the displacement appears and all it well.

Why do I have to reload the image at all? Why doesn't image.reload() work in the script?

To load an image from disk doesn't require bpy.ops. You could use:

bpy.data.images.load(filepath, check_existing=False)
# Load a new image into the main database

>>> bpy.data.images.load("/home/zeffii/Desktop/some_image.png")
# bpy.data.images['some_image.png']

# if an image exists by that name already, you could set the name
bpy.data.images['some_image.png.001'].name = 'some_image.png'

# check_exist=True will reuse an existing image with that name
>>> bpy.data.images.load("/home/zeffii/Desktop/some_image.png", check_existing=True)

bpy.ops.* are triggered each time you interact in some way with the UI (buttons, shortcuts..). Often the UI triggers a bpy.ops.whatever with  information about which window the event occurred in - this is important because you could have two UV image editors open, or two TextEditors (just an example). Therefor sometimes just calling the ops isn't enough, and some ops even expect a UI which isn't present in background mode.

All these ops eventually operate on lower level bpy database content. So when possible avoid bpy.ops and look through bpy.data to find a more direct route. The auto-complete function of the bpy console is great for finding methods and attributes.


Move rig bone in edit mode bugged video about rigging issue

Why does this happen? I'm only moving the bone on the z axis but it moves to the side also.

Ok i figured it out myself, had snapping to closest face enabled.


How to get Camera view like Top-view? I have been trying to make my own logo. The problem I have been facing is finding out how to make the camera face the top ortho view like shown here:

I want it to be facing right on Top Ortho view and want the X, Y, and Z angle to be flawless in order to make the logo stand straight.

All help is appreciated.

Select the camera, press AltG, AltR (Reset camera position and rotation), then press GZ (move up along Z axis) until you reach the desired height. You can consider to set the camera to Orthographic (in the properties window, with the camera selected, the little camera icon) to have your logo with no prospective distortions; in this case change the "ortographic scale" to set the "distance" of the camera, as moving it will have no influence.

Another method is, in the 3D window, press N to open the properties tab, select the camera, modify the values in the transform tab to position the camera exactly where you want.


How do I apply a texture to only 1 face? Since Blender 2.8 I cannot seem to texture only 1 face. I have done this before in Blender 2.79, but now it seems to have changed completely. Is this still possible in Blender 2.8, or do I have to switch to Texture Painting?

I don't know how it worked in Blender 2.79. But if you want to add texture to a single face you have to go to Edit-Mode and then mark your face. Create a new material and klick on assign. (The Materials Pannel in 2.8 is on the right side of your Viewport.)

Now you should only have the marked face painted, you are able to add textures by pressing: Use Nodes (also in the Material Panel).

I hope my description works for you, if not let me know.

Greetings Sebbe


How can I create a mathematically correct arc/circular segment? Given 3 vertices, or a chord and height, how can I create a mathematically correct arc/circular segment with an even distribution of vertices while controlling for the number of vertices.

I frequently need to model arcs in Blender from real-world measurements. Typically I know the cord and height of the arc, giving me 3 points on the full circle.

To create a mathematically correct arc, controlling for the number of vertices, my workflow is as follows:

Plug the coordinates of the three vertices into a digital graphics calculator.
Retrieve the location of the centre of the full circle, and the angle between the vertices at either end of the cord.
Place the cursor at the centre of the full circle in Blender by editing the 3D cursor coordinates.
Select one vertex on the chord and use the spin tool, manually entering in the angle retrieved from the graphics calculator and the number of desired vertices.

While this produces an accurate result it is a rather tedious process. How can I achieve this same result using a faster workflow?

Add Primitive Arc Operator

The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
bl_info = {
    "name": "Circular Arc",
    "author": "batFINGER",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > Add > Mesh > Circular Arc",
    "description": "Adds a mesh circumcircle given base and height",
    "warning": "",
    "doc_url": "",
    "category": "Add Mesh",
}

import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy_extras.object_utils import AddObjectHelper

from bpy.props import (
    IntProperty,
    BoolProperty,
    FloatProperty,
)

class MESH_OT_primitive_arc_add(AddObjectHelper, bpy.types.Operator):
    """Add a simple arc mesh"""
    bl_idname = "mesh.primitive_arc_add"
    bl_label = "Add Circular Arc"
    bl_options = {'REGISTER', 'UNDO'}

    length: FloatProperty(
        name="length",
        description="Chord Length",
        min=0.01,
        max=100.0,
        default=2.0,
        unit='LENGTH',
    )
    height: FloatProperty(
        name="Height",
        description="Arc Height",
        min=0.01,
        max=100.0,
        unit='LENGTH',
        default=1.0,
    )
    segments: IntProperty(
        name="Arc Segments",
        description="Number of Segments",
        min=1,
        default=8,
    )

    def draw(self, context):
        '''Generic Draw'''
        layout = self.layout
        # annnotated on this class
        for prop in self.__class__.__annotations__.keys():
            layout.prop(self, prop)
        # annotated on AddObjectHelper
        for prop in AddObjectHelper.__annotations__.keys():
            layout.prop(self, prop)

    def execute(self, context):
        h = self.height
        a = self.length / 2
        r = (a * a + h * h) / (2 * h)
        if abs(a / r) > 1:
            # math domain error on arcsin
            return {'CANCELLED'}
        angle = 2 * asin(a / r)

        mesh = bpy.data.meshes.new("Arc")

        bm = bmesh.new()
        v = bm.verts.new((0, r, 0))
        bmesh.ops.rotate(
            bm, verts=[v], matrix=Matrix.Rotation(angle / 2, 3, 'Z'))
        bmesh.ops.spin(
            bm,
            geom=[v],
            axis=(0, 0, 1),
            steps=self.segments,
            angle=-angle,
        )

        for v in bm.verts:
            v.co.y -= r - h
            v.select = True
        bm.to_mesh(mesh)
        #mesh.update()

        # add the mesh as an object into the scene with this utility module
        from bpy_extras import object_utils
        object_utils.object_data_add(context, mesh, operator=self)

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(MESH_OT_primitive_arc_add.bl_idname, icon='MESH_CUBE')

def register():
    bpy.utils.register_class(MESH_OT_primitive_arc_add)
    bpy.types.VIEW3D_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(MESH_OT_primitive_arc_add)
    bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.mesh.primitive_arc_add()


Follow active quads does not "flatten" all the poligons I modeled the U.S.S. Enterprise NCC-1701 and my next step is to unwrap it before texturing.

At the moment, I'm working on the unwrapping of the "disk part", but I'm having some problem. Here you can find an image:

What I would like to do is to use "Follow active quads" to "flatten" horizontally the UV map and texture it easily. However, it seems that "Follow active quads" doesn't work completely.

In my example (the image), some parts don't get flatten horizontally (in red). It seems that this behaviour is caused by the extra details in the pulse propulsion.

I had a similar problem with the upper and lower part of the disk, connected to the pulse propulsion (in yellow). It's not shown in the image, but I tried to put an extra seam to flatten horizontally the upper disk (in pink) and I could not flatten the yellow parts.

Hopefully I was clear enough on the explanation. If not, feel free to ask.

EDIT 1:
Blender file available here.

I Don't know how you got that. I rebuilt your mesh and I don't get that. And also you have ngones which is not good for your topology or your unwrap. So maybe correct this, select your mesh again and U > Reset, and again select your ring, select a quad of your ring, and U > Follow Active Quad.


I modeled a dragon character. when i import it to unity its mesh is inverted.Can any one tell me why? look out an object and its mesh is inverted. Can anyone told me how to fix this please?

As lemon suggest:

Rotations not applied in Blender before exporting? Or Z forward -Y up options not set when exporting

Explanation:

Unity uses a left-handed coordinate system. Blender, right-handed. But why?

It's just tradition. Neither system is objectively better than the other, so you just have to get used to using both and switching between them from time to time!

Right-handed coordinates are traditional for modelling where one imagines the XY-plane to be horizontal, and the Z-axis to be vertical.

Left-handed coordinates are traditional for cameras where one imagines the XY-plane to be vertical (corresponding to screen coordinates if the camera is upright), and the Z-axis is into the screen (corresponding to the Z in the Z-buffer).

So modelling applications like Blender often use right-handed coordinates and game development toolkits like Unity often use left-handed coordinates. But some systems go the other way: RenderMan is left-handed, and OpenGL is right-handed (or at least early versions were, it's fairly agnostic now).

Another reason why handedness can differ is because of different conventions about the direction of the Y axis in two dimensions. Back in those far-off days when computer displays used cathode ray tubes, the display was scanned from top to bottom and left to right by the electron beam. So it was convenient to have the Y axis running down the screen, with the coordinate origin in the top left. On the other hand, it's conventional in mathematics for the Y axis to point upwards, with the coordinate origin in the bottom left. When you add a Z axis, these conventions give rise to three-dimensional coordinate systems of different handedness.
Source: left-hand-and-right-hand-coordinate-systems


Batch generate preview/thumbnail image for old files? I got hundreds of old files (some are from 2.4x) that need to generate Preview/thumbnail images with the new Blender version. I think the straightforward way is to open and save each files to generate, which is quite inefficient. So I'm wondering a quicker way to do this automatically. (via a command line or bat file?)

Thumbnail extraction via Python

The most current thumbnailer is maintained by ideasman42:

https://github.com/dfelinto/blender-git/blob/master/release/bin/blender-thumbnailer.py

It extracts thumbnail that is stored in a blend file for use with a file manager.

Usage: blender-thumbnailer.py <input.blend> <output.png>

e.g.

python blender-thumbnailer.py test.blend test.png

Batch rendering via command line

Alternatively you could batch process the .blend files from a .bat file:

for %%f in (*.blend) do (
            blender %%~nf.blend -b -o //%%~nf -F PNG -x 1 -f 1
)

See also the documentation of command line parameters.

In order to set a fixed thumbnail size you would (probably) invoke a python script (-P script_name.py) that sets the render size.

Something like this size.py (didn't work for me):

import bpy

bpy.data.scenes[0].render.resolution_x = 128
bpy.data.scenes[0].render.resolution_y = 128
bpy.data.scenes[0].render.resolution_percentage = 100

In Blenders installation directory is a file "BlendThumb64.dll" which is registered during installation or

C:\Program Files\Blender Foundation\Blender>blender -R
Registering file extension...success (user)

Running as administrator would register .blend for all users.

I'm not sure whether this is related: In C:\Users\<username>\.thumbnails\normal and C:\Users\<username>\.thumbnails\fail\blender you can find created (or failed) thumbnails.

Load, render and save

import bpy
import os

filepath = bpy.data.filepath
directory = os.path.dirname(filepath)
image_path = os.path.join( directory , "image.png")
bpy.data.scenes['Scene'].render.filepath = image_path
bpy.ops.render.render( write_still=True )
print("file %s" % filepath )
bpy.ops.wm.save_as_mainfile(filepath=filepath)

blender -b test.blend -P save.py (above script, didn't recreate the embedded thumbnail)


How in the script to apply an image on the image texture node I can’t find the answer to how to select an existing node through the script and apply the already added image without a GUI.

I have a ready-made script that opens a prepared blender file with saved materials, makes an import of the SVG curve and performs manipulations by adding these materials.

In one of the materials I need to change one picture.
I found a code that can add a node with a new picture

import bpy
bpy.data.images.load("D:/temp/1.png", check_existing=True)
mat = bpy.context.view_layer.objects.active.active_material
tex = bpy.data.images.get('1.png')
image_node = mat.node_tree.nodes.new('ShaderNodeTexImage')
image_node.image = tex

This code created a new unconnected node and it needs to be connected to three other nodes. But I need only assign an already linked picture to the already connected node.

The solution was quite simple, though not found answer on the Internet.

import bpy
bpy.data.images.load("D:/badge/temp/1.png", check_existing=True)
mat = bpy.context.view_layer.objects.active.active_material
tex = bpy.data.images.get('1.png')
image_node = mat.node_tree.nodes["Image Texture"]
image_node.image = tex

At the same time, the desired node must be selected previously in the material so that everything works out.


Blender game - explosion type motion I have a setup like this:

My task is to create three types of motions: rotate each piece individually, rotate the whole thing, and an explosion type of motion.

I've been unable to figure out how to do the last one, ie. all the pieces would move away from the center one (the one in the very middle, not the selected one). How can I do this?

In case what I'm asking is unclear, I've impemented this in opengl before here - press '1' on the keyboard once, and it will do what I'm trying to achieve in blender.

You can use the manipulate center points option for this. It works best with a pivot set to the 3D cursor so select the center cube, and Shift+S>Cursor to selected to send the cursor there. Then hit . to set the pivot to the 3D cursor.

Enable the manipulate center points option by clicking the arrow with the dots over it. Now simply scale the all the objects to send them further away. (S


What is the NLA Editor used for? I understand how you animate something (say bones location and rotation in an armature). Doing so creates an action; that action can be renamed in the Dope Sheet. In the NLA Editor I can create a NlaTrack from that action, but what is that for?

To quote the manual:

  The NLA editor can manipulate and repurpose actions, without the tedium of keyframe handling. Its often used to make broad, significant changes to a scene’s animation, with relative ease. It can also repurpose, and “layer” actions, which make it easier to organize, and version-control your animation.

Ok all that sounds great, but what is it really used for and how does one reuse an action in the NLA Editor?

As may be quite obvious from my question, I have not done much animation, nor used the NLA Editor.
So what is the NLA Editor used for?

Short answer: High-quality character animation is hard work even when it is done by experts. A lot of work goes into every second. Nonlinear animation is an attempt to speed things up, but note that it could sacrifice some quality.

Longer answer: When you start animating, you can be successful using only keyframes, but after a while you find yourself animating similar motions again and again, and you want to reuse your work, just like you reuse node groups. You also want to be able to mix and blend overlapping motions in a nondestructive way. You might want to create an animation layer for the broad movements and one for the refinements. Or a layer of face motions and one for the body, and combine them according to the story. Nonlinear animation is used for achieving these goals.

Note that the quality of automatically reused and blended motions might not be as good as the quality of a hand-crafted keyframe animation, but they could be fine for background characters. It could be a tradeoff between quality and time.

The following video explains the "how" part with an example: https://www.youtube.com/watch?v=W4TkA5P5Qes


Automatically change the properties of multiple materials I'm importing a FBX sequence from Anima Pro with several animated characters but all materials are interpreted as metallic. Every time I import a new fbx I have to manually change hundreds of materials and setting the metallic property to 0.
Is there a way to automatically change the properties of multiple materials on multiple objects?
Can this be done in a script?

Try this. It affects all materials in the file.
import bpy
for mat in bpy.data.materials:
    if not mat.use_nodes:
        mat.metallic = 0
        continue
    for n in mat.node_tree.nodes:
        if n.type == 'BSDF_PRINCIPLED':
            n.inputs["Metallic"].default_value = 0


Copy location keyframe of an object to a specific bone Basically the title, I have a cube that has several location key frames, and I need it on an unconnected bone that is part of a bigger armature. I tried using the action editor to do this by applying the cube animation onto the armature, but that just applies the animation to the entire armature, I don't know how I can specify a specific bone.

Well, just after I posted this I figured it out. Turns out you can just Ctrl-C and Ctrl-V all of the keyframes, the trick is to set a single keyframe first on the object/bone you want to paste the animation into, and then Ctrl-V inside the F-Curve editor.


Making holes in a mesh How do I make a hole in an object created by me? Please help, youtube tutorials didn't help at all. Hope the image help.

You could use a couple different methods:
Boolean modifier:

Add a boolean modifier on the object you want to cut a hole in,

Create an object to "subtract" from the main object

Set that object in the boolean modifier. You can press E while hovering over the object selection field to set the field by clicking on an object in the 3D view.

knife project tool:

Add a circle or some other object to define the outline of the hole

With the circle selected, ⇧ Shift select the object you want to cut a hole in and enter edit mode (↹ Tab)

Select the faces you want to cut, then click knife project in the tool shelf. If you want to cut all the way through the mesh, enable Cut through in the redo panel (F6)

Then select the newly cut edges with ⎇ Alt⇧ Shift RMB and press W> Bridge edge loops to connect the ends of the hole.

Face intersect tool:
This feature will be added in 2.72, but until then you can use it in the latest development builds.
This is essentially like the boolean modifier, except it works in edit mode.

Here is a nice video made by the author of this feature, explaining how it works.


Add random colour to animations I'm getting the hang of the animation tools for blender, but I need to add colour to my scenes, but I'd like to make the colours for my already existing animations, and future ones.
So I'd like my idle animation to pick one colour then the corresponding animation to be that same colour, and when the idle animation appears again a new random colour appears.

This is picture of idle character, but the idea is a player flicks the character at the world behind him, and splats on the surface, but I'd like to add in some colour, and It needs to be a random colour, each time the idle is reset.

So I need to add a random colour to the idle character, and the same colour to the corresponding animation, because the character goes in different direction, depending on which way the player flicks the character.
Thank you
R.D

You could create vertex-groups for each ring that should get another color when when hit by the character like this:

Assign each ring its own material with the same color at the beginning. When the character hits the background object determine which polygon has been hit by a technique described here:
How do I make a weapon shoot at the center of the screen? find the face hit by the character and set the material's color to a random color, this would change the color of faces (because all of the them share this material).


Store and replace mesh I need to create a convex hull over my objects, render an image and then delete that hull again.
My idea was to store the object, the object data or the mesh itself then create the hull and render the image and then just replace the object/data/mesh with the stored data.
For example first i´d do
self.backup[obj.name] = obj.data

and then after full & rendering i´d like to do something like
orig_data= self.backup[obj.name]
obj.data = orig_data
obj.data.update()

But this is not restoring the previous data, the hull remains. I´m guessing right now I just store links instead of real data but I don´t know how to fix this because I don´t really know much about different blender data types etc.
After trying to replace the objects mesh, data and the object itself and none of it worked I sort of ran out of ideas. I´d be glad about any input =)
PS: I´m using 2.8. in case that makes any difference.

Make a copy
simple answer is `
self.backup[obj.name] = obj.data.copy()

without making a copy you had a reference to the same mesh.  If you are using bpy.ops.mesh.convex_hull suggest instead using bmesh see
Is there any way to make multiple objects convex hulls?
Convex Hull as Mesh
The data is already stored for us in the blend file data,
me = context.object.data

which without any renaming of meshes inbetween is still
bpy.data.objects[me.name]

Hence could simply keep the name, make a new mesh with another name for convex hull and swap using meshes retrieved via names.
If after creating a convex hull mesh and want to have it available permanently An approach to consider would be giving a mesh object a pointer property to the mesh of its convex hull.
bpy.props.Object.convex_hull_mesh = PointerProperty(type=bpy.types.Mesh)

create convex hull mesh and assign it to this property to save it.  Another boolean property could be used as a flag to swap between original and convex hull mesh.


Is there a way to scale by an absolute distance, rather than a percentage? Let's say I have a ring of vertices that I'd like to scale down, and I'd like them all to move by a fixed amount, like 1mm (I usually work with metric units). What's the easiest way to achieve this? If I type '1' it just sets the scale to 1 and they don't move.

The only way I've come up with to do this is to extrude a vertex along one of the axes by 1mm, and then snap the scale movement to that vertex.

This is a pain though, and if I don't have a vertex that happens to lie on an axis I can't do the little extrusion trick and it doesn't work at all. I do a lot of modeling for 3d printing, and I end up needing to do this all the time. Hoping there's a better way to do this.

Think I discovered what I was looking for here. Push/Pull from the Mesh->Transform menu seems to work exactly like scaling, except that it moves all the vertices by a specific amount. You can restrict the axes and change the pivot point to the cursor, median point, etc.


exporting procedural landscape hi guys sorry if this is a repeat question but I haven't found the answer and I've been trying for days this is driving me nuts. So I am new to blender and I have created a procedural landscape and would like to export (.glb format) it so I can import it to three.js. When I export simple objects aka a cube with a texture everything works fine but when I try to export my landscape I get a plane with no textures. I am obviously missing a step or two that I should be doing before I export. If you need more info let me know.

Using node based shaders and modifiers is something that is specific to blender, neither of these export well to other programs.

For node based materials, you can bake the shader nodes to an image that can be used in other programs. This only applies to the surface appearance; such as colour, specularity, glossiness...

A normal map used in a shader can also be used in other programs, but mesh displacement in shaders will not export.

When you are using a displacement modifier, as well as any modifier except armature, you will need to apply the result of the modifiers when exporting. Most exporters provide an option to do this for you during export. For gltf, look for the Apply Modifiers option, in 2.80 it is under General, in 2.81 it is under Geometry.


How do I straighten just the inner hole of this mesh? I'm attempting to make a combination wrench. The hole is supposed to be hexagonal, but I can't figure out how to sharpen the edges without causing pinching on the outer side of the wrench when I use a subdivision modifier. Anyone have any ideas on how to do this?

I also tried beveling the inner lines of the ring that caused an artifact:

creasing edges with SHIFT + E could also be a non destructive option if you don't want to modify existing geometry


How to bend rigged mesh in wanted direction This is horse mesh I want to rig for exporting to game. I'm very new to rigging so I want horse to bend legs more natural. This is surely not how animal would bend leg if it lifts it up like on my picture, it looks like it is made of rubber. I was messing with IK constraints and weight painting but I am not actually sure what that does.
What I ask is how can I affect it to bend like I want(direction) - is it by weight painting, by IK restraints. Maybe some good tutorial about rigging could come handy!

I think the issue is that you don't have a pole target. Check out this video for more information:Inverse Kinematics video


Installing blender on another drive other than C: i just got a new pc and found out it has 2 hard drives. one with my windows 10 OS (C:)(size: 149GB) and the other virtually blank (D:)(size: 1.67TB) my question is, will blender work if i install it on my D: drive or do i need to install it on my C: drive that has my OS on it?

The anwser is YES you can! You can install any software on any of the drive you have. I have my 2nd harddisk on partition. So that means I have my physical harddisk virtually cut up into 3 portion. I have D:,E: and X:. I install all my program on X: and save all my data on E: , as my C: is an SSD with only 120GB of disk space.

As it happens Blender is no exception. In fact blender comes in Zip format flavor which does not even require any conventional installation at all.

Note Change your title to "Installing blender on another drive other than C:" at least it makes the question not sound like an OS one :) cheers.


Where is the Textools menu? This seems like a ridiculous question but i installed this addon called Textools by renderhjs
http://renderhjs.net/textools/blender/
I installed it(ver 2.90.1) and absolutely cannot find the tool on the interface in the UV editing workspace or the standard 3d viewport. Is this due to conflicts with the version? I definitely searched the interface for it.

If you press N in the 3D viewport, a tool menu pops up in the top right corner. This menu has categories, separated by tabs running vertically on the side. Have a look and see if it added anything here (look in both edit mode and object mode):

I am basing this off the image that appears on the add-on's website - you can see all the "action" seems to happen from the same menu. The site says it has support for 2.8, but if it's not there, perhaps it isn't ready for 2.9 yet.


Can I control wind area? I want to make animation of wind that blows text in particles from top to bottom, but the wind blows the whole text. I think wind applies everywhere. How to control its area to blow specific things?

You could use falloff for the force field which will specify the shape of the areas where it will make the effect.

In the force field options (in the Properties editor) find Faloff area and check Tube instead of Sphere, selected by default. This will make force field affect in the areas which fall in that shape while with Sphere it affects radially in all directions.
Then enable Maximum, just below the Tube option; this will ensure the force field doesn't affect all the particles in the given area.

If testing this now, force field will affect all the particles in the given direction up to the specified minimum:

Particles are red icospheres; blue line in the middle is the plane which shows maximum area of the force field effect; partially transparent blueish cylinder shows force field shape itself.

This is however not what is desired; the force field affects up to the certain area, but to all the particles, reaching its minimum distance. To make it affect only particles within its shape of effect enable Maximum in the Radial settings:

With that, force field will affect particles up to the certain area (shown as blue line) and within certain area of the tube (in this case) shape.


Blending a dirt path I recently ran into this problem where I need to blend 2 textures together for a dirt path I'm making.
This is what I currently have:

And this is what I'm going for:

So my question is, how would one make it so both the Dirt and Grass textures slowly mix together like in the 2nd image, instead of clear cutting lines like they do in the first image.
I am still really new to Blender, so please explain to me like I'm 5 years old.
Any help is greatly appreciated.

Assuming you are not texture painting, I think one of the easiest ways would be to use one material for the whole thing, comprised of 2 textures (or full materials) combined together with a mask that would define the "path" area.
If you are looking to mix 2 PBR Materials, use 2 Principled BSDF's (one connected to each texture set), and mix them with a Mix Shader. Whatever you use for the Mix Factor will define how they are mixed. In the below example, I used a scaled down Wave Texture, with it's vectors distorted slightly by adding the influence of a Noise Texture. This gives a relatively straight path with "jagged" edges (shown more clearly in second image). Using it as a Mix Factor, results in a path with realistic looking edges:

You can see how the texture I made for the mix factor looks on its own, and how the light and dark areas represent the placement of the two textures. The pure white and pure black areas are the full "strength" of their respective textures, whereas the shades of grey represent a "blend" of the two, giving that fade-in look you're after (as opposed to a harsh cutoff).

If you are just looking to mix 2 single Image Textures, you can simply mix the images directly by using a MixRGB Node:

Remember these are just examples, you may have to alter some values to make it look right on your mesh (particularly in the first example). This is just to demonstrate a couple of ways different textures can be mixed.


Can we create an Action from a Dopesheet animation? I have animated a number of Shader Node properties and the keyframes show up in the Dopesheet but not in the Actions editor.
I have tried copying the keyframes from the Dopesheet but I can't paste them into the Action editor which throws an error: "No selected F-curves to paste into".

How can I create an Action from the Dopesheet keyframes?

Actions are automatically created the first time an object receives a keyframe of any kind. That is, assuming an action has not already been created in advance for the purpose of animating said object. So there would not be a reason to create an action for a Dope Sheet animation, because one would already exist as soon as there was an animation. This connection could be made clearer through the Blender UI, granted, so I'm not surprised to see that people are often unclear about exactly when, or how, actions come into being.


Bake shadows and import to three js hope all is well!

I was wondering how I would bake shadows and import the model with these shadows into three js. I would also like to change the material of the model in three js dynamically while retaining the shadows.

Thanks for any help, really appreciate it!

Thanks, Ed.

There are a couple ways of doing baked shadows that you can use with three.js:

Ambient Occlusion (AO): How do you bake ambient occlusion for a model?. AO provides subtle shadows in holes, corners, and other occluded areas. It remains useful even if the object or lighting moves.
Lightmap: How can i bake a lightmap and use it in Blender Game engine. Lightmaps provide more complete representation of shadow and light on a surface, including hard shadows cast by other objects, but is only accurate if the object and lighting do not move.

An AO map can be embedded in the model in formats like glTF (see https://github.com/KhronosGroup/glTF-Blender-IO), which three.js can load via THREE.GLTFLoader. I'm not aware of a way to export the lightmap as part of your model, so you'd probably need to load it separately via THREE.TextureLoader.

In either case, the material can be modified independently of the AO or lightmap.

Finally, you could also bake the shadows directly into a base color texture, but then you lose the option of modifying the material in three.js.


One eye of model doesn't follow head? One eye of model doesn't follow head?

I have a bit of a problem with a "4 Piece Model", "Head, Body, Eyes, Hair, and Teeth". I hope someone can be of assistance while the "Eye's" appear as a pair and don't act as a pair. Upon selecting the eyes in object mode they both highlight as a pair with a single click of one eye and then after shift selecting the models head and choosing Ctrl P > "BONE" the parent only applies to one eye and the left eye doesn't move with the head and rig movements? There is no lattice or such, or any such tracking.

Your eyes are incorrectly weight painted. To fix this, Selected to vertex group DEF-head and go into edit mode (Tab). Select all your vertices (A) and Hit Assign.


Why is the Steam version of Blender taking so long update? I got the Steam version of Blender hoping to get new updates downloaded automatically but it's been days since 2.76 has come out but I still haven't gotten the update.

Are steam updates delayed for some reason? Do they have to go through a review or something? Is there a way to manually update Blender for Steam through downloading it from the website?

There's nothing I can find through Google about this since it's probably not a thing a lot of people complain about, so I thought this would be a good place to ask.

Thanks!

This is most likely due to the fact that Blender 2.76 is not officially released yet. What is currently available for download is the second release candidate. If it doesn't work as expected when the official release comes out feel free to update this question.


microdisplacement and render farms I have a large animation to render that I just can't do on my machine.
Does anybody know of a good render farm that supports micro-displacement in Blender's Experimental mode?

And/or is there a workaround that will give me the look I need without using micro-d?

Any suggestions are welcome!
Thanks!

Thanks!
I ended up emailing every Render Farm I could find. Render Street was the only one that got back to me with a 100% yes.
If I get any more positives, I'll add them to this thread, just in case.


Choosing a video file format when rendering doesn't work When I want to render my scene as an animation video, I choose mp4, ogg....etc but the resulted file always is .dvd, why is that happening? I'm using version 2.72

My other answer explains how to render a video (with Sound) in general. You need to make sure in your case that in your Properties Editor > Render tab in the Output Panel your filename is set properly. Most likely it is set to something like file.dvd right now which results in your described behaviour. Change it to //file.mp4 (to get it rendered out next to your blend-file) for example:


'NoneType' object has no attribute 'bar' I need a instance of a class that is shared among nodes (singleton).
Problem is I can't call the methods of it.
Here is the problem isolated:

import bpy
from ... base_types.node import AnimationNode

class Singleton:

    def __call__(self):
        return self

    def bar(self):
        print("bar")

class Foo(bpy.types.Node, AnimationNode):
    bl_idname = "an_Foo"
    bl_label = "Foo"

    singleton = None

    def create(self):
        self.singleton = Singleton()

    def execute(self):
        self.singleton.bar()

  Traceback (most recent call last):   File
  "C:\Users\clankill3r\AppData\Roaming\Blender
  Foundation\Blender\2.77\scripts\addons\animation_nodes\execution\main_execution_unit.py", line 38, in executeUnit
      exec(self.executeCodeObject, self.executionData, self.executionData)   File "execution: 'NodeTree'", line 4, in
     File "C:\Users\clankill3r\AppData\Roaming\Blender
  Foundation\Blender\2.77\scripts\addons\animation_nodes\nodes\serial\foo.py",
  line 24, in execute
      self.singleton.bar() AttributeError: 'NoneType' object has no attribute 'bar'

You can only store some specific property types on the nodes directly.
These here: https://www.blender.org/api/blender_python_api_2_77_release/bpy.props.html

If you want to access the same variable from multiple nodes you can simply create the instance outside of the node like in this example:

import bpy
from ... base_types.node import AnimationNode

class Singleton:

    def __call__(self):
        return self

    def bar(self):
        print("bar")

# store the instance in the module namespace
singleton = Singleton()

class Foo(bpy.types.Node, AnimationNode):
    bl_idname = "an_Foo"
    bl_label = "Foo"

    singleton = None

    def create(self):
        pass

    def execute(self):
        # don't use 'self' because the singleton is in the module namespace
        singleton.bar()


Equivalent of UV Squares in 2.8 to make islands straight? I'm starting to use Blender 2.8 and have a question : Is there something like UV Squares that I could use to make my UV islands straight? Thank you !

Why not use UV Squares? I got it working in 2.8.

https://blenderartists.org/t/addon-uvsquares-v1-4-updated-any-shape-supported/613111/99


Composite output window differs from viewer I have a very simple setup in my compositor:
Simply an image and a mask:

I want to mask out parts of the image that it is fully transparent except for parts of the image.
The final image should look like this (simplified setup, later I want to use the image as overlay):

This is actually the look of the viewer node.
As you can see, the compositor is connected the same way, but the final image looks like this (actually, everything in the :

Apparently, the mask is applied, but somehow a semi transparent image is also applied.
I disabled background in camera (I actually deleted the camera and tried it).
I disabled "Use for rendering" in view layer.
I disabled the sequencer in output properties.
I actually thought this is not working, but it only seems to fail when looking at the render output in blender, the actual file is correct.
Is this a bug or do I miss the option for this somewhere?

It appears you are using blender 2.8. In blender 2.92, the set alpha node is updated to allow apply mask mode. To fix this, drop an alpha convert node after the set alpha node. Make sure it is set to convert straight to premul. That should fix your alpha problem.


Laser scanning effect in EEVEE? I am trying to create laser scanning light in EEVEE for fast animation rendering.

An example laser screening gate from Borderlands 2

This post show the possibility to create an accurate effect in Cycles using node. However, there is no node setting for EEVEE for now. And I also need the light not shaded by the object but surrounding with it, like a 360° scanning rim.

Is it possible within EEVEE even with particle effect on it?

I like the effect you have managed with your solution.

You can use a shader in Eevee with the node setup shown.

The inputs on the left control intensity, scan (vertical offset) and focus (sorry I forgot to rename this one).  Thhis can be modded for different scan orientations using the mapping node.

Ad endum

Thought I would offer some explanation on this, it was 0400 hrs when I posted this so I was quite tired.

The magic happens in the mapping node (purple), basically I use the scale vector to squash the texture in the Z direction and scan it using the location vector.  I use a math node to scale the input controls and make them more friendly.

Then pipe this into a a gradient texture and onto the emmision shader.

I've added some white noise to give that laser effect (although this should probably get its vector from texture-node->object rather than the mapped as white noise shouldn't be squashed.

The rest should be pretty much obvious.


How can I control a cube's movement with a function? I am new to blender and I'd like to make a continuous function to control the cube movement , like a square wave , when the value is one I'd like the cube to move in the y direction , when it's zero I'd like it to stop. Any idea how should I do that , using what kind of sensors?

You can do this very simply with logic bricks and object properties. First , in the logic editor, hit N to open the properties editor. Now add a new property, make it a boolean type by clicking on the box that says "Float" and changing to Boolean. Boolean is the best choice since you only want two values, 1, and 0; or True and False. Now, all you need is a property sensor in the logic editor, and a motion actuator. Set the motion actuator applicably to move the cube along the y-axis, and then connect it to the sensor so that it will move when the sensor is true. Now all you have to do is set the test conditions for the sensor. Make it test for the property you just created, (default prop) and set the test value to "True"

Now you didn't specify how you wanted to change the property, but in this test file i made it happen when you hit the spacebar.


How can I make color retain its properties behind glass? Every time I apply a glass sphere around my eye, to give it the circular texture and glossiness, it creates a couple problems. The iris color changes as I put the eyeball into the glass sphere. I've tried tweaking the settings to make it more clear. The best I can do is in the material viewport, it shows the true color. But the rendered it doesn't show the true color, instead its a darker shade. I've included the pictures to show what I mean, and the node of the glass eye. The only modifiers affect the two objects are a mirror modifier that is irrelevant to the transparency properties. I've also allowed refraction and screen space reflections from the properties tab. Anything would be helpful, even if its a explanation of whether I'm doing this right or wrong (I'm just lost and confused, I don't even know if I'm doing this right.)
In the first image its viewport is in render, and the second is in material viewport. After that, I put the nodes of the glass.

Edit1: It's not based off the light source either, I've shined a 1000 watt light source at the eye, and it still gives off the shade.

Your node setup is not the ideal way to do glass in EEVEE (I assume that's what you're using). For proper glass, use this setup (note the highlighted Blend Modes)


add hair particles to vertex group only So, I've created a vertex group and a hair particle system. I only want the hair particles on the vertex group. How do I do this?

Choose your vertex group in the Density Tab in Particle Settings


Trouble Proportionally Scaling with Python I'm working with a model of a man. Using imperial units, I want to set the model's height (his z-dimension) to 5' and have his x and y dimensions scale proportionally so he doesn't end up distorted.

I tried using the bpy.ops.transform.resize() operator, but I'm not sure how it works: I know you can set "proportional" to "ENABLED", but how can it remain proportional if you're defining scale factors for all three axes? I'm also fairly certain I've defeated the purpose of using the "proportional" parameter since I'm just passing the "value" parameter scale factors that I hand-calculated to be proportional anyway. (Which didn't work, for some reason.) Despite my efforts, the model still seems distorted.

Here's the code:

import bpy
from bpy import context
from math import sin, cos, radians

# For file manipulation
import os

# Establish context and scene
context = bpy.context
scene = context.scene

# Set units to feet
scene.unit_settings.system='IMPERIAL'

# test height (in feet)
height = 5 # 5'

# Load object
def model_loader(scene):

    # Establish path to model directory
    path_to_directory = os.path.join(
        '/', 'Users', 'jackburker', 'Documents',
        'Code', 'Blender', 'base_models')

    # Establish path to model file
    path_to_file = os.path.join(path_to_directory, "male_keyTest.obj")

    # Print paths for debug
    print(path_to_directory)
    print(path_to_file)

    # Import model
    bpy.ops.import_scene.obj(filepath=path_to_file)
    # Debug
    print("THING TO ASSIGN")
    print(bpy.context.selected_objects)

    # Select user model
    obj = bpy.data.objects['base_human_male_default']

    # Check that selected object is user model
    print("OBJ")
    print(obj)

    # Check current objects
    print("CURRENT OBJECTS")
    for o in bpy.data.objects:
        print(o)

    # Retrieve object dimensions
    obj_dimensions = obj.dimensions

    # Define dimensional ratios
    xz_ratio = obj.dimensions[0] / obj.dimensions[2]
    yz_ratio = obj.dimensions[1] / obj.dimensions[2]

    # Check dimensions and values!
    print("OBJ X, Y, Z")
    print(obj_dimensions)
    print("RATIOS (XZ, YZ)")
    print(xz_ratio)
    print(yz_ratio)

    # Determine vertical scale factor
    z_scale = height / obj.dimensions[2]

    # Print vertical scale factor
    print("VERTICAL SCALE")
    print(z_scale)

    # Define proportional scale factors
    obj_y = z_scale * yz_ratio
    obj_x = z_scale * xz_ratio
    obj_z = z_scale

    # Scale all dimensions proportionally
    bpy.ops.transform.resize(value=(obj_x, obj_y, obj_z), proportional='ENABLED')

    # Get and print post-scale dimensions
    obj_dimensions = obj.dimensions
    print("POST-SCALE OBJ (X, Y, Z):")
    print(obj_dimensions)

    return

if __name__ == "__main__":
    model_loader(scene)
    bpy.data.objects

I have included two screenshots:

one of the model pre-resize,

and one of it post-resize with the camera zoomed out.

(I don't have enough rep to post a third picture showing this, but it's much bigger.)

I know this is an incredibly noob question to ask, in that I'm just doing something (maybe multiple somethings) fundamentally wrong -- no ambiguity about it. But I just started with Blender and python about a week ago, so I've much to learn. Thanks!

In the comments, @batFINGER pointed out that I could achieve what I was looking for by multiplying the object's "scale" parameter by the ratio required to give me the correct height: e.g., obj.scale *= ratio. This worked perfectly for me. See the comments for a slightly more in-depth discussion.


Problem finding a face center of a mirrored object using a ray_cast I want to find a face center of a face I'm clicking on using the .ray_cast method. Since this method returns a face index, I thought I'll just use it to get the center coordinate from obj.data.polygons[face_index].center.

However when I have an object with a Mirror modifier with a Bisect option turned on, .ray_cast returns a face index of the original, not mirrored face even though I'm iterating on evaluated depsgraph. Here in this gif the printed face index is the same for both faces of the Mirror w/ Bisect object while two other objects return different proper values:

can I somehow get the correct face index?
maybe there's a different way of getting a face center coordinate that'd work on this object?

Here's a slightly modified version of the default Blender raycast template that prints out a face index.

So, I used scene ray cast instead. It worked faster than ray casting through objects and was returning correct normals/faces.


Is there a way to avoid a Smooth modifier interfering with a bump-map? I have a path that consists of a cube primitive, using four modifiers to get the effect I want (sort of):

Bevel
Array
Smooth
Curve

For the material, the most important part is a bump-map driven by a noise node.

The problem is that the Smooth modifier seems to interfere with the bump-map. I really don't want the Smooth modifier to affect the material at all - its purpose is to get the path to follow the curve more gracefully.

In the image below, I have split the sample path into two sections: the first three slabs have smoothing turned on, and you can see that the path curves gracefully, but also notice the distortion of the material. In the last three slabs, the smoothing is turned off, the slabs are angular but the material is clear.

If you zoom into the image, the distortion on the first three slabs becomes more obvious.

Is there any way to either:

Get the smooth modifier to smooth only the shape of the object; or
Get a similar effect using something other than the Smooth modifier?

I would suggest a different method to get the same results. Here's what's happening with what you have right now:

The bevel modifier is adding a small bevel on each edge of the cube, which adds some extra vertices. The array modifier duplicates this object along a set axes, and then the smooth modifier smooths out all of the geometry.

The smooth modifier doesn't create any new geometry. Instead, the relatively high strength you are using is smoothing the object so much that the originally small bevels are now much larger. Essentially, the vertices created by the bevel modifier are getting pushed towards the center of the cube.

This is all fine, but you're noticing an issue that this method causes.

Materials are applied to the object before certain modifiers. Thus, the texture is applied to the bevel created by the bevel modifier, but then that bevel is stretched (smoothed) by the smooth modifier, and thus you get the stretched texture.

Instead, remove the bevel modifier and the smooth modifier, and use a subdivision surface modifier set to simple. This will add some extra vertices that will allow the curve to bend it smoothly.


Are poles a problem for the animation? I'm doing a character right now and i see that i created some poles beneath the limb areas. The thing is, can these poles be a problem for the animation or deformation?

As long as you don't have an excessive amount (if your topology is clean you shouldn't have many) they won't be a problem. I've never seen a character with no poles in the underarm area, and every character I've made has them and they all deform cleanly.


How to move multiple objects in relation to central point What I mean precisely is how to move multiple objects away from central point without scaling them.

This is what I'm working with:

I'm searching for a way to create little space between the triangles. All triangles are separate objects.

Or if you can do this with scaling that's ok too ofcourse.

In the header of the 3D window change the pivot point from median point (default) to "individual origins", then select all objects and scale.


Background image not appearing in motion tracking render I have another project that is exactly like this one but that one works, even though they have the exact same compositing setup. Any reason why this one doesn't show the background?

Blend file: https://drive.google.com/file/d/1Zsjwe7C50eo_h7rROzzBAzxy1M5y_gZI/view?usp=sharing

You need a layer with Alpha information if you use alpha over.
As you can see in the preview in the node editor your background is  gray instead of transparent.
To fix this just go to the properties window -> Render -> Film and tick transparent.


Why are cuts made with BoxCutter appearing as objects in an Octane render? Whenever I cut stuff off using the box cutter, it works fine in blender but then it creates geometry instead of cutting it when I render it in octane. As you can see in the pic there's a little cube that was added in octane where I cut away in blender. It basically does the opposite of what the boxcutter should do. Any help would be super appreciated.

Are you applying the modifier from the cut before rendering?

It looks like Octane is rendering the shape created by Boxcutter, which exists in non-destructive model until you click Apply.


Converting 2.80 to an older version? Is there anyway to convert an animation, to an older version of blender, from blender 2.80?

No. Previous versions are not compatible with 2.80. The only way to do this would be to export to some other format that supports all the features you need and then import to a previous version. In vast majority of cases you will run into problems when attempting this so this is not a very good idea. It's best to choose a version and stick with it from the start to the end of your project.


Can’t get freestyle to render I am trying to render the wire frame of (any) model using freestyle. I have followed every tutorial I could find, and no matter what settings I check or uncheck, the outline never renders.
I have tried Eevee and cycles and nothing happens. I have tried messing around with the node editor and if I render freestyle as it’s own pass, it’s just an empty layer no matter what I do.
This is my first time using blender (2.92) so it’s very possible I could be missing something, but I feel like all my settings match all the tutorials I’ve seen. I’ve only been trying to render on the default cube. What could I be missing?

I figured it out! For some reason you cannot have "Freestyle SVG Exporter" and "Freestyle" both enabled in the render properties. By unchecking "freestyle SVG exporter", I finally could see an outline!


How do I make only a portion of my shader to be bumpy? I'm using procedural shading at a beginner level. So i wanted to sort of mask out where the lava is. How do I do that?

You should be able to invert the output of your Color Ramp and plug it into the Strength input of your Bump node.


No audio playback in VSE but rendered file has audio I can not get audio to play out of my speakers whilst using Blender 2.77a in the Video Sequence Editor. However when I rendered out a file (mp4) it contains the audio and can be played back on VLC. Plus when I use mediainfo it reports the file as having audio. I need to be able to hear the audio in the VSE whilst I'm editing the images.

When selecting Draw Waveform in the Sound menu a waveform is drawn on the clip that matches the audio (highs and lows are in the right place). Below is a screen shot of my Blender User Preferences.

I have tried all the Audio Device options under Sound but none of them have worked. Each time I changed the Audio Device options I restarted the computer.

Below is a screen shot of my Output and Encoding options from the Render menu.

From some of the threads that I read some people were pointing towards sound card configurations. I am fairly new with using Blender so I am not aware of more advanced configuration options. I have spend one whole day trying to solve this problem by following similar post found via Google but have had no luck. If you need more information please ask.

Thanks very much.

System information:

Ubuntu 14.04 LTS
Blender 2.77a

To enable the sound in my Video Sequencing Editor, I had to change the system setting for audio device from OpenAL to SDL. Doing this seemed to jar loose the sound so that it would play.  I was even able to change the setting back to OpenAL and the sound continued to be enabled.  Strange, huh?  The sound works fine now.

Go to File> User Preferences> System> Sound: Audio Device.


Limit on MixRGB nodes per material? Or How to render out an image sequence I was trying to figure out how to batch process out a bunch of different materials on an object.
I have multiple works that are the same size and I am trying to figure out how to quickly render them all out without having to change materials (art works) for each render.
I thought that I could set up an animation, with MixRBG nodes animated to change on each frame.
I can get 8 mix nodes and they seem to be working. On the 9th node, I get the pinkie of doom! It doesn't matter if it is a repeated image or new image. It still shows pink.
I did test to make sure that the last image was valid and accurate.
I even switched to a different image/folder. Same issue.
Which suggests to me that I over stocked the memory, as @DuarteFarrajotaRamos suggested.
So I can do 8 frames and then rebuild the material. Or I can try doing 33 different planes and animating their visibility.Seems a bit excessive.
At 8 nodes it works:

At 9 it fails:

I tried running a test on No-Can-Do's concept. It really seems like it should work: In materials preview, I can see each image change as I scroll forward.
It works in the cycles preview as well.
But, Render Animation (and render frame too) disregards the image sequence completely. Immediately after attempting a render and getting just the metal surface, Blender seems to forget the image sequence all together and both the Material Preview and Cycles Preview no longer have the image sequence. It is still in the nodes, but not showing up.
I think I am missing a simple step somewhere but I am not sure what it is!
Image sequence in the material

Rendering doesn't include the image sequence.

The image is gone in the preview as well.

Okay, so the original challenge was to create a material that would change every frame, so that I would end up with 33 images that would have a different art piece on the wall.
First, I tried using a mixRGB shader animated to switch between images. But, I got stymied by a memory problem. Blender would only see the first 8 images before it seemed to lose its mind.
Then, on a recommendation from @no-can-do , I switched the image texture node from single to image sequence.
This seemed to work until I rendered, then it would lose the images again.
I upgraded from 2.82a to 2.83, and rendered again. And, it worked!
Image sequence is set up with the number of frames (number of images in the directory I was linking to), start frame of 1 with 0 offset. I also clicked the Auto Refresh on.
Here's my set up:


Move object along it's normal axis I am following a tutorial and I have an issue moving an object along it's normal axis, the one perpendicular to it's face. I tried Global and Normal gizmo and it didn't work.
I am stuck.
How can I solve this issue?

Go to edit mode and select one face.
Press add button

exit edit mode and move it.


Add-on Dev: How to iterate the properties of a type and read/write values I'm wanting to iterate properties and get/set values. Example code:

for prop in self.rna_type.properties.keys():

    # get property name
    name = str( prop )

    # skip properties if first ident character is lower case (auto added properties)
    if name[0].islower():
        continue

    # assign new value
    self[name] = value

Edit note: There was no need for me to convert prop into a string with str() at the top of this loop. All elements inside of keys() are identifier strings.

You can iterate through the annotations to get and set each prop.

>>> settings = C.scene.my_addon
>>> settings.__annotations__.keys()
>>> for p in settings.__annotations__.keys():
...     getattr(settings, p)
...     setattr(settings, p, True)


Setting Scale Z of object to zero for complete movie? I am using Blender for research purposes, analyzing eye movements of participants watching a movie. This can be done with blender and DynAOI: Add an object as Area of Interest in Blender (setting the movie as background image, then modeling an object over the person you're interested in) and then DynAOI matches weather participants were looking at or away the AOI.

The problem is that we need a 3D-object to match eye movements to, but it should actually only have 2 Dimensions - that is, eye movements were recorded along x and y axis, but not z (unfortunately it is not possible to match eye movements to a circle, because the program needs a 3D object).

Is there a way to do this? I tried setting scale of object Z to 0, but it does not seem possible to set Scale Z of object to 0 for the duration of the complete film scene. And it would take hours to set it to 0 for the duration of the complete scene we're interested in.

You could try to go in edit mode, and then select the vertices you don't mind (press C and then use the circle to select them) and then delete them by pressing X and the option "vertices". Otherwise I think that for make the eye moving you need key-frames. If you selected the option LocRotScale every time you reach the key-frame, it set the location (Loc), the rotation (Rot), and the scale (Scale) of the object to the value it had when you have set the key-frames. So basically you have to delete them, set the Z scale of the object to zero, and re-set the key-frames. To delete the key-frames, select the object, go on the frame on which there is the key-frame, and press Alt-I. Hope helps.


(Blender 2.82) Mantaflow Fluid Simulation not working So basically I've been trying to get a simple fountain fluid simulation to work. However, there are a lot of times despite after baking data and mesh, nothing happens. I just see the baked mesh in the viewport but upon playing the timeline, nothing animates, the mesh is just sitting there. May I kindly know what I'm doing wrong? As for what I've already done is as follows:

Created a domain
Created effectors
Set Surface thickness and Surface Effector values to more than 0.0
Created a cone mesh inside the domain as a Flow object with Inflow.
Baked data
Waited…
Baked mesh
Waited…

I am really sorry I haven't uploaded a screenshot. I actually do not have one since I deleted the file that was having the problem.

Thank you very much.

Your flow object might be too small for your given resolution. Try Increasing it or set your flow object to planner, apparently it should make it work with the lower resolutions.

I'm also trying to make a fountain and until there's a adaptive domain for liquids I'm not sure if it's quite possible.


Apply a material to a heirarchy I have an imported model with a hierarchy of objects.
Expanding to the tip of one branch looks like:

I'd like to be pick materials for sections of the hierarchy (e.g. by top level parents). But it seems that I can't apply a material to an Empty, and I presume in Blender that applying a material to a parent does not act on the material of the child.

What is the best way to go about this?

Further notes:

The meshes already have materials from the import, I'd need to override these (can just delete the materials)
I could do with python if the interface doesn't handle this use case
Right click and 'Select hierarchy' gets me half-way there. But since this selects the Empty's also, the material tab is still hidden.

Use "Material Utils" addon, bundled with Blender. It can reassign material to all selected objects at once

More details here: https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Materials_Utils


Noisy depth of field So I tried one of the Blender Guru tutorials, which ends with depth of field settings.

The blurred lights are however too noisy:

Which is strange, because when I turn DOF off, the distant droplets look all right

Any idea what might have caused this?
(Rendered at 500 samples. Droplets use simple glass shader.)

DOF raytracing requires more render samples, because the same pixel requires more rays to be calculated.

Imagine simple pin-hole camera with no DOF - rays are shot from camera pixels and each lands on specific point in the scene. After that they scatter (that's why you need many samples per pixel).

Now with DOF the aperture is open so every ray from each pixel has more ways to exit the camera (infinitely more) and can land on different points in the scene. So the bigger the aperture the more samples you need to get clear image.


Object becomes transparent/reflective/glowing etc.. in EEVEE Render viewport After new graphics driver update(AMD) eevee render viewport is acting like in the picture. the object gets transparent or reflective or starts glowing and after i click F12 everything get rendered except the objects in the scene. this problem goes away when i switch to cycles

I guess we have the same problem. Because I find it hard to rollback the driver, my current solution was to enable High Quality Normals in the Render > Performance section.
My question: Eevee not rendering properly if High Quality Normals isn't checked


What causes the distortion of image textures The window and door textures in this model are inverted somewhat and I'm not sure why.

I think Mr Zak is correct,

It looks like the door and window need to be UV unwrapped. By default all tris are mapped to the same part of the immage. That is why it looks distorted.

with the object selected:

-hit tab to enter edit mode,

-select all vertices of the door or window (but not both)

-hit u twice to unwrap (multiple options are available after the first u)

good luck


Can I print the manual since I can't follow the online tutorials as the type is so small I am 89! Blender looks like a great program, but the online tutorials even with windows magnification the text is too small to read and at the same time work on a project - with only one monitor available.  I am 89!
The main thing I want is type fonts and I could not find any in the program.  So can I download AND print out the manual? Any suggestions to both the "problems" would be very much appreciated.

I am 59 and have poor eyesight so I can relate. First, try using the keyboard combination crtl and the plus key(+) and minus key(-) to enlarge and shrink the manual or any web page for that matter in order to read the text more easily. This works on the firefox and google chrome browser for sure as I just tested it out. You can also download the manual as a zip file to read it off-line from here https://docs.blender.org/manual/en/dev/. It's still in HTML format so it will open from from your hard drive into your web browser program. I just downloaded the manual myself and it displays just fine in Firefox(my default web browser). If you are using Windows 10 there is also a magnifying glass feature you can use. Google "magnifying text in windows" to learn how to use it. If you really really want to print out the manual you can convert the on-line HTML manual to PDF by using this free service https://www.win2pdf.com/html-to-pdf.html or you can buy the win2pdf program for $35 to convert and print from your down loaded manual. Hope this helps you out.

Regards, Jeff.


How do I add a name on an object I have a model of a spaceship and I would like to place a name on it. From what I know, I can't simply put text on it. What is the best simple way to do it? I have about 20 ships to name so this one would be the template for me. Thanks very much.

I would add a text object, turn it to mesh with ALT+C ,knife project it onto the ship and give material. But since you need to do it twenty times, with a different name each time I guess, you could use a macro/python script doing just this. NB. To knife project the right way your model must be in ortho view.


How to edit curve, but not ruined tilt settings? Here I have Roller Coaster set up correctly, but let's move only one random handle and let's look how the whole roller coaster set up is getting ruined.

Everything is ruined, do I really need to set again every tilt for every handle again? And If I again will need to change something, Will I have to change tilt everywhere again?

Help please ; (

I think you might want to change tilting to Z-Up under the Properties Window > Object Data Tab > Shape Panel

Although it is not perfect it will probably be the closest to a correct "always up" tilt. You can then manually adjust whichever parts are not supposed to point up, which I believe are probably a minority compared to the tilting curves.

From my admittedly limited testing with Z-Up changing other parts of the curve has no effect on the already established tilts


line thickness (using tablet) doesn't work It seems like blender doesn't recognize line thickness. The menu shows pen pressure min and max but how to affect the radius?

By default the pressure affects the brush strength only. To make the pressure affect the radius of the brush you have to activate the small toggle switch located just to the right of the radius value.


How many points does the perspective in the viewport use and is it changeable? I know blender can display both orthographic and perspective projection. But, when we look at a cube in blender's viewport, I'm unable to distinguish by eye, if the projection in the viewport is a one-point, a two-point or a three-point perspective. What does blender use, and is this something changeable?

I'm no architect, but this should only depend on your camera alignment.

1 point perspective - camera aligned to 2 axis
2 point perspective - camera aligned to 1 axis
3 point perspective - camera not aligned to any axis

As given in the link in the comment and mentioned by  @haarigertroll mathematically these are special  cases of the one point perspective.


Enabling GPU rendering for Cycles? I want to enable GPU rendering, but there is no option in User Preferences > System:

Why is this? How can I get cycles to render using my GPU?

Ensure GPU Support

Currently cycles supports CUDA (Nvidia) devices and has experimental support for OpenCL devices as of 2.75 (added in B7f447). If you are using an AMD/ATI graphics card, see the OpenCL section below. If you are running an older NVIDIA card, ie the Geforce series, support is extremely limited and these are not officially supported, see How to enable GPU rendering on older Nvidia GPUs?

CUDA/NVIDIA

Cycles only supports CUDA GPUs with a CUDA compute ability of 3.0 or higher. To use CUDA, check to make sure your GPU is on this list of CUDA capable GPUs and has a ranking of at least 3.0.

Install Latest Drivers

If your GPU has a CUDA compute ability greater than or equal to 3.0 and you still don't have the option to enable GPU rendering, you can check a couple more things:

Ensure you are using the proprietary drivers distributed by Nvidia and that your GPU drivers are up to date.
If you are compiling Blender from source, ensure you have the CUDA development toolkit installed.

Below are instructions for various operating systems. If you are still having issues after trying all the steps listed in this post, try asking for support on BlenderArtists.
This site is not well suited to localized troubleshooting discussions often needed to untangle unusual hardware/driver issues.

Linux

Run as root
Due to an issue with some versions of the nvidia drivers, you must run blender (or any other program which uses cuda) as root before you can use any cuda features as a normal user. See this thread for more detail.

Ubuntu-based Distributions

Open your driver manager and select the recommended driver and Apply Changes.

You can also use the terminal to install the latest stable driver.

$ sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
    $ sudo apt-get update
$ sudo apt-get install nvidia-current

For linux Mint, Ubuntu and Debian variants (and maybe other distributions) you will need to install the package nvidia-modprobe which will detect your nvidia CUDA device and make it available for blender. Read this answer for further instructions

Debian Jesse

Please note that these instructions were put together in June 2015 on Debian Jesse. Although Debian is a very stable distribution, it isn't unlikely that this will be out of date on Debian Stretch. If you have more up to date information, please feel free to edit this.

Before we can install the drivers, we will need to install the kernel headers from the contrib nonfree repository. If this repository hasn't been added already, open /etc/apt/sources.list with nano:

$ sudo nano /etc/apt/sources.list

And add:

deb http://http.debian.net/debian/ jessie main contrib non-free

For Debian to recognize the repository, we will need to refresh the package list:

$ sudo apt-get update

Once this is done, the headers can be installed:

$ sudo apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') nvidia-kernel-dkms

With some sed magic, this will install the correct headers for your version of the kernel.

Now we need to blacklist (disable) the open source nouveau driver. To do this, we will create an Xorg configuration file:

$ sudo mkdir /etc/X11/xorg.conf.d
$ sudo echo -e 'Section "Device"\n\tIdentifier "My GPU"\n\tDriver "nvidia"\nEndSection' > /etc/X11/xorg.conf.d/20-nvidia.conf

And reboot the computer.

$ reboot

All that is required afterwards, is to install cuda:

$ sudo apt-get install nvidia-cuda-toolkit

For more in depth information, please see https://wiki.debian.org/NvidiaGraphicsDrivers (only covers the drivers, not cuda). If you are running a GTX 970 or 980 you will need a special build of cuda available here.

Arch Linux

Identifying your GPU:

From the Arch wiki:

  If you don't know what GPU you have, you can find out by running:

$ lspci -k | grep -A 2 -i "VGA"

Drivers and CUDA:

For Arch Linux, installing proprietary Nvidia drivers for your GPU can be as simple as installing the nvidia package and then rebooting:

# pacman -S nvidia
# systemctl reboot

If you are compiling Blender from source, you will also need the CUDA toolkit. You can get it by installing the cuda package:

# pacman -S cuda

Windows 7

Find out what GPU you have in the Device Manager. Go to Start -> Control Panel -> System and Security -> System -> Device Manager), then open the Display adapters tree.

To find out the architecture of your Windows installation, open a command prompt (search for cmd in the start menu) and run wmic os get osarchitecture.

Alternatively, you can get this information from a GUI by going to Start -> Control Panel -> System and Security -> System or by using the keyboard shortcut Windows KeyPause.

Go to the Nvidia Website and select your driver.

Finally, download and install the proper driver for your architecture. I am assuming you know how to use installers.

Nvidia Optimus:
If you're running Blender on a notebook with Nvidia Optimus, make sure it uses the dedicated GPU. Either configure Blender to always use the dedicated over the integrated GPU in the Nvidia Control Panel, or right-click Blender.exe (or a shortcut to Blender) and select the Nvidia GPU in the the Run with graphics processor menu:

OS X

Install the latest Nvidia Driver for you graphics card. You can download them from the Nvidia website.

Open the CUDADriver.pkg file by double clicking it.

Go through the installer.

If it installed correctly, there should be a new CUDA option in the System Preferences (the only time you need to go here is to install updates):

Finally after you have installed your drivers:

Restart your computer
Start Blender.
There should now be an option in the Blender's settings allowing you to select CUDA and your GPU:

Then select the GPU in Render settings > Render > Device:

OpenCL

As of blender 2.75, AMD HD 7xxx+ GPUs are officially supported.
Other OpenCL devices may work, and can be tested by force-enabling OpenCL with an environment variable:

CYCLES_OPENCL_SPLIT_KERNEL_TEST=1

Also see Is it possible to do OpenCL rendering on Intel processors?

Ubuntu/Debian

On Ubuntu/debian you may need to install  ocl-icd-opencl-dev package

ArchLinux

Nvidia OpenCL
To get OpenCL working for nvidia GPUs, ensure that the opencl-nvidia package is installed:

# pacman -S opencl-nvidia

Then run blender with the environment variable set to 1:

CYCLES_OPENCL_SPLIT_KERNEL_TEST=1 blender

In the User Preferences > System there should now be an OpenCL option:

If it's selected, rendering on the GPU will now use opencl.
Note that the first time you try to render, blender will have to first compile the necessary kernels which may some time.


How to make an item transparent but keep the shadow of it I have a project where I need to see light rays. I have a light source which is a sphere :

Over it I have an Icosphere where I removed some faces to let light pass through it :

I wanted to enhance the light effect by making it glossy a bit.

Over all of it i have a simple sphere where i use this node

With this setup and a sampling of 512, I got this result:

I need to keep the rays but hide the icosphere so the light source and rays remain visible. Is it possible to do it?

Sure. You have two options:
You can disable camera visibility in the properties of the object:

Or you could make a material for it that is mixed with transparent shader with Light Paths node's Is Camera Ray output:

In this case you just need the condition Is Camera Ray to 'show' transparent shader and for the rest you don't even need a shader since it just needs to cast a shadow.
Light paths node tends to slow down render time, so chances are the first method with object properties is going to be faster to render, but you can do more complex stuff with Light Paths node so it's worth knowing about.


Model doesn't appear in Solid Sculpt mode I am a blender newbie here trying to sculpt this model but it doesn't show in Solid mode and also can't do anything in other shading mode .

What am I doing wrong ?

I've solved it by accident. I was using skin modifier. Looks like I just had to apply the modifier before sculpting.


Script add-on runs from text editor but not from operator (spacebar) menu? I am trying to convert my script into an add-on. I have most of the core functionality in place, so I want to try turning it into an operator so that I can connect it to a button.

When I try to test my operator using both the console and the spacebar search menu inside of the Node Editor, it doesn't do anything. However, when I click "Run Script" in the text editor, it runs fine.

This is my source code

Following this tutorial, I notice that he defines 'main' as a function rather than a class. When I do this, running the script does not work, but it works when I run it from the console. Interestingly, when I run the same command from the spacebar menu, Blender hard crashes. Any ideas?

When you run the script, the various properties in the script get set and you use them in your functions, this doesn't happen when you invoke the operator. An operator is invoked in a clean environment, you only get properties you setup in the operator. An addon is a python module and allows you to expand that to some degree as the script properties are actually module properties, but you still need to set the properties from the operator or the register() function, not the top level script steps.

From your operator's execute() method you should setup the properties you want to use based on the active selection at that time and not what may have been active at the time the script was run to register the operator. To do this, you should use the context parameter passed into the execute() method instead of using bpy.context, pass the context parameter from your operator to your functions when you call them.

As you mention - you have class main(), by creating an instance in your operator you aren't actually calling any of the methods listed in the class, so yes it should be a function not a class, unless you move the function calls into the class __init__() method or another method that you then call.

While you have worked out the steps you need to use, you just have to reorganise it so that it can be used within blenders operator context.


Smoke render is too thin I've just started to work on blender and today I've been playing around with smoke physics. I've been following some tutorials on youtube and I've found some simple videos with a few minutes of how to work with smoke.

Right now I've have a project with a simple cube for smoke domain and another for smoke flow.

Here's the image of a render of the smoke that I have (file is in the end)

What I pretended was it to be thick, more dense.. I've changed the density fields on the options but no luck. It is blue due to the color of the light (blue sun).

http://pasteall.org/blend/index.php?id=52493

Any can help?

Thanks a lot.

Edit: Here's an image on how it looks on Cycles (first image is in eevee)

Well, was able to find a .blend file on the internet that was working and compared the solution with mine. what I was missing:

On Volumetrics, change the "End" from 1000m to 100m


Multiple meshes with rigify: One does not transform at all I have been experimenting with the latest rigify version where there is a horse rig added.
The hair meshes do what they should when I go to pose mode and behave somewhat okay.
The horse main mesh however does not. I have seen in weight paint mode that there have not been applied ANY weights though I selected so. Any solution to let it be re-calculated?
Thanks for your help!

Found out that there was an issue with too many verticies in the object causing the automatic weight painting mode to not work at all. By doing retopology and/or simply decreasing the face count and repeating the steps it will work.


How to tile Height Map in blender I have a texture on a plane. I can there tile the

normal map
albedo map
roughness map

But not the height map. I can't tile the height map, it always stays the same, no matter what I try. I also changed in the displace modifier  texture coordinates to "global". I also tried to tile the bump map on a plane with a smooth shaded surface, but there is no difference.

So how can I solve the problem?

You won't be able to scale the bumps with the material settings, as the bumps that we see are real bumps, not procedural bumps. If you want more bumps you need to duplicate x4 your mesh in Edit mode and stick each part (there are several ways to do it but you could simply duplicate and merge the vertice by distance so that the vertices stick, or symmetrize it, etc). You could also bake the real bumps and use the result in a Displace modifier, or in a Displacement node if you want to make it procedural.
A quick way to fake bumps: Plug a Noise Texture into a Bump node. In that case your object can be low-poly (here, one face) as the bump effect doesn't need any geometry.


exporting 23.98 fps as a png sequence in blender 2.8 I'm trying to export my animation in 23.98 fps as a png or openEXR sequence in blender 2.8 however when I import it to a composition software such as after effects it says that the sequence is at 30 fps. However, when I export an AVI file instead of a sequence format it exports as 23.98 fps.

Inside After Effects you could right click on your image sequence and select  "interpret footage".

With that you can change the frame rate.

Hope that helps.

Good luck


modelling question regarding smooth curved and flat surfaces im fairly new to 3d modelling and im having trouble in getting the smooth curves and flat surfaces I want on a watch strap ive designed. attached are two picture, the first showing the 3d model in blender (that has shading problems and harsh edges) and a rough drawing of what im aiming to achieve. thank you for your time. Any help or suggestions would be greatly appreciated. Ive already attempted using a subsurface modifier and the strap is already shaded smooth.

I'm not sure it's what you want but here is a try. Begin with a UV Sphere, etc... You could also use this sphere to boolean a rectangle...