Do I need to tick "Text", under Game Settings of the material of the text-object? The dynamic text works even if I don't.

This is not necessary on Text Objects (KX_FontObject). This configuration is for Bitmap Text materials (different topic)

  I achieve what I want with logic bricks alone?
  Yes, it is possible, but only with hard-coded relationships and within the same scene.

Usually I recommend to use Python to get this behavior as this allows to decouple the "value keeper" and the "value viewer".

So here is a Logic brick brick solution.

As the property acts as our model (game's state) we call it in our example "model". We call the object it lives on "Model.keeper". [You can call it as you want].

A model makes not much sense when it never changes. Therefore we implement a sample change operation - we add the string " value" whenever we press .

Model.keeper

Now we want to let another object take over the property value. Add a Text Object with Text Game Property "Text". Call the object "Model.viewer". We can use the Property Actuator in "Copy" mode to tell it to copy the value from object "Model.keeper" with property "model". The GUI supports us when typing/selecting the fields.

If the Model.viewer constantly copies over this value, your game will become busy with copy operations (imagine you have much more than a single viewer). Wouldn't it be more efficient when this will be done on model value change only?

The Property Sensor in "Changed" mode senses when the property value changed. Optional: The object "Model.keeper" knows when the model changed (because it changed it). So it can notify any interested object (e.g. "Model.viewer") that the value changed. We can do that with a message:

[I placed this logic into a separate state, too avoid mixing different tasks. Both states are active.]

I suggest to enable "True Level Triggering". This way the message gets send on consecutive changes too.
The subject of the message is "model changed". This allows us to send other kind of notification messages regarding other events. Please not this is send to any object (empty To: field).

Model.viewer

When "Model.viewer" receives the message "model changed". It will activate the Property Actuator as you already setup above. This means whenever "Model.keeper" notified "Model.viewer" via "model changed" the property "model" gets copied to property "Text".

But what if we just started? The value did not change an therefore there is no notification message. To cover this situation we activate the Property Actuator at start-up too. Be sure to use an "OR" controller:

If you did everything right you should see something like that:

Homework
Add another viewer


A way to get Rate of Change in translation or rotation into a shader node

Blender doesn't give value changes off the sleeve. What you need is to evaluate an animation (F-Curve) in current and previous frames and compute the difference. This solution uses a script that adds a custom frame change handler. Other way could be with PyDrivers or using Animation Nodes plugin.

Run this, it will add new properties to objects and it will update them every frame. You can access them in driver:

import bpy
from mathutils import Vector, Euler

curr_frame = None

def frame_handler(scn):
    global curr_frame
    if curr_frame != scn.frame_current:
        curr_frame = scn.frame_current
        for obj in scn.objects:
            obj.speed = (obj.matrix_world.translation - Vector(obj.last_loc)).length
            last_quat = Euler(obj.last_rot).to_quaternion()
            quat = obj.rotation_euler.to_quaternion()
            obj.angular_speed = quat.rotation_difference(last_quat).angle
            obj.last_loc = obj.matrix_world.translation
            obj.last_rot = obj.rotation_euler

bpy.types.Object.last_loc = bpy.props.FloatVectorProperty()
bpy.types.Object.last_rot = bpy.props.FloatVectorProperty()

bpy.types.Object.speed = bpy.props.FloatProperty()
bpy.types.Object.angular_speed = bpy.props.FloatProperty()

if frame_handler not in bpy.app.handlers.frame_change_pre:
    bpy.app.handlers.frame_change_pre.append(frame_handler)

Added props of interest are:

speed (in blender units per frame)
angular_speed (in rads per frame)

Use them in driver like this:

Here I am driving Y-scale and view-port material color with speed:

Note: this will only work when playing the frames sequentially. If you jump around you will get crazy values. This is a very simple handler using values from last and current frame, but it could be adjusted to read from the Fcurves of objects if you need.

Also it expects rotations in euler, but it transforms it to quaternions anyway. So if you want quaternions no problem.


How can a texture converted to be tileable (seamless)?

Blender's UV / Image does not provide such a functionality (AFAIK). This can easily achieved by GIMP.

After copying a region from the photo into a new image (preferably with dimensions as a power of two e.g. 1024x1024 pixel)

Execute from main menu: Filters / Map / Make Seamless

Result:

The terrain could be randomized (Edit Mode menu: Mesh / Transform / Randomize)

Related:

Unwanted patterns in texture from repeated, seamless image
Why should texture resolutions be powers of 2?
https://gamedev.stackexchange.com/questions/26187/why-are-textures-always-square-powers-of-two-what-if-they-arent


How can i import the world nodes to another .blend file?

You can append the world settings from this file to yours.

To append type Shift + F1 or go to File --> Append.
Navigate to where you saved this file, then click it, and then the world "subfolder". Select the item called "World" within.

Then go to your world settings in the Properties Windows --> World Tab, and choose the new world (Probably "World.001") from the dropdown menu.


How do I convert a 3D model into a bas relief using mist?

You can use a Mist pass to generate a height-map, and then use the height-map to control displacement. I'm assuming you want to print this coin, not just to render it, so the displacement is in a modifier, not a texture in a material, which would generate geometry only at render-time.

This example happens to be shooting down Z..

Arrange your model for a vertical shot, camera at (0,0, something),  looking straight down. In this case, Suzanne's ears were too high relative to the other elements, so I scaled her mesh in global Z. (The shot is going to be orthographic, so scaling in Z doesn't move anything in the picture plane)

Check the 'Mist' pass in Render Layers > Passes

In the Render tab, set the Dimensions your desired height-map size: (here, 4096x4096)  We need a high color depth in the output: I find it most convenient to set the Output to  'Open EXR Multilayer', so we can can recover the Mist layer later.. You can also set a 1-frame animation length here.
Set the camera to Orthographic, adjust the orthographic scale to contain your objects, check the 'Mist' display so we can see what we're doing in the next step...

In the 'World' tab, adjust the 0 and 1 levels of the Mist pass (the two dots at the end of the bar), to capture the depths of interest. Set the falloff to 'Linear'.

Shoot a height-map by hitting the 'Animation' button to save out your 1-frame animation. Or, if you shoot a 'Render' still, you will have to save the image out manually. You can see the map by selecting 'Mist' in the 'Select Pass' dropdown in the render window.

Model a blank coin, and subdivide it. Here, I've CtrlF > Grid Filled a circle, and added a rim.
U UV unwrap the model, looking through the camera, with 'Project from View, Bounds'

In the texture tab, load up your heightmap. You can split out the Mist Layer here. Uncheck alpha.

Assign a Simple subsurface modifier and a Displace modifier to the coin, using the texture you've just created, and you're there.

Phew! This took a lot longer to describe than to do.. don't worry.


Texture painting. Why not mark all seams and unwrap later?

If you want a more simple approach to getting started with Texture Paint, then consider using 'Smart Unwrap' from the Unwrap menu - no need to mark any seams with this option, and you can get on to painting. If you decide you really need a better map, then you can create a second UV map with the correctly marked seams and then bring in the paint from the previous mapping to a new image with the Clone Tool using the second correct mapping.


How to Make White Transparent in a Shader

There are many ways to do it, here it's one of them:

In your color ramps you need to replace the white color with a transparent one (just set the Alpha value to 0). That way you can have a white background and add the colors on top by using the Alpha output of the color ramps.

An alternative way could be to use the black color instead of the alpha and choose Screen or Add as blend modes


All colors locked in blue hue - can't change hue

Ok, because I didn't expect this to be a bug, I didn't go through the usual procedures.
Simply restarting Blender did the job.
sorry for nooby behaviour ;)


How to copy/paste rigid-body-constraints in 2.73 rc1?

You can use Copy from Active. To do this, first select all your objects that will receive the Rigid Body physics, and then the one which already as it; This is so that the object which has the Rigid Body physics becomes the Active object.

Then, open the Toolbar (press T) and switch to the Physics tab; There, you can press Copy from Active to copy all the physics to the new objects.


This problem is usually caused by a maxing out of a certain part of your computer. The CPU might be lagging, or something else might not be working.


just clear that "animated" checkbox in your sphere and it works.

result:


The normals on your cup object are flipped inside out. You can see this by selecting the “Face Orientation” viewport overlay, which displays the front side of faces in blue and the back side in red:

To fix this, in Edit Mode, select all your cup’s faces, then press ShiftN to recalculate the normals so they point outside the mesh. This fixes the rendering issue.


Why are simple shapes like spheres built using polygons?

Creating an "equation" for rendering non-simple objects, such as a tank model, for instance, is much more difficult, especially when it comes to ray-tracing and shading. While for instance a sphere from an equation would be very simple, a sphere next to a complex object would be difficult, and its better to build complicated meshes out of polygons. The reason you can't have math-based meshes next to polygon-based meshes together is because they use different ways of rendering, as well as to keep everything consistent. This is my understanding of it, anyways, and people can correct me if I am mistaken.


If you drag the corner of one onto the body of the next it will merge them back together.


After I searched on internet and played around the nodes material.

This is how I achieved the embossed effect with Bump node, I still cannot master the concept but it just works.


How can I fix an unintended hole in my mesh?

There is no hole in the mesh, but a non-planar n-gon (a polygon with more than 4 vertices) that is ovelapping on top another face.

You should delete it and try to reconnect the remaining geometry using quads...


Can the 3D viewport display animated, textured material alpha)?

I use OpenGL constantly unless Forced to do otherwise.  I've also used it to fade out alpha layered texture pretty much as per your question, albeit with a 'mirror' or two.  You may have already done this, but others may find this useful.

The method is always to animate everything in the 3D window but place the textured model to be faded out in it's own layer.  This allows precise placement/scaling etc.  Objects that will conceal the fading object when it moves behind can be either duplicated in the extra layer, or masks setup to conceal it.

The cloud in this case is our fading object.

Once set up and animating properly, switch off the extra (cloud) layer and render the rest.

We render the cloud's layer next, only output that to alpha layered PNG files, and INTO A SEPERATE FOLDER!  Ensure you are indeed rendering with an alpha layer. (transparency)  At near top left of the 3D window is the "Render" drop-down.  "Render OpenGL image" most often gives you what's going to end up on the video.

Reset your output to it's final rendering folder, file type etc, and ensure the "Post output " is set to "Sequencer".

Go to the Video Editor and bring in the main video render onto the lower strip, the Alpha layered PNG files (as an image) onto one above it, and set the upper strip to "Alpha Over"

All that remains is to set keyframes on the upper strip to fade it in and out at the appropriate frame numbers.

Render that.  All of the renders only takes seconds, including the final one which of course must be from Blender's internal Renderer.

Hope this solves your problem...

PS:  It's also possible to mix the PNG video strip with a "Scene" strip and get the same result.  Unfortunately that has given me some grief in the past so I prefer to use two video strips.


You should make your low poly model smooth shaded and add at least one bevel in this case.

When blender bakes the normals, it ray casts from the low poly surface inwards along the interpolated normal until it hits the high poly (or not).

If you need the low poly to intersect with the high poly then you can make a copy of the low poly and scale (or shrink/fatten) it up and bake with that. It is also possible to use a Displace modifier to raise the surface a bit during the bake.


How to duplicate an object along with its parent/children relationships using Python in Blender 2.9x

I used to bpy.ops.object.duplicate to duplicate the selected objects coming from the select_set() method.
In this way, the underlying parent/children relationships are maintained during the duplication.


where do i find option to change light bounce?

It's still where it always has been, in Properties > Render > Light Paths > Bounces:


Overlay more than one transparent images in one shader

It is easier if you don't think in terms of transparency and think of masks.
(read: Change Color Associated with Transparency? and Add a transparent image on top of a material)

When working with shaders, RGB information and Masks (based on alpha channels) follow separate paths.

So let's break this in two parts.

RGB

Combine the RGB information using the alpha channel of each one of the image being overlaid as a mask (fac), to control the mix over the background image. Note that you don't use the alpha of the very first image in the chain, you overlay the 2nd image using it's alpha channel to control the mix over the 1st one.

Alpha

Then you can use the sum of all of the alpha channels as a mask to control the mix of color or shaders. You can use a Convert>Math node and set it to add mode.

To mix the colors and use them as a shader color:

To control the mix of other shaders:


How to delete the overlapped vertices in a 3D model?

Solving with "Keep UV and edit mode mesh selection in sync" Option
In the UV Editor window, if you enable the Keep UV and edit mode mesh selection in sync option , then the vertices you select in the UV Editor will also be selected in the 3D edit window.
The location of Keep UV and edit mode mesh selection in sync:

Action Demo
You can then go to the 3D window and delete them.
Don't forget to disable the Keep UV and edit mode mesh selection in sync option afterwards.


It appears to be a duplicate vertices/faces issue. Basically, there are two (or more) vertices where there should be one, creating unwanted geometry.

This is the problem:

The simplest solution is to select all of the vertices and to use the Remove Doubles option to automatically remove the overlapping geometry as show below:


You need to unpin the animation in the NLA editor as shown below and the animation will be there after frame 30 normally


Origins to the down of the object by default

Run a script using msgbus when new primitive added

Run the following script in the text editor.

Add any mesh primitive, the origin is adjusted to the bottom of its bounding box as long as the following conditions are met.

Object mode.
Object is a mesh.
The active operator is a mesh primitive add.

Code put together from

Set origin to bottom center of multiple objects

Adjusted such that the object is not moved globally so the mesh origin is at scene cursor location, and is the centre of the bottom face of bounding box. (For Suzanne is outside the mesh)  Alternatively running this one after adding objects does the trick, but not "automatically".

How to get an event when an object is selected?

Very lacking in docs re bpy.msgbus, not sure for what version was introduced, possibly should assert(bpy.msgbus) to throw an error if not available for your version.

import bpy
from mathutils import Vector, Matrix

handle = object()

# Triggers when an object is made active
subscribe_to = bpy.types.LayerObjects, "active" #

def origin_to_bottom(ob):
    me = ob.data

    local_verts = [Vector(v[:]) for v in ob.bound_box]
    o = sum(local_verts, Vector()) / 8
    o.z = min(v.z for v in local_verts)

    me.transform(Matrix.Translation(-o))

def notify_test(context):
    if (context.object.type == 'MESH'
            and getattr(context.active_operator, "bl_idname", "").startswith("MESH_OT_primitive_")
            and context.mode == 'OBJECT'):
        print("Setting origin to bottom")
        origin_to_bottom(context.object)

bpy.msgbus.subscribe_rna(
    key=subscribe_to,
    owner=handle,
    args=(bpy.context,),
    notify=notify_test,
)

bpy.msgbus.publish_rna(key=subscribe_to)

Note: put this together as a proof of concept. Have not tested greatly.

Could modify to only work for Cube, Cylinder, Cone not Monkey Sphere.

Having the origin at centre of lowest face would be Ok for cube not UV cylinder, Cone with ngon fill, not fan etc.

Alternatively could rewrite, or override (ie register another with same name), any / all the add mesh operators in python.


3 Vertex Parenting

Assume you have set up the empty and object with array modifier as
explained in youtube video in question.

In example I have a cone with array modifier controlled by an empty
displayed as axis.
For simplicity sake added a 3 vertex filled circle.  It has one face.
In edit mode select 3 vertices of the face to parent empty to.
In object mode, select the empty, then the mesh and choose
CtrlPT Parent Vertex (Triangle)

The array empty will now be rotated when the face rotates.
This may be difficult to set up depending on the alignment of the
face.  A similar method could be done via the copy rotation
constraint on the empty, using the face object as a target and the vertices of the face in a vertex group as the subtarget.

In this setup only the global Y rotation of the empty is effected by the rotation of our target face


Disabling occlusion culling in BGE hides nearby objects

I found out that the character that my camera was parented to was scaled which in turn scaled my camera. I applied the scale of my player and cleared the scale of my camera and now this problem is fixed.


The first issue revealed a second issue, both of which were corrected.

1)  For the first issue, the jet fin object needed to be scaled (Ctrl+A in Object mode, drop down menu select Scale)

2) The follow up issue was due to the origin point of the jet fin object and the empty axis object being offset along the Y axis.  Resetting the jet fin object to zero fixed this.


Blender and three.js recent versions December 1, 2018

I'm not sure why the three.js exporter would have disappeared from the specific folder in your screenshot (did you download it from somewhere particular? was it already on your computer?) but the three.js (JSON) Blender exporter has been removed from recent versions of the three.js library.

Instead, I would suggest one of the following:

Load your FBX (.fbx) file directly with THREE.FBXLoader.
Export to glTF (.gltf or .glb) and load with THREE.GLTFLoader.

A glTF exporter is included in Blender 2.80+. For older versions of Blender, you can download the importer/exporter here: https://github.com/KhronosGroup/glTF-Blender-IO.

Per three.js documentation, using glTF is recommended where possible.


I think you are working in blender render engine, you must change this to the cycles render engine. You can find this option in the header.


Is it possible add a texture to a plane in the two-dimensional animation editor?

The 2D animation editor actually is the 3D view editor. The "2D Animation" startup file sets the world to white, adds a grease pencil object, and goes into edit mode. Other than that, it's just a different set of layout tabs for Blender.

Go ahead and, in the 2D animation editor tab, orbit around.

In respect to putting an image texture onto a plane, since it is actually the standard 3D space, look for UV and image texture material tutorials.

If you still need help, I might be able to provide a tutorial, but don't worry: There's nothing to be afraid of :)


AttributeError: '_RestrictData' object has no attribute 'filepath'

This is a side effect of the way you import.

from bpy import data as bpy_data imports the bpy_struct data when the py file is loaded, like a local copy (not alias). This happens during the addon registration, thus bpy_data will be and remain as:

<class 'bpy_restrict_state._RestrictData'>

In contrast, import bpy and a later use of bpy.data accesses data in the moment you actually use it. It is _RestrictData at registration time, but later on it will be

<class 'bpy.types.BlendData'>

You should change your imports from

from bpy import ( data as bpy_data,
                  context as bpy_context )
from bpy.app.handlers import ( persistent as bpy_app_handlers_persistent,
                               save_post as bpy_app_handlers_save_post )
# ...

to

import bpy
from bpy.app.handlers import persistent

# ...

@persistent
def foobar(scene):
    bpy.data.filepath
    #bpy.context...

# ...

bpy.app.handlers.save_post.append(foobar)

from ... import ... as ... should only be used if the imported module or function would overwrite another.


Instead IK I would uso Track To because if you use IK and parent it to the head you will get that all the body is going to move


What is an example of when I can use the 'Clamp' option in the MixRGB node?

The mix node can produce results outside of the 0-1 range. For example, white divided by (almost) black gives a very high value. Take a look at this node setup:

I took 2 mix nodes, set them both to add, gave them both an input of '1' (white), and subtracted the end result with '1'. The final result of the nodes without clamping is '1' (white), while the result of the nodes with clamping is '0' (black).


I downloaded your file and tested couple things, and the problem seems to be the table having weird scale (5.483, 5.483, 0.369). By applying the scale (In object mode, select the table, hit Ctrl+A and select Scale) the physics start to work as expected in both files.

I also noticed your some other issues with your table which might cause problems later (the board has at four meshes overlapping and the legs have inverted normals), but those are not in scope of this question.


Blender will render the frames that are between the start frame and end frame if you press Animation.

The outputfile is located in the path that is shown in the text-box. You can change it pressing the button with the folder icon

You can either the animation as an image-file sequence or as a video file. MPEG will output .dvd format, but you can change the extension to .mp4 in the windows explorer (you must check the option to view the file extension in folder options from windows


Use relative offset - 1 settings in array mod.
Or maybe your mesh vertices that must connected does not co-planar with this object boundary.


How to initiate "snapping" of an object to another with the presence of another object?

I would suggest working backwards with a bunch of offset copy location constraints. This will be a manual process for the most part (unless you want to script the major repetitive tasks) because it is not something that can be done easily and automatically with one of Blender's simulations.

If this is what you are going for, see the blend that I uploaded (of course the starting positions of the balls could be changed to whatever really easily to make them appear to be picked up instead of emitted.

To achieve what I did in the blend:

Animate "object A"
Add a copy location constraint to an "object B" that tracks to "object A"
Animate the "influence" of the cp loc constraint on "object B" for when you want it to "attach"
You can use the offset on the copy location constraint and simple location animations to achieve what I got in the demo


Can I fix the alpha display problems on material viewport on new Blender 2.73?

Do I need to worry about this on viewport?

No, I don't think so. The external game engine will be using it's own rendering pipeline, so any problems with the rendering then will be a separate and unrelated issue (with the possible exception of a problem with the data itself, e.g. double faces resulting in Z fighting etc. However this doesn't seem like the case here).

  Is there a way to fix it?

Try enabling Transparent in Properties > Object > Display on all the objects with transparency.


my texture to shows up in solid mode but not material preview mode?

As @scurest said in the comments, you need to reconnect the image texture node to the color input of the principled BSDF shader, instead of the roughness.
Currently, your image is controlling the roughness of the area it is unwrapped to, based off of the colors in the image. If you want this effect still, then simply leave it connected to roughness, and connect it to color. Therefore it will determine both color and roughness of the area it is unwrapped to.


Is it possible to select multiple objects based on mesh and not origin?

Border select seems to select by mesh surface, whereas circle and lasso select use origin positions.


Is it possible to get total render time via Python code?

Render Handlers

Borrowing heavilly from
Is it possible to get render time per tile?

Test code prints the total time elapsed from render init handler being fired, to render complete (or cancel)

from datetime import datetime
from bpy.app import handlers

FRAME_START_TIME = None
RENDER_START_TIME = None

def handler_function(name):
    def handler(scene):
        print(name)
    return handler

frame_handlers = [getattr(handlers, name)
        for name in dir(handlers) if name.startswith("render_")]

def add_dummy_handlers():
    for  handler in frame_handlers:
        handler.append(handler_function(name))

def clear_handlers():
    for  handler in frame_handlers:
        handler.clear()

def render_init(scene):
    global RENDER_START_TIME
    RENDER_START_TIME = datetime.now()
    print("Render Start")

def render_pre(scene):
    global FRAME_START_TIME
    FRAME_START_TIME = datetime.now()

def render_stats(dummy):
    print("Elapsed:", datetime.now() - FRAME_START_TIME)

def complete(scene):
    print("Total:",  datetime.now() - RENDER_START_TIME)

def cancel(scene):
    print("CANCELLED.... After:",  datetime.now() - FRAME_START_TIME)

clear_handlers()

handlers.render_init.append(render_init)
#handlers.render_pre.append(render_pre)
#handlers.render_stats.append(render_stats) # write or post ?
handlers.render_complete.append(complete)
handlers.render_cancel.append(cancel)

Output of a 4 frame render animation.

Render Start
Saved: '/tmp/0000.png'
 Time: 00:01.06 (Saving: 00:00.48)

Saved: '/tmp/0001.png'
 Time: 00:00.92 (Saving: 00:00.26)

Saved: '/tmp/0002.png'
 Time: 00:00.87 (Saving: 00:00.25)

Saved: '/tmp/0003.png'
 Time: 00:00.97 (Saving: 00:00.32)

Total: 0:00:03.846082

Added code from https://blender.stackexchange.com/a/62870/15543 to clear the handers clear_handers(), and also to add a set of dummy handlers that simply print their name when called. add_dummy_handlers()


How to get values from bpy.context inside a class

After a long while I finally understand it:
It's not possible to get the context inside a Class outside a function, (except of batFINGER's way, but I still don't understand that).
But it is possible to get what ever is needed in a function outside the class and then use the function like this: (Here is only the relevant part of the script shown)
-----> In this way, the context won't update. Therefore the way over the "@classmethod def poll(cls,context) is needed. (not shown here)
import bpy

def Multiview():
    if bpy.context.scene.render.use_multiview == True:
        print('Yes, its true')
        return True
    else:
        return False

class AddPresetObjectDisplay(AddPresetBase, Operator):
    '''Add a Object Display Preset'''
    bl_idname = "camera.object_display_preset_add"
    bl_label = "Add Object Display Preset"
    preset_menu = "OBJECT_MT_display_presets"

    # variable used for all preset values
    preset_defines = [
        "obj = bpy.context.object"
        "data = bpy.context.data"

    ]

    # properties to store in the preset
    preset_values = [
        "obj.display_type",
        "obj.show_bounds",
        "obj.display_bounds_type",]

    if Multiview():          ####<------- Context used here
        preset_values.extend([

        "obj.show_name",
        "obj.show_axis",])

Or another useful example:
def Blender_2_93():
    if bpy.app.version >= (2,93,0):
        return True
    else:
        return False

With that little function is it very easy to  make changes for different blender versions if a preset system is used or something else where the access to context, data or what ever is not usual.


Your node setup is basically correct, however, I think the "Black background" that you are seeing is because the nodes that define your dust are a mix between a diffuse shader and... nothing!

I will call the mix shader node on the left of the image the "first mix shader node", and the mix shader node on the right of the image the "second mix shader node".

So you are successfully mixing between the nodes that make up your base metal (second slot, on the second mix shader node) and the nodes that make up your dust (first slot, on the second mix shader node). But your dust is itself a mix between an Orange colour and no shader at all (which shows on the render as blackness). So your dust is coming out as orange mixed with black.

To fix - plug another diffuse shader into the second socket on the first mix shader node. Give it a slightly different orange colour. You should get results more like what you wanted.


It was because the normals of the faces got turned upside down, so backfacing was making them invisible in textured view.

All I had to do is recalculate the normals: Tab> Edit mode > A> Select all > CtrlN> Recalculate normals.


Connecting two curves with same number of vertices

If you are willing to go to mesh there is a pretty fast method.

With both curved selected Ctrl+J to join these two Curves into one object.
Alt+C >> M to convert the curves to a mesh.
TAB - to enter edit mode.
A - to select all vertices.
W >> E - to perform the Bridge Edge Loops command.
TAB - To go back to Object Mode and enjoy your curtains.


I found a way to do this with a simple rig (see attached blend file).

There are two armatures, one for the book, the other for the popup.
The book armature (yellow bones) above controls opening/closing the book:

Each page (L and R) has two bones; the innermost bone controls opening/closing via simple rotation. The outermost ones are there only for targeting the IK constraints in the popup armature.
The tails of the inner bones (Page_L and Page_R) are positioned so they are attachment points of the popup.
A rotation constraint on Page_L and Page_R makes the book open on axis for the book binding.
Rotate Page_L to open/close the book.
It only needs forward kinetics for opening/closing -- no IK constraints.

This image shows the Popup armature (orange bones):

The Popup_Center bone is the root bone; its head is where the popup middle is attached to the book and its head is where the popup apex is attached.
The Popup_L and Popup_R bones extend to the book attachment points.
IK constraints keep the popup attached to the book pages:

Popup_L IK constraint targets Page.001_L of the Book armature
Popup_R IK constraint targets Page.001_R

By rotating Page_L to close the book, Popup_L is pushed, due to the IK constraint.
Popup_L pushes on Popup_Center, forcing it to rotate towards the book.
Popup_R also pushes on Popup_Center due to its IK constraint.
Some additional notes:

I probably could have gotten away with using only a single armature. With two armatures, I could modularize multiple popups.
A control bone for managing the rotation of Page_L would have been nice, but I don't know how to do that.
I probably could have been more flexible with the bone placements, using offsets, but I haven't learned yet how to do that.
Blender is amazing. What I thought would be difficult or impossible is actually easy, once I learned how IK targets work.
I would have liked to make an animated gif of how this works in a 3d viewport, but I don't know how do that (advice, anyone?)

Here is an updated blend file:


Is there a way to make dynamic paint affect the reaction diffusion from tissue?

Here is a way to visualize reaction diffusion, it takes a few steps but it seems to work I guess. Unfortunately, it does not seem that dynamic paint will directly work to control reaction diffusion, but we can use other ways to visualize it.
Starting with a densely subdivided quad-sphere, I have set up reaction diffusion and painted some random pattern on vertex group B with animation running. One thing I am also doing here is adding a few keyframes in the scale parameter throughout the timeline to add a bit of variation in the animation.
Here are my settings:

Bake the reaction diffusion before moving on.

In object mode, make a copy of the object, and do not move it.
Shift + D then Enter.
The copy and original must be in the same place for the next step to work properly.

In Weight Paint again, first select the original object, then select the copy and go to Weights>transfer weights to copy the weights from the original to copy. This will copy the reaction diffusion from the original mesh to the copy, also allowing the animated weights to be used in modifiers in object mode.
Now you will be able to use the vertex groups with any combination of modifiers, such as displace, mask, etc.
For example, here is the quadsphere with just a displace modifier using the B vertex group.

Here is the .blend if you would like to inspect it


The bl_idname of MESH_OT_L should be lower case and one dot only, which is: mesh.l.

You need to follow the naming convention that Blender API required. It is kind of meta type that Blender used to organize the components that addon gonna registered.
And also you should use MESH_OT_L.bl_idname in your panel for clearance and flexible to change your bl_idname since it will warn you if MESH_OT_L is not found or missing bl_idname.
It is surely included in the page that you point out: Reference/Release Notes/2.80/Python API/Addons - Blender Developer Wiki
But it is not that clear why should lower case id been used (it is a former convention rather than 2.80 change)


Export files do not have carriage returns

The answer to this is older than Blender itself and therefore not Blender-related. There's nothing wrong with your files, Windows and Unix/Linux based operating systems handle CR/LF differently.

Windows still uses the old MS-DOS "\r\n" while Unix/Linux uses "\n". You need either an editor that is capable of auto-detect the used format or (on GNU/Linux) try dos2unix to convert your files.

[Edit] Under the hood the Carriage Return + Linefeed ("\r\n") is actually 0D0A in ascii hexadecimal ... if you looked at the windows/dos created file with a hex editor.  A linux (unix) file would show just 0A.


Why my texture is not the same in blender and when i export collada?

The reason is that you're using cycles. Save the texture you baked to a file and use it as a texture in a Blender Internal material, and the export should work. I export from BI to Collada for use in web and game engines all the time and it works nicely.

Related to this question: Why does the collada exporter not export texture references?


Why is the texture appearing different, and then not rendering?

To use any image with transparency (alpha channel) in cycles you need three nodes. Typically a Transparent BSDF, a Diffuse BSDF (or some other color shader) and a Mix Shader.

Here is the most basic node setup for a transparent image texture in cycles.

However that is not what you want, if you use that setup you will end up with you guy's head being see through.

Now the principal is simple, you treat the color data and alpha data differently.
The color data gets displayed, but the alpha gets used as a mask. What it is masking is totaly up to you and your specific nodes.
In my nodes, in the image above, I'm making the alpha completely transparent, with the Transparent BSDF.
However for you, you can use your base color instead of a transparent node.

Here is an example showing the difference between using a diffuse node (left side) and a transparent node (right side) as the base under the image texture.


With the top face deleted and vertices selected ...

Set Pivot to Median
Set snap to Vertex and Active, and set it to influence Scale. Check 'Project on to Self'.
With cursor close to Active (white) vertex Extrude E Scale S Limited Axis ShiftZ and snap the active vertex to the one below it.

(Holding Ctrl while dragging toggles the 'Snap' state.)


Smoke (mist) not working for existing file

No one , Not the blender file , not the model , not the primitives , not the simulator None of them is at fault.When you make a simulation , you also bake it , and im sure you also did that , if you bake the simulation , what it does is that it records the simulations animation so that it doesn't have to do heavy calculation it does while making the simulation for the first time , so try rebaking and come back again


Blender Cycles Hair Transparency Problem

After scratching my head for a few days I found the problem. There's a whole duplicate hair mesh which isn't visible from the front while editing, but shows up during renders. I went behind the model and loaded the texture onto the duplicate and everything works fine. Even the lashes.


Can't get SSS to work with Principled BSDF shader

Not an expert, but I think increasing Subsurface Radius to 10 does the job?


Unfortunately no, I don't think there is a good way to do this.

As far as I know the Pointiness atribute relies on actual final geometry to work, thus can' be faked if the geometry is not really sharp.

For this specific shape You could try and fake it with a gradient texture centered of the object. It's an approximation, but with a little tweaking may achieve good results.

Just add a Gradient node connected to the Generated socket and adjust its positioning with a Vector node by [-0.05,-0.05,-0.05]. You can use a Color Ramp to adjust the progression.

You may also combine by color-mixing several different linear gradients to achieve an effect of a gradient starting from every edge.


One material becomes dark/black after baking

So, I found the answer at last. Here's for you that have the same problem:
I'm not quite sure why but if you have a full metallic material (perhaps it darkens less if your material is less metallic. Didn't have the time to play with the bake), the diffuse baking will bake the material as black. So to fix this issue disconnect the metallic map/put the metallic value to zero before baking diffuse and voilà the diffuse map will have the real color.


Quaternion problems, Rotation in direction of transit

So thanks to TheBusyTypist I was able to fix my code to work...

import bpy
from mathutils import Vector
from mathutils import Quaternion
from math import pi
# create variables
target = bpy.context.scene.objects['CTRLEmpty']
empty = bpy.context.scene.objects['offsetEmpty']
rotator = bpy.context.scene.objects['RotatorEmpty']
obj = bpy.data.objects['Sphere.001']
rot = Quaternion((1,0,0,0))
# create a custom function called delay on the empty
target['delay'] = 2
# create a custom function called delay on the empty
target['radius'] = 2

# create empty list
prev_locations = []

# define the function
def roller_function(scene):
    # add the location of the Target (variable) to the prev_locations list
    prev_locations.append( Vector(target.location) )

    # create variable called loc_count that is equal to the amount of entries in prev_locations list.
    loc_count = len(prev_locations)
    # cull list to 10 items
    # whenever loc count is larger than the delay variable...
    while loc_count > target['delay']:
        # "pop" or remove the entrie at index position 0 (i.e.  the first entry)
        prev_locations.pop(0)
        # then subtract one from location count
        loc_count -= 1

    # create an average location vector and position vectors P0 is for previos frame position (or current frame of delayEmpty P1 is for current position
    loc_average = Vector()
    P0 = Vector()
    P1 = Vector()
    for loc in prev_locations:
        #  add together location average and loc
        loc_average += loc
    # divide loc_avrage by loc count to get the actual average location
    loc_average /= loc_count
    # place delayEmpty in the priorframe location
    empty.location = prev_locations[0]

    #the clever bit
    #create previous frame Position variable
    P0 = loc_average
    #create current frame Position  variable
    P1 = target.location
    #if no distance travelled rotation is the same as prior frame
    if(P0!=P1) :
        #find the difference in location between this frame and last
        dif = P1-P0
        #get the distance travelled
        dist = dif.length
        #set the radius from average dimension
        r0 = (obj.dimensions[0] + obj.dimensions[1] + obj.dimensions[2])/3
        angle=dist/r0*2
        vec = dif/-dist
        zUp = Vector((0, 0, 1))
        rotAxis = vec.cross(zUp)
        rotDif = Quaternion(rotAxis,angle)
        rot.rotate(rotDif)
        # print feedback in console
        print("locational difference is")
        print(dif)
        print("distance travelled is")
        print(dist)
        print("vec is")
        print(vec)
        print("angle is")
        print(angle)
        print("rotation is")
        print(rot)
        print(loc_count)
        rotator.rotation_quaternion = rot
        obj.rotation_quaternion = rot

# clear then add a function
bpy.app.handlers.scene_update_pre.clear()
bpy.app.handlers.scene_update_pre.append(roller_function)
#bpy.app.handlers.frame_change_pre.clear()
#bpy.app.handlers.frame_change_pre.append(roller_function)

The last 4 lines are interchangeable, the frame change set is more stable the scene_update allows you to see changes as you drag.


Why is the "Randomize" option missing from my Array modifier (in 2.91)?

Unfortunately, the Randomize function of the Array Modifier is limited to Grease Pencil objects:


Is there a good way to outset from a plane?

First change to edge select mode and select the edges.*

Now Extrude, but not the "normal" extrusion (which is called a Extrude Region) you want to Extrude Individual.
You can get to that by clicking the "Extrude Individual" button on the tool shelf, or by pressing AltE > Edges only.

Now, without doing anything press S. It is commonplace to cancel the translation part of the extrusion by pressing Esc or RMB , but that is unnecessary and not needed (kind of like that redundancy).

Here in a glorious full color gif is the super simple process.

* If you use the keyboard shortcut instead of the tool shelf button, the selection mode can be in Vertex or Edge mode.


Boolean Difference not working with joined mesh

Too close vertexes is not friendly for boolean to work properly:(
The key is to avoid too close vertexes. There are two methods below.

Use individual origins to shrink all cylinders a little bit, you'll get what you need.

You can also rearrange the topology of the base part, more or less subdivision.


Python: does it matter where I save properties?

Blender's Custom properties can be attached to selected blender classes.

All data block types
Bones and Pose Bones
Sequence Strips

Where to place a property really depends on you usecase. If the property is tells something (or enhances) something that is related to Materials why not add it to the material self, so it is easier to find.

Best way to approach this is: Find the most detailed class where it tells something about a single instance of that class. If the property is shared over multiple instances of that class you can move it to a higher level like:

Armature for Bones and PoseBones
WindowManager for Scenes
Scene for most other classes

When placing it with Objects it is also important to find if it is part of the Object (placement in 3d scene) or part of its data (Mesh etc).

At the end it is just normal software design and knowing how Blender is stuctured


How to unwrap multiple planes and have them exactly overlap?

You can do this by using magic UV addon.

After enable addon go to edit mode, select one plane, unwrap it how you need, than press U -> copy/paste UV -> Copy UV

Next select all planes with same size and U -> copy/paste UV -> Paste UV

In this case you need to repeat this operation as many times as you have variations in length.

UPD Found this addon: Textools that can easily achieve your task:


Is it possible to render the object 'selection outline', or mimic it in some way, for a particle system?

I agree, it's a very nice look.. It's easy to just get the wireframe of the cubes, but to capture all the edges created by intersecting faces without Freestyle is next to impossible in EEVEE or Cycles. There are some tricks you can pull with tightened-up AO, but none of them quite do it.
I think I would either shoot a pass in the Workbench renderer, say, displaying Object color of black, with Outline checked and set to white, to use as a mask in compositing later:

Or use the Header menu > View > Viewport Render Animation option to shoot the actual selection outline (perhaps with EEVEE,) bearing in mind you can create a custom theme under Edit > Preferences > Themes > 3D View, and change the Object Selected color:

If you would rather just have the wireframe, just say, and I / someone else will come up with a variety of ways to do that.


Automatic material switch by Render Engine

You can easily do it with drivers.

Click right mouse button (RMB) on render engine name and select Copy as a
new driver
Go to your node, for example Value node (Input->Value)
Put cursor over value field and with RMB click Paste driver
RMB click again and this time choose Edit driver
In driver setting switch type from Averaged to Scripted Expression
Change expression to engine/2 (because Cycles is third engine in list,
otherwise you'll have (0,2) output)


Merging two separated parts back into one perfectly

Have you tried smooth vertex?

Select mesh
Edit Mode
Select these vertices/faces
select smooth vertex from the tools panel

UPDATE:

Another way to do this is adding the thickness to the opposite direction by flipping the face normals and then adding thickness using the solidify modifier. This will add thickness internally so that the original mesh is not messed up as shown below:

I split the sphere into upper and lower half:

I then switched to edit mode and flip normals:

Then add the solidify modifier with the desired thickness and apply it:

as shown I added thickness -0.8 which was added internally.

I then joined the two meshes:

As shown the lower half has more thickness than the upper half.

I wrote the below script to do these steps between two meshes automatically:

import bpy

ob = bpy.data.objects['Sphere.001']
ob.select = True
bpy.context.scene.objects.active = ob
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.flip_normals()
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.modifier_add(type='SOLIDIFY')
bpy.context.object.modifiers["Solidify"].thickness = 0.8
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Solidify")
ob2 = bpy.data.objects['Sphere']
ob2.select = True
bpy.ops.object.join()

A blend file can be downloaded from here:


how do I get the search bar by pressing F3 on my mac

The shortcut for macOS is Fn+F3. This Apple support article explains when and why the Fn is required.

  Use standard function keys

  Standard function keys work differently depending on the app and the keyboard shortcuts that you've set up. Some apps have their own keyboard shortcut preferences that you can customize.

  To use the standard function keys, hold the Fn (Function) key when pressing a function key. For example, pressing both Fn and F12 (speaker icon) performs the action assigned to the F12 key instead of raising the volume of your speakers.

  If your keyboard doesn’t have an Fn key, try pressing and holding the Control key when pressing a function key.


That's because your actual screen ratio is 2880/1800 = 1,6. But your desired ratio of 16/9 is 1,7777 (periodic). This doesn't fit together. Blender (by default and there's no way to change that) does scale your input Video to fit into your Render Resolutions Aspect Ratio (I don't mean the Aspect Ratio Pixel size below the Resolution but the actual resulting ratio of your Resolution dividing width by height).
Because your ratio is off you'll get your black bars to the left and right because the rest is fit into the heigth of 1380 pixels which means that your original input should be 3200 pixels wide to fit into your 16:9 format. But as it isn't Blender aligns it horizontally centered and fills the remaining space with black color.

So you'd have to use the Image Crop function of your Strips Strip Input Properties panel in the VSE to precisely set the area that you'd like to cut off.


I found the solution: activate auto-run of Python scripts in Blender by selecting Auto Run python scripts in user preferences.


Sound real-time spectral analysis frequency peaks

If you are familiar with python, i suggest you have a look to the scipy.fft module.

To use the scipy module inside blender you need to install python3.x on your computer and then pip3 install scipy. Then in a terminal, lunch python and type import scipy; scipy. If everything went well, you have the path to the scipy module.

Then in blender, type:

import bpy
import sys
sys.path.append(PATH_TOSCIPY')
import scipy
from scipy.fftpack

Then you'll need to compute the fft and do you stuff (see more details for this here https://stackoverflow.com/questions/23377665/python-scipy-fft-wav-files)

Cheers


I'm not quite sure why this causes a problem, but this happens because your 'floor' object is scaled to 0 on the 'Z' axis. Selecting the 'floor' and doing Ctrl+A> Scale will 'apply' the scale, which resets the current scale back to 1 but doesn't change the object appearance.

You can see a detailed explanation of the difference between scaling in edit mode vs object mode here.


Are there downsides to increasing viewport samples?

The only disadvantage I see is that it will take longer (as you said) and your machine might run hotter due to the increased time taken rendering, which could after a while decrease the life of your battery, fan, GPU etc. The rate at which your cooling system(s) is running is a good indicator of how much the rendering may be slowing down and/or decreasing the life of your components. Just make sure the rendering not causing the cooling system to run excessively high for long periods of time.


Other formats than blenders .blend don't support Blenders full feature set, have different settings or similar functions, which are not always compatible. Not all Settings, Materials or Datatypes can be saved by export functions. So if you don't want to import your model in a different Program, use the Save As Function to save your file in the native .blend format.


Left click doesn't work in edit mode in saved files

Solved by installing the newest version of Blender (2.81). Thanks for help :)


If you are still on Blender 2.79, you can use the Layer System for this. Simply assign the objects you want to view together to the same layer by selecting them in Object Mode, pressing M and then clicking the layer you want them to appear on.

Objects can appear in several layers, so if you wanted the same chair to be visible in multiple combinations, that can be done by adding it to multiple layers. You do this while holding Shift while assigning the layer.


Why do Meshes animate weird whenever I do a simple rotation?

I was having this issue earlier. Basically, you need to reset the rotation to zero when you put in the first keyframe. So at frame 0, select the mesh, hit ctrl+a and then select rotation. This is essentially like taring a weight scale. Now press "I" and add locRot. Then go to frame 160, rotate it, and hit "I" then locRot. That should fix it. Make sure you always "tare" the rotation and scale after changing it.

Happy Blendering!


This issue happens because your Grease Pencil object has transform data (location).

To fix this: first, in the Stroke tab, unparent the armature from your layer, otherwise the layer will move when you apply the new position.

Then use Ctrl+A or open the object menu and apply the necessary transforms (in this case, location). After this, your location data should revert to 0 but your drawings will stay in the same position. Then, parent the layers to the armature bones again.


What is wrong with my bone rig and what settings have I messed up?

Nothing moves because the "manipulate center points" is checked:


Have you tried the Edge Split Modifier?
It does the trick for me.

This is an Ico-Sphere. I added the Edge Split Modifier to it, then I sharpened all the edges (or just the ones between which there should be no interpolation of normal values), then I added Subdivisions with Mesh > Subdivide, Slices set to 1 and Smoothness to 0, like suggested.

The UVs split as they should.


What kind of file formats can Blender handle?

search on bing 12.300 results

search on google 36.400 results

search on youtube 1.680 results

open your vox file in magicaVoxel.
export it to obj file.
open blender.
import the obj file.

Related
Blender manual: importing & exporting


How can I make a peach material similar to this picture?

Switch Color Management from Filmic to Standard
The rest seems to get Color Ramp
Colors I grabbed by picker directly from your screen

... or you can let contribute also Ambient Occlusion.


Click this icon (see image) or shortcut Altz


How to make a take-off/landing for an airplane in BGE?

I've found out that it has to be rigid body.
Sitting on the "ground" the the rigid body is respecting the physics laws so it is loosing 2
DOF rotations.


Zooming in dope sheet. Change to zoom at current mouse-position?


The proportional editing circle might have been too big and is not showing in your screen. If this is the case, it also explains why your entire mesh is moving because the circle is encompassing everything. To rectify this, scale down the circle by scrolling up the mouse wheel.


Never mind. Found it.  It's in the path_radiance_accum function


The texture is distorted, because you scaled your mesh, and you're not using a UV map.

1) Apply object scale
Because you scaled your object, your scale is probably messed up.
Just go to Object->Apply->Scale
Shortcut: Ctrl+A

Apply scale

2) UV unwrap your mesh
You need to UV unwrap your mesh, so the texture is properly positioned.
In Edit mode, select all through  Select->All
and then go to UV->Smart UV project

Unwrap your mesh

3) Connect your UV map

Add a Texture Coordinate node, and use the UV output.
Add a Mapping node, to control the scale and position of your texture.

Connect your nodes as in this image

Done.


Why pressing F to join two vertices not work?

Actually, if I grab your top vertex and move it to the right...

here is what I have, which means you had some vertices overlapping:

In a bezier curve, a vertex can't be connected to more than 2 other vertices, so just delete these vertices and join again with F, or as pointed out by  vklidu, select all and AltC.


how to stick an object to another object that has a wave modifier?

From your second screen it seems like wrong order of modifiers ... Solidify-Wave-Subdiv ... the order on the third one is correct (Subdiv-Wave-Solidify).
Are you sure both objects use this order?

Few Loop Cuts Ctrl+R

Same modifiers

Another way ... use the Wave modifier only for Plane and for Strip object add Surface Deform modifier with Plane as target. Be sure before Bind disable Wave modifier and enable back after binding.


Solidify modifier material Index offset not working

No stupid question. The answer to it is just obvious, if you know it. I struggled with it myself.  :)

Just add another material to your object. In your screenshot it's not visible, if you did this already. The index for Material Index Offset inside your Solidify modifier points to the position of your material in the material list.

So, if you leave Material Index Offset at 0, the newly generated faces will use the same material as the original object - the topmost material in your list. Set it to 1, and all original faces will use original material, while all new faces will use the next material in your list. Same goes for the rim - give it an own material as needed.


Rendering of objects visible in viewport only!

By default only the eye icon to hide the object in the viewport is shown in the outliner, but you can add other icons including one to prevent the object being rendered.  Click on the Filter icon above the outliner then on the camera icon in the menu that appears. Hover over each icon for a description of what it does.

You'll then find another column of camera icons in the outliner which you can use to prevent the object being rendered as shown below.


Render semi-transparent volume with cycles

PNG images can't represent objects that emit light but not block any light, due to the way they represent transparency. For that reason, you must always have some amount of volume absorption for the emission to be visible when saved as a PNG image.

If your volume has zero density, you could use the flame to drive the volume absorption density, adding just enough to keep the flame visible.

The render and compositing image representations and EXR images can represent such objects, but this information can't be preserved when displaying in the image editor or converting to PNG. This is one of the subtle differences between associated/premultiplied and unassociated/unpremultiplied alpha.


How to turn a bezier into having squiggly lines

If you're talking about the normals, go into the Viewport Display panel to display them:


You've pasted an armature animation (series of bones keyframes) after another one. But when it plays, your bones jump from their position at the end of animation 1 to their position at the beginning of animation 2. Like that:

As we can see your bones are not at the good position on the X axis at the beginning of the second part of the animation. The simplest solution to fix this is to use the Graph Editor:

Select the root bone of your armature (the bone that is the parent of the bones hierarchy), if you don't have any, select all the bones. Open the Graph Editor, enable the Only Include Channels Relating to Selected Object (arrow icon) so that you only see the curve of the selected bone(s), lock all the tracks (padlock icon) except the X Location one.

On the horizontal axis you have the timeline in frames, on the vertical axis you have the position of the bone on the X axis. As you can see in my screenshot the X Location curve clearly shows the jump at frame 21 that makes the bone go back far from its position at frame 20.

With B (box select) select all the curve vertices on the right of this frame (frame 21 to 40 in my example), and move down so that it aligns with the previous position (position of frame 20 in my example). Now the armature has moved on the X axis at the good position.


How can I make unique rocks in Blender without having to model them by hand?

Add Rocks

The Add Rocks addon allows you to quickly add randomly generated mesh rocks, thus making it much quicker to add detail & realism to your outdoor settings. Here you can read about this addon.

Here are some examples of the presets and some variations:

To enable this addon:

Download it from here.
Now open User Preferences:
Info header  →  File  →  User Preferences

Click on Addons at the top of the Preferences window, and then click on the Install from File button at the bottom of the window:

Next:

Find the addon file and select it. (NOTE: The file can be a .zip file -- you don't have to unzip it first.)
Click the Install from File button
Then enable the addon by clicking on it's checkbox on the far right
If you want this addon to be enabled by default in the future, click on the Save User Settings button:

To add a rock to your scene:
SHIFTA -> Mesh -> Rock Generator

Adjust all the settings:

One very neat feature is that you can make as many rocks as you want all at once, each one unique, by setting the Number of Rocks at the top -- here I'm making 500 all at once:

Notice at the very bottom, there are some presets:

NOTE: You MUST set all the settings the way you want them to be before you do ANYTHING else, otherwise they cannot be changed through the same settings panel. After you click away from the rocks, you can only modify their parameters via the modifiers that are on them:
Object Properties panel -> Modifiers tab

Apply All Modifiers BEFORE Rendering

One thing to be careful of is that each rock created has many modifiers on it and these DRAMATICALLY slow down rendering speed! So, to get around this, you really need to Apply all modifiers BEFORE attempting to render your scene. To do this you can do either of the following:

Manually Apply Modifiers:  This is an easy method, but it can take a lot of time if you have more than 1 rock:
Select rock -> Object Properties panel -> Modifiers tab -> click the Apply button on the modifier

Convert All Rocks to Mesh: This is the best and quickest method if you don't want to sit around clicking "Apply" for a long time:
Select ALL the rocks at once -> ALTC -> Convert to Mesh

This will very easily Apply ALL the modifiers without you having to do anything else and you can now render quickly and easily:


Can't Mirror Bone Roll When X-axis Mirror is turned on, bones snap to other side & overlap

For anyone who's also had this problem: you need to apply scale and rotation to your armature in object mode. Once you apply these, then go into edit mode and mirror your armature. X-axis mirror should then perfectly match the bone rolls if you press ctrl-r and press enter without moving the mouse.


Is a smoke simulation with more than 512 divisions possible?

Unfortunately, no. Also I believe that it always alocates the same divisions along each axis, so generally you might want to keep it smaller than 512. You could take a look at using the smoke high resolution to get more details. If you want a render at that distance you could consider using particles instead. Or you could divide it into separate shots.

edit: Yes, do as gandalf3 suggests, but you'll need adaptive domain enabled for that. Otherwise it will move the current simulation data.


How could I fix artifacts caused by the armature modifier "Preserve volume" option

Once I weight paint again I can get rid of what you show in your video so I think it's all a quetion of good weight painting.
See the bones that are on this bone layer, they are the ones that deform your mesh:

Select your armature, shift select the mesh, switch to Weight Paint mode, then select one bone after the other and look at their influence on the mesh, for each of those bones the influence goes too far, you need to correct this:

Make sure that you are in Subtract mode and that you can paint through (the good settings below):

Once done it seems to work fine:


How to stash all actions to current armature?

This does it, but i can't actually unregister the addon.

It needs to be run from the space menu with the cursor in the dopesheet in action mode.

bl_info = {
    "name" : "stash all",
     "catagory" : "Action",
}

import bpy

class StashAll(bpy.types.Operator):
    """My Stashing Script"""
    bl_idname = "action.stash_all"
    bl_label = "stash all"
    bl_options = {'REGISTER'}

    def execute(self, context):
        ob = bpy.context.object

        if ob.animation_data is None:
            ob.animation_data_create()

        ad = ob.animation_data

        for action in bpy.data.actions:
            ad.action = action
            track = ad.nla_tracks.new();
            track.strips.new(action.name, action.frame_range[0], action)

        ad.action = null

        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()


How to change X location axis for particle system?

There is a rule to give the proper orientation:

The particle object is considered along its Y axis and this is the axis that will give you the Z (say Z for now, but see below) on the mesh the particles are.

So if you want the carrots to be up (Z), you'll need to change them in edit mode so that what will be Z as particles is Y for the carrot mesh.

On the image above, all particles are well oriented, but the monkey that is used as particle object is oriented along Y, with no rotation.

Once you have this rule in mind, you now can play a bit with the particle orientation options:

As shown above, the orientation options are accessible if you check 'advanced' on a hair particle system.

The main option is 'orientation axis' (10 possibilities). Each of them is to indicate in which direction of the emitter the Y axis of the particle will be.

For instance, 'normal' is to say the Y will be along the normal of the emitter faces. 'Global X' is to say Y will be along X world axis, whatever the emitter orientation is. 'Object Z' is to say Y will stay along Z of the emitter even if it is rotated.

I let you experiment about the other options.

Now, as said previously, you need to orientate appropriately you model in edit mode:

In the image above,

On the left, Suzan oriented as usual: but it's top is along Z
On the right, Suzan rotated in edit mode so that its top is along Y (Y is the axis we want)

Also, the particles will be emitted from the object origin. So eventually, you'll need (still in edit mode) to adjust the geometry to that the origin is placed conveniently to your needs.

Other options that may interest you:

Randomize is to random above the Y axis (so randomly rotating using X or Z axis too)
Phase is to give an initial orientation around the Y axis
Randomize phase is to random around the phase
Scale and scale randomness is to adjust the scale and to give randomness to it (so that all carrots are not exactly the same)


Try to recalculate normals = shift +n for me, some have ctrl+n, in edit mode. I had edges that became stripes instead of texture and did this.


Rendering a colored plane with NO shading creates weird pixels at borders?

Because you are using Repeat extrapolation in Image Node.
Those pixels are just texture's pixels from opposite side of texture.
Set Extend instead.


How can I automatically move a robot's body to the correct height based on its leg(s) rotation?

You can parent the leg to the body so it moves automatically when the body moves, then with the leg selected, in the Numbers Panel right-click on the X rotation, Copy as New Driver, select the body, right-click on the Z location, Paste Driver. The body will now drop down to Z = 0, because that's the current rotation of the leg (at least in my case). Now you may notice the body moves based on the leg's rotation, but not yet correctly:

To properly convert the angle to a vertical offset caused by it, trigonometry has to be used:

In my example the length of the leg is not exactly 1, so I need to multiply that length (2) by the cosine, and the formula, in my case, becomes: 2 * cos(rotation_euler).
With the body selected, right-click on the Z location again, and choose Edit Driver. Change its type from Average Value to Scripted Expression, and update the formula to correctly base the body's height on the leg's rotation:

Effect:

There's some additional problems to be dealt with:

position of the leg lags 1 frame behind, because while it's based (due to parenting) on the cube, the cube is also based on it (due to the driver); the solution is to clear the parenting and copy-paste the driver from the cube's position also to the leg's position;
the formula assumes the leg has 0 thickness; the simplest solution is to put a sphere on the bottom of it and add an additional offset in the formula equal to the radius of the the sphere;
the body can fall through the floor; the solution is to either use a constraint (and because the leg is not parented that means another constraint for it as well), or use max() in the driver to clamp the minimum value, like so: max(1, 2 * cos(rotation_euler))


Cloth simulation weird behaviour - Blender 2.8

I was having the same problem and read elsewhere that wrinkling can happen because of small distances between vertices (or something like that).

My solution here was scaling up the whole scene 10x, applying transformation (Ctrl-A) and then running the cloth animation/simulation...

(It even appears that simulations runs faster that way, too.)


How to add non animated text in blender video editing easily

In video sequence editor, press shift-A then select text, or in the header Add>Text

Is this what you are looking for?
Image from https://docs.blender.org/manual/en/latest/video_editing/sequencer/strips/text.html


Retopologize mesh to achieve uniform face size

Detail flood fill

An useful tool for lower the difference in faces resolution along a surface (expecially if you are working with tris) could be the Detail Flood Fill options available in Constant detail  mode whyle you are sculpting with Dynotopo enabled.

From the manual's page:

  When using Constant Detail mode, this option is made available, allowing you to fill the entire object with a uniform detail, based on the detail size.

With the eyedropper you can pick the target resolution (something between high and low in the image sequence above), then the operator will decimate the areas that are more subdivided and subdivide the areas with lower face resolution while tying to keep the overall surface profile untouched.


You need not reinvent the wheel, you can use functions from menu File -> External data -> make all
 paths relative (absolute). The python code of this comands are:

bpy.ops.file.make_paths_relative()

bpy.ops.file.make_paths_absolute()


You could create your robot's basic armature, with all its limbs out. Parent the limbs bones to the body bone. When you'll parent the object to the armature, use the With Empty Groups mode then in Object Data > Vertex Groups assign each part of the mesh to the group it is supposed to be part of.

Then in the Pose Library save the basic pose and save a second pose that will be the contracted pose, here I've scaled my bones on the X axis. Click on the "+" button to save a pose:

Now whenever you want you can recall the contracted pose (select it and click on the magnifying glass icon of the Pose Library) and keyframe it in the Dope Sheet:


Regroup channels in Object Transforms of Graph Editor

In the dopesheet and graph editor, you can select some or all channels and use the menu Channel with the "group channels" (Ctrl G) and "Ungroup channels" (Ctrl Alt G) functions.
This grouping/ungrouping is useful only for organization purposes, when you have lots of curves and you want to organize them, it has no impact on their behaviour.


The black spots seem to be the fluid intersecting the surface of the background. Try moving the fluid up. Also there is no reason to use the old fluid simulation system. Mantaflow is superior. I would recommend using current version and the new fluid simulation system. It will give you better results.


How does the Particle Instance modifier work?

This modifier allows FX but works only with another object that has a particle system.
An example:

Add a cube and give it a particle system with Hair,
Add a UV sphere and apply particle instance to it,
Now, in Particle Instance, select the  cube in the object field.
In Particle System experiment with hair length.

Try out all options.


How can I use this Python module in Blender?

The midi library seems to be only for Python 2.x. Whereas Blender runs off Python 3.3. But if you are adventurous enough, you can probably get it working.

1. Installation:

Download the source from Github. Copy the src folder from the package into blender.app/Contents/MacOS/2.70/python/lib/python3.3/site-packages/ and rename the src directory as midi

2. Auto Convert to Python 3 syntax

Run 2to3 * -w on the midi folder, to automatically convert as much of the code as possible to Py3k. The 2to3 command should come with a system installation of Python3.

3. Manual Fixin'

At this point, you should be able to at least get Blender to recognize the library. Fix errors as you encounter them.

Good luck!


How to add current state to history by script?

Its functionality is limited, but bpy.ops.ed.undo_push() may give you close to what you're looking for.


How do I make an export addon pre-populate filename with name of the selected object?

Set in the invoke method.
As noted in these answers the IO helpers have invoke and check methods that are doing some things behind the scenes.
https://blender.stackexchange.com/a/198924/15543
https://blender.stackexchange.com/a/207665/15543
The export helper invoke method, that if not set sticks in the name Untitled, simply change this to that of the context object.
def invoke(self, context, _event):
    import os
    if not self.filepath:
        blend_filepath = context.blend_data.filepath
        if not blend_filepath:
            blend_filepath = context.object.name # <=== UPDATE
        else:
            blend_filepath = os.path.splitext(blend_filepath)[0]

        self.filepath = blend_filepath + self.filename_ext

    context.window_manager.fileselect_add(self)
    return {'RUNNING_MODAL'}


Why doesn't Blender render the the geometry I've created properly

Well this is an interesting one. It seams blender displays DupliGrouped objects incorrectly, and renders them correctly.

You made one wheel, using a Curve modifier and a BezierCircle to form the tread of the wheel. Then you distributed the wheel group to the other three places using DupliGroups.

The trouble is you did not group the BezierCircle (you had three and the one being used in the modifier is not in the group), so when you distribute the
wheel around the Curve modifier on the tread is still pointing to the first BezierCircle. Which because the origin of the curve is now in a very different spot then the wheel object, the curve modifier is making a mess instead of a tire.

Simply add the BezierCircle.001 object to your group named "Group" and all the wheels will render correctly.
To add it to the group select the BezierCircle.001, then in  the object tab of the properties panel scroll down to the Groups section and press the large Add to Group button. Choose your group named "Group" from the list.


Is it possible to read a ply format file using python code in Blender

Yes and this applies to most/all other formats.

You can:

Call the operator from Python:bpy.ops.import_mesh.ply(filepath="/path/to.ply")
Import the addon module and run the function which is used for importing:See the source code, its not to hard to see how you would call the load function. eg:

from io_mesh_ply import import_ply
import_ply.load_ply("/path/to.ply")


How to make a fluid animation / transformation of a simple cube?

This is difficult to achieve with just shapekeys. I'd highy advise you to use multiple cubes, which are keyframed in scale and location. The way your preview image is rendered, there won't be a visual difference.

Because shapekeys store the relative positions, adding and removing vertices is tricky. Nevertheless, this is possible with shapekeys.

compulsory gif to indicate a highend answer

Prepare the first extrusion, by moving insetting a face at the correct position in the Basis shapekey.

Add a key and perform an extrusion.

Prepare the next extrusion, by insetting again in Key 1.
Then, with Key1 at a value of 1 use the Create new shape from mix functionality.
Select the new shape Key 2 and choose Key 1 as the basis for blending. This way Key 2 will be relative to Key 1.

Perform the next extrusion. Note that Key 2 can now be layered on top of Key 1yay but will not be correct if we use it without Key 1nay. I don't think we can easily surpass this limitations will relative shapekeys.


Model limbs condensed in one place in Unity3D after applying Scale to armature

Ok so I think I've figured it out myself. In Unity I changed the animation type from humanoid to generic and back while fiddling with the properties of the asset. This somehow seems to reset the model's import settings and it works fine now. Thought I'd leave this here for people with a similar problem in the future to see.


I have a few possibly helpful pointers:

Foremost, I have noticed that Blender doesn't always play nicely with .png files (especially with normals and displacements). Try a .tiff, or other type.
I had the same issue of 'undulating surfaces', surfaces that should be smooth, but appear bumpy for no apparent reason.
Second, I notice thin, horizontal rectangles in your second image. Check that your mesh geometry is composed of squares, not rectangles. Otherwise you'll experience issues when displacing or otherwise deforming the mesh.
Lastly, double check that your UV's are unwrapped properly, same reason as above. If the UV is stretched in one direction and not another, it will distort the effect. Not sure if this is the problem here but thought I'd suggest in case.

One more thing: you might want to try using adaptive subdivision in this case.
Andrew Price does a good job explaining what it does and how to use it in this video.

I hope one of these helps!


Why the same variable works differently based on location in the code?

In example P1, you are assigning the result of obj.matrix_world.to_translation() to a variable named objWorldPosition and then loop over all the frames. This does not change the value of the variable.
In the second example, you are asking the system, after each frame change, what is its position, which is different.
The equivalent between you and another human would be, for P1:

You: How far away are you from the tree?
Human: 5 steps.
You: Please walk 150 steps and for each step answer the question: "what was the number you just told me?"

P2:

You: How far away are you from the tree?
Human: 5 steps.
You: Please walk 150 steps and for each step answer the question: "how far are you from the tree?"

It's very logical to get the same answer each time in the first place, and a different one in the second.
This allows for example doing this
print(objWorldPosition - obj.matrix_world.to_translation())

to find how much your human moved from the time it started moving, that wouldn't be possible if objWorldPosition didn't store the variable.
That said, there is a way to do what you are trying to do, i.e. not having to call obj.matrix_world.to_translation() each time. You can assign a function to a variable instead of it's result (like telling your human,

Please walk 150 steps and for each step answer the question I just asked you

). This code does that:
#Example P2
import bpy
obj = bpy.data.objects["Empty"]
objWorldPosition = obj.matrix_world.to_translation
sce = bpy.data.scenes[0]
for i in range(0, 150):
    sce.frame_set(i)
    print(objWorldPosition())

Notice the missing () in line 4 and the extra () in the last line. This means that the actual question (the "call") is performed inside the loop, not before it.


Help! Most of my project doesn't show, but still renders

It might be due to the clipping border as Serge mentioned above, you can click on View > Clipping border or use the ALT + B hotkey


Only show whole dots that aren't obstructed by mask

Rather than trying to make the dots behave to fully hide/show based on whether there are wholly or part within the masked regions, it is far simpler to control the masks so that they only ever cover whole dot regions. This can be done using the Modulo function to calculate the distance to the nearest boundary and adjust the edge to that boundary. In this way the mask edge will 'jump' to a suitable position where it will not cut any of the dots.
Consider the following material nodes :

The Object coordinates from the Empty (Texture Coordinate node near the top) are used to produce the mask by applying an Absolute operation followed by a Less Than on each of the channels. The result is combined using Minimum to produce the mask. Note that the Vector Math node is used for Absolute to perform the same operation on each channel of the vector. In this way, moving the Empty moves the mask and changing the values in the Less Than nodes will affect the Width and Height of the mask around that point of the Empty. Note that for this to work the Empty must have the same Rotation and Scale as the main mesh (otherwise the coordinate systems won’t work).
In addition, a modulo (*see below) operation is applied to the Object coordinates. This will return the remainder of dividing the coordinates by the desired 'pitch' (size) of the grid. By Subtracting this from the coordinates used for the mask we effectively offset the boundary of the mask to the edge of the grid defined by the 'dot pitch'. The result of the Modulo is also used to indicate the position within each grid cell and this is used (by scaling (Divide), offsetting (Subtract 0.5) and getting the Length to determine the distance from the centre of a circle to generate each 'dot' (controlled by the other Less Than node).
The result of the mask and the 'dot' is combined via a Multiply node to produce only complete dots within the mask.
Note : The standard Modulo function handles negative values by outputting a negative result. This is not suited to generating a grid in this way but the Modulo, Add, Modulo operations correct for this (see https://blender.stackexchange.com/a/122489/29586 for an explanation of this).
Here's the result of moving the Empty.

The Value node can be adjusted to set the 'dot pitch', the X and Y Less Than nodes to adjust the mask Width and Height respectively, and the Length Less Than node to adjust the 'dot size'. The empty can then be used to position the mask and only complete dots will be shown.
In order to support multiple masks, simply replicate the 'top row' of nodes (from the Texture Coordinate of the Empty to the Multiply used to merge with the dots) for each 'Empty' in use - and combine each row with a Maximum node.


How can we animate a ball rolling over a path?

You can make the ball roll with a Driver, first - this is what you should already have setuped, make sure the ball's Follow Path constraint option Follow Curve is set:

Add single driver to the X axis rotation field (RMB on field > Add Single Driver R)

Setup the driver like this (scripted type, no variables), also make sure Auto Run Python Scripts in User_Preferences > File is enabled:

Lets add a driver variable for the curve evaluation time, call the variable "eval_time", in the Prop field put the curve and Path is eval_time:

Now its time for the driver expression. You will need to know the ball's diameter and the curve's length.

diameter you get from ball's dimensions in properties panel N:

curve's length you get from running this script with curve selected:
 import bpy
 import bmesh
 orig = bpy.context.active_object.name
 bpy.ops.object.duplicate_move()
 bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
 bpy.ops.object.convert(target='MESH', keep_original=False)
 bm = bmesh.new()
 bm.from_mesh(bpy.context.active_object.data)
 edge_length = 0
 for edge in bm.edges:
     edge_length += edge.calc_length()
 bpy.context.window_manager.clipboard = str(round(edge_length,3))
 bpy.ops.object.delete()
 bpy.context.scene.objects.active = bpy.context.scene.objects[orig]
 bpy.context.object.select = True

It will calculate the length and store it in the clipboard, you can then paste it with Ctrl+V.

The driver expression is: -2 * curve_length / diameter * ( eval_time / eval_max ):

Let's break the expression down:

(eval_time/eval_max) is the only element that changes and it goes from 0 to 1 as the ball moves along the curve

the rest equates to a number, that says how much has the ball turn to rotate along the whole path
If the ball turns 1 complete rotation (360°), it will travel pi*diameter units.
So to cover the path it needs curve_length / pi*diameter of full rotations.
The catch is that driver expects the input in radians, not degrees. So a full rotation of 360° is 2*pi radians.
(2pi) * curve_length / pidiameter, we can simplify and remove pi
The last thing is the minus in front of the expression (-), this is to influence which direction we want the ball to roll. You can use the right hand rule to see what rotation is positive, and what negative (thumb in axis direction, fingers point in positive rotation direction).

Now the ball will roll accordingly to your curve's Evaluation Time:


what are the pros and cons of using particle systems when simulating smoke/fire?

One reason for particles is that you can control the smoke flow even more. Think of boids e.g. which cannot be done directly. Also the forces are sometimes difficult to handle and the result can only be guessed, so you have to tweak values, bake it again and check, whether the result is useful. Particles react with more granularity and the results are better reproducible and much faster to produce - i think.


Is there any way to calculate camera focal length and sensor size from a single image?

If anyone else is stuck : https://www.blendernation.com/2012/01/23/blam-geometry-camera-matching-add-on/

This add-on calculates the focal length from q couple of lines drawn on the image


If you want to bake your simulation you need the Physics properties > Cache > Type to be set to either modular which allows you to pause the bake in between and resume it or final which does not allow these options.

If its set to Replay simulation will be baked using the timeline itself and no "Bake" button will be present. (You will need to start from frame 0 to reset the simulation)


Assign a draw callback on a space.

It is used to assign a draw callback to a space. Basically every time the space is redrawn it calls the assigned method.   Most often used in conjunction with bgl and blf to draw overlay on the screen.

See the modal draw template 'Text Editor > Templates > Python > Operator Modal Draw'.

In which the draw call back method is

def draw_callback_px(self, context):
    ...

The modal timer operator when run adds a draw call back, aptly named draw_callback, to the 3D View space bpy.types.SpaceView3D and stores the (handler's) handle to self._handle  (the handlers are internally assigned to a list on the space class. (Very similarly to application handlers)

        self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')

The arguments, are passed using a list of args args = (self, context)

While the operator is running it draws on the screen everytime the window 'WINDOW' draws a ''POST_PIXEL'' event.

When the operator finishes the handler, with handle self._handle is removed..

See examples:

How to draw geometry in 3d View window with bgl

How can i add a text help window and a help button into the 3D View?

https://blender.stackexchange.com/a/113937/15543

In the last link, the draw callback is being used to listen for changes to text files.  Not sure it is good practice to do such as it seems to break the no changes in draw methods paradigm: ,in experimenting I added a rotation increment to context.object .. which while text space draw handler is active makes the object rotate in conjunction with scrolling, typing


Apply your bevel modifier, then it works.


python open file browser to Group directory of blend file?

Via the link or append operator

Test script, template file as a scene property in way of example, possibly better set as an addon preference.

import bpy
from bpy.props import StringProperty

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

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        col = layout.column()
        col.prop(scene, "template_file")
        # check if fp exists
        col.operator_context = 'INVOKE_DEFAULT'
        if True:
            # write an op to
            directory = "%s/Group/" % (scene.template_file)
            op = col.operator("wm.append")
            op.directory = directory
            op.instance_groups = True

def register():
    bpy.types.Scene.template_file = StringProperty(
            subtype='FILE_PATH')

    bpy.utils.register_class(HelloWorldPanel)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)
    # del prop

if __name__ == "__main__":
    register()

Alternatively A file test.blend that has 5 groups in it.

>>> fp = "/home/batfinger/Desktop/test.blend"
>>> with bpy.data.libraries.load(fp) as (data_in, data_out):
...     pass
...

>>> data_in.groups
['Group.004', 'Group.003', 'Group.002', 'Group.001', 'Group']

a group name above can be passed as filename argument to operator as show in
Appending an Object Without A Link

Links re linking appending from files.

How to Link/Append a data-block using the Python API?

Import group from external blend file

How to search through multiple Blender files to find a specific object?


Blender painting brushes shortcut selection polygons 2.82. Coloring a character with vertex-group in draw mode

Your viewport has a button there that I highlighted that turns on Face Selection Masking, and then you can select the polygons you want to limit your paint to.

I see your project is very high poly, seemingly in dyntopo sculpt so you are using Vertex Paint. If you were to first make a copy of the mesh, you might try remeshing to get a quad version at low enough resolution that you could use multiresolution modifier to resculpt lost detail but then afford to uv unwrap and use actual texture paint mode and make use of layers of images.
Edit: Here is a shot of where you can convert a copy of the dyntopo sculpt into remeshed quads in sculpt mode, but this is only when dyntopo is turned off.

This one shows what kind of result I went with prior to adding a multiresolution modifier and resculpting close details.


Is it possible to replicate a location constraint in the BGE?

Constraints are available, as actuators, but seem to be working strangely.

The constraint clearly has an effect, but it's not the hard boundary I would expect. The cube is still falling at a slow speed.

The documentation for Location Constraint says:

  Limit the position of the Game Object within one World Axis direction. To limit movement within an area or volume, use two or three constraints.

It implies that this constraint should be a hard limit instead of a slow-down effect.

Maybe Blender is buggy, so I tried to make this simple constraint as a Python script.

import bge

controller = bge.logic.getCurrentController()
current_object = controller.owner

if current_object.worldPosition.z < 0.0:
    current_object.worldPosition.z = 0.0

But the effect was the same! It was still slowly slipping downwards.

I guess it's because of the ever increasing downward speed, which teleports the objects further and further from the boundary after the constraint teleports it back to the boundary. The constraint works, but because it's not the only effect on the object, it's looks like it fails strangely.

To fix that, I see two practical possibilities:

Nullify the velocity of the object. This has the effect of the boundary being "sticky", as it also nullifies movement parallel to the boundary. Adding current_object.setLinearVelocity((0.0, 0.0, 0.0)) to the above script has this effect.
Switch off or negate the force and associated momentum when the object is at the boundary. This requires knowing all forces that act on the object.

Extending the above script:

import bge

controller = bge.logic.getCurrentController()
current_object = controller.owner
velocity = current_object.getLinearVelocity()

if velocity.z < 0.0 and current_object.worldPosition.z < 0.0:
    current_object.worldPosition.z = 0.0
    velocity.z = 0.0
    current_object.setLinearVelocity(velocity)

It has the correct effect of limiting to the boundary, but random or changing forces pushing towards the boundary will create a small wobbly effect.

This all works on the object's "center", so if you want to have the object meeting a surface instead of intersecting it, you will have to calculate the boundary with the correct offset for the object.


3D objects in tracker scene slide off position

The most common error is this: the shot has no parallax. Meaning that the camera is stationary, it is just rotating, but with no displacecement.

Shots like those cannot be solved with the default solver, but need to be solved as tripod. Read:
How can I get better results when doing camera motion tracking?
A few words of advise: track objects at the point where there is more contrast, like the window on the back, don't track the middle where all of the pixels have almost the same value, track a sharp edge or features that show distinct characteristics.

In this case the tracking is accurate and the tripod solution is as good as it is going to get, but know this: you will never get 3D reconstruction out of a tripod solve. You will only get a camera movement that resembles that of the original camera. Without parallax there is no way to estimate depth, meaning how far away objects are from the camera. The tracker for the window across the freeway will end up at the same distance from the camera as the trackers for objects in the foreground.
The tracking points are projected into a sphere around the camera, there is no distance information. So in this case you need to be vary careful in setting the lens parameters correctly and try to match the scale of the 3d models to that of the real world. Grab the camera and try to move it so that it is at the height of the real camera, and for the actual distance try to create some geometry that matches the dimensions of real objects. Then you might need to adjust the size of the camera to match the geometry to the objects in the scene. In other words you are up for a lot of work and lots of guessing. There are no automatic tools for accurate solving without proper depth estimation.
As an alternative, try using single image in fspy and determine the camera lens, height and scale there, and use those parameters for the tracked camera.


Is there a way to have a transparent distorted material in Blender Render?

Is this the kind of distortion you wish to obtain?

I used a curved subdivided smooth glass and played with some raytrace transparency settings...


The bright purple colour indicates an image can't be found.

Use File->External Data->Find Missing Files to choose a folder containing the textures it is looking for, which may be the folder above the one with images in it. It may be that the texture folder is meant to be moved inside the object folder not next to it.


Question about False Color in Render Properties

Generally, just try to avoid pure White and pure Black areas

White represents High end clipping - you lose details for anything brighter
Black represents Low End clipping - you lose details for anything darker

Three things to remember:

You can always increase clipping later, but you can't recover clipped details from exported JPG/TIFF/PNG
Keep as much details for editing and only clip colors in your final photo
You can have as much clipping in your final photo as you want, there's no right or wrong

How to correct an overexposed photo (with pure white areas)

Here's a detailed chart of the values for the coloring for the false color:

Source: https://sobotka.github.io/filmic-blender/


Python: process mesh so that longest edge length < x

Example subdividing the default cube.

import bpy
import bmesh

threshold = 0.1
obj = bpy.data.objects['Cube']
bm = bmesh.from_edit_mesh(obj.data)

#do ... while
while True:
    edges = [e for e in bm.edges if e.calc_length() > threshold]
    if not edges:
        break
    bmesh.ops.subdivide_edges(
        bm,
        edges=edges,
        cuts=1
        #use_single_edge=True,
        #use_grid_fill=True
        )
    #triangulate
    bmesh.ops.triangulate(bm, faces=bm.faces, use_beauty=True)

bmesh.update_edit_mesh(obj.data)


This solved my issue:

    mat.transparency_method = 'Z_TRANSPARENCY'
    # need the following 2 lines for alpha to work
    mat.use_transparency = True
    bpy.context.object.show_transparent = True


(Blender 2.8) Why is my smoke simulation animation not visible in flow type?

For the smoke simulation, you need two objects.

One is the source of the smoke (Flow), and the other is the volume in which the smoke will appear (Domain).

The Flow object MUST be inside the Domain object, otherwise you will never see anything.

If you use the Quick Smoke option, it makes the selected object the Flow object, and automatically adds the Domain for you (typically a cube).  It's worth experimenting with Quick Smoke in a separate blend file or collection, just to see how it works.


I've had a simmilar problem. While by all means I'm not a Blender pro, in my case the problem was simply solved by applying the transform.

Have you tried it?


You have DOF enabled but haven't set a focus distance.  Turn off depth of field by setting the aperture size to 0.