You can do this easily with face instancing.

Parent the Cylinder to the Dome
Select the Dome and go Object Tab > Instancing > Faces
Done


Dope sheet editor. What does the orange line between keyframes mean?

Those orange lines represent a hold: the selected keyframes at each end have the same value, so there is no transformation in between them.
For example:

For unselected keyframes the line connecting equal keyframes will be displayed in gray.


Object referenced by PointerProperty in Python can not be deleted properly

Based on the suggestion by @batFinger, I realized that if I delete the object using the keyboard shortcut or using the Python console, it is unlinked from the scene and its reference count decreases by 1. Since the pointer property still has a reference to the object, it is not removed from bpy.data.objects. Therefore, I check in my Panel draw() function (which updates automatically) if the desired object is present in the scene as follows:

if context.scene.objects.get(desired_object.name) == None:
# That means that the object has been deleted from the
# scene graph, therefore remove it explicitly
    bpy.data.objects.remove(desired_obj)

This lets me reproduce the functionality inheret to the Blender when dealing with PointerProperty Objects as mentioned in my question.


here an example http://www.blender.org/api/blender_python_api_2_57_release/bpy.types.Operator.html#invoke-function

import bpy

class SimpleMouseOperator(bpy.types.Operator):
    """ This operator shows the mouse location,
        this string is used for the tooltip and API docs
    """
    bl_idname = "wm.mouse_position"
    bl_label = "Invoke Mouse Operator"

    x = bpy.props.IntProperty()
    y = bpy.props.IntProperty()

    def execute(self, context):
        # rather then printing, use the report function,
        # this way the messag appiers in the header,
        self.report({'INFO'}, "Mouse coords are %d %d" % (self.x, self.y))
        print((self.x, self.y))
        return {'FINISHED'}

    def invoke(self, context, event):
        self.x = event.mouse_x
        self.y = event.mouse_y
        return self.execute(context)

bpy.utils.register_class(SimpleMouseOperator)

# Test call to the newly defined operator.
# Here we call the operator and invoke it, meaning that the settings are taken
# from the mouse.
bpy.ops.wm.mouse_position('INVOKE_DEFAULT')

# Another test call, this time call execute() directly with pre-defined settings.
bpy.ops.wm.mouse_position('EXEC_DEFAULT', x=20, y=66)


What's wrong with my high & low poly models?

People thinks baking normal maps is just a basic step, but really it's not, there is a lot of theory to understand here if your model is even a little bit complex. Just taking a quick look at your files, your low poly isn't a contiguous object, it's made of several parts that aren't linked together, same for your cage. So when the rays sent from your cage towards your low poly reach an intersecting parts the result is artifacts. Your geometry is all wrong, no way this is going to bake properly unless you restart from scratch with proper hard surface modeling techniques (quads, no intersections, support loops...).

On the bright side your UVs looks good! Maybe start with a simple 2 parts model, try to explode it and bake it properly, to help you understand the theory with less possibility for failure. Take it slow and make sure you get it.

But first read this, those 2 posts are basically the Bible of Normal map baking for all 3D softwares and will teach you all you need to know:

http://wiki.polycount.com/wiki/Normal_Map_Modeling

http://wiki.polycount.com/wiki/Texture_Baking


An Issue while applying texture to all the ivy generated curves

It's impossible to know what is at work without more information, but I wanted to offer some general information anyway.
It's important to understand what is happening when Blender selects objects. The first object to be selected isn't merely selected, but is also active. An active object is a special case of selected object, and there can only ever be one active object at a time, even if multiple objects are selected. When adding multiple objects to any selection one at a time, the last one selected is always the active object. When you use the Make Links menu, as you did above, Blender needs to know what object is going to be the source object for the data transfer. The active object is always the one from which data is transferred, and all other selected objects are the ones to which that same data is transferred.
Now, Blender also remembers the last object to have been selected, even if no objects are selected currently. This is important, because there are ways to select multiple objects without selecting them one at a time. If it were the case that only the last object selected is ever the active object, then which object would get designated as active when all objects are selected at once? The answer is, the one that Blender remembers being exclusively selected previously. And it turns out that every object is designated as exclusively selected (and therefore active) as soon as it is initially created. Meaning that there will always be an object in the scene that Blender remembers to have been exclusively selected previously. So there will never be a condition for which selection outcomes prevent Blender from knowing which object to designate as active.
It's also important to understand that objects which are currently invisible, or which are marked as unselectable currently in the Outliner, will not be added to any selection made via the All By Type menu. This rule also applies to the active object. If the active object is invisible or unselectable, it cannot be sourced in a linking operation. Performing the link with the active object cut off in this way will result in no linking being performed. Invisible or unselectable objects will, as a rule, not be involved in any operations which require selections in order to function. So check to see if you have any visibility or selectability issues.
I noticed in your screenshot that you don't have your selectability column exposed in the Outliner. So you aren't yet even in a position to see what the selectability status is for the objects in your scene. Float your cursor to the top-right of the Outliner, above your listed objects, and you will see the icon for the Restriction Toggle. The selectability toggle option will be found under there.
Until you give more info, there won't be much more anyone can say about your file.


It seems like some of the faces of your object have normals facing inside. You can try going into edit mode, selecting everything and pressing Ctrl+N or Mesh>Normals>Recalculate Outside.


How to add a single additional edge loop without a triangle

To change the flow its pretty straightforward. There are 3 methods that I use but here is the most simple:

Select the path of edges you want the flow to follow:

Once you have the path just bevel it (ctrl b).


From what I gather, you want a pure black and white mask for face visibility.

If this is purely a geometric issue then a face (triangle) will either be visible or not. You could probably get away with a fairly accurate representation without needing any rendering.

With that in mind then you could just place the 3D viewport at the correct view angle with an orthographic camera.
With the border selection tool select all object faces. If you have the Limit Selection to Visible option enabled, occluded geometry wont be included.
You may have to triangulate your mesh beforehand if partial visibility is an issue, like if you have many NGons or highly distorted quads.

From then on, with the selection at hand you can do whatever you want with it.

Either give them a different material and OpenGL render the viewport, texture paint it, export its UV map and paint it in an external editing application, etc.

Alternatively if you require partial per-face visibility you could try texture painting it from a certain viewpoint.


Is it possible to animate which characters of a text object are assigned to a material?

Blender 2.76: This appears to currently be an unavailable feature.

Some workarounds could be to assign a different material to each letter and animate the colors of the individual materials, but there is no built in way to do this.


How can I get particles to emit with a rotation based off of the rotation of the face it was emitted from

In ParticleSettings for the emitter, turn on Rotation and set Initial Rotation to Normal. In my example I also set gravity to 0, as shown, as it seems you did also.

Orient your particle object in edit mode in a way that its local y-axis points to the forward direction you like it to have. You can see its local axis by turning on Axis in Display tab of the object properties for the particle object.

You might also want to have a look over the manual section on particle rotation.


When IK bone moved wrong part of mesh deforms

Yes, I checked the file, there are still subtle weight painting errors... I know they're subtle because it's difficult to see because they are just drawn in a slightly lighter blue colour, and some weighted vertex somewhat hidden into the folds of the suit of the character. but trust me, that is the problem. I can show you where they are some, in an image:

I removed all of them from the right IK arm, and now it moves just the supposed geometry.

There is a way to help you spot those subtle areas, and you can use it temporarily just to fix your weights: in the user preferences, activate the "custom weight paint range", and setup one that will help you, like did here:

Here I setup 2 control points in the colorramp:

the first is at 0 exactly (vertices with zero weight): black
the second, at 0.002, white (vertices with weight 0.002)

you cannot even see the black (zero) point, because it's very, very near to the white, but it's there.

in this way it's very easy to see where the bad paints are... when finished, just disable this feature, and get back to the default rainbow scheme...


There are few issues in the UV Mapping.

To fix theme, select the faces with Screen Material in the Material Panel,

then UV map "Project from View (Bounds)" (U -> Project from View).

If you disable the Subsurf modifier, it works.
To fix the Subsurf issue, add an edge loop near the external edges of the screen.


Why can you see a seam in my model from far away?

Nathan and me:
You can change the filtering method on your image node to "closest."
However, "Closest filtering is more diagnostic than a good solution." It is better to "use texture images with significant margins."
This is needed since objects use texture space outside of their UV maps when seen from far away explained by http://wiki.polycount.com/wiki/Edge_padding.
Nathan provides the resource en.wikipedia.org/wiki/Texture_filtering


Headless render: can't find compute_device in 2.78b

From the 2.78b, it's necessary to recover them via the preferences of the Cycles addon.
You cant get it with

bpy.context.user_preferences.addon['cycles'].preferences.compute_device_type

And for the devices:

for card in bpy.context.user_preferences.addons['cycles'].preferences.devices:
    print(card.name)


Sun Beams node. Where do the rays come from?

Sun beams node works with normalized screen space coordinates, where (X0.5; Y0.5) is the Camera's midpoint.

Your current point (X0.7; Y1.1) is way out of the screen. Try something like (X0.5; Y0.25) - it will be lower part of the screen, where is light coming from.


How can I use clone brush in the UV/Image editor?

I'll show you the method, which does not work exactly like the one you mentioned (Ctrl+Left Mouse Click) but may be useful for you.

In Uv/Image Editor change the Mode to Paint.

Place the cursor in the Uv/Image Editor window and press T. It will display the Tools panel on the left. Choose the clone brush and an image, which will be the source for cloning.

Place the image wherever you want holding the Right Mouse Click. Paint by pressing the Left Mouse Click.


Instead of using "glossy" or "glass" shaders, turn the roughness of the diffuse material all the way down.

Hope this solved it!


Why these big checker boxes are seeing in texture and rendered mode?

change alpha blending mode to something more accurate like alpha hashed


From what I see in your screenshot, your UV islands don't fit the scale of your model. This is almost always the case if you didn't apply the scale of your object.

Move the mouse to your 3D viewport, be sure to be in Object Mode, then hit Ctrl+A, which should open the "Apply" menu. Select "Scale".

After that you need to unwrap your object again to get the exact UV representation of your model.


How do I achieve an image lit by candle light?

If you are using cycles. You don't need much. If you are using cycles you can use an emitter shader as the flame, not much else, as the candle will light the scene.

Then read the following link:

Make the flame of a candle more yellow

There are options there to use the compositor, to create materials that are brighter for the scene and less bright for the camera, as well as using color management to create a more realistic


Export a keyframed animation made in Blender to Three.js (no bones involved)

See threejs docs: https://threejs.org/docs/#manual/en/introduction/Loading-3D-models. I'd recommend trying the Blender glTF exporter suggested there, glTF-Blender-Exporter. It does support keyframed animation.

Once you've exported something, usage is:

var loader = new THREE.GLTFLoader();
loader.load('my-model.glb', function (gltf) {
  var model = gltf.scene;
  var mixer = new THREE.AnimationMixer(model);
  var clip1 = gltf.animations[0];
  var action1 = mixer.clipAction(clip1);
  action1.play();
});

// ... in render loop
var dt = clock.getDelta()
mixer.update(dt);

You can also test your model in three.js without writing code, with http://gltf-viewer.donmccurdy.com/.


How can I have objects in second scene be affected by lighting?

One thing comes to mind:

Create the same light source in your second scene (weapons scene) at the same origin, with all properties being the same as the light source in the first scene.

Then save the transformation matrix of your camera from the first scene -> inverse the matrix -> and apply it onto the light source in the second scene.

This way the light source in scene2  will move according to the player movement (camera), and will affect the weapons in the correct way.

Now, to have even more realism, we would want to stop seeing the light affecting the weapon, when the player is outside the direct reach of the light source. The simplest solution would be, casting a ray from the 8 corners of the bounding box (bbox) of the player, towards the desired light source, if any of them gets to the light source without hitting any obstacle on the way (we assume no transparent objects), than some part of the player is still in the light, so we set a flag, like so: bool inLight = true.
This flag is used in the second scene, and we compute the light affecting the weapon, only if the flag is true...
Now if you like to be even more specific than that you can create a bbox in scene1, in the place where the weapon would be, and do the same procedure. However, I wouldn't bother going into so much detail in a game (keep it lighter), especially in a FPS game.
What I would do to achieve a similar effect for an FPS game is just cast a single ray from some offset from the front of the character (presumably where the weapon would be) and proceed with the check.

As for the ray-tracing check, in the case that you do not have a space partitioning algorithm (octree, kd-tree, etc), you would have to check the ray, brute force, against all objects (not very nice, especially in a game), so I suggest at least having a Bounding Volume Hierarchy to store the objects in your scene, as that would optimise things, and I strongly recommend using a spacial partitioning algorithm too. However prove that it works first, with the easiest way! Slow and correct is better than quick and wrong! Not always true for games though. ;)


How to rotate multiple (controller) bones with one main (controller) bone?

Here's my version of the file. This is what I did to get the desired functionality:

Go into Edit Mode, select all the bones which make up the finger/feather controls only, and press Alt + p to bring up the Unparent menu. Choose Clear Parent.
Go into Pose Mode, then select the Bone Constraint Properties tab in the Properties Panel. Access the Bone Constraint pulldown from the top of the panel, and create a Child Of constraint. Set the Target to Armature, and the Bone to SmallWingCurve.L. Finally, Press the Set Inverse button to ensure that the new parenting relationship preserves the child's current position.
Copy new Child Of constraints to all of the remaining Small_Feather_Controller bones. Select all of these except the one to which you just added the Child Of constraint. Then, hold Shift and add the one which has this constraint to the selection. It must be the last one added to the selection, as this makes it the active object. Then, from the Pose menu at the top of your viewport, select the Constraints submenu, then Copy Constraints to Selected Bones. Now all your feathers/fingers have the same constraint.

If you try to rotate your master controller now, all the smaller ones rotate with it.

One advantage of the Child Of constraint is that it allows you to keyframe changes to the parenting relationship. This is not possible with direct parenting. Another is that the resulting parenting relationship can be increased or decreased by degrees using a slider, rather than being a binary on-off relationship only. Yet another is that more than one parent can be assigned to a child object in this way, whereas this too is not possible via direct parenting. Perhaps the most important advantage is that it seems to work for your purposes here, where direct parenting did not. I'm not entirely clear as to why. If anyone knows the answer, please explain this for me.


Set matrix_parent_inverse
See Does a child object inherit the matrix from the parent?
Key here is that the origin of local space is  calculated from the basis matrix (what you see in the transform UI) and its parent inverse matrix.
There are a number of ways to achieve desired result:

set the empties matrix world to that of the original
and set both the matrix_basis and matrix_parent_inverse of
original to identity. Equivalent to the one case that "didn't move"

By default blender sets the matrix parent inverse, so when parenting is removed the object maintains its prior transform.  Using first method will snap them back to origin.

Set parent matrix world to childs.
Maintain the current location by setting childs matrix_parent_inverse
to its inverted basis matrix.

Test script, method 2.
import bpy

class ObjectTest(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.test"
    bl_label = "Array of current object"

    def execute(self, context):

        ob = context.active_object

        bpy.ops.object.empty_add()
        mt = context.active_object
        mt.name = f"{ob.name}Array"
        mt.matrix_world = ob.matrix_world
        ob.parent = mt
        ob.matrix_parent_inverse = ob.matrix_basis.inverted()
        return {'FINISHED'}

def register():
    bpy.utils.register_class(ObjectTest)

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

if __name__ == "__main__":
    register()

Consider extending this such to selected objects such that can add an empty parent to each, or one parent at active object and all other selected also become children.


An example.  Lets pretend the monster is more muscular than the human.
In general any mesh shape change is fair game
Some 3D armature bones control organic bone rotations.  Other 3D bones control more organic muscular mesh transformations.  There are big muscles such as thighs and smaller muscles in the face.
Armature.  Bones that are not moved on the bicep for a human can be moved for the monster to create a larger bicep.  This bone would not be involved in arm rotation and perhaps not connected.  Perhaps a child of the upper arm bone.
A lattice can be used to create a larger bicep for the monster.
Since facial features can be controlled by bones.  Exaggerated positions may be useful.  Please search facial feature rigs.
Displacement textures to create non smooth skin.
Use a [custom property] (value on the object) float number ... which varies from 0.0 to 0.5 to 1.0. This custom property can have a keyframe.
Using the custom property with a Blender Python driver to control values of colors and location.  0.0 might indicate human. 1.0 might indicate monster. 0.5 will be the mix of human and monster.  Morph.
Using the custom property blend the skin from some human color to monster color such as green or purple.  Or blend some monster skin texture.
Shape Keys.  Keep in mind bones have a natural sense of rotation.  Shape keys in their primitive state do not.  The more shape keys, the smoother the transition, the more work to coordinate shape keys.
For extreme mesh changes such as monster horns keep in mind that extra mesh vertices can create smoothing problems for the human.  Consider using two meshes and the convenient blinding light flash or image transparency blending.  Such cheap slight of image.  Two meshes can share an armature.  Not trivial.


Copy Rotation constraint rotating on wrong axis with IK bone

The simplest way to have this result, as moonboots says, is to set the foot as child of the IK controller.

If you want to understand how to use rotation constraints you have to activate the axes display in the armature properties, and vary the bones'roll value in edit mode.

Every bone shows its axes on its tip (while it's more convenient to think they are on its head, as a joint).

Y axis it's always longitudinal to the bone.


ReferenceError: BMesh data of type BMesh has been removed cause and fix

Assigning class properties

The error you were seeing was in the way you were setting the bmesh in your Create class. The property bm will be the bmesh for the context edit mesh when the sctipt was run, rather than, what you want,  when the operator is invoked.

Suggest rather than instancing the class in modal loop, make one instance in invoke and use that.  Add a constructor to your Create class with an argument context to ensure it is for the context mesh.

Example where the bm is set as a class property of the operator.

import bpy
import bmesh

bmeshes = {}

class Modal(bpy.types.Operator):
    bl_idname = "object.modal"
    bl_label = "Modal Op"
    bl_description = "Other thingy"
    bl_options = {"REGISTER"}

    bm = None

    @classmethod
    def poll(cls, context):
        return True

    @classmethod
    def bmesh(cls, context):
        me = context.edit_object.data
        cls.bm = bmesh.from_edit_mesh(me)

    def invoke(self, context, event):
        bpy.ops.object.mode_set(mode='EDIT')
        self.bmesh(context)
        context.window_manager.modal_handler_add(self)
        return {"RUNNING_MODAL"}

    def add_vert(self, loc):
         return self.bm.verts.new(loc)

    def modal(self, context, event):
        # no longer in edit mode
        if context.mode != 'EDIT_MESH':
            self.bm.free()
            self.bm = None
            return {'CANCELLED'}

        me = context.edit_object.data
        if self.bm is None or not self.bm.is_valid:
            # in edit mode so try make a new bmesh
            self.bmesh(context)
        if event.type == "LEFTMOUSE" and event.value == "PRESS":
            v = self.add_vert((0, 0, 1))
            # update after all operations
            self.bm.verts.index_update()
            bmesh.update_edit_mesh(me)
            print("added", v)

        if event.type in {"RIGHTMOUSE", "ESC"}:
            return {"CANCELLED"}

        if event.type in ["WHEELUPMOUSE","WHEELDOWNMOUSE","MIDDLEMOUSE","LEFTMOUSE"]:
            return{"PASS_THROUGH"}

        return {"RUNNING_MODAL"}

def register():
    bpy.utils.register_class(Modal)

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

if __name__ == "__main__":
    register()

For panel code to have an edit mode bmesh I often use a global dictionary

bm = bmeshes.setdefault(me.name, bmesh.from_edit_mesh(me))

which can be set / cleared using the panels' poll method.


How to make multiple strips for a wipe with Animation Nodes?

Use an inverse Delay Falloff to offset matrices by translating and scaling them along the x axis:


Most of addons are disabled because Python API will change. Python API will be freeze after beta release (end of October), and it will take some time to update addons to new API.


Two ways of doing this:

Use that sphere for knife project tool

Cut the sphere in half in Edit Mode
Choose Top View
In Object mode select your sphere, and then select the pane
Go into Edit Mode and Knife Project

Collapse the sphere

Cut the sphere in half in Edit Mode
Select all vertices
Scale it along the Z axis to 0 (On a keyboard: S + Z + 0)

I am quite new to Blender myself, but in my experience, these are the two easy ways of achieving it.


While there is no built-in solution other than multiple keystrokes, an addon can easily add this.

This small script adds a "Duplicate without parenting" operator and connects it to the shortcut ⇧ Shift⎇ AltD This is available in object and armature edit modes.

import bpy

bl_info = {
    "name": "Duplicate object(s) without parenting",
    "author": "sambler",
    "version": (1,0),
    "blender": (2, 65, 0),
    "location": "Shift-Alt-D",
    "description": "Duplicate selected objects or bones without copying the parent connection",
    "warning": "",
    "wiki_url": "https://github.com/sambler/addonsByMe/blob/master/duplicate_without_parent.py",
    "tracker_url": "https://github.com/sambler/addonsByMe/issues",
    "category": "Object",
}

class DuplicateWithoutParent(bpy.types.Operator):
    """Duplicate selection without parenting"""
    bl_idname = "object.duplicate_no_parent"
    bl_label = "Duplicate without parenting"

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

    def execute(self, context):
        if context.active_object.type == 'ARMATURE' and context.active_object.mode == 'EDIT':
            bpy.ops.armature.duplicate()
            for b in context.selected_bones:
                b.parent = None
        else:
            bpy.ops.object.duplicate()
            bpy.ops.object.parent_clear(type='CLEAR')
        return bpy.ops.transform.translate('INVOKE_DEFAULT')

addon_keymaps = []

def register():
    bpy.utils.register_module(__name__)

    if bpy.app.background: return

    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        km = kc.keymaps.new('Armature', space_type='EMPTY')
        kmi = km.keymap_items.new(DuplicateWithoutParent.bl_idname, 'D', 'PRESS', alt=True, shift=True)
        addon_keymaps.append((km, kmi))

        km = kc.keymaps.new('Object Mode', space_type='EMPTY')
        kmi = km.keymap_items.new(DuplicateWithoutParent.bl_idname, 'D', 'PRESS', alt=True, shift=True)
        addon_keymaps.append((km, kmi))

def unregister():
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()

    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()


Textured viewport for UDIM material in cycles

In edit mode you can assign different materials to different faces in an object.

If you have 2 materials:
Face
Body.

duplicate the material set up
set the input texture of the body and the Face correctly.

UV maps work on a value of 0-1 over the U and V axis, if you have a face outside of the grid, it restarts from 0, causing a repeat of the UV coordinates.


In Blender the outline called freestyle, you can find it in the properties window under the render tab.


I figured it out. The code is simply:
rot = normal.rotation_difference(target_vector)
obj.rotation_quaternion = rot

BUT I had transformed my normal vector the the global coordinate system like this:
world_matrix = obj.matrix_world
normal = obj_face.normal
normal = world_matrix.to_3x3() @ normal

It worked if I skipped the last line with the matrix multiplication. I'm haven't wrapped my head around why this did the trick, as I just tried it out of intuition (and desperation). So I guess I have something to think about over the weekend :-)


Try changing the child_process.spawn('blender', arguments); line to child_process.spawn('/Applications/blender/Blender.app/Contents/MacOS/blender', arguments);.  NodeJS won't be using your bash aliases, so unless the blender executable is in its PATH it won't be able to find the executable and will throw an ENOENT.

The other option is adjusting Node's PATH to include the path to the blender executable.  You could also pass the fullpath to the blender executable in as an environment variable.

Cheers!


How to copy the vertex position to the inbetween values of the shapekey? (Not Basis)

If you click the drop-down arrow in the Shape Keys panel there is an option for 'New Shape From Mix' - this creates a new shape key from the mix of all your existing shape keys and values.
Simply set your shape key 'values' to set 0.5 for the key you want to get the 'half-way' position of and select 'New Shape From Mix'. This will create a new shape key that produces that distortion when fully set.

You can use the same method to create a new shapekey from a mix of any amount of any number of your existing shape keys.


How about modeling a "folded" bag, make it a Cloth, add a pin group set to the top vertices and apply some simple shapekeys? Here is a quick example:

With more geometry and some experiment a bit more details can be added...


Why is spotlight shining through cube? (Blender 2.80 EEVEE render view)

For any curious about this, here's the nature of the problem and the solution
at Blender bug reports. Turns out it's not a bug, but I had thought it might be,
so to help by reporting it I thought I'd inquire there at Blender bug reports.
https://developer.blender.org/T63768


Why normalized EXR renderings of surface Normals look different than PNG renderings?

It turns out Numpy does not automatically set the negative values to 0 when casting the array type to uint8. For instance, suppose I have a numpy array as follow:

array([  46.73017823, -250.31618571, -247.44416527,   97.52841554,
       -204.92988386,  191.09452493,  103.15708521,  -86.10470495,
         46.211924  , -195.30653599,  240.44499889, -169.42729244,
        210.44996545, -182.04892973, -166.20581924, -221.11524425,
        164.79367242, -199.80888341,   94.1786936 ,   43.45477102])

I was expecting that doing normalNPArray = normalNPArray.astype(np.uint8) will automatically set the negative values to 0 since uint8 does not naturally support negative values. However, casting the array as np.uint8 gives me the following:

array([ 46,   6,   9,  97,  52, 191, 103, 170,  46,  61, 240,  87, 210,
            74,  90,  35, 164,  57,  94,  43], dtype=uint8)

Doing normalNPArray[normalNPArray < 0] = 0 and then casting the array to np.uint8 will resolve the issue.


The output of nodes can be connected to more than one nodes, so you can use it on your glass too.


You can join all your bones to make a unique armature (ctrl J) or recreate your armature from scratch. In both cases it's better to create an additional big bone which won't have any weight on the mesh but will be the parent of all your bones. To do that you will have to select all your bones, then, at last, the parent bone you have created and ctrl P > Keep Offset. You also have to control that the influence of your bones on the mesh is correct, either in Weight Paint mode, or with Vertex Groups assignments.

When all this will be finished you can create the wings animation and repeat this animation in loop with the NLA editor, and move the whole armature along a straight line or along a curve with a Follow Path.


How to decrease the size of an image texture?

You have scaling options under Texture > Mapping


What is the most physically correct glass shader?

"Glass" is too vague; there are many kinds of glass with many different optical properties. See refractiveindex.info to get some idea of the number of parameters you can worry about.

As far as cycles is concerned, a plain glass shader is as close as you probably care to get before increasing render times too much. Though absorption may be applicable with colored glass.

While there are ways to approximate other phenomena like dispersion in cycles, if you are serious about simulating those you are likely better off using a spectral renderer like luxrender.


Maybe Skin is not the best tool to build your mesh, anyway there is a efficient way to simplify a mesh:

In Edit / Edge Selection mode, select an edge ring with ctrl alt right click.
Got to Select > Checker Deselect. Now only one of two edges is selected (or even less if you want, play with the factors at the bottom of the T menu, on the left of the 3D view).
Go to Select > Edge Loops. Now the edge loops of these edges are selected.
Delete these edge loops with X > Edge Loops


Cannot seem to subtract mirrored cylinders from a cube

Have you applied scale to both the objects?? If so then Select the cube then apply boolean modifier.Add Cylinder mesh under object and Select Difference operation and then apply the modifier.It should give you the desired result.


Spline From Branche

Starting from version 2.1 of Animation Nodes, the Splines From Edges node has a new method called Spline Per Branch which minimizes discontinuity by combining the vertices of each branch in a single spline. Below is a comparison between the Splines Per Edge (left) and the Splines Per Branch (right) methods:

Sking Modifier

The author suggested using the skin modifier to solidify the filtered edges from the referenced answer. Most of the work is handled by Blender's skin modifier. This, however, imposes certain difficulties. Each of the following sections will concert with one of those difficulties.

As a study case, we shall use the example from the referenced answer. This example filters the edges by Freestyle Marked Edges such that the node tree only outputs the edges that are marked as freestyle:

Vertices

You might have noticed by now that we can't output the filtered edges directly, this is due to the fact that the skin modifier will also skin individual vertices, that is, vertices that are not connected to any other vertices through edges. Such vertices were introduced because their edges may have been filtered (removed), so we should also filter vertices so as to only keep the vertices that are used by the edge list.

I will first initialize a boolean list of length number of vertices that we will use to filter the vertices where the the corresponding boolean to each vertex is True if it was mentioned in one of the edges and False otherwise. I chose to initialize all the booleans to be False by default, the significance of this choice will become apparent in a moment. The code to generate this list is:

BooleanList.fromValue(False, len(vertices))

Next, I will loop over the filtered edges, set the booleans at the indices they carry to True and reassign the list. After the loop is done, all the elements that are referenced in the edges will be true and we will have our filtered list. The implementation is simple and is very similar to the loops iterator loop in my answer in the referenced question, so head over there if you want more detailed explanations:

And you can see that the vertices we have are indeed the ones that are part of edges:

Edge Indices

The foregoing section introduces a problem, since we removed some vertices, the vertices indices changed and subsequently the edge indices are no longer valid or connect two entirely different vertices together. To fix this, we have to find the new index of each vertex after the removal of the vertices. We can find a function that maps the old indices to the new ones by studying what I like to call the Indices Train:

The upper row represents the original vertices, each have its own index. The middle row represents the filtered vertices, where you can see, some of vertices were removed. The last row represents our boolean filter list. If you notice, the indices of some of the vertices changed:

Blue: Became 1 instead of 2.
Orange: Became 2 instead of 4.
Green: Became 3 instead of 5.

I want you to take your time and try to figure a possible formulation for the function that maps the old indices to their new ones. The solution is simple:

   Each index is reduced by some integer n where n is the number of removed vertices before that index. For instance, Blue was reduced by 1 because only one vertex was removed before it, that is, the cyan one. Orange and Green were reduced by two because two vertices were removed before it, that is, the cyan and the violent one.

So the problem reduced to finding the number of removed vertices before each vertex. Notice that we have a boolean list that tells us exactly which vertices was removed, considering True to be 0 and False to be 1 (Contrary to the normal boolean representation), if for each element, we sum all the booleans before it, we will get exactly how many vertices was removed. For Blue, we have 0+1 = 1 as expected, for Orange, we have 0+1+0+1=2 as expected, and finally for Green, we have 0+1+0+1+0=2 as expected. We can implement this by using a loop:

We create an initially zero integer, at each iteration, we reassign it to be itself plus not boolean, the not is to implement the statement "considering True to be 0 and False to be 1". And then we append the integer to an integer list. Take your time to understand why this work.

All we have to do now is to subtract those from the old edge indices to get the new ones:

The New Edges loops over the edges, get the corresponding number of removed vertices from the Removed vertices loop, subtract it from its index and create a new edge indices from the result of the subtraction. Ending up with a new valid edge indices list. By outputting the filtered vertices and the new edges, we get the mesh that should be skined:

If we attempt to add a skin modifier now to get the skined mesh, we will be disappointed; because it will not work, the reason is explained in the following section.

Skin Root

The skin modifier requires one vertex to be a Root. A root is basically a vertex that blender uses as a reference to compute orientations for the output mesh. Upon adding a skin modifier manually, blender automatically adds the vertex at index zero as root, that's why you nearly never have to set the root unless needed. However, Animation Nodes keeps writing a new mesh to the object every execution, and since the skin modifier was already added in some previous execution, those new meshes don't have roots simply because nobody set them, this, in turn, cause the skin modifier to fail. The solution is simple, we just have to set the root to some vertex (A process that may be arbitrary if no fine tuning is required). Well, not really. You see, blender store the skin data in the data.skin_vertices data collection and as it turns out, blender doesn't allow us to create such data collection. So the only way to get this to work is by removing the skin modifier and adding it again, something that was described by zeffi in this question. Another method would be using the bpy.ops.mesh.customdata_skin_add operator which require context overwrite, something that we shouldn't really be doing in Animation Nodes. To remove the modifier and add it again, we can use the script:

#If there is a skin modifier by the name "ANSkin", remove it.
if 'ANSkin' in object.modifiers:
    mod = object.modifiers['ANSkin']
    object.modifiers.remove(mod)

#Add a skin modifier called "ANSkin".
mod = object.modifiers.new(type='SKIN', name='ANSkin')
#Edit the options of the modifier:
mod.use_x_symmetry = False

#Output the input object
outObject = object

If you are not familiar with the script node, please study this first.

We now have a working skin modifier:

One thing we can do is control the radius of each of the edges, which we can do using such script:

for v in object.data.skin_vertices[0].data:
    v.radius = radius, radius

Which when used:

Notice that we can control the radius per vertex, so one can use such script:

for v, r in zip(object.data.skin_vertices[0].data, radii):
    v.radius = r, r

Where radii is a float list with the radii, which is used as a random list, returns:

Notice that we can control the radius as two individual values in each direction, normal and cotangent to the edge. I will let you figure this out yourself.

Blend file for study and practice:


Particle object cutting through mesh on which I am currently weight painting

Put the origin of your particle object on its bottom face. The particle origin will stick to the emitter surface.


Blender 2.8 Leaf Transparency Issue, with Eevee

There are (at least) 2 reasons why they are not transparent:

your leaf texture is a .jpg file: this format can't carry transparency informations. Only .png images can have a transparent background in the image itself.
You are connecting the Color output of the Image Texture node into the Fac of the Mix Shader, but the latter needs a black and white image, where black means transparent and white means opaque. You should use the Alpha output instead, which takes the transparency of your .png texture and transforms it into a BW map for the Mix Shader


Get children name and move it to a separated collection automatically

Use the objects children property.
A blender object already has a children collection, there is no need to reinvent the wheel.
Test script,
loop over the children of the context object, (optionally) if they are linked to another collection, unlink, create a new collection with object name, link child object to it, link collection to context collection.
import bpy

context = bpy.context
coll = context.collection
ob = context.object

def unlink(ob):
    for c in bpy.data.collections:
        if ob.name in c.objects:
            c.objects.unlink(ob)

for child in ob.children:
    if child.type != 'MESH':
        continue
    # unlink from any other collection?
    unlink(child)
    new_col = bpy.data.collections.new(child.name)
    new_col.objects.link(child)
    coll.children.link(new_col)

# to remove if the context object is only a temporary place holder
bpy.data.objects.remove(ob)


Can a mask hide only one object and not the others?

OKay, I figured it out:

Using the UV/Image Editor, create a mask, and give it a meaningful name;
Select the "SECRET" text strip ; Its "Blend" should be "Alpha Over" that's the default for text strips anyway, leave it at that;
Add a "Mask" modifier and select your newly created mask by its name.


Convert vertex instancing to single mesh

To convert instances into objects, go to Object > Apply > Make Instances Real.
You can then join them into a single mesh using Ctrl + J.


How do I model this curvy spiral staircase?

Well I think this is just supposed to be a spiral staircase, a fairly simple helix.

One way to model it would be to make a square "U" shape with three edges (e.g. delete one edge of a plane).  Rotate it so it's as shown in the image below (make sure to apply your rotation) and you'll want to offset the origin, in Edit Mode, just select the vertices and move G them to one side, which will leave the origin in place.

Then just add a Screw modifier as shown. I have set the Angle to negative to get the helix to twist the direction I want.

Edit: as per @Duarte Farrajota Ramos, an Edge Split modifier would be a good addition to distinguish between the sharp angles and the smoother surfaces.


The Cycles render engine allows to use a fisheye lense. Select the active camera and open the Object Data Properties. Set the Type to Panoramic and select either Fisheye Equisolid or Fisheye Equidistant, depending on the type of fisheye lense you would like to use.


How to join strokes points / closes the figure using grease pencil

You can join Grease Pencil points by selecting two points and hitting CTRL+J, does it work for you?
If I want to do something but don't know whether such feature exists, I often use Spacebar and write down a term that could describe it... in this case I just wrote "Join" and this function with the shortcut appeared in the list.


How do I import a fbx file into blender from command line?

You simply need one operator to import the FBX, and another operator to export the blendfile. Replace the filepath variables with the actual paths you want to use.

# Import FBX
bpy.ops.import_scene.fbx( filepath = yourFBXfilePath )

# Export blend file
bpy.ops.wm.save_mainfile( filepath = yourBlendFilePath )


What does the cuda option do in blender?

CUDA uses the CUDA cores of your GPU to do the rendering. In short, they're stream processors and do not affect how the output render looks. There is no difference between that and your GPU, in essence. I don't even think you can run an NVIDIA card without using CUDA cores for rendering for two reasons: 1. it may turn to molasses (analogous to running a PC on a USB ver. 1.0 instead of a harddrive), and 2. Blender won't know how. This is specific to NVIDIA. OpenCL is used for AMD cards. Since you have an NVIDIA card enabled, it will process the render. Otherwise, you're going to have to use your CPU. Do whatever is faster. I use a 635M and it is faster for me to use my Intel i5 3210 than the graphics card. You can read more about this here: https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html

Also this reference is good for explaining what CUDA cores are: https://www.lifewire.com/what-is-nvidia-cuda-834095


Is it possible to combine a Meta-rig armature with a manually made armature?

While I'm not sure of any limits, I do believe there is a need to have correct bone names and parenting or chain lengths in place for the rig generation to work properly.

The next release of blender (2.79) which is expected to get a beta release soon has some new rigify rigs available with the updated addon version. These include basic human and quadruped rigs as well as bird, cat, horse, shark and wolf.

You can download an early 2.79 test build from here that includes the rigify update, I haven't tried it but I expect the updated rigify addon should work with the current release of blender if you want to copy it across to your current install.


pointing linked objects to a different file in 2.8+

Linking to version numbered files is a bad practice and not very maintainable in the long run as you have already found out.

My advice is to never link to myAsset_v002.blend or myAsset_v004.blend, instead when you edit a library file always save "masters files" of all your libraries in addition to the revision ones named myAsset.blend (without version numbers) and link to that one instead. Otherwise you will spend more time managing libraries than getting actual work done.

Addressing the issue at hand you can switch the Outliner to Blend File mode from the dropdown, locate the desired file you which to remap, and from the Right-Click menu choose the Relocate option. Browse to the new substitution file.

You can't, as far as I can tell, quickly select all objects originating from the same blend file, but you can select all objects sharing the same datablock.

In the 3D view you can select all instances on a certain object-data by selecting one of them and from the Shift + L Select Linked menu then picking the relevant entry depending on the library type (if it was linked directly as an object, or a collection instance).

You can take advantage of that and after linking in a new library from a different file, re-link all selected ones using the Ctrl + L Make Links menu, choosing once again the appropriate option depending on the library type.


How do I flip normals of duplicated faces?

Bmesh operators return resulting geometry.

Most likely only want to process a mesh once, a hundred selected
objects could all share one mesh. Hence have made a set.

Materials can be OBJECT linked. Have stuck with mesh linked
(Mesh.materials) but in general often a better option to iterate
over the object's material slots.

Make one bmesh, populate it, do stuff, write back, then clear and
repeat, then free.

The duplicate operator returns a number of items in a dictionary
regarding the result, consult the docs bmesh.ops.duplicate or
check it out in the console.
>>> bmesh.ops.duplicate(
duplicate()
BMeshOpFunc bmesh.ops.duplicate(bmesh, geom=[], dest=None, use_select_history=False, use_edge_flip_from_face=False)
-> dict(geom_orig=[], geom=[], vert_map={}, edge_map={}, face_map={}, boundary_map={}, isovert_map={})

we can get the new faces by checking for instances of
bmesh.types.BMFace in the "geom" key or instead I have made a list
of the values of the "face_map" (which is a handy dictionary with
originals as keys, and newbies as values)
It is also more often than not the case that the newly added faces are
 bm.faces[-len(faces_mat_tbh):]

the last n faces where n is the length of the to dupe list.

Changes.
import bpy
import bmesh
from bpy import context
# no need to do same on linked meshes.

mat_tbh = bpy.data.materials.get("Material")

meshes = set(
        ob.data for ob in context.selected_objects
        if ob.type == 'MESH'
        )

bm = bmesh.new()
for me in meshes:
    tbh_slots = [id for id, mat
            in enumerate(me.materials)
            if mat
            and mat is mat_tbh]
    if not tbh_slots:
        continue
    bm.from_mesh(me)
    new_faces = bmesh.ops.duplicate(
            bm,
            geom=[
                f for f in bm.faces
                if f.material_index in tbh_slots
                ]
            )["face_map"]

    bmesh.ops.reverse_faces(
            bm,
            faces=list(new_faces.values()),
            flip_multires=False,
            )
    bm.to_mesh(me)
    bm.clear()

bm.free()


Preparing 29.97 and 30 fps video for VSE

You will need to conform the footage to a single base rate. Although being very close, the values will be significantly off enough to cause sound slippage.

Regarding the Apple device, if from North America, I have extreme doubts that the footage is a base 30 rate. Typically most North American devices will list 24P or 30P and yet still be NTSC 24000/1001 and 30000/1001 respectively.

FFMPEG is probably a great entry point to conform any footage that requires such. Bear in mind that this may well have adverse effects on your footage as the frames in question may be dropped or doubled up depending on which target frame rate you are conforming to.


Modelling - A smooth, gradual descent/rise?

Yes, actually! What you want for this task is proportional editing! If you'll look in the image below, you can access it via that icon, or by pressing 'O'. You have several falloffs to choose from, and you can choose if it should be affected by connected vertices, or anything under the circle (it makes a wide circle like when you use the brush select, and scrolling with the mousewheel adjusts the area of influence).


Vertex Paint - creating gradient from selected vertices?

To make the gradient as the result of the vertex paint assign a texture as a pattern to the brush or use weight paint and convert it into the vertex painted colors.

Painting vertex colors with brush pattern

In Edit mode select faces which you'd like to be affected by Vertex paint. Go to Vertex Paint mode and enable the Face Selection Masking option to make the selected faces be the only ones affected.
In the brush settings, Texture rollout assign texture with desired effect. If the resulted vertex colors should be gradient-like, procedural texture of the Blend type will be good enough.
Choose Stencil option to paint with texture in the same way as in Texture Painting. Move it in the 3D Viewport with RMB to set up painting as desired.

Converting Weight Paint into desired vertex colors

There's an addon for converting weight paint into vertex colors and vice versa.

After activating it, create a weight paint to be converted. Use Weight Gradient, Quantize tools etc. from the Toolshelf to create the final result.
In the Vertex Colors mode, 3d Viewport header find and run Paint > WeightToVertexColor.


How to make the insets on either side of this cyllinder symmetrical

Well, you could build the symmetrical elements first using the Mirror Modifier first.

Then apply the modifier, and work on the asymmetrical elements.

Edit

Ok, based on that additional info, here's how you could go about doing so:

Create the first cylinder with the cuts. Then duplicate it, and flip the second one so that the insets are facing each other. Then, just grab the extruded faces, and move them in/out of the cylinder face by the same distance that you did for the first one. You can type in distances after activating the grab tool for exact distances.


Scaling, mirroring, how does it really work?

This matter because you don't apply rotation to original objects.
"CTRL+A - rotation" should solve this.


Can't see any image preview in Video Sequence Editor

This was not a Blender issue.

My PNG files were created by pressing Win+PrtSc and they were not processed correctly by Blender for unknown reasons. Recreating the PNG file in another application solved my strange problem.


Blender running at a crawl after NVidia update

It looks like the problem has been solved for at least myself and some other people. I and at least one other person sent a bug ticket to NVidia. NVidia stated the auto update I received was a generic Windows update and not one from NVidia. They recommended getting the appropriate driver form this URL: http://www.nvidia.com/Download/Find.aspx?lang=en-us and follow the NVidia instruction for installing it. I did the Advanced install and clicked the button to erase all of the old drivers to prevent any conflicts. It worked great and I think my Blender is running faster. I also downloaded the HP driver for this card as NVidia recommends, but it was more than 2 years old. I’ll just keep it for a backup.
I hope this solves the problem for others.


How can I make manipulator/gizmo stay visible when doing a transformation?

When you turn off overlays, gizmo gets turned off. Check the overlays area for the gizmo toggle on/off.


There was nothing wrong with the application of the Skin modifier, to get the result you want you need to apply the Subdivision surface modifier too:

Subdivision Surface (Subserf) is a Modifier, meaning that it operates on your base mesh without actually affecting it. From the wiki:

  Modifiers are automatic operations that affect an object in a non-destructive way. With modifiers, you can perform many effects automatically that would otherwise be tedious to do manually (such as subdivision surfaces) and without affecting the base topology of your object. Modifiers work by changing how an object is displayed and rendered, but not the actual object geometry. You can add several modifiers to a single object to form a Modifier Stack and you can Apply a modifier if you wish to make its changes permanent.

Those "Bounding boxes" is your base mesh without any effects of the modifiers.
This can be demonstrated by either removing the subserf modifier or disabling it in the 3D view by toggling the eye icon:

Note that you can shrink the base mesh to the subserfed result with the Edit cage button for a better view of the topology while editing. See the wiki:

  Edit Cage Mode
   To view and edit the results of the subdivision (“isolines”) while you’re editing the mesh, you must enable the Editing Cage mode by
  clicking in the inverted triangle button in the modifier panel header
  (next to the arrows for moving the modifier up and down the stack).
  This lets you grab the points as they lie in their new subdivided
  locations, rather than on the original mesh.

  (source: blender.org)

  (source: blender.org)
  Notice the comparison of screenshots to the right. With the edit cage off, some vertices are buried under the subsurfed mesh. With
  dense vertex configurations, you might have to even click the "Eye"
  icon so that you can see these vertices. The "edit cage on" version
  does not suffer from this problem. It does, however, have its own
  disadvantage---it can look too nice. Notice the three quads running in
  the middle of Suzanne's ear. You can only tell how crooked they are in
  the "edit cage off" version. When you are modeling, you will more
  often want to see your mesh deformities in their full ugliness---so
  you can apply your skills until it is sheer prettiness.


How can I make a circular object appear perfectly round?


Left click selects everything on my minecraft rig (blender 2.8)

Make sure you're in pose mode rather than object mode. It can be found at the top left in your screenshot ( in the dropdown menu that says "object mode").
Pose mode allows you to move bones. In object mode, the entire armature is considered one object.


After struggling with this for a while I switched to a different video editing tool ( I used KDEnlive ) and used that to put together the complete video. It worked perfectly with Blender's exported video and was quick and easy to work with. A Swiss army knife is very practical when you don't have a screwdriver, but if you do have one, use that instead.


Blender 2.80 where is the "interactive code panel" gone?

It's just that the "Info" editor isn't opened here by default. To get it back, simply open it somewhere else:


What is the difference between bpy.types.IntProperty and bpy.props.IntProperty?

bpy.types.IntProperty is a type, used for the property descriptions in the RNA system for any int property. E.g. you get

>>> type(bpy.data.scenes['Scene'].bl_rna.properties['frame_start'])
<class 'bpy.types.IntProperty'>

Note that i did not actually use bpy.data.scenes['Scene'].frame_start. That would actually evaluate the property and return a standard python int value, not the property definition.

bpy.props.IntProperty on the other hand is a function which creates such a property definition (a constructor).

Technically it's slightly more complicated because in order to create the property as part of a class the function returns a temporary tuple of another function and the arguments you passed. This is then used by a metaclass to create the actual IntProperty and put it inside the class definition.

>>> bpy.props.IntProperty(name="Hello")
(<built-in function IntProperty>, {'name': 'Hello'})


The key to the default behavior is in how you setup the first two keyframes.

Let's say that in the first keyframe you have x/y/z scale at 1.000

Then in the second keyframe you have x/y/z scale at 2.000

Then naturally your curves geometrically follow the same rate of change.
Blender somehow decides to lock this on you though, and when you try to edit one axis in the Graph editor the other two follow.

If this is not desired you can always make a slight change in the 3D view's  >> Properties Region >> Transform >> Then x/y/z scale. If you don't see this, with your mouse cursor over the 3D view hit N to toggle.

If you have a differing starting scenario (your axis values aren't all the same), you can still achieve similar behavior by using the Normalize toggle within the Graph Editor.

This will visually group the graph curves together for you to edit them as one curve.

This however will fix your offsets from one axis channel to the other, and may not be the desired effect depending on what you are trying to accomplish.

To solve that you can always use your 2D cursor options to control where to base action from.


In my example I marked all the red edges as "seams", then selected the cross only and pressed U - "project from view", then selected all the circle, selected one face as "active" (deselect then re-select one face) and pressed U "follow active quad". Moved and scaled the UV islands as I wanted, because the textures are automatically tiled outside their UV space.

For the second part of the question, a common workflow is to set the size of the texture scaling the UV outside the boundaries, then when satisfied with the result, create a new UV map optimized for export and bake all texures in a new image with the new UV map, so you can optimize your texture space.

After you've arranged your UV map, create a new one (properties window, vertex tab, plus button in the UVMaps panel (I called it Target UV), select all and press U project from view. Create a material with an emission shader controlled by the floor image with the first UV, create a second image node contgrolled by the Target UV, load a blank image of the desired dimension, have it selected in the node editor (even if it's not connected to anything), switch to Cycles Render and press Bake button with emission option. This will create a new image texture with a complete UV Mapping inside the boundaries.

Plus, enable the "Node wrangler" add-on in the preferences, so that you can select an image node in the node editor and press Ctrl T to quickly create the UV and mapping nodes.


Problem with weight painting strong pencil

It Can solve by adding corrective smooth modifier to your mesh but if you are creating for unity game then it will not work in unity. And i am also having same problem if you get the answer the please reply to me because i have the same problem.good luck


How can I put particle fur of Blender to Maya export animation (abc)?

Particle systems are application specific, and you won't be able to get the hair particles from Blender into Maya without making them meshes which you can do by hitting convert for the particle system modifier.


Open this url
https://www.youtube.com/watch?v=zu6zbf7tdoU
and go to 11:27 and see how he animated the sphere( this is really usefull i think in your simulation ;).


Disable the clamp overlap option. Clamp overlap prevents the bevelled edges from overlapping each other (typically an indication that you don't want to exceed that bevel width).

If you're dealing with bad artifacts after exceeding the clamp overlap limit, this is most likely due to bevelling of a very acute angle. Try using the weight or vertex group limit methods to only bevel other edges in that case.


How to configure blender so that it uses only 50% of total CPU when rendering?

While it's often more efficient to leave this to the Operating System, to answer your question specifically with a method that works, look under the Performance Panel in the Render Settings. It should be set to use the max amount of CPU threads by default, click Fixed and set it to half of however many threads your CPU has. It might look a bit different for BI and Cycles but the Threads part is what you want.

Obviously, you need a CPU with multiple cores for this to work. If you are on a single core machine, altering the value under Fixed will have no effect and your machine will also not use more threads that the value in Auto-detect.


How do I add high detail to smooth surface?

I'm familiar with two approaches that support 3D printed output: Subdivision with a height map or sculpting with dynamic topology.

With a height map, you'd need to subdivide the appropriate faces then apply a map you've prepared to define the raised areas on those faces. This might be attractive if you prefer working with bitmaps, but it introduces some inefficiency because you need to subdivide a lot to get certain details just right. Here's some information on using height maps in Blender: http://johnflower.org/tutorial/make-mountains-blender-height-maps

Sculpting with dynamic topology might be more efficient in this case because it adds vertices only where they're needed. Here's a video that introduces sculpting with dynamic topology (he talks about and demonstrates why dynamic topology is important for the first four minutes and then he gets into it): https://www.youtube.com/watch?v=opsKPCCFbr4

Of course you could also hybridize between these options: start with the height map at some moderate level of subdivision, apply it, then switch to sculpting with dynamic topology to add detail.


Your light source is too big. I can't see what you are using, but if you are looking for unrealistic hard shadows (usually caused by artificial lighting), you need to get a smaller light source. If you are using an area lamp, get the size of it down and turn the strength up. You could also use a point lamp instead. A plane using an emission shader? Make it bigger. If you are looking for natural lighting, this is pretty accurate. Some more rendering samples will reveal the true shape of the shadow.


Use Blender's bpy in projects outside Blender?

The easy way is to use blender. You can start it with cli options to run in the background (without gui) and to run a python script.

blender --background --python myscript.py

You can also start rendering from the cli without a script.

blender -b mymodel.blend --render-frame 1

or render an animation

blender -b mymodel.blend --frame-start 1 --frame-end 100 --render-anim

For something more interactive you can use blenders built-in python console

blender -b --python-console

The other option to get access to bpy without a normal blender install means you will need to compile your own copy of blender as a pymodule.


Why didn't installing Blender 2.82 delete 2.80?

It varies with the OS and the method of installation (archive, repository, installer...).

It's totally fine to have two (or many more) different versions installed, that shouldn't cause any issue. Of course, feel free to manually uninstall the version you don't need anymore.


Channel the gradient into a MixRGB node where you mix the normal map color with a neutral blue color (and by neutral, i mean R=0.5, G=0.5, B=1.0, like the default input of a Normal Map node). You can of course use this to blend between the two normal maps too. To blend between normal maps correctly though, you should use Split XYZ nodes, add R/G values and multiply B values between the maps, and then do Combine XYZ again.


I will walk you through some steps in removing and adding faces with the letter E.
Modeling Resources

Selection Mode
Loop Select
Creating Faces
Deletion Modes

Go into edit mode. Let's first delete all non manifold geometry. Deselect all with A, A. Press ⎈ Ctrl⇧ Shift⎇ AltM to select non manifold geometry. Press X and choose vertices to delete the unnecessary vertices.
Go into face selection mode. ⎈ Ctrl ↹ TabF.
Select the large n-gon which causes the strange face. The select dot show its center. Delete it.
Select the other problematic n-gons. Because some important vertices (marked red) are connected to only the face, deleting the face would be wrong, because these vertices would be deleted as well. Just delete the face with X > Only Faces.
We want to connect the following vertices with an edge, but they're already overlapped by another edge and face.
Hence, delete the faces and the overlapping edges first.
Now create the remaining face. Select multiple vertices, which you want to connect with a face with ⇧ Shift + Rightclick. Then press F to make an edge / a face.
To select the last edge loop, ⎇ Alt + rightclick on it.


Where is the Blender ID add-on preference pane?

You need to activate another addon called Blender ID authentication. You put your credentials in the Blender ID addon and automatically the Blender Cloud addon will login


material groups are linked with another, how can I unlink them from another?

Click that number next to the group name:


Inserting extra vertices / triangles to give the model more geometry

First, I have to select the faces in question.
To do that, select the face selection.

Select all your faces by using Shift.

Then, click the "Edge" menu, then click "Subdivide" to subdivide all selected faces.


render albedo (color passe without shadow) blender 2.8

The diffuse color render pass is not available in Eevee. Switch to Cycles and you should see the following options.


How to make a 5-point perspective camera view?

You may achieve it using Fisheye Equisolid type of the Panoramic camera (with some manual vertices tweaking).

Add a camera and position it verticaly as pictured below. Add a plane and place it in front of it. Add a background image (display axis type: Camera), decrease its opacity and push the Front button.

Set the render resolution so it is the same as image's resolution.

Enter the camera view (Ctrl+Num 0) and rotate it along the Z axis to fit the plane to the reference. Extrude the plane until you you build the rough representation of the object from the picture.

Select the extruded object in Object Mode and give it a material (Emission e.g.). Also give it a Wireframe Modifier with some thickness.

In Cycles go to Camera Data header--> Lens panel and set the camera type to Panoramic (Fisheye Equisolid). Experiment with Lens and Field of View values. In this case I found Lens=14 and FoV=180 optimal.

Divide the 3d view into two windows. Set the Solid viewport shading mode for the first and Rendered for the second one.

Snap the cursor to the origin point of the plane. Grab the camera and translate it along the Z axis. Next rotate it along the local Y axis (press R, then double tap Y) to fit the image as precisely as you can.

Controling two views at the same time you can now easily make the subdivisions to the mesh and model the details.

To make the model exactly fit the reference's perspective you may tweak some vertices.

Here's the comparision between original and tweaked perspectives.


Why won't it let me save my rendered image?

I know a answer, but it may not work.

Set the file output destination and image format as you would normally do.
Edit both starting frame and ending frame of your image to the frame of which you want to render (ex.: I want the frame 260 to be rendered as an image, I put the starting frame and ending frame to 260). You can edit it in the render menu somewhere or in the timeline
Click on the RENDER ANIMATION and not the RENDER IMAGE. Because when you make the file output an image file and put the animation render, you get a image of each frame, thus setting the frame start and end will make it render only that frame. I'm not sure if it will work for you, and it may not apply transparency.


Snap cursor - wrong positioning with three vertices

It's stated pretty clearly in the Blender manual, but if someone omits this source it'll be here:

  The Cursor to Selected option is also affected by the current Pivot Point. For example:

  With the Bounding Box Center pivot point active, the Cursor to Selected option will snap the 3D cursor to the center of the bounding
  box surrounding the objects’ origins.
  When the Median Point pivot point is selected, Cursor to Selected will snap the 3D cursor to the median of the object origins.


You appear to have a per-renderlayer sample override limit set in Properties > Render layers > Layer:

To avoid this, either set the sample override to 0 in the appropriate renderlayers, or tell blender to ignore per-renderlayer sample overrides in Properties > Render settings > Sampling:

Note that you have Square Samples enabled. This means that blender will use the number of samples you specified2. The total number of samples is displayed below:

(TBH I don't really see the point of this feature..)

Also 500 bounces are almost never needed. Higher numbers of bounces give diminishing returns, and I doubt there will be much visual difference between 6 bounces and 100 bounces in a fairly diffuse scene such as yours.


Why isn't the texture in rendered view transparent but the material view is

You're using the cycles render so you have to open up the "Node Editor" window and add in what is called a "Transparent BSDF" and a "Mix Shader".

Simply connect the transparent bsdf to the mix shader and then
also connect the "diffuse bsdf" (which should already be there) to the same mix shader.
Connect the mix shader to the "Material Output" (already there).
and finally connect the alpha channel of the image texture node (already there) into the Fac of the mix shader.

and thats it, super easy. In the event you're using principled bsdf node instead of diffuse bsdf then its the same steps but with the principled node instead of the diffuse node.

More thorough answer here - https://www.youtube.com/watch?v=AdrFMEgNgF4 starting at about 9:40


It looks like your lighting is all around your character causing little to no shadow. Position most of your Light sources on the left side to achieve a bigger shadow.

This is not related to the question, but please avoid thanking people on this site for the convenience of other readers(I know from experience and I apologize if that came off harsh).


The center colored dot snaps to the nearest vertex and also appears on the other side of the model if you have mirroring turned on, as Yohello said. As far as I can tell, the outer circle shows the size of the brush, and the inner circle represents the strength / falloff of the brush, and increases in size as you increase the brush strength.

If you want to disable the cursor entirely, you can uncheck the "cursor" box on the right panel. If you do this, There will only be the normal mouse icon to show the cursor position until you click the mouse / press down the tablet pen to begin sculpting, at which point there will be no cursor.

Or, you could go to the cursor color settings and change the cursor alpha to 0, and a simple crosshair will be shown at all times instead of the dot and circles. Hope this helps!


Animation keyframes visible only in NLA editor

You have "pushed down" the action and created a strip. Select the strip and press the Tab key to tweak it. As the manual says:

  The contents of Action strips can be edited, but you must be in Tweak Mode to do so. The keyframes of the action can then be edited in the Dope Sheet.

EDIT Also see this question: Can action strip converted back to keyframes?


Exact Measurements - or resize to specific dimension

First point can't currently be snapped from the start.
It is a known limitation that is currently being looked at, it is part of a broader limitation that includes among other things not being able to set a base point for moving before transforming
Current recommended workaround is to eyeball the first point, precisely snap the second one, then return to the first one and move it while using snapping.

Edit
As of commit Gizmo Library: New Snap Gizmo from 27 May 2020, there is now a new generic special type of gizmo whose purpose among other things is providing snapping before use for various tools and operators in Blender, like base point snapping for transforms such as move or rotate, or snapping the first measure point of a ruler without having to backtrack


In the text font panel choose [none] as the fill type.

Notice the bevel value.

Combine two text objects for fill and outline.


Can't find backface culling setting in version 2.78

Press N key while in 3D View port (hover mouse there) and you will find Shading tab close to the bottom of this panel, which will show on the right side of the view port.

Edit:

Honestly I didn't ever paid attention that both of them panels are called 'Properties'.

The one you are looking for is here (from your screenshot):


To confirm the drawn line you have to press Enter.


Bone properties Tab does not get updated

I had the same problem in 2.9. Realized I had accidentally hit W and switched to the circle select tool which made it so I could highlight new bones but the properties tab stayed on the originally selected bone.  Switched back to box select and then I could select as normal. Hope that helps


Location change of child as gaming mode activated

Without seeing your blend file we can only guess. The most likely candidate is a non-unit scale. Select the objects, press CTRL+A and choose "Scale". This applies the object-level scale factor to the mesh itself, and resets the object-level scale to (1, 1, 1).


How do you make a cube with another cube inside it?

Try putting one cube inside the other, and use a Material like this on your outer cube:

Transparency can be a bit of a pain in eevee sometimes, so I opted for this form of shader graph to give you more control. You can change both the BaseColor as well as the Glossy tint separately (to get that slimy look), as well as change the IOR of the Fresnel if you need the slime to seem thicker/thinner. Also because of the way EEVEE handles transparency, the inner cube cannot be transparent as well (unless you are using a single material - the graph for which is substantially more complicated). Because of this, it doesn't matter quite as much what material you give it (I used a copy of the same one for time savings sake - I just disconnected the Transparent and associated Mix Shader).
Lastly, I threw in a Noise Texture as a Displacement to make the outside more "slimy" and bumpy looking as well. Also, pay attention to the Blend Mode highlighted on the right (switching away from opaque is necessary for transparency in EEVEE)


Grease pencil darker and thicker before lifting stylus

Ok I've found the answer: It only happens on layers with a sub 1 opacity. I hope this helps anyone with the same issue.


I am not sure if this is a bug, though it likely could be, as I had recently discussed with user "Mr Zak". The idea is to save the file, even though "Freestyle" is checked in the Render tab, then reopen the file. You may notice "Freestyle", in the Render tab, is now unchecked. ...Strange, huh? Check Freestyle again, then render it. Confused? So am I. However, this is the current working solution, and while Mr Zak pointed out he was using 2.78a, I am currently using 2.78c, at the time of this post.

Edit 6 days 55 minutes later:
I feel like an idiot, but I needed a minute in Blender's Discord to find out the fatal mistake: ...Pressing the wrong render button.
...You read me correctly, I was pressing the wrong render button, this entire time!

This is the button I have been using to render, this entire time. As the locals in Blender's Discord have informed me, a detail I have been overlooking for too long, much less to begin with, this renders OpenGL. That means you will be given a render of exactly what you see in the viewport, completely different from when you look in rendered view.

The buttons circles in this picture here, are the buttons you should be using for final renders, as opposed to OpenGL giving simply previews. That means that the button circles in the top-left section and the button circles on the right-hand side act as final render buttons, the equivalent of pressing F12 on your connected keyboard. Meanwhile, pressing the button underlined in this picture, and pressing the button depicted in the previous picture, will render only what you see in your viewport. If you want to see Freestyle lines, as I have been seeking, you want to use F12 render.

In case anyone is wondering, I have been asked if I had messed with the keybinds. I am not sure if this has anything relevant to do with it, but no, I did not mess with the keybinds. I have simply been blindly using the OpenGL render instead of F12's render, believing to have achieved the same results. I hope this proves educational and informational to anyone else who would ever make the same mistake I have made.


How does rotation and scale affect a point lamp?

It doesn't - rotation and scale have no effect on a point light.

A point light emits light uniformly in all directions, so rotating it does nothing.  Note that if you change the lamp to any other type (Sun, Spot, Hemi, or Area) rotation will affect the direction of the light.

Scale also has no effect on the output of the lamp.  This can be demonstrated by trying to apply the scale of the lamp wth Ctrl+A, which will throw an error: Objects have no data to transform.

Note that if you change the lamp to an Area lamp, scale will affect the size of the lamp.  Scaling a Hemi lamp to very small values has a strange result, it seems to take much longer to render and produce drastically more noise on the first few samples, but not really change the actual lighting pattern.


I Can't Create a Face from Several Circles

This is something that cannot be done in one press of a button or a click of a mouse. You will have to go through and manually create the faces you are wanting. To get triangulated faces, try making them first with quads and then use a Triangulated modifier. Or, if this does not suit you, you can do it manually. If you think about why this is happening for a bit, you should be able to understand why you are getting these results.


It looks like if you parent the knees pole targets to the toes it doesn't help to bend the right way. If you parent them to the feet controllers it seems to works:


Add a particle system to a UV Sphere object set to emitter. Make sure the number of faces in each direction of your sphere matches the desired amount of ellipsoid loops you want in the final setup.

Under Source set to Faces, turn off Random Order and Even Distribution and set Particles per Face to $1$.

Under the Render panel pick your ellipsoid and turn on Object Rotation.
Manually adjust the rotation of the original ellipsoid object to match your desired rotation.
If you want a "volumetric" setup with several layers of ellipsoids inside the volume, onion skin your UV Sphere with several concentric layers by duplicating and scaling down the mesh.


How to completely delete an object through python?

You are looking for the remove function.
import bpy
objs = bpy.data.objects
objs.remove(objs["Cube"], do_unlink=True)

The code above deletes an object named "Cube." The first parameter of the remove function is the object to remove, the second is a boolean about first unlinking the object (you want it set to True.)


Positioning a movie clip over still images using green screen

Do this in the compositor.

Positioning the greenscreen element can be done with a Distort>Transform node, moving the Values for X and Y will give you control of Horizontal and Vertical.


Animating a shape key that has been hooked to a driver

Custom properties on face bone.

Would leave the drivers as, is and animate the custom property that drives the jaw.  In this case its the "jaw_down" prop on the "face" pose bone.  Can see this from  the driver variables in your screen shot, just below your red circle.

Select the face bone in pose mode and the custom properties are shown on bone properties panel (as in image below) or as stated in your q, in the 3d view properties panel N


You've set the viewport shading to material (the drop down right to edit mode) it seems that there is no light in this direction either add another light source or change to a different mode.


Boolean difference modifier does not remove a part

Apperently the following approach is also working. Thanks to Jerrynos answer I tried another approach.

Instead of taking the boolean modifier onto the car, I took the joined Cylinders and filled in the settings for the modifier as following:


How to get updated vertex coordinates as object moves

Reading the mesh provides you with vertex data relative to the object the mesh belongs to = coordinates in Object Space.

As long as you do not deform the mesh this data will remain unchanged.

According to your question you want to get the data in Scene Space. This means it will change when you move or turn the object or one of it's parents.

Positional vectors

You can convert positional vectors from object space to scene space by multiplying them with the object transformation matrix:

positionInSceneSpace = owner.worldTransform * vertex.XYZ

Normal vector

The normal Vector is not a positional vector. It's purpose is to represent a direction rather than a position. Therefore you consider rotation transformation only:

normalInSceneSpace = owner.worldOrientation * vertex.normal


The image renders, but the image editor with the rendered image does not show in the interface

found the solution!

I had to update the preferences and change 'Render in' from 'keep user interface' to 'image editor' See pic.


That looks to me like the normals are inside-out.  The first thing I'd try is to select the face then ALT-N.  But then I'm a beginner, so after that, I'd be lost.


can't find update callback for CollectionProperty

On the active index.

_Clicking on an item updates the index and calls splash which calls bpy.ops.wm.show_panel(...) to display the newly active item. Hovering over the "Hello World" throws up a panel popover which uses context pointer set in the draw_item method.

I'm looking for a way to display a popup window when user click on one
of the items in the lists.

The list UI changes the property set for active index when another index is chosen.
An update method on the index int property will be fired when list index changes.
Test with question code, draw method tacked onto Properties > Scene panel.
A panel is displayed by operator, and by popover.  In hindsight the UI in popover may be best seen but disabled
import bpy
from bpy.types import Operator, PropertyGroup, UIList
from bpy.props import IntProperty, EnumProperty, CollectionProperty, PointerProperty

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"
    #bl_options = {'INSTANCED'}

    def draw(self, context):
        layout = self.layout
        smsl = context.scene.SMSL
        user = getattr(
                context,
                "active_smms_user",
                smsl.collection[smsl.active_user_index]
                )
        col = layout.column()

        col.label(text=f" {user.name}", icon='WORLD_DATA')
        col.prop(user, "val")
        col.prop(user, "type")

class SCENE_OT_source_populate(Operator):
    bl_idname = "scene.source_populate"
    bl_label = "Populate source"

    def execute(self,context):
        context.scene.SMSL.collection.clear()
        # wtf (lol)>?
        AssetList = ["Foo, foo", "Bar, bar"]
        for Asset in AssetList:
            item = context.scene.SMSL.collection.add()
            Path = Asset.split(",")
            item.name = Path[1]
            item.description = Asset
        return {'FINISHED'}

class SMSAsset(PropertyGroup):
    type : EnumProperty(
        items=(
            ('A', "Option A", ""),
            ('B', "Option B", ""),
        )
    )
    val : IntProperty()

def splash(self, context):
    # AFAICT context override does not get to panel
    bpy.ops.wm.call_panel(
            {"active_smms_user" : self.collection[self.active_user_index]},
            'INVOKE_DEFAULT',
            name="OBJECT_PT_hello",
            )
    return None

class SMSList(PropertyGroup):
    collection : CollectionProperty(
        name = "SMSA",
        type = SMSAsset)
    active_user_index : IntProperty(update=splash)

class SMS_UL_List(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        layout.context_pointer_set("active_smms_user", item,)
        if self.layout_type in {'DEFAULT', 'COMPACT'}:
            layout.prop(item, "name", text="", emboss=False)
            layout.prop(item, "val", text="")
            layout.prop(item, "type", text="")
            if hasattr(bpy.types, "OBJECT_PT_hello"):

                layout.popover("OBJECT_PT_hello")
        elif self.layout_type in {'GRID'}:
            layout.alignment = 'CENTER'
            layout.label(text="", icon_value=icon)
def draw(self, context):
    layout = self.layout
    smsl = context.scene.SMSL
    layout.label(text="Test")
    layout.operator("scene.source_populate")
    layout.template_list(
            "SMS_UL_List", "",
             smsl, "collection", smsl, "active_user_index")

classes = (
        SMSAsset,
        SMS_UL_List,
        SMSList,
        HelloWorldPanel,
        SCENE_OT_source_populate,
        )

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

    bpy.types.Scene.SMSL = PointerProperty(type= SMSList)
    bpy.types.SCENE_PT_scene.append(draw)

if __name__ == "__main__":
    register()


The difference is: smooth attribute value of the edges with orange border is False, that of the ones with black is True. I guess, the new edges added by Triangulate modifier are smooth. So when recreating a mesh vertex by vertex, one needs to copy the edge.smooth attribute along with the vertex coordinates.


How do I get the Glare node to output transparent instead of Black background

Use Alpha Over to composite the two images:

To have transparency enable "Use Alpha"

NOTE that if you try to display the image on the render viewer using Color+Alpha (RGBA) you won't see the correct results. To view the glow information you should use Color only (RGB)

The glow information is there, you just can't see it,

The viewer is broken and cannot represent associated alpha correctly. Pixels that are emissive and transparent at the same time will not show (for example when rendering fire).

If you composite an image (or a solid color) behind it you'll see the correct results though.

If you need to export the image with transparency use EXR, do not use PNGs, then just bring the EXR sequence and composite using alpha over.


I have seen something similar when I have forgotten to UVMap an object to which I intend to apply an image texture.


Where are the keying set's keyframes in the dope sheet?

Oh, never mind. I was in Action Editor mode. That mode does not include shape keys and shape keys can't be included together in an action. There is an exclusive Shape Keys Editor mode with its own (special?) action or even Dope Sheet which you can see the shape keys.


Import image to plane not exported in GLTF

Unfortunately the glTF exporter does not recognize the setup that "Import Images as Planes" uses for a "Shadeless" material, which looks like

However if you delete the group node, it can recognize that graph as "Shadeless" and should be able to export it.


Camera coordinate appears to be left handed

As hinted at by cegaton, you set the x-dimension of the scale to a negative value for one of the cameras. Open the properties region with N and set the scale back to positive 1 if you like.


My "Info Header" was replaced when I went into Node Editing Mode. How do I get the default bar back?

Info   is a window like any other and can be selected in any window via the drop down/pop up on the left top or bottom of the window. Blue circular icon Info.
Or hover mouse over that list and press keyboard letter i

Is that what you meant?


Rotating empty deforms my mesh (Peter France's tutorial)

I was also facing the same issue.
You can use the "Locked Track" constraint in the Spiderman body + Rig. And add a target as Spiderman body. It worked for me. Do let me know if this works in your case.


How to create an exact non uniform bevel

Those triangles at the end of your mesh are going to make it very difficult to bevel.

Instead I'd add a circle and extrude it to avoid creating tris in the first place:

Add circle (ShiftA > Add > Mesh > Circle).
Extrude upwards (E) and scale (S) to create the basic shape.
Extrude each end circle without moving the vertices (EEsc), then scale (S).
Select the inner end circles and press W > Bridge Edge loops.
Bevel (CtrlB)

You can change the profile of the bevel in the Redo panel after beveling:


How can I use the Blender compositor to blur multiple objects in a scene?

Instead of using multiple identical Blur nodes and combining the result you should combine the outputs from the ID Mask nodes and use that as te input to a single Blur. You can easily combine them using Math nodes set to Maximum, chaining one to the other until you have combined all ID masks and finally into the single Blur. Since there is only one Blur this should also be considerably more efficient to render.

To allow the blurring of each object index to be controlled individually you can add some additional maths nodes to multiply each by a variable value (shown in Cyan) as follows :

This can produce the following result :

You can keyframe the Value inputs to vary the blur for each ID - with 0.0 for no blur, up to 1.0 for full blur.


How to reflect\catch light but be invisible on render?

I couldn't manage to make this "light catcher" using nodes but as a workaround or just alternate method you can use Baking. For this answer I'm using Blender 2.80 Beta and Cycles but the workflow is the same as in 2.79b.

Scene setup for baking

Background needs to be black.
Light should be fully white - you can change color of it after bake.
Object may be simple Diffuse - needs to be UV Unwrapped.

Baking

Bake Type - Diffuse with Influence Direct.

You should get a map like this:

Using it

Now you can use baked map as a mask to combine Transparent shader with another of your likeness. Color Ramp is for fine tuning mask strength.


Object in the back, visible in the front

The Problem is that the x-ray was checked

when the x-ray is disabled the object in back can't be seen like in the photo and when it is enabled it goes front off everything.

For example the back cube (orange) isn't visible clearly because x-ray isn't checked

But in this photo it is checked look :

this checkbox is used in many things like making/creating/assinging bones without it we could not see the bones:

This Checkbox Can be found here : (Properties panel --> Object --> Display)


Gradient texture not showing up in render in Eevee

None of this really explains the difference between Viewport and Render, but here are a couple of things to try?
Hard to tell from your render, but you may be getting your gradient OK, just along the wrong axis? Given a full 3D vector, Linear Gradient seems to select X, for mapping. If your mountains are up in Z, you might want to isolate that value:

..if you wanted your gradient bottom to top.
You're using Generated coordinates, which measure 0->1 along the each side of your object's bounding box. The origin is at min(X,Y,Z) of that box. (If you rotate the texture without moving it first, that will be the center of rotation.) So there's another possibility...
Check that box by checking 'Bounds' in the object's Object Properties tab > Viewport Display panel. If you have some extraneous geometry, and the box is much bigger than the bit of the object you're interested in, you may be at  one end of your gradient?


This is happening because text object, being a bezier curve of sorts, is filled with triangulated faces on  the tops. You text object then seems to be curved backwards causing the triangulation to become visible.

It appears to be  actually a problem of lack of subdivisions and bad topology.
This is one of the reasons quad based topology is always preferred, but in the case of bezier curves this is not possible without destructively converting it to mesh.

Make a copy of your text object if you haven't already (keep the original somewhere) and then try converting it to a mesh. Then either add a Subdivide modifier (this alone won't totally fix the problem) or manually remove all the top triangulated faces and try to fill them with a more uniform quad based grid where possible, or ideally do  both, so the curve modifier has more geometry to operate on.

Only then on top of the fixed mesh apply your curve deformation.


You need enter to pose mode to do that

select the armeture and pres ctrl+tab
or you can select and change object mode to pose mode when armeture selected


Why can't I scale/rotate/translate properly and what is that orange line?

Snapping mode is turned on, and your scaling operation is snapping to nearby geometry, giving you unexpected results.
Simply turn off snapping mode (hit Shift+Tab) and your issue should be resolved.


How do I make the light go behind the Earth?

The lens flare you refer to as "Light" should according to normal physics never be blocked by an obstacle. If you still want this effect tho, you should try to mask out the earth in your post processing. To do this, create a second layer in which you render your earth completely white with your background completely black. Do this, with either the emission shader or an background shader. You also need to render a layer without lens flare. Then you can use your mask and to overlay the flare less render above the one with flare using an alpha over node.


Is there a way to avoid overlapping or intersection for randomly distributed objects with Animation Nodes?

I don't have a solution that is not computationally expensive. But if performance is not a big factor in your node tree, here is method you can use.

Append Condition

You create an empty vector list, at each iteration, you construct a KD tree from this list, generate a a random vector, check if there are any vectors in the vicinity of radius equal to circles diameter, if there are, don't append it, otherwise, append the random vector:

Blend File:


What is the exact purpose of object scale?

Here is how it really is under Blender's hood:

An object is just a holder for a mesh, curve, lamp, camera, etc..
Multiple objects can share the same mesh (same data).
Object adds (among many) transform properties to the data contained within - like location, rotation and scale.

So if you scale a cube into a block, the mesh is still a cube but the object is a block. You can have the same cube mesh linked in many objects, each being a different block.

When you apply the scale (or any other transform) you make the mesh actually reflect the transformation. This change would project into all other objects with this linked mesh.

Some Blender operations only operate on mesh and don't take object transformations into consideration - like UV unwrap for example. That's why scale needs to be applied.

The confusion is imho Blender's fault. In edit mode it should actually display what the mesh really looks like (like it does with modifiers), or these operations should be written properly to account for object transforms - so what you see is what you get - a thing every gui and program should follow..


Set GPU using python script no longer working

Changes have been made in the Blender API.
You can retrieve 'compute_device_type' and 'devices' via the cycles addon preferences

prefs = bpy.context.user_preferences.addons['cycles'].preferences
print(prefs.compute_device_type)

for d in prefs.devices:
    print(d.name)