Appending the rigged object to different scenes doesn't automatically include/run the rig_ui.py script. The script can then be located in the original .blend file's /Text folder.

You can also keep a local copy of the script by generating a new Rigify rig in an empty scene and saving it. Just be sure to change the rig_id in the script to match the rig you wish to generate a UI for before you run it... like this:


Why can't i render smoke with my AMD graphic card

Not currently supported, I'm afraid.

You can see the list of supported features over at the Blender manual

As of Blender 2.78a, October 2016:

Feature                    CPU                 CUDA (NVIDIA GPU)   OpenCL (AMD GPU)

Basic Shading              ✔                   ✔                   ✔

Transparent Shadows        ✔                   ✔                   ✗

Motion Blur                ✔                   ✔                   ✔

Hair                       ✔                   ✔                   ✔

Volume                     ✔                   ✔                   ✗

**Smoke / Fire             ✔                   ✔                   ✗

Subsurface Scattering      ✔                   ✔                   ✗

Open Shading Language      ✔                   ✗                   ✗

CMJ sampling               ✔                   ✔                   ✗

Branched Path integrator   ✔                   ✔                   ✗

Displacement/Subdivision   ✔ (experimental)    ✔ (experimental)    ✔ (experimental)


How to make just one color of my texture bright (like as metallic)?

You can use color to determine your mentalist mask:

I use a distance vector math node, which tell blender to find the color in that image, with RGB (1.0, 1.0 ,0.0)(which is yellow).

And then continue with a compare node to see if color is yellow with some ambiguity.

(the second value is compared value, set to 0.0 means same color. the third one is tolerance, change it yourself to see the effect)

Using this mask, you can do a lot of thing with it, you can change the metallic value using this mask and invert it to make it look like mirror in roughness setting.

More complicated setting:


Python: Check if object exists in Blender 2.8

Best practice is iterating through Scene.objects collection (all objects of the current scene):
import bpy

for o in bpy.context.scene.objects:
    if o.name == "Cube":
        print ("Cube found in scene")

Even easier to read is using python's get() on the actual collection to get the reference:
cube = bpy.context.scene.objects.get("Cube")
if cube:
    print ("Cube found in scene")

Recommend use the python console to figure out:
>>> C.scene.objects.get("Cube")
bpy.data.objects['Cube']

Alternatively you can also iterate through Data.objects (all objects of the actual file using):
>>> D.objects.get("Cube")
bpy.data.objects['Cube']

For the sake of completeness, demo on how to get all objects starting with "Cube":
import bpy

objs = []
for o in bpy.data.objects:
    if o.name.startswith("Cube"):
        objs.append(o)

if objs:
    print ("Cube found {} time(s) in file".format(len(objs)))

Related: Python: Selecting object by name in 2.8


As usual there is may ways to achieve this. One approach would be to use the Link Object Data function, which basically allows you to swap out the Mesh Data (i.e. what you have in Edit Mode) with a selected mesh. The shortcut is Ctrl + L. See it in action here:

Whichever method you choose, you might get issues in regards to scale. If your cubes have different scale values in the Transform Panel, the spheres will have those different scales as well. If you had applied the scale before, all final spheres will be equally sized.

Even more important is the scale of the sphere. If that is not applied, but the cubes are, the resulting spheres will have a different size than the 'original'. The reason for both behaviors is this: The final representation of an object is a combination of Object and Object Data. The object holds the location, rotation and scale values. The data holds the mesh vertex coordinates, face info, etc. But the mesh data stores this info always as if the scale was 1. The output for the user is however displayed as the combination of both at all times. So before the sphere gets displayed on the screen, Blender applies the transformation matrix onto each vertex, and shows you the final result.

Final note: With this method, all objects will share the same mesh data. If you manipulate one, all of them will update when you exit Edit Mode.


Well, unless you're sure you've done so, I'd check to make sure that the scale and rotation were applied to the object. In object mode, select the object, and press CTRL-Akey.


You say you want copies but you say you don't want arrays, which is a bit contradictory... Let say that you want the object to be duplicated all around the curve.

First make sure the origin of your circle is at its center (Origin To Geometry) and put your object at the same point.

If you want the object to be duplicated around the curve, you need to give it a Curve modifier. The Array can only duplicate on an axis. The Fit Curve option alone won't allow the object to turn around the curve, it will just allow your array to have the same length as the curve. Also, if you need the duplication to happen you need to enable either Constant or Relative Offset. Let's choose Relative. Also enable Merge and First Last.

Now give your object a Curve modifier so that it follow the curve shape. If the object is not well oriented, rotate it 180° on the right axis.

Now you can see that it's not necessarily the result you were expected (?), there's no merging between the copies because of its initial shape (it's already bent), and the object overlaps itself because the Fit Curve produces enough copies to be able fit the curve and in that case the curve is a little bit too small to make the first and last copies merge, you can scale it up if you want first and last to stick.

So you probably need to change your object or choose another method.

For the same operation you could also use a Simple Deform modifier (Bend mode) instead of a Curve modifier.

And if you didn't want copies, don't use the Array modifier, just the Curve or the Simple Deform.


Is there an option to look at the exact front of a face?

To align the view to a face you need to select the face in Edit mode and press shift7. To align the camera to the view press ctrlalt0. If you want your camera to be orthographic, select it, go in the Properties editor > Data > Lens and choose Orthographic instead of Perspective.


How to save a movie/animation to OpenEXR?

You just render the movie to an image sequence.

OpenEXR is intended for still images, I'm not sure of the benefit of storing an entire animation in a single OpenEXR file, as far as I know, no other applications use OpenEXR this way either (feel free to correct me, but I didn't hear of anyone doing this).


Calculating the covariance matrix of an object's points - Rotation of an object

I suggest using the addon Math vis to display vectors, in addition to testing your code in the console.

Paste the following in the console to see that the vertices are placed at the right locations. I don't know enough maths, but maybe the problem is in the numpy operations...

import bpy
import numpy

#from mathutils import Vector

from numpy import linalg as LA
vertices = bpy.context.active_object.data.vertices
matrix_world = bpy.context.active_object.matrix_world
verticesArray = numpy.zeros((3,len(vertices)))
counter = 0
for index, v in enumerate(vertices):
    globals()["vertex"+str(index)] = matrix_world * v.co ##vector to global variable
    world_coord = matrix_world * v.co
    verticesArray[0,counter]= world_coord[0]
    verticesArray[1,counter] = world_coord[1]
    verticesArray[2,counter] = world_coord[2]
    counter = counter + 1

convMat = numpy.cov(verticesArray)
eigenvalues, eigenvectors = LA.eig(convMat)
for index, vec in enumerate(eigenvectors):
    print(index, vec)
    globals()["vector"+str(index)] = Vector((vec[0], vec[1], vec[2]))

del world_coord
del matrix_world
print(eigenvectors)


You can run this script to replace all duplicated materials in your file. Just paste it into the Text editor and click the Run Script button.

It searches all objects, and then compares the first part of the material name (the part before the .001 suffix) with any materials named the same, and if a match is found replaces the object material with the matched material.

The idea would be to do a Full Scene copy and then run this script to remove all material duplicates.

import bpy
mats = bpy.data.materials

for obj in bpy.data.objects:
    for slt in obj.material_slots:
        part = slt.name.rpartition('.')
        if part[2].isnumeric() and part[0] in mats:
            slt.material = mats.get(part[0])

Before running the script, make sure your materials are named properly. Any material that ends with .001, .002 or 003, will be replaced by its "original version".

Credit for script goes to user liero on  this BlenderArtist.org page

Ctrl + Shift + O finishes the job by reloading the file.


Disable objects/collections in 2.8 doesn’t work

Disable/hide is context-dependent

There is nothing to fix and it's also not a bug. The functions depend on what you use them on and what is in your scene collection.

If you hover over a collection, you can

Alt-Click to hide the collection from all viewports.
Shift-Click to hide the collection
Ctrl-Click to isolate the collection (hide all other collections).

If you hover over an object, you can

Alt-Click to disable only this object from all viewports.
Ctrl-Click to isolate only this object (hide all other objects from all collections, but not the collections themselves).

Obviously, you need more than one collection to isolate it, because there are no other collections to hide. Same goes for objects - no other objects in the scene, nothing to hide.


Sculpting - only vertical Strokes seem to work

Enable Dynamic Topology Horizontal probably isn't working because you do not have enough vertices to work around.


Does the Blender Game Engine Support Texture Nodes?

If you are using GLSL shading mode, and the Nodes option is checked in the render tab of the properties window (by default it is); then the BGE supports material nodes. However procedural textures, and generated texture coordinates are not supported.

To be able to use your procedural material, you will have to bake it, then use the resulting image in a new material in the game.


You could do this by creating a black and white mask and using it as the factor of a mix shader to mix the water with the rough water.

First add an image texture node.
Click new to add a black image.
Then plug this into the material output.
Then go to the texture paint workspace.
Paint the areas you want rough in white.
Save this black and white image.
Go back to the shading workspace.
Add a mix shader
Plug you black and white image into the fac input
Plug you water material into the top shader input of the mix shader node
Add another Principled BDSF shader and increase its roughness
Plug this into the bottom shader input of the mix shader node

This is the result you'll get:

Of course, from here you can make the rough shader more interesting with colour/bump/etc but this is the basic setup!


You just have to know how to access input variables and how to output variables in the script. Otherwise it's just common python operations. Mainly you will have to use for loops.
Let's see how to emulate a loop with a python script, for example to output a list of the location of each object in a given collection.
Here in my collection I have 3 objects.

And here the simple setup to output their locations using a loop node :

Now, to do the same with a script node. Add your script node, add a text block with the + icon. Add a new input of type "Collection", I renamed it "col". Add a new output of type "Vector list", I renamed it "positions".

In a text editor, find your new script textblock and open it. Write a few lines to do the job.
positions = []

for obj in col.objects:
    positions.append(obj.location)

Or with list comprehension
positions = [obj.location for obj in col.objects]

Note that col hasn't been defined in this text block : AN gives it context since you told the script node that a variable named col will be available, as a collection type.
Similarly, you have to define the variable positions and at the end of the execution of the script, AN will automatically gather its value.
/!\ col and positionsare case sensitive. They have to match the variable names you wrote in the script node.
Add an invoke node set to your script, execute the AN tree and voilà :


How to join booleaned objects without leaving seams?

If you join two objects into one, then boolean modifier between them is meaningless, since only one left. Actually, they can be merged after applying the modifier. That's for your question.

Furthermore, I think a better idea for such simple shape is to model it with a few steps, with some basic tools that Blender offers, which is also easy to do, and gets better result:


Unfortunately, not all drivers are created equal - especially when it comes to driving values in a material.... some drivers simply don't trigger their updates to propagate correctly on change of value while others do (a bug, I presume).
I've found that the most reliable source for drivers seems to be the object Custom Properties and you can use that to simultaneously drive both the material Mapping value and the shape key value - rather than using the Key to drive the material. This way you only need to adjust the Custom Property and both values (the material and the shape key) will change - rather than changing the Shape Key.
First, create the custom property by selecting Object in the Properties side panel, scrolling down to Custom Properties and clicking 'Add'.

Edit the property as desired (since you want it to drive a shape key you probably want it to have Min/Max set to the default 0.0 and 1.0) and give it a suitable name (I've left mine as 'prop').
Go to the Material and add the driver as normal (right-click the Location in the Mapping node and select Add Single Driver). Do the same with the Shape Key value.
Go to the Graph editor and select Drivers. Locate your drivers and set the type to Averaged Value, the default variable ('var') to Single Property, set it to your object and enter the Path as '["prop"]' (where 'prop' is the name of the property you created). Click Update Dependencies for good measure. Do this for both of your drivers.

Now you should find that changing the Custom Property on the object should update both values. Custom Properties can be keyframed just like anything else.
One advantage of using Custom Properties is that you can put all of your 'controls' in one place - rather than having to hunt out the different panels for, say, Shape Keys, etc.
NOTE: If the driver only needs to use a value from a property or channel - rather than perform a calculation - then using Averaged Value means that you don't need to enable 'Scripting' in the Blender User Preferences. However, if you do need to use Scripted Values then you'll need to enable scripting by enabling Auto Execution in the File tab of the User Preferences.


Keyframed Objects Clipping Through Each Other

I'd suggest you to Check the Collision Margin and then increase the margin for the tunnel in the rigid body animation tab.That might solve it.


It depends.

By manually creating the smoke you have as much control as you like, but it will take more time (at least more of your time. Smoke sims can take awhile)

For more realistic results, animations, or less manual work, the simulator sounds like the way to go.

I'd recommend trying to simulate it first, then moving to alternate methods if you are not satisfied.


Incorrect Context error for bpy.ops.view3d.camera_to_view() only if looking through active camera

The operator does not poll in 'CAMERA' view.

Conveniently when using an operator that relies on another, can use the others poll method as our own.

The button will now be disabled when the operator does not poll, and avoid the error above.  The operator is also disabled in the Align View menu

Button disabled in Camera Perspective View

This is perhaps a good thing since you get in this state by assigning camera to view, and will have to re-orientate to make the op viable again.

Otherwise set the 3d viewport to another mode or tweak view matrix slightly to move from camera view.

import bpy

class OBJECT_OT_make_test_camera(bpy.types.Operator):
    """Make a test camera"""
    bl_idname = "object.make_test_camera"
    bl_label = "Make Test Camera"

    @classmethod
    def poll(cls, context):
        return bpy.ops.view3d.camera_to_view.poll()

    def execute(self, context):
        cameraName = "SimpleRenderCam"
        cam = bpy.data.cameras.new(cameraName)
        cam.lens = 90
        cameraObject = bpy.data.objects.new(cameraName, cam)
        context.scene.collection.objects.link(cameraObject)
        context.scene.camera = cameraObject
        print(context.area.type)
        bpy.ops.view3d.camera_to_view()
        return{'FINISHED'}

class VIEW_3D_PT_test_camera(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Test Camera"
    bl_label = "Create camera to test area"
    # bl_context = "object"

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

        row = layout.row(align=True)
        row.label(text="View type is:")
        row.label(text=f"{context.area.type}")

        row = layout.row()
        row.operator('object.make_test_camera')

def register():
    bpy.utils.register_class(VIEW_3D_PT_test_camera)
    bpy.utils.register_class(OBJECT_OT_make_test_camera)

def unregister():
    bpy.utils.unregister_class(VIEW_3D_PT_test_camera)
    bpy.utils.unregister_class(OBJECT_OT_make_test_camera)

if __name__ == "__main__":
    register()

To make the operator return in a state to run again, set the view to perspective before return in operator execute.

        context.space_data.region_3d.view_perspective = 'PERSP'
        return{'FINISHED'}

To have your operator poll and run in camera view add an or clause .

return bpy.ops.view3d.camera_to_view.poll() or context.space_data.region_3d.view_perspective == 'CAMERA'

Since the view operator wont poll outside 3d view, this being false saves us the need to worry that the space is anything but a 3d space.

Will also have to set the view before calling operator to avoid the operator poll.


I think the youtube video you are referring to, in commenting another answer, was realized using an older version of blender. I tried an old 2.80 I had installed, and it shows the options you're missing (they're missing in my 2.82a, too):

Those options are gone in 2.81. This release log (related to python API usage of those options) points this out and cites a developer change in code_ https://wiki.blender.org/wiki/Reference/Release_Notes/2.81/Python_API#EEVEE

Anyway it is always possible to download any previous version as a zip package, and just extract them in a folder and run them launching the blender file. You find all released versions here: https://download.blender.org/release/


Is it possible to have more than one smoke simulation in the same scene?

It is possible.

You can create multiple working domains, but the whole process seems a bit awkward and only sometimes works, without any recognizable pattern.

One way I found that seems to consistently work as expected is to create your domains on separate layers.
If you need more than 20 domains, they sometimes work on the same layer, but I have not found what it is that makes/breaks them when they are on the same layer.
Most of the time it seems to work if the one domain that runs in real time is baked first, then the next domain that runs in real time, and the next, etc.

Create domains, on separate layers. Note that Separate domains can share the same Flow objects; however, they will not interact.

Here, each domain is on a separate layer, and each flow object is visible on all layers with a domain object.
Bake each one individually:

It seems that the selected domain is always displayed above the others. Here is the domain that covers all the inflow objects selected (top) and unselected (bottom) so it's more visible that the domains share the same inflow objects:


Apply a modifier as a shapekey into existing shapekey or merge shapekeys?

In the shape keys dropdown menu there is a function named new shape from mix: set two or more shape keys to the desired value and then choose this function: at 0 you'll have the undeformed mesh, at 1 the combined effect of the different shape keys.


Ok, your problem is simple.

The reason your vertex groups do not take is, that you applied them all on the main hull of the ship. If your ship pieces are still separate objects, the vertex groups for the bone influences need to be on THAT object.

For your ship, you won't need to create them by hand. Parenting to Bones will do it for you.

Clear up your parenting structure, so one object does not move the other. Just hit Alt + P to clear Parents with "Clear and keep Transformation"

You need to apply the transformations to the objects, that you made in Object Mode. Your Location Values should be zeroed out, the scales should be at one.

Select Bone in Pose Mode

Click on Geometry you want the Bone to be the Parent of

Shift-Select the Armature again

Ctrl + P to Parent the Geometry to the Selected Bone

Selecting one bone of the armature (in Pose Mode), like for example the one that controls the landing gear, you select the mesh you want to attach to it to, Shift Select the Armature again and then hit Ctrl + P and Parent to Bone.

I have done this for you in the blend file. I would also advise you to roll your bones over, so that all hatches close by rotating the x-axis, just to give an example. That will allow you to lock the other transform channels. Otherwise, you will go nuts animating.

I have also set your rotation to ZYX Euler. Since the hatches only rotate around a single axis, that will make everything easier, transforming, reading and changing the animation curves, locking the right channels. Try it, you will see it right away.


How to make object invisible for secondary camera?

If you are doing render to texture you can simply by doing:

obj.visible = True
camera_tex.refresh(True)
obj.visible = False
camera2_tex.refresh(False)

I am not sure if you can do it if you are using viewports.
How are you setting up your two cameras?


Looking for a more gentle Brightness/Contrast algorithm than the native node

The default brightness contrast node is a broken piece of anachronistic mess.
“Brightness” is exposure typically.
“Contrast” is stretching values apart or pulling them together around some image maker chosen pivot point.
So exposure is a pure multiply. Change to the CDL node and use slope.
For contrast, you can use the power of the CDL.
For a pivoted contrast, it would be correct to use a value node, and divide your RGB by the value. The value is your pivot, so for example, start with 0.18 for middle grey. Then apply the power via the CDL. Then on the other side of the node, multiply the output RGB by the pivot value. Think of the pivot as the point that values will push away from (greater “contrast”) or pull toward (“less contrast”) depending on the value of the power.
Photoshop is a display referred assumption, and formulas don’t work under the same assumptions in a radiometric-like RGB domain.


How to move objects to new Render Layer?

The way this works is indeed quite confusing.

TL;DR: M moves objects between layers, which are independent of the many layer visibility settings.

Long answer:

There are 20 layers and several independent places where they can be visible or hidden:

Scene layer visibility

These are the layers which are visible in all 3D views with Lock Camera and Layers enabled in 3D view > Header:

Changing the visible layers in any 3D view will change the scene layer visibility and thereby change the layer visibility of any other 3D views with Lock Camera and Layers enabled.

Note that despite being in the renderlayers panel, this setting is global per scene and not unique between renderlayers.

Viewport layer visibility

These are the layers visible in that particular 3D view. If Lock Camera and Layers is disabled, this can be set independently of the scene layer visibility.

Render layers

Unlike layers, of which there are always 20, you can have an arbitrary number of renderlayers.

A Renderlayer contains a layer visibility selection which specifies which layers are visible in that particular renderlayer:

Note that only objects in the active 3D view's visible layers will be rendered. In case of multiple 3D views, the active 3D view is the one under the mouse cursor.

This means that the behavior of the final render can depend on mouse position.

This also means that if all your 3D views have Lock Camera and Layers disabled, the Scene layer visibility doesn't do anything.

This wasn't always the case. In 2.69 scene layer visibility was used instead of viewport layer visibility, which IMO makes a lot more sense..


You can easily fix this, no need to move the camera to compensate for the orientation of the mesh. You can rotate the mesh by adjusting the rotation in the properties tab, you can also use the mesh tab. You can also do this for many method for multiple objects. Just select the object that need to be fixed and rotate them via r x 90

You can also fix this when you import the mesh. I am assuming you are importing as .obj but this should also work for others. When you import the mesh set the Foawrd axis to -Y and the Up axis to Z.


How to create a texture made out of multiple color layers

This is using a boolean difference modifier on the sphere. The texture nodes in Blender are 3D which means the sphere gradient texture contains information about the inside of the object the material is applied to.


Ok, so this is the solution. I had to switch off Sequencer in the Post Processing tab. I had added an image-sequence to the sequencer at some point, which made the Sequencer rendering take over over normal 3D scene rendering. That is why the RenderLayers' node preview disappeared and consequently the backdrop, as there was nothing to display (from the last node in the hierarchy, I checked other nodes and they did display bits and pieces as should be). I somehow connected this behaviour with the Viewer Border checkbox which I checked and I got confused, but it seems it had nothing to do with it. Now that I have the RenderLayers preview and the backdrop back again, I can't replicate the behaviour of Viewer Borders affecting my backdrop.


how do you render falling snow (particles) in cycles render?

Particles are just points in space, by default have no geometry or anything for light to interact with so they do not render.  There are several ways to render particles, but for your case I would use Object particles.

First create the object you want to use for the snowflakes.  The level of detail depends on how close and in focus the snowflakes will be, but for most applications a simple circle with 8 vertices should work fine.

Next go to the Render rollout of the particle system and select Object and select the snowflake object to use for the particles.


The cycles script node connects OSL scripts into cycles, pretty much like an addon for the render engine. While you can use an OSL script to define the final appearance of the material, you can also use them as small steps that add custom noise or pattern inputs or custom math functions.

There is a self published e-book by Michel Anders called Open Shading Language for Blender: A practical primer. You will want some programming knowledge before reading it at it doesn't teach the core language.

You will also find that OSL is very similar to RenderMan scripts. Which is not surprising as it was created by Larry Gritz who worked on RenderMan at Pixar for several years before starting OSL. You will find that many RenderMan scripts are easily converted to OSL and any tutorials should also easily translate.

I have a github repository that has over 100 OSL scripts, including preview renders and node tree snapshots used to create them. Some of these scripts come from various websites including Michel Anders blog and the Blender Artists forum while others are conversions of older RenderMan scripts and a couple are OSL versions of quite complex node setups.

Some samples of scripts that define the entire material and connect to the output node -

These two samples use the same hexagonal pattern script within different node trees -


How to upgrade custom 2.79 .py addons to 2.80?

The updated add-on for 2.8 could like the following code:

bl_info = {
'name': 'Move origin to selected',
'author': '',
'version': (0, 0, 1),
'blender': (2, 8, 0),
'location': '3D view > F3 > Origin Move to Selected',
'description': 'In edit mode, sets object origin to the median of selected verts/edges/faces',
'wiki_url': '',
'tracker_url': '',
'category': '3D View'
}

import bpy

class OBJECT_OT_origin_to_selected(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.origin_to_selected"
    bl_label = "Origin Move To Selected"
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        obj = context.view_layer.objects.active
        if context.area.type == 'VIEW_3D' and obj is not None and obj.mode == 'EDIT':
            return True
        else:
            return False

    def execute(self, context):
        saved_location = bpy.context.scene.cursor.location.copy()
        bpy.ops.view3d.snap_cursor_to_selected()

        bpy.ops.object.mode_set(mode = 'OBJECT')
        bpy.ops.object.origin_set(type='ORIGIN_CURSOR')
        bpy.context.scene.cursor.location = saved_location

        bpy.ops.object.mode_set(mode = 'EDIT')
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

API changes include:

How the active object is accessed
How to get the cursor location
Mandatory naming convention for operators


try this (I am on Blender 2.81a):

import bpy

# kill everything
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False, confirm=False)

# create curve
bpy.ops.curve.primitive_nurbs_path_add(radius=1, enter_editmode=False)
obj = bpy.context.object

# De-select all points
for pn in obj.data.splines[0].points:
    pn.select = False

# Select the last point
pn = obj.data.splines[0].points
end_point_idx = (len(obj.data.splines[0].points) - 1)
pn[end_point_idx].select = True

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

bpy.ops.curve.extrude_move(CURVE_OT_extrude={"mode":'TRANSLATION'},
TRANSFORM_OT_translate={"value":(0, 2, 0)})

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

(Make sure you are in object mode when you run it)


How to make keyframes in Blender 2.78a using Python?

Finally I found a solution which works great for me.
I added some commits so others with the same starter problems can use it.

Remember: there must be an named object defined in originName, otherwise the script will crash!

import bpy, math, random

d           = 4           # size of area where the balls spawn (STRG+Q to see what I mean)
anz         = 100           # number of balls
frameAnz    = 100           # number of generated frames
spawnScale = [0.015 , 0.09] # range for random scale during spawnprocess of a new ball
originName = "motherBall"   # name of the origin-object

#prepare scene, keyframes and keyframe-pointer:
scene = bpy.context.scene
scene.frame_start = 0
scene.frame_end   = frameAnz
bpy.ops.screen.frame_jump(end=False)

# first remove all objects from previous script-runs:
# (better than "a", then "x" and then ENTER before restarting this script!)
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

# "pick" the original ball from layer 1:
oBall = bpy.data.objects[originName]

# loop for creating (anz)x balls:
for anz in range (0,anz):

    # duplicate the original ball and
    # name the new ball like "zz_Ball-00001"
    # zz_ is for standing below in the outliner
    newBall = oBall.copy()
    newBallName = str(anz).zfill(5)
    newBallName = "zz_Ball-" + newBallName
    newBall.name = newBallName

    # now generate a random position for the new ball:
    xpos = -1 * (d/2) + random.randint(0,(d-1))
    xpos += random.random()
    ypos = -1 * (d/2) + random.randint(0,(d-1))
    ypos += random.random()
    zpos =  random.randint(0,(d-1))
    zpos += random.random()
    # and place the new ball at this:
    newBall.location = (xpos, ypos, zpos)

    # scaling the new ball to get different sizes of balls:
    sz = random.uniform(spawnScale[0] , spawnScale[1])
    newBall.scale = (sz,sz,sz)

    #finally deselect the ball and link it into the scene:
    newBall.select = False
    scene.objects.link(newBall)

# now lets create frame by frame:
for actFrame in range(1,frameAnz + 1):

    bpy.context.scene.frame_set(actFrame)
    for ob in scene.objects:

        if (ob.name != originName):
            ploc = ob.location
            xpos = ploc[0]
            ypos = ploc[1]
            zpos = ploc[2]

            zpos = zpos + ( random.random() / 8)
            ob.location = (xpos, ypos, zpos)
            ob.keyframe_insert(data_path="location", index=-1)

# job done: now reset the framekeypointer to 0
bpy.ops.screen.frame_jump(end=False)


Unwrapping is a skill in and of itself. There really is no right or wrong. You have to judge that yourself.

I made a fairly extensive tutorial on it, but here's a quick overview:

Figure out where to flow of the mesh and plan where to place the seams. Wherever you place a seam, Blender will "cut" the 3D model and try to flatten it. You want to make sure first and foremost that it will be able to split apart into even planes, otherwise you will get major warping issues.
Open up a UV editor and start placing the seams on the mesh (CtrlE > Mark Seam).
UV unwrap the model (U > Unwrap) and make sure it unwrapped the way you expected.
Tweak the seams until you're happy with the result.

After you unwrap a few meshes you'll get the hang of it, and you'll be able to unwrap quickly and cleanly.


Python Scripting: (relative) Locations and Rotations of Objects under Empty


How to create wireframe fade off effect like this?

Various aspects of a Freestyle Line Style can be given modifiers, including the Alpha of the stroke.
The modifiers available to Alpha include Distance From Object. (In this example, the blue empty):

Which, with settings like this:

Can get a result like this:


Create an array of a rendered image with each pixels xyz position

You can use the "Position" output from the "Geometry" node to get the pixel world position, but the color will only contain values between 0 and 1 (units).
My solution would be to scale the values. For instance if you know for sure your objects will be constrained in a cube going from -20 to +20 in each axis, you could use this setup to "remap" the values between 0 and 1.
Each channel of the RGB value of each pixel will then represent their X, Y and Z real position. You would just have to remap like this : XYZ(real) = (RGB -0.5) * 20

Result with a double array of cubes

You can CTRL + Right Click to get the RGB values once rendered. Notice how only 2 values change when scrubbing along a face of a cube.


Can you paint multiple texture layers simultaneously?

I believe you are looking for a mix of Sculpt Mode and Texture Paint mode. They work similarly as ZBrush, allowing you to sculpt in high poly mode, export a normal map, and also paint the UV maps directly over the model. There is no need for extra plugins, Blender does that natively. Just click on "Object Mode" and try the other modes.

You might also try Sculptris, by Pixologic. It's freeware (gratis, but not libre), like a very bare-bones version of ZBrush.


Blender has a fairly complex system of storing its data using (RNA and DNA). It also stores a vast set of different types of data (colors, textures, assets, images, fonts, objects, modifiers, settings,...). I'd like to think of a blend file as a zip archive with a nested set of directories and files underneath it. But it isn't actually a zip.
What kind of data are you exactly looking for? Lets assume that you are looking for the shape of the objects inside of a blend file. then you could make a python scripts that goes through all objects of bpy.data.objects as ob for instance. You could then find the geometry the object is composed by using ob.data which usually will result in an entry from bpy.data.meshes.
You can than use this to dump its vertices: How to iterate through all vertices of an object that contains multiple meshes?


How to merge surfaces that lie in the same plane?

There is the Decimate Modifier, with it's Un-Subdivide option.
Very useful for undoing unwanted subdivisions.

Set the number of iterations as needed.
Use 2 iterations to undo 1 subdivision step.

To better see the end result, you can enable wireframe overlay in the 3D viewport.


Out of sync when I render whole the frames but it's OK when I render sub of it

Blender has an integrated feature for this very problem. Under your timeline, you have a sync too. If you set this to 'Frame Dropping', it will skip some frames during playback if your fps rate is too slow. This way it keeps the video in sync with real time.


I was modeling something, and when I tried to undo, it made the "skin", as you could call it disappear, and I can't see what I've already drawn

To view all the undoable steps, go to Edit > Undo History and you can select which step you want to revert to. Blender keeps track of a ton of actions such as selecting / unselecting objects, so that's most likely whats going on.

You can also increase/decrease the number of undo steps that Blender remembers in the User Preferences.


how to render animation in background on mac

ok, i baked the dynamics and then it works...but i think this is a bad solution, if i first have to bake it in blender and then i call the animation process in terminal....would be better if i could bake it in the terminal too...
but now i found this answers, which hopefully helps me a lot...
Baking smoke on headless machine


how do you show selected mesh in blender's outliner?

It is possible to filter the displayed objects in the Outliner by their state. Click on the filter icon and change the object state filter to Selected. The outliner should now only display the selected objects.

If the particular objects are deeply nested in collections and you don't want to step through the hierarchy, disable the Collection filter checkbox. This will display the objects without their collection hierarchy, just one after the other in the outliner.


Cloth simulations like those usually take a few frames to settle.

It is normal that the first few frames go weird on you: the simulation calculates how the mesh behaves with gravity, and how the pinning affects its shape, based on in its physical characteristics. If there are no more forces acting on it, the movement will eventually stop.

You can set the cache to start before your scene (like 200 frames) so that by the time the scene starts the curtain has already settled on it's resting postition.

Other way to have the same result, is just to make your scene start at a later frame, so that the movement is not part of the frames to be rendered.

And one more thing you can fix in the cache section: if your animation is 6000 frames, set the End value of the cache to that frame. Otherwise your simulation will stop at the default frame (which is 250).


You need to apply the subdivision surface modifier in order to actually get those extra vertices. As of now, you can only move and sculpt those 8 vertices.


Part of the geometry disappears when in edit mode

It looks to me like you have hidden the bars.  To hide something, select it and press H.  If you are in object mode this will hide the objects that are selected, in edit mode this will hide only the geometry that is selected.  You can also press Shift+H to hide everything but the selection.

To unhide everything, just hit Alt+H.


Select one of the object and click this button

Use the scene's active camera and layer in this view rather than local layer.

It has link in one scene into other scene

For more information please watch this video


Yes, there is.

You need to pack the external data.

It's simple!

Click file, in the info panel.
Select External data.
Press Pack All Into .blend.

Or you can simply check Automatically Pack Into .blend so that it will automatically save the external data (like images) into the blend file.

Note: this will make your blend file larger. You may not want to do this for every revision, otherwise your file sizes will quickly stack up, because each file will store the images.

About motion blur in network rendering, I don't think that feature is supported yet. However you can try the experimental feature set, and I think it may be enabled, just not "stable". I'm not sure whether they have it there or not though.

Final note.

To pack a single image, in the image editor select "image", "pack as PNG".


How can I use a mask modifier with a musgrave texture?

The short answer is: sort of

This setup will make the parts of your mesh transparent where the musgrave texture is black. If you want to see the backside, or other objects through it, replace the holdout by transparent.
However the edges of the mask won't look 3D, the ones in the clip seem to have some depth, this method won't allow that, but maybe it's enough to get started. With animation nodes you can assemble your own meshes, it won't be easy, but in my opinion that would be the proper way to go.


Within the BGE the (parent)-local coordinates can be read and set via KX_GameObject.localPosition.

When you want to read/modify the orientaion you can use KX_GameObject.localOrientation. Be aware it is a matrix.

If there is no parent, the local coordinates match the world coordinates.


How can I get a list shows which add-ons are enabled by user?

Blender's Python API allows to get the currently enabled add-ons, without any differentiation of what/who enabled them. Therefore it's not possible to distinguish between add-ons that have been enabled by default, by the user or by another add-on/script. You may however compare the currently active add-ons to the ones that are known to be enabled by default and only use those that are not it the default list.

Blender 2.79

The enabled add-ons can be access through the user preferences bpy.context.user_preferences.addons.

import bpy

for addon in bpy.context.user_preferences.addons:
    print(addon.module)

The add-ons that are enabled by default are:

io_scene_3ds
io_scene_fbx
io_anim_bvh
io_mesh_ply
io_scene_obj
io_scene_x3d
io_mesh_stl
io_mesh_uv_layout
io_curve_svg
cycles

Therefore a solution that excludes them could look like this:

import bpy

default_addons = {"io_scene_3ds",
                  "io_scene_fbx",
                  "io_anim_bvh",
                  "io_mesh_ply",
                  "io_scene_obj",
                  "io_scene_x3d",
                  "io_mesh_stl",
                  "io_mesh_uv_layout",
                  "io_curve_svg",
                  "cycles"}

for addon in bpy.context.user_preferences.addons:
    if addon.module not in default_addons:
        print(addon.module)

Blender 2.8x

The enabled add-ons can be access through the preferences  bpy.context.preferences.addons.

import bpy

for addon in bpy.context.preferences.addons:
    print(addon.module)

The add-ons that are enabled by default are:

io_anim_bvh
io_curve_svg
io_mesh_ply
io_mesh_stl
io_mesh_uv_layout
io_scene_fbx
io_scene_gltf2
io_scene_obj
io_scene_x3d
cycles

Therefore a solution that excludes them could look like this:

import bpy

default_addons = {"io_anim_bvh",
                  "io_curve_svg",
                  "io_mesh_ply",
                  "io_mesh_stl",
                  "io_mesh_uv_layout",
                  "io_scene_fbx",
                  "io_scene_gltf2",
                  "io_scene_obj",
                  "io_scene_x3d",
                  "cycles"}

for addon in bpy.context.preferences.addons:
    if addon.module not in default_addons:
        print(addon.module)


How to create Wind effect on circle logo

So as I said you can cut a grid with the Knife Project tool. Then to make it work properly, first create the pin group:

Choose Cloth > Cotton for example. Create a Force Field > Wind and a Force Field > Turbulence. Make the Wind rotate and vary its Strength value through time. Maybe also create a simple edge and give the circle object a Copy Scale constraint with the edge as Target, and change the height of the edge a bit so that the circle vary its height a bit as well, it will create more folds:


Fixed! I had to disconnect the Image texture in the shader editor. I really don't know why this caused a problem...


Computing a scalar from UV coordinates in Cycles nodes

You can get the UV coordinates from a Texture Coordinates or from an Attribute Node, separate the three components of the vector using a Separate RGB node, and use this to map colors to your BSDF.


It's not clear to me how this is related to pygame so I focus on this part of your question:

  I would only ask if it's possible with blender to have this result

Yes, you could create an action with two keyframes (start and end position of z coordinate of your cube).

At the right side you see the action "CubeAction" in the Dope Sheet (set to Action Editor)
At the bottom a Keyboard Sensor which is active when Space is pressed and an Action Controller which plays the animation stored in the action.

To dynamically create the text object one idea would be to copy it in the text-editor and use:

bpy.ops.text.to_3d_object(split_lines=True)

This function is probably not available while the game engine is running
For how to load a text into the editor see: How to programmatically load a python script in Text Editor and launch it

How to port this to pygame isn't on topic here.


How do I fix this Traceback error for Massive Material Nodes?

The script you are trying to use was written to work with blender 2.66 or earlier, in 2.67 the python api changed in regards to creating new nodes.

Where the script has shader = TreeNodes.nodes.new('BSDF_DIFFUSE') it should be changed to shader = TreeNodes.nodes.new('ShaderNodeBsdfDiffuse'). There will be other similar changes needed. A list of old and new node names can be found here. Chances are there are also other changes that will also need to be done to get the script working.

As the cycles material converter is still in the contrib addons, chances are that one still works. Try the tips I gave in your other question about that script before trying to update this older script.


After applying the scale, try going into edit mode, selecting all faces and pressing Ctrl+N to recalculate the normals.

If that doesn't help, it would be nice if you could upload a .blend file.


not sure if this will help but.. the way I do this, is by baking a Diffuse Color only, from the mask that I'm using as the factor in the mix shader with the transparency node.. thus having a mask image to use.
you can also you the emission shader with the emit bake.. probably a better choice.


How to extract render info from a .blend file without launching Blender?

There are 2 ways to do this, both of these scripts are distributed with Blender, but can be used outside of Blender, and involve reading the file using Python.

Using blend_render_info.py

Extract information from the header, Blender writes the: Scene name, start-frame, end-frame into the file header in a way that can be extracted without reading the entire file.

You can test this from within Blender, assuming you have a file loaded:

import blend_render_info

import bpy
filepath = bpy.data.filepath

data = blend_render_info.read_blend_rend_chunk(filepath)
for frame_start, frame_end, scene_name in data:
    print(frame_start, frame_end, scene_name)

The module blend_render_info.py comes with Blender (included under 2.77/scripts/modules/blend_render_info.py). And is a single-file Python module that can also be run directly, eg:

eg:

python 2.77/scripts/modules/blend_render_info.py /path/to/test.blend

Outputs for example:

1 250 Scene

Using blendfile.py

This is a single-file Python module which implements a full blend file reader/writer.
This means you can do access any information you like, however doing so is more involved, as well as being slower since its needs to read the blend file - not just the header (although it will still be much faster then loading Blender, then the file).

This is an example of a script that prints scene frame, name and unlike the previous example, the output path.

#!/usr/bin/env python3
"""
This takes a blend file argument and prints out some of its details, eg:

  blend_info.py /path/to/test.blend
"""
import blendfile
import sys

filepath = sys.argv[-1]
with blendfile.open_blend(filepath) as blend:
    scenes = [b for b in blend.blocks if b.code == b'SC']
    for scene in scenes:
        name =          scene[b'id', b'name'][2:].decode('utf-8')
        path =          scene[b'r', b'pic'].decode('utf-8')
        frame_start =   scene[b'r', b'sfra']
        frame_end =     scene[b'r', b'efra']

        print(frame_start, frame_end, repr(name), repr(path))

Example output:

1 250 'Scene' '//'

Note: if you want to extract other info, you can use the Python interactive prompt, and call block.keys() to see which members are available. All keys are bytes, not strings, so take care not to mix this up.
This API is currently not documented, but the script is not so huge, for now you have to read the code to see whats possible.


How do I switch the active camera during an animation?

To set a temporary camera, you can unlock the camera & layers to the scene (button on the right hand side of the layers).

When this button is not pressed, you can set the active camera (Select camera, Ctrl+Numpad0) 'only for the current view'.


There were no seams in the model the edges were marked as sharp so the only thing you have to do to clear those Ctrl+ E > Clear Sharp.


The default color for the world is a light gray. Think of it like a giant sphere that surrounds the scene that is emitting light.

To make the world black, change the color, or disconnect any nodes to the surface of the world, or bring the Strength to $0$


Text objects are messed up when using Offset

While this isn't a fault with blender's font parser I think I can offer some insight.
To give this context, this doesn't only happen with fonts, it happens with all 2D Curves that self intersect when offset too.

Font Weights
If you have a bit of respect for typography then you don't 'fatten' fonts. Fonts are designed with certain visual weights in mind, an indiscriminate offset messes with this delicate balance of geometry and empty space. As an example Helvetica has between 34 and 51 weights depending on flavour, each is 'fattened' by hand and tweaked in subtle ways.
No doubt you don't have to pay any attention to what is considered proper use of fonts, that's part of the fun. For the moment this is the way the Blender engine offsets 2D filled curves, without respect for potentially self-intersecting geometry. If you really want fatter letters but can't find the right weight in the font family then consider doing it in Inkscape/Illustrator, and importing as an SVG. SVG is imported as a 2D curve.
Other reasons a font may render poorly
Fonts or 'digital typefaces' vary in enormously in quality. A substantial amount of free fonts has defects that may not be immediately obvious in 2D graphics packages (they may have more elaborate font loading mechanisms).
With the font you suggest, the area in question is tricking blender into thinking it has to deal with an extra line segment, this line segment however doesn't connect to any other segments and also doesn't form a closed loop with itself.
In Inkscape if you pick this Embossed Font and make a text object, with just the uppercase L, and convert it to a path (Path > Object to Path) you will notice this stray line segment. It shouldn't be there, but it is. Inkscape ignored it, but includes the path anyway.

This is also exactly where blender throws its hands in the air.

I'm sure if you inspect the other fonts where this peculiar stuff happens, they too suffer from stray line segments, and maybe self intersections.
A fix
You can edit fonts inside Blender, and remove the usual suspects.
With the font in object mode, go to:
Object -> Convert To -> Curve from Mesh / Text, or AltC-> Curve from Mesh/text
Now you can deal with stray lines, (delete them) and still apply Extrude, etc.  Unfortunately this operation doesn't allow you to correct typos in the existing text object any more, because it has been converted to a Curve.


Do it just like blender guru. To do this see image:

To be more specific, Cycles is a unbiased ray tracing engine. That means that computer actually computes the rays of light in the scene. Because of this the specularity of a material is not controlled by a setting, but by the actual physical properties that create the effect. For this reason their is no specularity setting.

The reason why some render engines have a control for specularity is because they fake the effect.


Just as I said in the comments, it's happening because you you used two separate mesh (two cylinders) which's vertices were so close that you wont notice that there are two vertices. Solidify modifier does something similar to extruding and scaling inwards.
Its just an easy process. I will walk you through it-
First of all apply the object's scale with CTRL+A > scale (or else it will create uneven solidification).
Then go to Edit Mode and box select the vertices as shown and merge them with Alt+M > Merge at center.  (Just  M  in Blender 2.83 and above)

Notice how the gap gets filled...


Help! Bone Heat Weighting: failed to find solution for one or more bones

Thanks to  batFINGER! Im going to post the solution in photos, maybe helps someone who was a little lost like me :))
Select only the object and choose edit mode, there click in select, and then select all by trait. There select non manifold.
In the box that apears in the bottom, deselect Vertices
Still in edit mode go to mesh, select merge and click in By Distance

Now try parenting in object mode

And for me it worked :)


Transparent image plane doesn't show whole image

The second mix shader should be driven by the alpha channel instead of the color. As it stands, "bright" colors will be rendered opaque but the darker branches are transparent. This obviously depends on your image including a proper alpha channel.


Putting an image texture onto a selfmade object

Thre's no need for so much seams.
A very simple UV map is enough.

(Repair the mesh - more steps below) :)
Add just a few seams where needed
Use the UV editor to position the UV map
Set image texture to Clip - so it's not repeated across the model.

Using just one material is very limiting, but sometimes needed.
Use more materials if you want different color on your mesh.

Example of a proper UV unwrap

How to repair the mesh:

Apply object scale and rotation through Object > Apply > All transforms
Remove stray and connect unconnected vertices/faces/edges
Make the mesh manifold (watertight)
Correct face orientation through Mesh > Normals > Recalculate outside
Delete the old UV map entirely

Here is a repaired .blend for inspiration.
Yours might look a bit different, but that doesn't really matter :).


Unfortunately, what you are attempting to do isn't yet supported by the Blender Fluid Simulator. You can't have fluids with different properties/materials interact because the fluid properties and material are attributes of the domain rather than of the inflow objects.

As an alternative, you may choose to use Blender's SPH Fluid Simulator, which uses the particle system rather than the fluid sim.
Here's a previous answer to a question very similar to yours : Different materials for each fluid inflow?


Cyclic dependency errors - Rigging problems with stretching

So after inspecting the file the problem is driver on Y axis of mel1200_center_IK bone (the one in the middle of the mechanism).

The "cyclic dependency" is between this driver and both IK constraints (bone_brazo, bone_pivot) and the base (bone_control bone) of both IK bone chains.

I've put the "cyclic dependency" into quotation marks, because logically on bone level there is no cycle - the error is on Blender side and on how it evaluates dependencies and drivers. You hit a limitation that solves the new dependency graph.

Enable it and the rig will update correctly.

Your other option is to build the rig differently either with constaints or drivers, but not mixing them. You can substitute the driver with this to solve the issue:

I suggest to get rid of your other drivers as well (me1200_bone_pestillo) and solve them with constraints only.


Problem with bézier curve changing to mesh

When you spin 360°, start and end point do not get joined automatically. So what you have are two sets of vertices sitting pretty exactly on top of each other. That won't show with solid shading (without a subsurf), but as you see, with smooth shading, it does.

The left cylinder is clean and you can see the highlighted edges on both sides while the right cylinder shows problems by only having the right half of the edges selected.

The remedy is to select the doubled verts (or all of your mesh if there are no necessary doubles somewhere) and hit W4, remove doubles. All the verts that are closer than the tool's threshold will get merged into one.

On occasion it's also necessary to recalculate the normals by selecting everything and hitting CTRLN.


How to correct scale autocad file in Blender

In order to have correct lengths you need to define and convert units correctly. In any computer software package lengths are measured using floating point numbers that do not have any meaning on their own like for example 15.758, or 3, or 250.5. In one way or another a unit like a meter, a nanometer, a foot, a lightyear or anything else needs to be assigned to the numbers so for example 1 becomes 1 meter, 2 becomes 2 meters and so on. In different programs or even different contexts using the same software different units are used. They need to be converted correctly.

First of all you need to know what units are used in the files you have. Then you also need to choose what units you want to use in Blender:

When you know these two things - the units in your files and the units you are using in Blender - you will know if you need any conversion when importing.

For example: the interior designers I work with are used to working in millimeters, however I work in meters in Blender. I ask them to export the drawings in meters to DXF and they do so. I do not need to adjust anything and get the scale correctly when importing.

If they exported the drawings in millimeters I would need to set the unit scale to 0.001 when importing because a millimeter is 0.001 of a meter.
Same goes for feet - I would set the unit scale to 0.3048 if I chose to work in meters.

You could also scale the units. If it's feet that need to be converted to meters you would select the imported curves and hit s followed by 0.3048.


How to export model for use in Unity with correct UV map?

So as it turned out in comments, while in Blender I can make the UV map bigger than the texture to make texture smaller on the model like this:

in Unity it simply checks for the UV map inside the texture. As you can see half of the boat was outside the texture (it was accidentally sized it like that) half of the texture was wrong in Unity.


Animation Nodes - Can I make this a loop?

Animation Nodes loops have parameters that can be reassigned from within a loop. The option to do that is accessible in the Advanced Node Settings for the Loop Input node.

With reassignable parameters it's possible to keep both a queue of matrices that you want to transform, with each single transformation generating multiple additional queue entries that have to be queued, as well as a list of all matrices that have been calculated.

A first loop is created with three parameters:

A static list of matrices with the transformations, in this example a list of four matrices that scale an object by .5 and place it into the lower four corners of a cube
A queue with the matrices that have to be transformed in the current iteration. Once the iteration is finished, the queue will be overwritten with the transformed matrices as a new queue.
A list of all matrices. Once the transformed matrices are calculated for the current iteration we append them to the (initially empty) list of all matrices and reassign the parameter.

A second loop will do the transfromations for the queue items:

For each transformation matrix in the “transformations loop” we transform the whole list of queued matrices items by that transformation matrix. The Transform Matrix node is vectorized for multiple matrices but not for multiple transformations, so I chose Transformation to be the iterator and Queue Items to be a parameter and not the other way around, even though this approach would seem more intuitive to me. But in principle you can also add another loop and calculate, for each item in the queue, the list of transformed matrices.

Finally, the first loop is invoked like this:

As the first loop doesn't have a iterator in the Loop Input node, you can set the number of iterations in the Invoke Subprogram node.
The transformations are four matrices corresponding to the four bottom corners of a cube.
The queue is initialized with list containing a single standard matrix of location corresponding to the origin and a scale of one.
The initial list of all matrices is empty, so it doesn't need an input here. You could also feed in a list with the initial standard matrix above to also add the zeroth iteration to the output.

Blend file (using dev version of AN 2.1.2):

(It might be a good idea to disable automatic node execution when working with a larger number of iterations. Just as a word of caution.)


How to make holes in several plains at once

Final:

Simplest way with quad topology would be to cut holes in Subdivided Plane and add Subdivision Surface modifier.

Steps:

Create a Plane.
Go to Edit Mode and Subdivide it twice. First time with 10 cuts, second one with 1. You can go further if you need different hole placement.
Select faces where you want your holes and delete them.
Remove unnecessary faces to trim page as you want.
Select outer edge of the mesh and add to it Mean Crease > 1. This will ensure that corners stay sharp after Subdivision Surface modifier will be added.
Add Subdivision Surface modifier. I've set it to 2.

Final touches:

If you want smaller holes you can select Edge Loop around them in Edge Select mode, switch to Pivot Center > Individual Origins, then Extrude and Scale them down.


Landscape Cross Section of Real Locations

Create vertex group for top part
Unwrap object before using modifier
Assign material on sides
Add Displace Modifier and use this Group

In your case seems like Hieghmap texture does bnot overlap edge. Extend a bit texture size in texture properties or scale UVmap in UV editor.

Or you can change Mapping type ...

Clip

Extend

Repeat


how to get a list of all FCurves in a scene

F-Curves via Actions

You can use bpy.data.actions to get a list of all F-Curves in the scene, but actions are not associated with objects, scenes or nodes:

for i in bpy.data.actions:
    print (i.name)
    for fcu in i.fcurves:
        print (fcu)
        for keyframe in fcu.keyframe_points:
            x, y = keyframe.co
            print (x,y)

It's only possible to check if the actual object is associated with an action via animation_data in a reverse operation with Object.animation_data.action to get something like: bpy.data.actions['Action']. Another option is to check animation_data.action.name.

If you need to know which F-Curve is applied to objects or nodes in your scene, the only way is to use animation_data and iterate through all components like:

Object.animation_data - F-Curves of an Object
Scene.animation_data - F-Curves of the Scene
Material.animation_data - F-Curves of a Material
...

F-Curves of an Object

import bpy
import math

obj = bpy.context.active_object
keyframes = []

anim = obj.animation_data
if anim is not None and anim.action is not None:
    for fcu in anim.action.fcurves:
        print (fcu)
        for keyframe in fcu.keyframe_points:
            x, y = keyframe.co
            print (x,y)
            if x not in keyframes:
                keyframes.append((math.ceil(x)))

To get the F-Curves of all objects in the scene you can use bpy.data.objects and iterate through the objects in the scene like:

object_list = bpy.data.objects

for i in object_list:
    anim = i.animation_data
    if anim is not None and anim.action is not None:
        for fcu in anim.action.fcurves:
            print (fcu)

F-Curves of a Node Shader

obj = bpy.context.object

shader = obj.data.materials[0].node_tree
anim_data = shader.animation_data

for fcu in anim_data.action.fcurves:
    print (fcu)
    for keyframe in fcu.keyframe_points:
        x, y = keyframe.co
        print (x,y)


Create a plane that always fits the camera viewport

There is a plugin by tobbew to do exactly what you ask: create camera image plane

"it creates a plane and sets up some drivers so when the distance from the camera (-z) is changed the plane is automatically scaled to cover the screen and gives it a cycles material so i'll just have to load the texture"

Once the plugin is installed, all you do is select the camera and run the plugin (press the space bar and start typing camera):

And it creates a plane in front of the camera. If you move the camera the image plane will always follow it. If you move the plane away or closer to camera it will also rescale automatically.

here's the blenderartists.org thread for additional info.


How to keyframe Ocean Modifier Resolution?

As @Gorgious mentioned use the wave modifier. This example has the Speed and Height set as keyframes, but just experiment with all the settings as it depends on what exactly you want.


If you have problems with rune emission (making the whole blade glowing instead of the runes) - just make sure that the left gradient button in rune emission color ramp is black


How do I change the 3D View rotation mode? To be more like edit mode

Each of your object's origin points are at the center of the scene instead of the center of the object. In the pivot point mode you have selected (Median Point), objects will be transformed about the median pivot point of all the objects that are currently selected (in your case only one is selected).
To fix the pivot point and have rotation occur as you want it to, go to
Object > Transform > Origin to Geometry
Or one of the other options if you prefer it to be at the center of mass or 3d cursor.


How to edit second skin of mesh created using solidify

The deer in your tutorial was topologically a sphere with one hole in it, so only one rim between inside and outside had to be found, and ripped.

Your gun has more holes than that; if you cut one rim, there are more left connecting the inside and outside.

A possible method:

Before applying the modifier, while editing edges, in the Select Menu in the header, go for 'All by Trait' > 'Non Manifold'. This will select all the holes in your mesh before solidification.
Apply the Modifier without changing that selection
After applying the modifier, in Edit Mode, V rip the still selected (and duplicated) edges.

This will separate your object into 3. Inside, Outside, and Rim.

You will note that the modifier has thickened some areas which are already shells with thickness, (e.g. around the barrel) and so some of the  'inside' surfaces are outside some of the 'outside' surfaces. This is quite confusing, and unprintable. I guess you're going to remove those, and seal up the holes.


Can shapes with rounded corners be extruded with even thickness?

There is a way to use the inset tool like an extrude for a flat shape.

Select the loop of vertices you want to extrude inwards.
Fill in the area with a face F
Inset the selected area I
Delete the face

You do get small size variations in the new edge lengths around the curve compared to the straight sides but the amount is very small.

This only works gong inwards so you will want to scale your shape up to the larger size and then inset to the smaller size. With a bit of effort you can create a bounding box around your shape, fill it in with faces and press O while insetting to change to outset to enlarge your shape. Note in this example that the corners overlap and need cleaning.


Okay! so I figured it out, and now I can start making my game. The "log" property, which I always thought was somehow logging the letters I entered, really doesn't. (misleading name :P)

I read it's description, it said:

  Property that indicates whether to log keystrokes as a string.

and I was like "OH! hey! I got this!"

so it turns out that if you make the log property a boolean, the text only gets typed if it's true.


Blender rigify character animation to Unity looks so weird

You have probably "scaled" some of the bones. This happens when you use the squash/stretch features of the Rigify rig. Scaling often cannot be correctly baked and exported to other applications.
One solution is to remove squash/stretch from your animation. Just make sure that the bones are never over-extended during the motion. For legs/arms there is also a Rigify slider that turns stretching off. But the spine for example is "stretchy" by default and you have to be careful not to stretch or squash it.
So my suggestion is to remove all stretching from your animations and test again. If things look good in Unity, then it was indeed the stretching that caused the problem.
If you want squash/stretch there are a few ways to achieve it. I explain why the problem happens in the first place and show a few solutions in this video. (1 hour long but it may be worth it if you're new to working with Game engines)
https://www.youtube.com/watch?v=1Xm1h700uhk


Why does the frame range setting behave differently when using multiple scenes in the Video Sequence Editor?

In your first scene you have an animation that plays from frame 50 to 80. Frame 50 is the first frame this scene outputs.

When you use that scene in a scene strip in the VSE, this strip plays that output of the scene, the first frame that the VSE scene strip receives is frame 50 from the first scene. This first frame of the scene strip will show up where the scene strip starts, which may be frame 24 of the new scene.

This would give the same result as if you rendered the first scene to disk then added the file on disk to the VSE.

The frame range in scene two has no connection to the original scene frame range.


Thanks for your reply,
but it looks like the FBX exporter has exported the asset wrong.
I have an project in Unity where my fbx of original asset is broken, i was trying to export the asset object as fbx but if i import it in blender it shows like upper. BTW the Armature list shown as here, any idea how i can change this?:

Oh after fbx export i used fbx converter from autodesk to convert them to binary fbx file.


How to copy settings from previous using command line

Look at the tooltips, Mas Aditia, and you'll see that it's wm.copy_prev_settings. For remote deployment, it might also be necessary to quit_blender right after executing the script. So the simplest script would be:

import bpy

bpy.ops.wm.copy_prev_settings()
bpy.ops.wm.quit_blender()

Save it as to a script file with any name, and execute Blender while running the script:

blender -P <script_name>.py

As the operator copies the config folder right away, nothing else needs to be done.


To understand what’s going wrong in your example, it is important to understand the difference between a displacement map and a normal map:

A displacement map stores a positional displacement for each point on the base mesh.

A normal map stores a perturbation of the angle of the surface at each point on the base mesh.

This is to say that while a displacement map stores actual position information, a normal map only stores a rate of change in position at each location.
There are pros and cons to each of these representations, but one of the downsides of normal maps is that they cannot handle excessively sharp/sudden displacements, such as geometry like this:

At each point along the border of the ampersand, the height of the surface instantaneously increases. This also means that the point on the surface where the change in position is non-zero is infinitesimally small. Indeed, if we look at the cube from straight ahead (which is the 2D projection used by a normal map on the surface of the cube), the border of the ampersand is completely obscured, and the normal map is utterly uniform:

To fix this, we need to ensure the displacement relative to the base surface is continuous. That way, the rate of change will be finite and spread across an area of finite size. The easiest way to do this is to add a bevel:

Now the view from straight ahead is no longer completely uniform:

And indeed, if we bake this normal map to a plain cube, we do in fact get a more acceptable result.


You loop through area till you find the UV/Image editor and set the active image to you image

for area in bpy.context.screen.areas :
    if area.type == 'IMAGE_EDITOR' :
            area.spaces.active.image = my_img


Both the dopesheet and the graph editor show a red line when the data path for the fcurve cannot be found. While most times the fcurve stays connected to the correct item, there can be times when this doesn't happen, most often when the item is renamed or deleted in an external file from the one containing the animation. You will also notice that the shown data path is the complete raw path when it is broken, rather than the more user friendly abbreviation.

If an item has been renamed, we can correct the data path in the fcurves properties panel in the graph editor. If the item was deleted then you can just delete each fcurve, you can do that by selecting it in the list and pressing X or ⌦ Delete.

For a large number of items, it may be easier to make a script that will correct the data paths.


Is there a difference in image quality by rendering on different computers?

No. The only thing that will change is the rendering time, everything else should be exactly the same.


code for "separate and select it in object mode"

A solution is to store your selected object name first and then deselect them after you separate the mesh.
Something like this:
org_obj_list = {obj.name for obj in context.selected_objects}
# This is a Set comprehension in Python,
# which create a set of name from the context.selected_objects
# context.selected_objects will be a Iterable collection of some object

bpy.ops.mesh.separate(type = 'SELECTED')
# This will call the separate operator in your code directly
# the type can be a enum string in ['SELECTED', 'LOOSE', 'MATERIAL']

bpy.ops.object.editmode_toggle()
# Switch back to object mode from edit mode

# Those separated object will also be selected now
# We then check if selected object is the one we saved before, then deselect it.
for obj in context.selected_objects:
    if obj and obj.name in org_obj_list:
        # Deselect selected object
        obj.select_set(False)
    else:
        # Set the new created object to active
        context.view_layer.objects.active = obj

Not sure if this is the best practice, but it do work.

A custom operator:
import bpy

class SeparateSelectionActive(bpy.types.Operator):
    """Separate object by selection and set it as active object."""
    bl_idname = "mesh.select_separate_active"
    bl_label = "Separate Selection Active"

    # An enum for prompt dialog
    separate_method: bpy.props.EnumProperty(
        items = {
            ('SELECTED', 'Selected', "Selected mesh"),
            ('MATERIAL', 'Material', "Based on material"),
            ('LOOSE', 'Loose', "Based on loose part")
        },
        name = "Separate Method",
        description = "Choose a method to separate mesh",
        default = 'SELECTED'
    )

    @classmethod
    def poll(cls, context):
        return context.object is not None and context.mode == 'EDIT_MESH'

    def invoke(self, context, event):
        # Prompt to ask a method to separate
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        org_obj_list = {o.name for o in context.selected_objects}

        # Separate using selected method
        bpy.ops.mesh.separate(type = self.separate_method)
        bpy.ops.object.editmode_toggle()
        for obj in context.selected_objects:
            if obj and obj.name in org_obj_list:
                # Deselect everything selected before
                obj.select_set(False)
            else:
                # Set the new created object to active
                context.view_layer.objects.active = obj
                self.report({'INFO'},f"Set active object to: {obj.name}")
        return {'FINISHED'}

# A menu inject into View3D > Edit > Mesh tab
def _menu_func(self, context):
    self.layout.operator(SeparateSelectionActive.bl_idname)

def register():
    bpy.utils.register_class(SeparateSelectionActive)
    bpy.types.VIEW3D_MT_edit_mesh.append(_menu_func)

def unregister():
    bpy.utils.unregister_class(SeparateSelectionActive)
    bpy.types.VIEW3D_MT_edit_mesh.remove(_menu_func)

if __name__ == "__main__":
    register()

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

After register it as an Operator, you can search and run this operator in edit mode within 3d space:

Or in View3d > edit mode > mesh > Separate Selection Active after append a new menu function to make it searchable in Blender 2.90.

You should see a prompt asking a method for separating:

These options is exactly the same with original separate operator.
And this operator will separate it, deselected original mesh, make the new created mesh active:

Note: If the separate process make the one you want to be active unchanged, this operator will active the wrong mesh since it's still the original mesh with the same name.


Increase size of column width in save dialogue short list view

Set the file display size to Large.

If you still can't read the labels, you will have to decrease the font size in the User Preferences.

Ctrl+Alt+U opens the User Preferences. Then go to the Themes rider and change the Points value under Widget Label: Kerning Style.

Right clicking on a folder/file item will display its name in the File Name box of the File Browser.


Find commands by name in blender 2.80 beta?

Are you sure you have the mesh selected and that you are in "edit mode"?
Otherwise the operator will not show up.


Since the displacement modifier has an option to choose the texture coordinates, this isn't any different from the common problem of UV mapping a sphere.

I recommend some sort of blended box mapping using one modifier for each axis and blending between them with vertex groups.


How to debug why can't select NVidia card? (Cycles renderer/CUDA support)

Cycles render should be available independently of which compute device is chosen, if no compatible graphics card is present it still runs regularly with the CPU.

If the Cycles render engine is not showing up it's probably because it's addon is disabled. Try Enabling it under Blender User Preferences > Add-ons > Search for Cycles.

As for using the NVidia card, right above the computing device pull down menu there should be two buttons that say None and Cuda you have to enable Cuda before Blender is able to recognize your graphics card as a computing device, I think.

Edit: Upon closer inspection of your screenshot, the CUDA button is not visible, so Blender is considering no compute capabilities are present at the moment.

You mentioned a laptop with two cards. Many of these systems use a low power (Intel) graphics card for battery saving and the High powered one for graphics heavy applications. There is usually some sort of switching system and profile manager for this sort of setting. Try activating the High performance profile or making the NVidia card the active one before running Blender, so that CUDA capabilities are present when the application starts.


How many CPU cores does Blender support and make sense?

The more, the better in most cases, but you do need to be aware of single thread performance as well. If you get a processor with lots of cores that has very poor single thread performance and use it for work, you might struggle with some operations that cannot use all of the cores. Generally physics simulations tend to use multiple cores a bit less efficiently because they tend to need the results of previous calculations in order to continue so the calculations are difficult to do in parallel. Some other every day modelling tasks also suffer from this. For rendering - the more cores you have, the better, unless you render loads of really fast frames(seconds) in which case preparing the scene for rendering might take more time than actually rendering and during the preparation there are some things done with single thread only - in that case it might be slow.


Good way to export good manufacturing models

Blender has several export plugins: You can also download more, to look for them, open your preferences Ctrl-Alt-U>Addons and use the import export tab:

In orange is an option to install an add-on, you can search, on Google, for an add-on that will export do that format.
As a last resort, you may have to use multiple programs... however we may not be able to help with that...


Problems with object orientation and angled array

Select two vertices,
Change Transformation Orientations to Normal,
Press the add button in the Transform Orientations panel then
Select new normal, ie Edge, in the drop down list.

In Object mode, shift+S > Cursor to selected,
Shift+A  > Empty > Plane Axes,
Set the constraint as shown in the figure and
Move Empty object using added normal(Edge).


How do see fluids through glass (Eevee)?

If you use the Glass node you need to enable the following options :

Render panel > Screen Space Reflection
Material panel > Settings > Blend Mode > Alpha Blend
Material panel > Settings > Screen Space Refraction

There is a limitation for the moment in Eevee: You can't see an object that is in Blende Mode > Alpha Blend through an object that has a Glass material, as you can see here, object 2 is not visible:

If you give object 1 a bit of transparency and therefore decrease its Glass value, you kind of get around the problem (you can also get rid of the Glass node and find another way to simulate glass, like a mix bewteen Glossy and Transparent):


How to export your Ocean Modifier Mesh and Animation to Unity? | Blender v2.80.72

I used the official Blender 2.8 release and it works fine.

What to do:

Select your 'Ocean Object' and press ctrl + a to apply the scale.
With your object selected click file -> export -> Lightwave Point Cache (.mdd)
Save the mdd file.
Apply your ocean modifier
With the object selected click import and import your mdd file again.

The whole process takes only seconds now.


How to keep the gradient when joining objects?

(Edited using the provided file)
To keep the gradient when joining the petals, you can use UV coordinates.
Then just project the UV map from top and join.

(To get the same UV map, just select the petal and UV > Project from view)


Documentation on the mathematical models used by Blender physics engines

Rigid bodies

There is no mention of the underlying physics engine in the manual for the current version v2.81.

However, up until version 2.79, Blender used to have also a Game Engine, which shared the same physics with the general Rigid Body World used for animation. Its manual gave more away in terms of the underlying engine:

  Blender includes advanced physics simulation in the form of the Bullet Physics Engine (Bullet Physics). Most of your work will involve setting the right properties on the objects in your scene, then you can sit back and let the engine take over.

As far as I can tell, Blender still uses Bullet. Unfortunately, the Bullet documentation doesn't explain things from the first principles up: it rather explains the settings, API and examples.

Liquids

The current (up to Blender 2.81) fluid engine is based on Lattice Boltzmann (LBM) through the elbeem library.

However, it is being replaced (version 2.82) by a new fluid engine, Mantaflow.


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

exit edit mode and move it.


I dunno if there's a lot of shared animations out there.  Maybe there are, haven't looked.

You might find some on BlendSwap, or ask there if there's a certain one you had in mind.

I know there's mo-cap data you can attach to skeletal deformations.   CMU Graphics Lab Motion Capture Database  Something like that might get you halfway to your goal.

Couldn't say about non-organic objects.  Perhaps if other graphics programs offer them, they can be imported.  That's something you'd have to look up, 'cuz I've never expected someone else to do a scene for me; kinda defeats the purpose.


started animation render- how to stop it without losing what has been rendered so far?

I don't think it's possible, that's why using jpg instead of movies is convenient, you can stop and relaunch whenever you want. Also, as said by Thibsert, "if Blender or the computer crashes, you don't loose the rendered frames. And it allows multiple computers work on the same animation (using a shared folder and the "placeholders/don't owerwrite" settings)".


For a good tutorial start with the video at https://www.youtube.com/watch?v=-JSFcSxsaTs


VSE: disable snapping to frames for sound?

The answer seems to be a clear no:

VSE: Can I move an audio track in smaller increments than one frame?

Which animation features don't support sub-frames?

There is a rightclickselect proposal to implement it:

https://blender.community/c/rightclickselect/cgbbbc/


Recorded Animation appearing as Recorded, but not moving when animating?

At the near bottom of your screen set the beginning keyframe to 0. Play the animation and then set it back to 63.

Another way is just set the current keyframe to 0 and hold down right arrow until it's at the keyframe you want it to stop the animation at. This is because of the way rigidbody animations work, it has to play at least once to record the motion it will take, you could say.


The problem is due to faces with more than 4 vertices as the subsurf can only work with triangles (3 vertices) and quads (4 vertices).

Faces with more than 4 vertices are known as 'ngons' (basically 'polygon' with with the 'poly' replaced with 'n' to represent any number (greater than 4) - I can see two towards the top-centre of your image and it is those that are causing the issue.

The solution is to adjust the geometry to replace those faces with tri and quad faces. The easiest way to achieve this would be to simply cut one of the corners off to a tri, leaving a quad.


Instantiating different number of objects per spline

These should work. The one uses the splines points and a multiplier as an input integer for the amount of points to evaluate per spline.
The other uses a integer list you can edit, each input corresponding to a spine in your spine list.
Both of these output a list of locations which can be fed into a Instancer node.
A 3d viewer node can also be handy to see which integer list input corresponds to which spline.


How would one animate blinking lights in viewport OpenGL render?

Note - Everything here is with reference to rendering, using OpenGL...

Method 1 -

The Diffuse intensity slider cannot be keyframed in my version (2.77a) but the Colour circle's slider can.
(See the note below)

Set the slider at the desired colour and level and keyframe each setting using "Constant Interpolation" (Select all it's keyframes in the Dope sheet and press T)

Unlit bulbs will then be seen in their reflective (specular) state.-

Method 2 -

Bulbs can be rendered invisible intermittently by keyframing the 'master' bulb's eye icon in the outliner.
Simply copy/paste one master-bulb's keyframes into any others.  Displace as required.

This method can still provide an unlit bulb by duplicating it and shrinking that a little so it's a separate and unlit version.  Each time the illuminated bulb becomes visible, it's unlit counterpart is hidden just inside it's circumference -

The reflection on the ground plane is actually coming from a point lamp located inside both bulbs.  Keyframes from the outer and illuminated bulb are copied into the point lamp. (See "For Newbies" below)

Method 3 -

When multiple sequences are involved, sometimes it's simpler to just block bulb(s) from view using a large slotted mask, or individual (cubes?) around each bulb.  They can be switched from mask to invisible, or simply moved out of the way.  A slotted plane was used here...

Method 4 -

Use the "Noise" feature in the Graph Editor.  The curves are more a graduated flickering though, although this affects reflection (specular) more than the bulb itself.

For Newbies - referring to method 2 -

Initially, the point lamp won't have an appearance in the Dope sheet for copy/pasting.  Step the timeline cursor to frame zero and keyframe it's eye icon in the Outliner first.

Repetitive keyframes can either be 'cycled' in the Dopesheet or duplicated and those moved on to the end of the original sequence.  Select all of those and duplicate them again so you then have 4 sets of keyframes, then 8, then 16, 32, 64 etc.
Within a minute, an impressive number of repetitive keyframes can be produced.

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

NOTE -   For Method 1 above -

When switching between full emission and none in the Material slot -

Don't tick the shadeless box.  Instead use zero and maximum values in the "Emit" slider and set interpolation (T) to "Constant" for all keyframes.

If the lights don't flash when animation is playing, stop the playback, select the lazy bulb and advance the timeline cursor. When it's in a switched-on phase, tick the Shadeless box on and off.  In my machine and Blender vers (2.77a) this kickstarts the blinking process.

The attached Blend file can be used to test if the Diffuse sliders suggested will work on your own machine and version of Blender.  Use the kickstart suggestion to get Layer 1 working properly.  Layer 6 uses a slotted plane.

Both are best viewed through the camera. (np Ins key)


How to draw and extrude this curved figure?

A way to do that:

Start with a plane (ShiftA then 'mesh' and 'plane'), enter edit mode (Tab), select all vertices A and delete X 'faces only'.

Still in edit mode, select the vertices, and hit W subdivide. Then in the operator panel, choose 2 cuts.

Now add a subsurface modifier. Set it to two subdivisions, for instance, and check 'adjust cage to modifier result' :

Select the four corners, then scale S :

(edit)
For the extrusion :

Select all, extrude Z EZ, the add a loop cut CtrlR and adjust it to the top.

Select the top vertices again, then scale them down a bit.

(edit, again)
If you need to close the shape :

Simply add the needed quads, and eventually add another loop cut to make the vert/horz transition more sharp:


How to improve baking quality in cycles render engine?

Have you tried resizing the 1k image down to 256 in a image editor?

You not gonna get a very sharp image with such a low image resolution, I would try to manually unwrap the the object and give areas that need more detail more UV space on the image.
You can also try adding adding UV's on top of each other if they share a identical texture on the object, so instead of 2 separate UV's there's just 2 UV's on top of each other sharing the same image. :)


How do I manipulate/move object with generic rigidbody constraints while in playback to see effect

I figured it out 10 minutes later.  You have to enable "Animated" under the rigid body settings.  Then you can move around the object during the playback and it will interact with everything in the scene.


Extruding the camera block for my phone model

Here is an edit of your object with a more detailed topology (ngons at minimum, and you can easily replace them with quads, preferably, if you need to subdivide those faces).

It is not finished and it has a n X mirror modifier, but you can see that the "camera block" is quite easy to do now, and (after applying the X mirror, maybe) also side buttons, with a regular manual subdivision with CTRLR.

Here is the .blend file. Hth.


I recommend blenderguru.com like one of the above comments mentions, but for me just playing around with the program and getting familiar before jumping in to tutorials helps.


If you have a good quad edge flow and then triangulate it, it won't break its  quality to animate it.

I think internally all game engines triangulate the model anyways.

That being sad. I used Substance painter sporadically and did not triangulate the mesh before. It works fine.


how to get back a hidden part of the mesh when alt+H is not working?

While in Edit mode, Press Alt+H or in the menu bar select Mesh> Show/Hide> Show Hidden


Why does this NLA strip have no action, and how do I fix it?

Here is the part in the manual that concerns you
Also here is a link to a tutorial on the NLA

Deleting & Converting

If you decide that you no longer want a stashed action anymore, simply delete the corresponding NLA strip, then save and reload the file.

Also, note that since these are NLA strips, you can reuse these as normal NLA strips simply by un-muting (and renaming) the NLA track they live in. You may also want to move it above all the other stashed-action tracks.

Remove Empty Animation Data

This operator removes AnimData data-blocks (restricted to only those which are visible in the animation editor where it is run from) which are “empty” (i.e. that is, have no active action, drivers, and NLA tracks or strips).

It is sometimes possible to end up with a lot of data-blocks which have old and unused Animation Data containers still attached. This most commonly happens when doing motion graphics work (i.e. when some linked-in objects may have previously been used to develop a set of reusable assets), and is particularly distracting in the NLA Editor.


Changing texture slot *mapping size* does not sync in texture viewport mode

To view in sync you have to activate the material mode in the view port. That and rendering mode allow interactivity.


how I could extrude an object so that it is not a 2D object?

Before anything, make sure that the object is properly orientated. If the object displayed is like that because it's rotated in object mode, you should be able to get it out pretty easily. If not, I suggest you read this. You want the top flat surface to be perpendicular to the Z axis.

As for how I would go about this, with my 2D object (seen below):

Select the bottom edges that you want to extrude.

Press E to extrude them and press Z to lock that extrusion to the Z axis. Feel free to extrude them however much you wish, just make sure that everything is extruded down so that all the highest of the selected vertices (the ones you are moving down) is below the lowest of all the other vertices. Otherwise, you'd have those coming out the bottom of your object.

Press S to scale the selected edges, Z to limit scaling to the Z axis, and 0 to scale to 0.

From this point, it's just a matter of going around, selecting the open edges of your mesh and filling them in.

I hope this helps and if you have trouble, let me know in the comments.


How do you create a 3D Model to be uploaded and viewed by HTC Vive

There is an plugin but it does not seem to have been updated in the last 4 months.

That said the video is amazing, though it is only head tracking in room-space no controllers. You can always get the source code.

https://github.com/cedeon/virtual_reality_viewport/tree/vivetest

http://uploadvr.com/blenders-open-source-software-just-got-makeshift-vr-support/


v2.81.16 cycles; render shows nothing, finishes in .01 ms

Bottom right of your second screenshot, uncheck the sequencer.

Edit

The sequencer tells is essentially part of Blender's integrated video editor.

Checking Use Sequencer tells Blender to render the contents of the Video Editor rather rendering the scene.


Can viewport playback be improved by moving elements to other layers?

Blender viewport performance is known to degrade with many objects, and frame rate can decrease significantly depending on scene complexity.

The rendering system is a bit archaic and doesn't currently take full advantage of high end hardware, it's planed to be overhauled in the near future, but unfortunately there is not much one can currently do to to overcome the underlying problem until then.

Where your images are loaded from (external hard drive, local disk, or packed in blend file) as little effect on viewport performance, except when reading them for the first time, before they are loaded into memory.

That being said, hiding objects that are not needed has a huge influence in viewport performance, you can either hide unneeded objects, move them to different layers, or even organized them into several distinct groups and use the Outliner to toggle viewport visibility en-mass. All those should have a positive impact in performance.

Additionally depending on what render engine you are using, (if you are in Blender Internal or Game Engine) you can switch to GLSL viewport shading mode which is said to have slightly better performance. N Properties Panel > Shading > GLSL

If you have an nVidia graphics card you can also try to turn on VBOs in the user preferences, which generally give quite a considerable performance bump in many cases. You can find it in User Preferences > System Tab > OpenGL Column > VBOs Checkbox.


How can I find out the correct order of vertices to create a quad face with bmesh?

From 4 verts you can construct 6 edges: throw away 2 longest that don't share a vert and from there you get the correct vertex order.


How to access the "Browse Image to be Linked" dropdown from an Image Texture node using python?

Nevermind, I answered my own question.
All I needed was this:
row.prop(img_tex_node, "image")

Simple!