How to get the value of face area using python

You can use bmesh to do that.

The code is fully commented below.

Using mesh triangulation

The only non intuitive part about bmesh and uv access is you need to get it using face loops.

Face loops are elements that can be indexed by the corresponding bmesh loops layer so that you can get the corresponding value in the loop (last line in the code before the print).

Note also that uv 2D coordinates are converted to a 3D vector so that tri_area function can work. This is a facility. You may want to write a more specific calculation for 2D tri area.

import bpy
import bmesh
from mathutils import Vector

# 3D tri area ABC is half the length of AB cross product AC
def tri_area( co1, co2, co3 ):
    return (co2 - co1).cross( co3 - co1 ).length / 2.0

# Get the object
obj = bpy.context.object

# Construct bmesh
bm = bmesh.new()
bm.from_mesh( obj.data )

# Triangulate it so that we can calculate tri areas
bmesh.ops.triangulate( bm, faces = bm.faces )

# Ensure faces access
bm.faces.ensure_lookup_table()

# Get the uv map
uv_loop = bm.loops.layers.uv['UVMap']

# enumerate the faces
for face in bm.faces:
    # Get the face area (can also be 'face.calc_area()')
    face_area = tri_area( *(v.co for v in face.verts) )
    # Get corresponding uv area
    uv_area = tri_area( *(Vector( (*l[uv_loop].uv, 0) ) for l in face.loops) )
    print( face.index, face_area, uv_area )

Using triangulation on the fly

The interest is to have the final result at the polygon level so that areas can be directly compared to the mesh as it is.

The principle is nearly the same but we use bm.calc_loop_triangles() which gives us several loops of tris each referencing the initial faces.

As the areas for each face will be obtain by part (one tri at a time), we use a dictionary to cumulate the results (nothing gives a guaranty that each face is cut continuously in the resulting loop).

import bpy
import bmesh
from mathutils import Vector

# 3D tri area ABC is half the length of AB cross product AC
def tri_area( co1, co2, co3 ):
    return (co2 - co1).cross( co3 - co1 ).length / 2.0

# Get the object
obj = bpy.context.object

# Construct bmesh
bm = bmesh.new()
bm.from_mesh( obj.data )

# Ensure faces access
bm.faces.ensure_lookup_table()

# Triangulate it so that we can calculate tri areas
triangle_loops = bm.calc_loop_triangles()

# Get the uv map
uv_loop = bm.loops.layers.uv['UVMap']

# Initialize face entries
areas = {face: (0.0, 0.0) for face in bm.faces}

# enumerate the loops
for loop in triangle_loops:
    # Get the face
    face = loop[0].face
    # Get current areas
    face_area, uv_area = areas[face]
    # Add tri surface area
    face_area += tri_area( *(l.vert.co for l in loop) )
    # Add corresponding uv surface area
    uv_area += tri_area( *(Vector( (*l[uv_loop].uv, 0) ) for l in loop) )
    # Set the result in the dictionary
    areas[face] = (face_area, uv_area)

# Print results
for face in areas.keys():
    face_area, uv_area = areas[face]
    print( face.index, face_area, uv_area )

Note: triangulation calculation is not trivial and several algorithms may give different results, so for coherency in all cases we need to ask Blender apis how the triangulation must be done.


How to render an environment to a Cube Map in Cycles

Here is how I solved this - and there's a download link at the end.

(Coordinates written as 1,2,3 refer to X:1 Y:2 Z:3, for example.)

Setting up the "Cube Cam"

Add a Camera and an Empty at location 0,0,0 and set rotation of each to 90,0,0 degrees. If you choose "Arrows" for the Empty display type it may help avoid confusion later.

Parent the Camera to the Empty. The reasons for rotating and then parenting in this order are so that the Camera's coordinates will match the reference image above, and so that the Empty's -Z will point in the same direction as the Camera's when the Camera is facing forward.

The Empty allows the Camera to be easily repositioned, because the Camera's keyframed rotation will be relative to the Empty, not the World.

Set the Camera's Focal Length to 16mm (or 90° Field of View). This is necessary for the "faces" of the cube map to touch exactly.

Set your render dimensions to a power of two, such as 512, 1024, etc.

Leave the Start Frame at 1. Set the End Frame to 6. There will be one frame for capturing each direction of a cube's faces.

Keyframe the Camera's rotation accordingly in these frame numbers:

90, 0, 90 (left)
90, 0, 180 (backward)
90, 0, 270 (right)
0, 0, 0 (down)
180, 0, 0 (up)
90, 0, 0 (forward)

Optionally, you can add a guide object containing text labeling the directions (visible in the viewport, but not in renders), and parent this to the empty as well. And you can group these three objects (Camera, Empty, text guide) together, so that they can be easily appended to other .blend files.

At this point the Cube Cam setup can be appended into any .blend file.

After appending, from within the new .blend:

Go to frame 6, where the Camera is facing forward.
Make sure the Cube Cam is the Active Camera, by selecting it and choosing View > Cameras > Set Active Object as Camera.
Use the Empty to position the "Cube Cam".
Set the frame range from 1 to 6, and specify the Output file name to be something like "cube_tile_".
Set the Render Dimensions for X and Y to a power of 2, for example, 1024x1024. This will be the resolution of each of the 6 tiles.
When ready to render, click the Animation button.

This method of rendering directly from the environment scene is quick and easy, but there is still some distortion that shows up, revealing the cube shape of the cube map if you look closely. The way to eliminate this is to first render an equirectangular (or mirror ball) environment map, and then render that to a cube map.

Equirectangular Map to Cube Map

First, let's review the steps for creating an equirectangular map to begin with. It's pretty simple.

Step 1: Adjust the Camera settings to be Panoramic, then choose Equirectangular for the type.

Step 2: Set the render Resolution so that X is twice that of Y.

Choose a resolution that is significantly higher (perhaps double) the pixel detail of what one of the final cube map's tiles will be. So if one tile of the cube map will be 1024x1024, and two of those tiles will be stacked on the Y axis (doubled), then doubling that to 8192x4096 would give 200% pixel density on Y (and 266.6% on X because of the difference in ratio).

Here's a diagram to make it easier to understand:

Render!

Now, back in the Cube Cam .blend file, in the World context  click the Use Nodes button and go to the Node Editor for the World. Create the node setup for a panoramic environment:

You won't need many samples for this. I did some testing and found that no sample count higher than 20 produces any visible improvement, so I recommend rendering at 20 samples.

Save this .blend file to reuse later.

In the Environment Texture node, click Open to load a specific panoramic image, and render it out as an animation to 6 cube map images.

You can use an image editor such as GIMP, or Blender's compositor to combine the 6 image tiles into one cube map image. Two advantages of doing this in the compositor are that you won't need to rely on other software besides Blender, and you won't need to manually position each tile every time you create a cube map - once you've set it up, it's an automated process.

Edit: While it's really cool that Blender can composite tiles into a single cube map, I have since discovered a faster way to do this using imagemagick. Example syntax:

convert \( 0001.png 0002.png 0003.png +append \) \
        \( 0004.png 0005.png 0006.png +append \) \
        -background none -append +repage cube_map.png

If you still want to do it all in Blender, continue reading...

Putting it All Together With Compositing

In a new .blend (or new Scene, if you prefer), create this node setup in the Compositor:

Let's examine it in more detail.

The Value node for "Tile Size" should be set to the X and Y resolution of one tile (or you can think of it as one "face" of the cube map). So the final image resolution should be this amount times 3 across (X) and this times 2 down (Y). For example, if one cube tile is 1024 pixels, the render resolution should be set to 3072x2048. You don't even have to do any math in your head - just type 1024*3 into input field X, and 1024*2 into input field Y. Blender will calculate it for you. (Okay, maybe 1024*2 is easy, but you can surely see how this shortcut is useful.)

Each Image node is set to load a tile of the cube map (1~6):

These six nodes determine the position of each tile in relation to the whole image, or "canvas":

Set the Multiply nodes to the following values:

The Alpha Over nodes are just for layering the tiles, while preserving transparency (in case you ever need to composite a cube map that contains alpha data). These can be left at their default settings.

A Scale node, which I have labeled "Get Size" takes in the image data of one tile, then scales it to the size of the render (which, as mentioned, should be three times across and two times down in proportion to the size of one tile).

That image data is then sent through a Set Alpha node because the image data is not necessary - all we need it for is getting the correct dimensions. What we get out of the Set Alpha node is a transparent "canvas" that is the size of the render dimensions.

So that's basically it. You can render the image and it will be composited!

I've published a toolkit for creating cube maps to Blend Swap under a CC-0 license. You can Download it Here.


I changed the cloth collision parameters on the collision object that the cloth collides with from 0.008 and 0.003 to 0.002 and 0.001.

This solved the problem.


While the .x3d specifies a Group tag, as of (May 2015) it doesn't appear that the blender .x3d importer does anything special with the tag
It might not be possible to avoid a bit of scripting..

The .x3d importer currently prepends the name 'Shape' to all objects it generates. A simple way to select all objects with that prefix is

import bpy

D = bpy.data
for obj in D.objects:
    if obj.name.startswith("ShapeCylinder"):
        obj.select = True

or also generate the Empty and parent them all in one go.

import bpy

objects = bpy.data.objects

# makes the Empty, adds to scene
MT = objects.new('Empty_Grouper', None)
bpy.context.scene.objects.link(MT)

# parent every new object to MT
for obj in objects:
    if obj.name.startswith("ShapeCylinder"):
        obj.parent = MT

These scripts can be executed from inside Blender's Text Editor. An alternative is to write a thin wrapper around the .x3d importer, something like:

wrapped_importer_x3d.py

In essence what the code below does is:

it loads the existing x3d importer code.
Before triggering it, it stores the list of existing object names
after the import is complete it figures out the names of the objects that have been added
then parents those to an Empty.

You could save this, and stick it into /scripts/addons/wrapped_importer_x3d.py, enable it so:

Then it will be located in Import -> Import x3d parented

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####

# <pep8-80 compliant>

bl_info = {
    "name": "x3d wrapped importer Parents",
    "author": "alias",
    "version": (0, 0, 1),
    "blender": (2, 7, 4),
    "category": "Import-Export",
    "wiki_url": "",
    "tracker_url": ""
}

import bpy
from bpy.types import Operator
from bpy.props import (
    BoolProperty,
    EnumProperty,
    FloatProperty,
    StringProperty)

from bpy_extras.io_utils import (
    ImportHelper,
    orientation_helper_factory,
    axis_conversion,
    path_reference_mode)

from io_scene_x3d import import_x3d

IOX3DOrientationHelper = orientation_helper_factory(
    "IOX3DOrientationHelper",
    axis_forward='Z',
    axis_up='Y')

class ImportX3DBETA(Operator, ImportHelper, IOX3DOrientationHelper):
    """Import an X3D or VRML2 file"""
    bl_idname = "import_scene.x3d_grouped"
    bl_label = "Import X3D/VRML2 Grouped"
    bl_options = {'PRESET', 'UNDO'}

    filename_ext = ".x3d"
    filter_glob = StringProperty(default="*.x3d;*.wrl", options={'HIDDEN'})

    def parent_new_objects(self, object_names):
        objects = bpy.data.objects
        MT = objects.new('Empty_Grouper', None)
        bpy.context.scene.objects.link(MT)

        # for every object in the scene which matches the start of the string
        # parent it to MT
        for obj in (o for o in objects if o.name in object_names):
            obj.parent = MT

    def execute(self, context):

        keywords = self.as_keywords(ignore=("axis_forward",
                                            "axis_up",
                                            "filter_glob",
                                            ))
        global_matrix = axis_conversion(from_forward=self.axis_forward,
                                        from_up=self.axis_up,
                                        ).to_4x4()
        keywords["global_matrix"] = global_matrix

        before = {obj.name for obj in bpy.data.objects}

        response = import_x3d.load(self, context, **keywords)
        if response == {'FINISHED'}:
            after = {obj.name for obj in bpy.data.objects}
            new_names = after ^ before
            self.parent_new_objects(new_names)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ImportX3DBETA.bl_idname, text="Import x3d parented")

def register():
    bpy.utils.register_class(ImportX3DBETA)
    bpy.types.INFO_MT_file_import.append(menu_func_import)

def unregister():
    bpy.types.INFO_MT_file_import.remove(menu_func_import)
    bpy.utils.unregister_class(ImportX3DBETA)

if __name__ == "__main__":
    register()

    # test call
    # bpy.ops.import_scene.x3d_grouped('INVOKE_DEFAULT')


Why does Blender Game Engine sometimes not render texture?

It looks like I had set the scene that was loading differently to use GLSL shading instead of Multitexture shading.


Align object to edge | "Fence-generator"

Presuming the base wall object is aligned along X and long 1 unit.
You can have the angle using the angle from the edge to X axis.
So if you have the vector <e1, e2> of the edge, the angle is given by atan2 (arctangent B/A in Nodes) from x, y componants of <e1, e2>.
Note: in the nodes below, have used iterations on object and edges instead of by index access.


(BGE) How to have a random font for each character in a text object?

You have to add a separate text object for every character of your string.

Put a text object for every font you have on another layer, add a text game property to all of them and name them something meaningful. Then add an empty to the point where you want the text to start. The letters will be spawned there. Lastly execute this script:

import bge
import random

scene = bge.logic.getCurrentScene()
string = "string"
fontList = ["font1", "font2", "font3"]
empty = scene.objects["Empty"]

for character in string:
    font = fontList[random.randint(0,2)]
    object = scene.addObject(font,empty)
    object["Text"] = character
    empty.worldPosition.x = empty.worldPosition.x + 1

The variable string is the string you get from the user's input. The items in fontList are the names of the text objects on the separate layers. The object empty is of course your empty so you have to use its name.

Then you go through your string letter by letter and generate a random number. This number can't be higher than length of fontList, so in this example it's 0 to 2 (3 items). A random text object (the one you just generated, so in case of a 2 it's the object "font3") will be added at the empty's location, the object's text will be changed to the letter and the empty will be moved (you should of course adjust this movement for your needs) so that the next letter won't be added on top of the other one.


How to keep physics fast-moving objects from going through the ground plane? (not python or game)

I solved my rigid body physics “falling through the floor plane” problem by raising: Scene > Rigid Body World > “Steps Per Second” and “Solver Iterations” above their default levels of 60 and 10. This scene has 10,000+ fast-moving cube objects. At default levels, over 100 objects fell through the floor plane. At 5 times the defaults, (300 and 50 respectively), only 3 objects fell through the floor. At 10 times the defaults (600 and 100), NOTHING fell through the floor. The calculation took longer, but was probably generally more accurate than with default Steps and Iterations levels.


The fcurve class provides the .evaluate
 method to get the value for a given frame.

import bpy

action = bpy.data.actions['CubeAction']
for fc in action.fcurves:
    if fc.data_path == 'location' and fc.array_index == 0:
        break
val = fc.evaluate(5.5)


Why my material is not showing on the render but in the preview of the right-side of the screen?

You need texture coordinates on your sphere. Either use generated coordinates or UV unwrap your Sphere.

Use the mapping node to transform your texture.


Strategy for creating this model in Blender from scratch

Like Jaco said, for something like this I would create the flat image in Illustrator and export as .svg. Then import that into blender and make it a mesh. Super simple and no need to spend time modelling it.
If you want to practise, I would make all the bars as separate objects then connect them all and merge. Might take some clean up afterwards but much easier than trying to work with loop cuts and extruding methods.


Is the render output linear color or 2.2 gamma?

The gamma of the output image depends on what the image format supports. Generally, output to PNG or JPG will result in a non-linear gamma correction (2.2). Usage of the OpenEXR format supports linear colour space, and you would keep your 1.0 gamma value.

Additional info: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management


Place a light near the object to be shaded.
Turn the Cycles Camera visibility to False.
Lights do not have to appear in the camera.


You can use a normal lattice deform modifier but specify a vertex group that has only those faces.

Select the faces and add them to a vertex group:

select both objects with the lattice active and press ctrl + P ,Lattice deform.

select the object and select the vertex group in the modifier.

Now you can only edit those faces.


Pack all into .blend file changes material outcome

I have had similar issues with packing files into blend. I have found that my lighting is corrupted while packed, but if I unpack the blend after I've moved it to wherever it needs to be the lighting goes back to normal. So pack -> move -> unpack -> save -> render


Editor Window Missing - Only seeing timeline

Okay, found it after much clicking, there is a small control on the bottom menu of a view which allows selecting a number of different elements. In my screenshot, it is in the lower-left. Clicking it and selecting 3D View returned the 3D editor.

I'd still like to know, though, if there is a reset to default.


Is there a way to animate parts of a net?

The easiest way I know how to do this is with shape keys.
In object mode, select the object, go to its Data Properties and click on the '+' icon below shape keys to create a new "Basis" shape key.
Click again to create a new key.
Rename this to something meaningful.  I called mine "folded up"
Make sure the new key is selected.
In edit mode move the vertices into the new final position.
Now, in object mode, the "Value" field can be used for key frames.
Select a frame in the playback window.
Set "Value" to something between 0 and 1.
Hover over it and right click.
Select "Insert Keyframe"/
Assign both the top and the bottom to a vertex group:

And add that vertex group as a Pin Group in cloth settings:

For the result below, the net was additionally subdivided ("simple" mode, 2 levels) before the cloth modifier.


Why is the scale of the model I try to 3D print so small?

STL doesn't use metric units, if your model is 1BUx1BUx1BU (BU=Blender Unit) it will be 1mm x 1mm x 1mm in size, despite the fact that 1BU is 1m in Blender.

You can fix it in two ways, either by manually scaling your object in the scene and assuming that 1 unit is 1 mm (after exporting to STL) or you can set the scale in the Blender's STL exporter to 1000.

I prefer the first method, as you don't have to fiddle with the scaling settings and you just model in mm.

Also, always make sure you 'apply the scale' of your object before exporting via Ctrl+A > Scale.


Painting problem when using pen in Blender

I'm back. Believe me or not I've been looking for a solution for weeks but I found a solution today just a few hours after I posted this question. So, now I'm sharing it:

Because of one of the updates, Win10 doesn't treat legacy apps and modern apps which specifically designed for pen in the same way anymore. I think this is why I have never faced any issue in many apps (such as Krita and GIMP) but Blender. (Blender is legacy but not GIMP? LOL I don't get it, too.) There is a way to disable this behavior.

Solution

Run cmd
Type this and enter: reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pen /v LegacyPenInteractionModel /t REG_DWORD /d 1 /f

This will make it! If you have any problem with pen in future and want to go back use this command: reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Pen /v LegacyPenInteractionModel /t REG_DWORD /d 0 /f

Btw, yes... it really is a BIG mistake not to put an option for this in the control panel. I wanna swear to Microsoft but I don't know if it's allowed here. So... shame on you MS! It took me weeks to just find this solution.

[Source: https://www.reddit.com/r/Windowsink/comments/8508fi/controlling_pen_behavior_in_windows_10/ ]

Edit

Addition:

It seems this command breaks pressure sensitivity. I solved it as well:

Go back with second command I mentioned above
Run regedit and go to HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch, set PanningDisabled to 1.
If there still is any issue, install/repair WinTab (https://www.microsoft.com/en-us/download/details.aspx?id=49498 download and install Wintab_x32_1.0.0.20.zip or Wintab_x64_1.0.0.20.zip depending your system arch)
If it still occurs, go run first command again.

Now, I can draw without any latency and pressure sensitivity works perfectly!


Blender uses ffmpeg to handle video formats, you can check that it was built with ffmpeg enabled by entering getattr(bpy.app.build_options,'codec_ffmpeg') into blender's Python console.

For your script --

self.scene.camera = None
for obj in self.scene.objects:
    self.scene.objects.unlink(obj)

This will remove all objects from the current scene yet you follow it with creating a new scene -

self.scene.sequence_editor_create()
self.ops.scene.new(type='NEW')
bpy.data.scenes['Scene'].render.resolution_x=1280

You create a new scene and set the resolution on the scene called 'Scene' - as that is the name of the first scene in blender this won't be the name of the scene you just created. By creating a new scene you will have a scene without objects - sounds better than the previous step of unlinking everything.

Try

myScene = bpy.data.scenes.new('myscene')
myScene.render.resolution_x = 1280

Operators depend on the context to perform tasks, normally this includes the current window, which you aren't going to have if you are running the script headless.

Instead of using operators -

myScene.sequence_editor_create()

myImageStrip = myScene.sequence_editor.sequences.new_image(name = 'imgStrip', filepath = '/tmp/image001.png', channel = 1, frame_start = 1)
myImageStrip.frame_final_duration = 5

myMovieStrip = myScene.sequence_editor.sequences.new_movie(name = 'firstClip', filepath = '/tmp/test.mp4', channel = 2, frame_start = 1)


Weird bug with Alembic & Blender 2.8 + Eevee

Here is the expression I use to loop and keep the stop motion effect :

(round(25*round(frame*wantedfps/globalframerate)/wantedfps) - 1) % animationlenght+ 1

It works in the viewport, or with Cycles and lightweight scenes in Eevee. But it doesn't work with my scene with Eevee until I unactiv some objects.


How do I re-enforce the edge-split modifier on a linked proxy object

As Promised

Like I said in my original post, I would keep playing and post here should I find a solution to the problem at hand.

Questions Answered

Still not clear why it was hapenning.
Not sure why the children would refuse to follow their empty parents.
I was able to get this to work the way I wanted by opening the subassembly's .blend file, and adding all the parts into a group and gave the group a name.  Next, in the main assembly's .blend file, I simply linked the group, and only the group, from the subassembly's file.  This brought in the subassembly with a lovely gimble for selecting the group.  I was able to successfully translate, rotate, and scale the subassembly by use of this gimble.  Worked perfectly, and all parts maintained their edge-split modifiers!

Any further details?

It seemed I have answered only one of three of my questions, but in all fairness, this was the most important of the three, since it enabled me to achieve my final goal.  Feel free to comment if you know the answers to the other two questions as I am still quite curious as to why it did not work correctly using my original method.

Final Thought

I sure hope someone out there finds this question and answer to be useful in combating any headaches they may experience such as the one I originally had.

Peace and all Good,
Sirach


What is the difference between color models (sRGB, Rec709, XYZ, ets) and which cases I need to prefer one of them?

Prerequisite

I think the right word here is color profils not color models.
A color profil defines 3 things:

The white point (what is white)
The primaries (e.g. : R,G,B...)
The transfer function (the contrast curve applied e.g. gamma, Log...)

You may think why defining white? White is white no?
In fact there is no absolute white.
Think to a paper sheet, most of them are "white", but if you look at it under an overcast sky, it's not the same white as if you look it with the direct sun light.
It's colored a bit in "blue" if overcast, "red" / "orange" if direct sun.
It's the same here, you can have different white point, with slightly different HUE.
For exemple the sRGB white point is D65 (see the picture below), but you have D60 white point...

The primaries, it's the same as "black" and "white" we need to define them. For RGB we need to define what R, G, and B are, it also defines the boundaries of the colors you can display in the color space.
For sRGB it's the triangle made by the position of R, G, B.

Remember sRGB is a limited color space made for screen display (3 subpixels R,G,B value range 0 to 255), but there are plenty of colors outside this color space.

The transfer function is a mathematical function that change the contrast of the displayed pixels. (gamma, EOTF, OETF, Log are some functions that can be used)
It's the curve you are playing with to contrast your image.

Answer

With that in mind, sRGB, Rec709... have differents 1., 2., and 3. They are for different purpose and it's the answer to your question, you need to choose the one corresponding to your need

In Blender with the default config you have Display device that defines the white point (1.) and the primaries (2.), the view that defines the transfer curve (3.) and you have the look that is a creative transformation of the image, contrast or color tint.

Color profils are applied at the verry end of the chain, so juste before displaying the image or when saving it.
It means that all the compositor transformations you make are applied on a linear image, so all datas preserved but when saved, the image lost information if non 32bits linear.

So exept for some cases, e.g. basic drawing without light interaction, it's always better to use filmic to view your viewport, even if you save it in linear 32bits at the end.
With filmic what you see correspond to how light intensity works in real life, it's not the case in sRGB / Default setup.

E.G. of use:

For display :

sRGB : is for typical 8bit CRT monitor display, so for web, photo display...
I think Apple use a different profile but I don't have Apple devices so I can't say more.

Rec 709 : is for TV/Cinema display

For post prod :

CIE XYZ :  In blender with the view set to Log you have the typical washed out picture used by studios before color gradding video footage.

Linear space : That isn't a color space since colors aren't defined, it's the scene referred space, it's what Blender calculate internally and how light intensity works in real life. It can't be displayed correctly on a CRT monitor, but keeps all the original datas if the picture is saved in 32bits.

For convertion/compare between different spaces :

CIE LAB : is an absolute color profile, like a reference to calculate all colors even colors that cannot be reproduced in the physical world.

More about the topic :

EDIT 1 : More infos about workflows

Remember, you can preview picture with one configuration and save/export with an one other one, if you know well what's your needs, how color management and color spaces work.
I agree with Troy, color management in Blender is messy, but not only color management there are other part that involved with color management that aren't suited for linear, but it's an other story.

It's not only Blender, I use Affinity Photo, you can't work in 32bits correctly and I don't speak about Photoshop...
All of that because Color management, color spaces, and the different transformation of the chain are really hard to understand and need something close to devotion. But it's really worth it.

About your workflows, since you don't have specific workflow I give you what I usually do:

Blender previsualisation :
Preview in sRGB / Filmic (filmic is a kind of Log encoding)/ High contrast (contrast depends of the final look you want), render an image of the sequence, color grade with the compositor node Color balance, set the type to Offset/Power/Slope (ASC-CDL), then it start to really depend of the needs.
You have to ask yourself, is this shot the final video wich will be diffuse or, will the final grade be made in an external software?

Final video :
Render your sequence with the same color management setup and compositing, and export in the format you want.
For web, screen display, Tiff 8bit, Avi, MP4... this will gives you a sRGB with the maximum light info baked but no more room for playing with intensity of light (contrast, exposure...)
If you work on Apple change sRGB for P3...

Video that is color graded in an external software :
Render you sequence without the color balance node active, in .EXR 16 or 32 bit (if 32 is too heavy), this time you have a 16/32 bit linear output (so no color space baked). Than you can import in Resolve for exemple, change the color space to whatever you want and do the color grading, adding LUTs...
Export the vidéo to your needs e.g. : DCP (jpeg2000)...

Hope this is clear enough.


How to increase the "Strength" of a normal map procedurally, Before the "Normal Map" node?

You can separate the RGB channels, amplify them with a Map Range node (say, 0.4 to 0.6 mapped to 0, 1), and then recombine them.
However, amplifying normal maps like this should never be neccesary. Normal maps do not alter geometry, unless it is not being used for normals: in the case that Cycles is using them to displace the existing vertices through a displacement material output. Changing the normals of a mesh will never change the mesh itself. I think you are mistaking for weak normal maps what is actually an inherent disability in faking light interactions.


Merging two spheres with different radii

Bridging two sections with  a different number of vertices will yield untidy topology ... perhaps an approach like this would be more flexible?

Start with some sort of sphere for the lens (here I've used a rounded cube). It helps to set its display property to X-Ray.
Create 2 vertex groups in the lens: one of all the vertices above the equator ('top'), and one of all the vertices below the equator('bottom').
Create 2 high-resolution spheres 'top' (the lower one in the illustration) and 'bottom' (the higher one) to represent the curvatures of your lens. (It helps to set their maximum display to 'wire')
Assign 2 Shrink-Wrap modifiers to the lens. One is set to affect the 'top' vertex group with the target sphere set to 'top'.. the other, vice-versa. Perhaps pop in a Subdivision Surface modifier at the bottom of the stack.
Uniformly scale your target spheres and move them along Z until you are happy.

Variations might include leaving a wider unaffected margin between the vertex groups, and/or scaling that margin in XY to get the transition you'd like between the spherical sections.


Would it be possible to write an addon that highlights all modified settings?

Unlike a "GUI" toolkit that gives access to the objects drawing the items on screen, in blender we don't really have control of the display - we only say "show a property here", blender then decides how it is displayed.

The colour used to draw each item comes from the theme - keyed, driven or default colour is chosen within the c code that draws the items.


Need a solution for a solution (Subsurf Pinching)

Alright, this was a stupid question. He says in the video to use vertex groups so I just assigned the detailing to a vertex group and the shrinkwrap modifier now ignores it which gives me the desired effect.


Why is the Displacement Modifier not doing anything?

Remove all modifiers from the cube and start again.
First, add a Bevel modifier. This gives supporting geometry, so when you add a Subdivision Surface modifier, the cube doesn't turn into a sphere (Try for yourself if you don't believe me).
So, add the Subdivision Surface modifier next, (this gives extra geometry to displace - I set number of subdivisions to 3 to start).
Lastly, add the Displace modifier, pick the cloud texture, set the strength to 0.5 and you should get this:

So, the order of modifiers (from top to bottom) is Bevel, Subdivision Surface, and lastly, Displace. You can control the detail of the clouds by increasing the subdivisions of the Subdivision Surface modifier.
If you need to triangulate, you can add a Triangulate modifier afterwards.
EDIT- Is this more to your liking?

If so, all I did was subdivide the cube once, then I placed a Bevel, Displace, and Triangulate modifier in the order shown. You can play with both the Bevel values as well as the Displacement Strength and Midlevel to get different shapes and sizes.
As for the colors - they are in user preferences - Theme is "GreenHorizon"


How to delete collections from the RigidBodyWorld list?

I found out how to do it, just go inside
Outliner -> OrphanData -> Collections

And click on the power button on the right

Save, close and restart blender.

I thought it was a bug, and thanks to everyone for trying to answer!


How to convert result created with dupliverts into editable meshes?

You can use the "Make Duplicates Real" function Ctrl+Shift+A. This will generate one object for each duplicate, but the generated objets will still share the same mesh. You can join them Ctrl+J to make a single mesh with all the cylinders. You can then separate each to an object with its own mesh by going to edit mode and P "By loose parts".


How to remove modifier contribution from Stress map?

Some tests show, that exporting mesh animation (Armature only) as Alembic .abc can be a workaround. Because when it is imported via Mesh Sequence Cache modifier, Blender starts thinking that my mesh is always represents its basic form, even though it is visually transforming as by usual Armature.

Disable rendering of modifiers (camera and eye pictograms), that you do not want to contribute deformation to the exported object. Basically, .abc cache will replace your existing deformation by Armature
File->Export->Alembic (.abc) and then choose necessary options on the left
Add Mesh Sequence Cache modifier and load exported cache, then choose object path at the bottom of modifier menu
Put up Mesh Sequence Cache modifier in the stack, so it would take place right after all unwanted deformation. Disable all modifiers before Mesh Sequence Cache and enable those, which are after (see pic)

Work is done, now Blender define deformation only made by Displace.

If you want to edit your basic animation, you can enable Armature, disable Mesh Sequence Cache and simply re-export new cache. That is why I don't recommend to delete modifiers before Mesh Sequence Cache


Use color Material while in Edit / Wire Mode

You can use Vertex Paint for this task.

Enter Edit mode, select face edgeloops which you'd like to be the same color.
Switch to Vertex Paint mode and enable Face selection masking for painting option in 3D View header to paint only on selected vertices which form faces. Faces which were selected in Edit mode will become slightly different from others of the mesh, showing that they are selected.
Paint with any brush radius because the accuracy is not important any more. Rotate viewport in order to paint from different angles. Change colors for different edge loops as desired.

Now when in Edit or Object mode turn on Textured Solid in N panel > Shading scroll. In Solid or Texture viewport shading the edgeloops will be shown painted.

Note: this works only for Blender Internal. For Cycles you probably should bake colors to image and use it as a texture in order they to be seen in Edit mode.


Mix Color

First step is to mask out the surface's point that be affected by the flipping of the coordinates.

In order to get the reference needed we should start by adding a Texture coordinates node and pick the Object coordinates
   type (if you are interest in the local Z)

Then add a Separate XYZ to get the Z component of the coordinates and filter out the values greater than 0 with the help of a Math node

If the origin of the object belongs to the simmetry plane, all we have to do is to flip the input coordinates (Generate type in the shown example) with a Mapping node (notice the -1 value for the Z scale parameter) and mix them with a Mix node whose inpuct factor is the mask we created before.


The difference boolean doesn't seem to work on a specific area

The Boolean modifier relies on correctly set normals. Check if your normals are all facing outwards by checking "Face Orientation" in the Viewport Overlays menu:

All the outward faces should be blue. If an object has incorrect normals, you can select all of its faces (A) in edit mode, and Mesh > Normals > Recalculate Outside (ShiftN)


Error when processing a blender file in Python

There's a chance you deleted the lamp but it's still lingering somewhere in your blendfile and the script is accessing it. To be sure this is not the case, try saving, closing, and opening the blendfile multiple times to completely get rid of unused data and try your script again. Or you can try copying the mesh files to a brand new blender scene without any object and run the script there


Correctly filling a convex and concave mesh from curves

You should retopolgize this mesh. It is pretty simple with method I will present (if this kind a mesh will suite you).

First of all you should make a plane and position it at the bottom of the blade.

Then extrude it all the way up.

Select loop and extrude to the end of axe scaling down each loop.

This gif shows the retopo flow:

If you need more detailed description, let me know in comment what do you need.
Edit:


same mesh (edit mode) boolean intersection gives an error

Since no answers were added, I add one of my own to help others that like me, without reding the manual, may be stuck understanding how this kind of boolean works:

as MrZak and Nghillaz pointed out, I was selecting both part of the mesh, hoping that the "intersect (boolean)" edit-mode command would find an intersection in the selected geometry.

Instead, the assumption is that you only select one of the mesh part that are supposed to be part of the intersection, not both.

See how it works, really:

The default behaviour is to do a boolean difference, but on the left side operation panel you can tweak the mode at your like.


How to position a poncho with cloth physics

I'd check out this answer from Faceb Faceb. My first thought is to grab a few vertices on your poncho, and assign them to a group. In your cloth physics settings, check the "pinning" option. You should be able to use that same vertex group to parent to the cloth to the shoulder of your character. The tricky part is, you'll have to 'pose' the cloth in edit mode all stretched out, and when you apply physics, the cloth should fall into place, and the pinned verts should stick to your object. Check out more here:

Pinning cloth to moving model


exporting multiple animated objects to gltf

A newer manual says:
"An NLA Strip animation consists of multiple actions on multiple objects that should play together. To create an NLA strip animation with the name “My Animation”, push the action that should play each object onto an NLA track for that object with the name “My Animation”.
NLA Strip animations will be exported if the Animation ‣ NLA Strips option is selected (on by default). All glTF animations are imported as NLA Strip animations."
Or see here: https://github.com/KhronosGroup/glTF-Blender-IO/issues/219#issuecomment-453621051
The second part of that post:  "If you have two NLA tracks with the same names on different objects, you should get a single merged animation out that affects both."
So you have to create NLA tracks and give them the same name. It worked with my animation. good luck with yours!


You can use a spot light and add an image as texture to it.


Select coordinates without a given z ? by using KDTREE

Arbitrarily set z

Using the example from https://docs.blender.org/api/master/mathutils.kdtree.html#module-mathutils.kdtree

Test script, find all verts within 1 local blender unit in mesh projected to z = 0 plane, from the 3d cursor projected to same plane.  Adjust z to suit.

import mathutils

# set the z of the xyplane
z = 0
# create a kd-tree from a mesh
from bpy import context
obj = context.object
mesh = obj.data
size = len(mesh.vertices)
kd = mathutils.kdtree.KDTree(size)

for v in mesh.vertices:
    kd.insert((v.co.x, v.co.y, z), v.index)

kd.balance()

# 3d cursor relative to the object data
co_find = context.scene.cursor.location @ obj.matrix_world.inverted()
# set the same to find nearest projected to that plane.
co_find.z = z

for co, index, dist in kd.find_range(co_find, 1):
    print(f"Vert[{index}].co[:] = {mesh.vertices[index].co} (xy dist = {dist})")

Test run cursor location in image, selects the vertices of leading edge of cube as seen from camera in default scene.

Vert[1].co = (1.0, -1.0, -1.0) (xy dist = 0.030091779306530952)
Vert[5].co = (0.9999993443489075, -1.0000005960464478, 1.0) (xy dist = 0.030092377215623856)


Blue Lines from Annotations not in any object

These are not bezier curves, these are annotations. Once in Edit mode you must have confused the Annotate tool with the Draw tool:

To erase the annotations, press D + right click, or select the Annotate tool and press Ctrl


What are the most common reasons for not being able to edit UVs?

Strangely, the solution was to remove the texture I had on that mesh.


How to cut at vertex position of another object?

If the plane and cube belong to the same mesh, in Edit mode, you can use CtrlF Face Menu > Intersect (Knife). It has 3 modes:

(Illustrations exploded to show separate parts)

All: all the results of intersection are split to separate islands
Cut: Edges are created, but not split, at intersections in all parts
Merge: Edges are created at intersections, all vertices merged, resulting here in an internal face.


How to fix this verterx which sticking out

An other bone has also influence on that vertex. Turn on the "Vertex selection masking", then select that vertex, and remove it from all vertex groups, then reassign to the pinky or repaint it with the weight brush.


How can i fill the U shape face/edge so there will be no empty space?

not sure if I missed something but have you tried classic F key to fill faces? Like

edit:

the above is the simplest, but gives you N-gons.

To fill with better topology, try ALTV:

Then, if you need quads, simply convert with ALTJ:

edit2:

cegaton commented about another smart tool, "bridge edge loops"

he's right, so you can also use that like this (note I used it before filling the side faces, otherwise it gave an error):

and you get immediately


Ways of sharing the same smoke cache datas between two different files?

2.8x (Mantaflow solver)
Yes you can. Specify cache directory, set Type > All and Bake.

Open a new file and enable Smoke Physics for any object.

First set type All and Bake again, even there is nothing to simulate.
Second - now you can specify cache directory to previously baked cache

To keep smoke texture same care about correct XYZ proportions.
Blender doesn't care about objects geometry, just about object's Bounding Box as you can see.
2.79 (original answer)
Can I share the data between two files (different objects /shapes)?
Yes, you can.

Bake smoke simulation of "A.blend", into format you like/need (bphys/vdb)
open a new "B.blend" file
add a new Cube (or any other Mesh object), with the same Aspect Ratio as baked domain (= XYZ Dimension should be equally divided/multiplied), and enable Smoke sim in Physics Properties for it)
in Properties > Smoke Cache panel check External and set path to the baked sim folder
in the list of smoke simulations name existing cache same as your baked sim files from A file. Like here I named cache your_name

If you wouldn't name the A cache, blender creates a generic name, like "536D6F6B6520446F6D61696E", so copy that. But it's always better to name cache before baking to something that make a sense for you, so you can better recognise what cache you are attempting into a new blend.
IMPORTANT note: You can SCALE domain as you like, but in all directions to keep aspect ratio of original domain!!! Difference in proportion will cause disfunction of smoke visibility, so check that.
What will be shared?
As was mentioned - each baked file represents 3D texture per frame of voxel data. Assigning data to an object you can imagine as classic 2D image assigned to plane object - image fits to plane dimension - just in 3D. These data doesn't contain any geometry of mesh (like mountaine vertecies).
From your description is not clear what do you want to achieve exactly, to me. It seems to me you probably didn't catch the point of system. For sim you need one object to be emitter of smoke and second smoke domain that is something like environment (box) where all smoke happens. Emitter object only iniciate reaction inside domain and this "reaction" is represented as 3d texture data. These data are only smoke, and after bake independent on the emitter.
Here is what kind of data are baked in VDB format.
For more checkBlender Reference Manual


I don't think that AVI Raw has encoding options.

As it's an uncompressed format you'll not have much setting to work with, they are just plain frames.

The purpose of this format is to provide an input video that will be mixed and encoded with sync audio in a second phase, after for example some compositing, or color correction. It's the RAW data, it is expected to be used as a "base", not to be the final result.

You can Mixdown to extract audio from your file and than mix them with video in Blender or an external application.

Note: I wasn't able to find out any evidence of the fact that Blender AVI Raw format, despite its name, is not able to contain audio (and I'm not even sure), so consider this as a personal opinion.

You should use another output format.


game-engine : error totblock : 1. Memory Leak?

Blender uses a memory management system that keeps track of the number of memory allocations it has made. When blender finishes it reports the number of remaining memory allocations. A small number is of little concern but a large number indicates that memory is being allocated and not released, meaning a memory leak.

If you start blender from a terminal (or show the windows console) you will see a similar message as blender quits Error: Not freed memory blocks: xx while blenderplayer gives the more cryptic Error Totblock: xx

This is related to blenders source code and not likely from anything you have done in your game creation. If you do see large numbers it might be worth reporting or talking with a developer on irc to help find a cause.

Personally I think this should be disabled for normal user usage. Only blender developers would have any interest in this information.


How to delete auxillary/satellite objects from a central object?

If they aren't individually selectable, they're not deletable separately in object mode.  They're probably part of the same object, weighted to their own bones.

If they're weighted to their own bones, you have a few options.  One is to pose the model and enter weight paint mode (ctrl-tab from object mode), then switch to vertex select mode ('v' key) and ctrl-RMB lasso a whole bunch of vertices from the object you want to delete, now that it's nicely out of the way.  When you tab into edit mode, those vertices will still be selected, and you can ctrl-l select linked to probably get the whole object for easy deletion.  If not, delete, tab back to weight paint, rinse and repeat until you've got it all.

Another deal is that probably all of the vertices of the individual objects are exclusively weighted to a single bone.  Select one vert in edit or weight paint mode, 'n' to open your properties shelf, and look at the vertex weights section.  Here it will tell you which vertex group this vert belongs to; clicking on the group will select that vertex group for your model.  Now you can look on the properties view, under data vertex groups, and hit the "select" button, which will grab all the vertices assigned to this particular vertex group.  Which is probably the entire object, and only the entire object.  Delete, and you're good.


Can I Separate an object into many objects along UV seems?

Go to Edit mode, select a seamed edge (red edge) then select: Select> Select Similar>Seam (If the seams aren't marked, go to UV editor, select everething and choose: UV> Seams from Island)
Choose: Edge> Mark Sharp
Go to Object mode and add an Edge Split modifier. Disable Edge Angle, then apply the modifier.
Go back to Edit mode and select Mesh> Separate> By Loose Parts.


How could i make rotating tiles animation like in this video

You could select all the tiles that are meant to rotated and animate them all together, then offset the animations in the Graph Editor, after selecting all tiles except the first, by sliding (G, X) the start and end keys to the right, then deselect the second tile, and slide the rest of the keys to the right again, deselect the third tile, slide the keys along and so on. Still quite a bit of work, but not as bad as doing everything for each one individually.


Grease Pencil strokes from movie clip editor not showing in 3D view

I figured out a workaround! So what I ended up doing was to write a small script to change all the 2D strokes I made to 3D strokes:

gp = bpy.context.scene.grease_pencil
for l in gp.layers:
    for f in l.frames:
        for s in f.strokes:
            s.draw_mode='3DSPACE'

For some reason which I do not know, the 3D strokes were the correct orientation when I viewed them from the top orthographic view. Then I scaled and moved my background image to be behind the strokes the same way I had it before.


Select what you want in edit mode, then switch to texture paint mode and enable this little button.


How to append a bezier curve from another .blend

So the problem was because the author appended Curve data-block and can be solved by taking the correct curve object from Object data-block, as pointed to a similar question in the comment.


How does the mix shader work when using a Fresnel node as a factor?

The fresnel node will produce a mask like this:

when you use it as a factor you are just saying that the first input will replace the black and the 2nd will replace the white,

when you switch the inputs,you are just saying that the black should be the 2nd input and the white should be he first.

You can see how this work  using a mix color node to visualize it:

By switching :


Exporting to Collada --> Loss of Transparency

If i am not wrong.. transparency is not imported into any software(May be bug in libraries).
Transparency is exported as expected but cannot be imported back.
You could verify by opening the exported file in web browser, and search for

  transparency

and see the value exported. you could also check by changing alpha value and re exporting..

Let me know if i am wrong..


How can I make an animation using importing several x3d files to Blender by scripting?

I have the same problem. I somehow managed importing the .x3d files. However I couldn't animate it. Here is my detail information: I have 11 .x3d files representing a simulation at time of 0 second, 10 seconds up to 100 seconds. I want to set frame 0 to the file at 0 seconds, frame 1 for the file at 10 seconds and so on. I hope the importing scripts will help. My importing script is:
    import bpy
    import os
    import sys
    from mathutils import Vector

    importFolder = "./x3d" #the relative path of the folder containing the files
   # Fixed parameters
    geoName = "imported_geometry1"
    blenderVersion = bpy.app.version
    if blenderVersion[1] >= 79:
      x3dImportString = 'Shape_IndexedFaceSet'
   else:
       x3dImportString = 'ShapeIndexedFaceSet'
      #--------------------------------------------------------------------------#

      # Turn relative into absolute paths
      importFolder=os.path.join(os.getcwd(), importFolder)
       # Get a list of all files in this directory - these are going to be the files we
       #import and visualize
      importFiles = os.listdir(importFolder)
      importFiles.sort()
      # Start the rendering loop over all import files
      for frame in range(len(importFiles)):
    importFile = os.path.join(importFolder,importFiles[frame])
    print("Processing frame ",frame+1," importing ",importFile)

    bpy.context.scene.frame_set(frame+1)

    # Import the current object, either supplied as a .ply or a .x3d file
    # The geometry will always be renamed so it can be easily used later on
    bpy.ops.import_scene.x3d(filepath=importFile, filter_glob="*.x3d;*.wrl", axis_forward='Y', axis_up='Z')
     # check for geometries / meshes, lamps and cameras
    imported_geo_exists = [item.name for item in bpy.data.objects if x3dImportString in item.name]
    nImportedGeo = len(imported_geo_exists)
    imported_lights_exists = [item.name for item in bpy.data.objects if ("TODO" in item.name or "DirectLight" in item.name)]
    imported_cameras_exists = [item.name for item in bpy.data.objects if "Viewpoint" in item.name]
    # rename geometry
    if imported_geo_exists:
        for i in range(0,nImportedGeo):
              bpy.data.objects[imported_geo_exists[i]].name=geoName+str(i)
        bpy.ops.object.select_all(action='DESELECT')
        # delete lights and cameras that blender creates after import
        if imported_lights_exists:
            #bpy.ops.object.mode_set(mode='OBJECT')
            bpy.ops.object.select_pattern(pattern="TODO*")
            bpy.ops.object.delete(use_global=False)
            bpy.ops.object.select_pattern(pattern="DirectLight*")
            bpy.ops.object.delete(use_global=False)
        if imported_cameras_exists:
            #bpy.ops.object.mode_set(mode='OBJECT')
            bpy.ops.object.select_pattern(pattern="Viewpoint*")
            bpy.ops.object.delete(use_global=False)

```


Keyframing orthographic camera scale and reproducing it as an action?

Animating the orthographic scale the way you do it is not possible. You can however do this via python using bge.logic.getCurrentScene().objects["Your_Camera"].ortho_scale = your_value. Your_Camera has to be the name of the camera whose orthographic scale you want to adjust. your_value has to be the desired focal length. That can be a float between 0.01 and 4000.0. Following is an example of zooming in to a value of 5.0. Therefore the orthographic scale at the start needs to be above 5.0.
import bge

#getting the camera object called 'Camera'
cam = bge.logic.getCurrentScene().objects["Camera"]

#while the orthografic scale is above 5.0 the script reduces it by 0.5 everytime the script controller is activated
if cam.ortho_scale > 5.0:
    cam.ortho_scale -= 0.5

The script activated every logic tick (always sensor -> true level triggering) looks like this (it has a better frame rate of course). The starting orthographic scale is 23.0:

Now you can write a script that does what you want. Here's another example where we are zooming in first and when this has finished we are zooming out again.
import bge

#getting the camera object called 'Camera'
cam = bge.logic.getCurrentScene().objects["Camera"]

#while the orthografic scale is above 5.0 the script reduces it by 0.5 everytime the script controller is activated, if there's a game property with the name 'zoomed_in' it won't zoom in again
if cam.ortho_scale > 5.0 and not "zoomed_in" in cam:
    cam.ortho_scale -= 0.5
#if the cam is already zoomed in and the ortho_scale at a value of 5.0 the camera is zooming out again, adds the game property 'zoomed_in' to the camera to prevent it from zooming in again
elif cam.ortho_scale < 23.0:
    cam["zoomed_in"] = True
    cam.ortho_scale += 0.5

Here's the result:


black artifacts when baking ambient occlusion

I found it out. I had two object on top of each other. God I failed so hard haha... :/


I would create an Empty and in Object mode click the Armature then the Empty and hit CTRL + P and set parent to object. Now when you move the empty, the whole object should move. You can get fancy and create a curve for the path and have the empty follow the path for the animation. I can attach screen shots or a .blend file if that's helpful.


How do i snap a copied part of a mesh to the parent of the mesh, wiht a distance created by edge?

What you need to do is enable Snapping.

After you have duplicated your mesh:

1: At the bottom of the 3D window enable the Snapping tool. Then click on the icon to the right of that and choose the the element to snapt to, in this case choose Vertex. To the right of that is some snap target options, choose Active.

2: With everything deselected, right mouse select the vertex on the duplicated mesh that you want to be able to snap to any other vertex.
This vertex will be the Active vertex. (it is highlighted in red in the gif below). Now select the rest of the duplicated mesh by hovering your mouse over part of it and hit the L key.

3: G key to move the duplicated mesh about and you will find that the Active vertex of the duplicate will snap to the other vertices.

Don't forget to disable the snapping tool whnen you have finished with it .

Something you may not be aware of is that a mesh face only has one side. You can see this if you enable Backface culling from the Properties panel.

You should now be able to see that the duplicated mesh has its faces facing the wrong way. Facing inwards! this will create shading problems later on so you need to Flip the faces so that they will be on the outside when you join the edges of both meshes.

To do this: With only the duplicate mesh selected, open the Tools panel on the right and then open the Shading tab. From the Normals menu choose the Flip Direction option.

To join the edges of the original and duplicated mesh: In Edge select mode select the outer edges of both meshes then hit the W key to open the Specials menu. From there choose the Bridge Edge Loops option. **


I found out this questions answer
Here is the code which you should copy: https://gist.github.com/krasnovpro/58759485c741cd3e06f42e0ad75f6c68#file-create_isocam-py
then in a .txt file paste it, save it rename it to .py file the do to preferences install and navigate to that file and install it in blender press n and you will find isocam bar!!


rigidbodies not working with a lot of objects

This last cube is not part of the same Rigid Body World collection, so remove the second collection, add a new one, and choose RigidBodyWorld instead of RigidBodyWorld.011:

RigidBodyWorld is a kind of ghost collection that is created and selected by default in the Scene panel > Rigid Body World when you create a rigid body object, more explanations give here by Blender Frenzy. You can also put your rigid body objects in a real outliner collection if you want, in this case, select it in the Scene panel:


As shown you can use the Offset section in the Font / Curve Objects tab, of the Properties panel. This produces a reasonable offset perimeter for  2D Curve and Font objects. There are limitations with respect to self intersection.

I'm writing this response in Sept 2015, some of these details might change but they describe the current state of this feature.

A non-zero offset will expand or shrink the surface area of the Object.

here positive offset expands it:

You can't see the original shape as an outline when the offset is non-zero. I can imagine it would be useful sometimes to see the original via some ghosting outline, (You could duplicate the object and leave the duplicate with no offset to see the original form, but that's extra work..)
you can't see the 'projected' Curve handles. (Without looking at the code i'm not even sure they are projected ..the outline could be generated post tessellation of the surface, and you might only get a polyline.. i don't know.)
When you convert a font-object with offset to a Curve object, you get a 2D curve with the Curve handles of the original Glyphs. This means you don't get the Curve handles that are the result of the offset, same issue as above. Usually this isn't a problem, but I can imagine use-cases where the offset Curve handles would be preferred.

In a subsequent question you ask how one might get those handles. Currently i'm not aware that there is a way to get them easily without

changing Blender's source-code
writing a Python script that re-implements the C source for the 2D Curve offset as python operator, or implements an alternative outline algorithm to retain the Curve handles.

Making an outline anyway

Is possible, but any method that I can think of seems to have some inelegance.

For the above image I used 2 font objects, one with zero offset, and one a positive offset.
The Font object with offset is converted to mesh, then converted to Curve, and you get a single closed polyline. You set the Curve mode back to 2D and if you have the surface filled 2D Curve again, (but now it lacks Bezier handles).
Then you convert the original Font Object to a Curve (which will have Bezier handles) and join it with the new closed poly-line version to get something like this:


Is modeling something with an N-gon cap acceptable (i.e cylinders, cones etc.)

I think I've found the best method and that would be to just have the tops have intersections. The reason why is because when you smooth it, it will become all quads, which is not something that will happen when you smooth a cylinder with a flat top. Thank you everyone.


This setting is saved with the startup file preferences.

On a blank startup file just use some operator (like say Add > Plane) and expand the operator options panel once (you can delete the object or undo afterwards if you like).

After expanding the panel go to File > Defaults > Save Startup File and next time you call any operator with options it will be expanded.

Since this is saved in the startup file, it should be available in all new Blender sessions as well.


You could probably achieve this with a combination of two modifiers.

You can use any object type as a mirror object, set up a mesh as object as mirror center, and use it also in a Boolean modifier.

Model it in the shape of a 'half box' so that it is a volume bounding only the half of the object you want to remove, then use it also as mirror axis.


Cannot assign vertex group to eye bone in rigify rig

You've disabled the bone's Deform option. Also don't forget to unlock its Transform options.


Get pose bones which were animated in a strip

The container for fcurves are actions. So you need to find the corresponding action for the strip.

I.e.

track = C.active_object.animation_data.tracks[0]
#get the action from the first strip
action = track.strips[0].action

for fcu in action.fcurves:
    print(fcu.data_path, fcu.array_index)


That small squiggle arrow is indicating that the object has an action. Meaning that the object is animated.
If you click on the plus button and open up the hierarchy you will see that it is an animation.


How do I make a shape key for blink into wink?

Follow the steps below.

In the part where I go into edit mode, the vertices were already selected, but you may have to go into Wireframe view to select the overlapping vertices before doing Blend from Shape

Also notice in the command list under Shape Keys there is a Mirror Shape Key. You could redo the same steps for wink.L and mirror it instead of Blend from Shape to create wink.R


https://www.blender.org/download/

You have to click on the thing to get download options.


Start and End cap position depends on their origin points.
Simply move their origins to align them.

Go Sidebar (S) > Tool > Affect Only Origins
Select your Start/End cap object and move their origin using the move tool
Done

(Please excuse the crude demonstration, I'm on a touchpad :)


Scripts with sound path - Imported audio not working with Save Game as Runtime

Referring to a file in a python script doesn't tell blender that it is using an external file, so it isn't included when packing external files.

You can add a sound strip to the Video Sequence Editor or you could add a speaker in the 3D scene and open the sound file with that. Both of these methods allow blender to pack the audio file into the blend and I expect that both will be included when exporting to the game engine runtime.

An even better approach would be to use a sound actuator and open the sound file with that, which allows it to be packed. You can then use the actuator to play the sound or access other properties with a python script, you can also use sensors to play the sound without the script.

cont = bge.logic.getCurrentController()
actu = cont.actuators['Sound']
cont.activate(actu)


Cycles: objects appearing in 'Render' render but not 'Animation' render

Your scene renders fine.

You only see the background on because your text object is not in frame until frame 17...when it drops down.


How do I harden the Noise Texture in Blender Cycles?

This node setup turns Cycles noise into roughly the same as Blender Internal hard noise.

A comparison to how it looks in BI:

Note: To get the layered noise effect (increased depth) from BI, you will need to combine several copies of this node chain, with the noise texture at various scales, added together and adjusted with a multiply node at the end.


Yes, but working with such a high-poly mesh isn't advisable for a number of reasons.

Instead, consider using a Subsurf modifier. This allows you to work on the mesh in a low-poly state while still getting the nice smooth curves offered by a high-poly mesh:

That said, if you can manage to select one edge with a seam, then you can press ⇧ ShiftG > Seam to select all other seam edges. ⇧ ShiftB for Border Zoom and, if needed, a reduced minimum viewport clipping distance can help immensely with such a task:


Update:
Multithreaded VSE rendering is now natively implemented in blender (since around 2.8 or 2.9), which makes this project kind of obsolete, but for more fine grained control of resources (background rendering, utilizing multiple machines) it can still be useful.

tl;dr: Open source program for automated solution is at the bottom of the post. Latest release as well as usage instruction can be found at the GitHub project page:

Problem
I was looking for a free (and maybe even open-source) video editor, and after using it for a while I found out that Blender is very capable of this task, but I was facing the same problem with the unused resources during exporting the finished file. I was searching everywhere, but I couldn't find anything about speeding up the Video Sequence Editor (VSE) rendering that would work for me.
Solution
After thinking for a while and trying out things I realized that I can run multiple renders at once from the command line, and it seems like the performance scales pretty much linearly with the number of instances running. Of course until you reach the limit of your processor or the amount of RAM you have. (I was running at 87% CPU and 89% of the memory filled, and I wouldn't recommend going higher, because if one of the rendering processes fail to allocate more memory it will crash and you have to do that part over again.)

After you have the parts/chunks of rendered video, you can put it together using the concatenation functionality of ffmpeg. I tried it with mp4 [H.264] and avi [Xvid], so I can confirm that those are working, but there might be other formats that can be used, but I haven't experimented with those yet.
Code parts
I don't have time to do a full tutorial now, but if anybody will show interest I might get around to putting together something.
For this to work you need to have the blender and ffmpeg executables in your PATH environmental variable, and the project file needs to be in the current working directory of the command window.
The code parts I finally ended up writing and using were these:
blender -b "name_of_project.blend" -E BLENDER_RENDER -s 0 -e 1000 -a

to render one chunk of video. (You can try changing BLENDER_RENDER to CYCLES if that works better for you, and you have to replace the 0 and 1000 with the actual frame range you want to render. I had quite good results with doing it in chunks of 1000 frames and having around 4-6 processes running at once.)
You have to have multiple CMD windows open at once (unless you write a program to automate it), and you need to call them with different frame ranges.
(I would suggest 0 - 1000; 1001 - 2000; 2001 - 3000; ...)
[The frame range is inclusive, so pay attention not to write the ending number as the beginning number for the next process.]
You have to set the output properties in the Blender rendering setting while the project is open, but you can close the window afterwards. I think you can also set memory limit for the individual processes in Blender at File -> User Preferences -> System -> Memory Cache Limit, but I am not entirely sure about what that does.
For generating the list with the filenames I used PowerShell:
dir -n *.mp4 | %{"file '" + $_ + "'"} | Set-Content parts.txt

And for joining them I called ffmpeg (also from PowerShell, but this should work from CMD too.)
ffmpeg -f concat -i parts.txt -c copy ../output.mp4

This seems to be almost instantaneous, so you don't even really need to count this into your rendering time. It puts the resulting video in the parent directory so it doesn't get mixed into the video parts.
(If you used avi, you only need to change the extension of the output file and this should work.)
I hope that I could help somebody!
Sources
My main sources for the Blender command line options were these sites:
https://www.blender.org/manual/render/workflows/command_line.html
https://www.blender.org/manual/advanced/command_line.html
http://wiki.blender.org/index.php/Doc:2.4/Reference/Command_Line
And for the joining of the files using ffmpeg:
https://trac.ffmpeg.org/wiki/Concatenate
https://superuser.com/questions/607383/concat-two-mp4-files-with-ffmpeg-without-losing-quality/607384
https://stackoverflow.com/questions/15186500/howto-merge-two-avi-files-using-ffmpeg

Edit 2:
Version v0.4 has been released with the contributions of RedRaptor93.
Edit:
Program
I wrote a very basic application for the purpose of automating this process, that GitHub user MeTwentyFive very generously took upon and updated, so now it's more convenient and less buggy.
I have the code of that publicly accessible here:
https://github.com/Isti115/BlenderRenderController
I also included an executable in the release of the package, but for that to work you need to have the main blender.exe file accessible from the PATH environmental variable for rendering, and the same thing holds true with ffmpeg.exe for concatenating the parts.
If you need any help modifying, compiling or using it then feel free to message me!
ps.: You can get ffmpeg from here: https://ffmpeg.org/download.html
And I assume that you already have blender, since you are here asking questions about it. ;)

Edit 3:
Mikeycal Meyers wrote his own python script as a cross-platform solution for the problem.
You can find his explanation about it here:
https://youtu.be/rgwP5L1bICk
and the actual project here:
https://github.com/mikeycal/the-video-editors-render-script-for-blender
Make sure to check his work out as well, and help him improve it if you know some python! ;)


Mix Shader between values of 0 - 0.5 is the same as 0

It sounds like you probably have your material’s Blend Mode set to Alpha Clip:

The Alpha Clip blend mode is controlled by the Clip Threshold setting, which defaults to 0.5. This means that wherever your material’s opacity is below 0.5, it will render as fully transparent, and wherever it’s above 0.5, it will render as fully opaque. This clearly isn’t what you want.
Instead, you should change the Blend Mode setting to Alpha Blend. This will blend your object against objects behind it, giving you the smooth transition you’re looking for. You may also wish to disable the Show Backface option to ensure the whole mesh has a uniform transparency.


I guess you expected the solid or textured mode not to be rendered partially transparent, This is because you're in Edit Mode and have toggled the Limit selection to visible option:


Model of 2 joined mirrored objects is missing faces when importing into Unity?

This sort of issues happens when the mirror modifier has the clipping option turned off and is not merging overlapping vertices.
the different color on those faces indicate that those faces are flipped.
it's a bit tricky to detect hidden geometry but your mesh looks like it's made of 12 faces when at the top you can see there are 14 (2 hidden inside the mesh).

delete the internal faces : turn on wireframe view mode to see them and dissolve them.
remove the doubles vertices : select all the geometry ,press  W and select remove doubles.
recalculate the normals : shortcut ctrlN


How can I make a wall around a road on a cars track?

Enter wall edit mode and move it along local Z axis, then duplicate it and move it again on the Z axis. To know better what you're doing, turn Display modifier in edit mode and adjust edit cage to modifier in modifiers stack.Like this:


How to have vertical stripes across whole object?

While in front orthographic view, you could select all in edit mode with A > press U > and click Project From View. Your UV will then appear the same as the object does in front view, so the Wave Texture will be vertical while using the UV Coordinates. You can use the Mapping node to change the scale of the stripes.

Alternatively, you can use the Object Coordinates. If you haven't applied your object's rotation, you can use the Mapping node to rotate the stripes accordingly.


Why does Blender's tracker keep changing my focal length?

It sounds like you probably have your movie clip set to the default focal length of 24mm:

Blender will of course set your camera to match your movie clip when you run the track, or else the track won't make any sense.
The focal length converges on 35mm after running multiple tracks as Blender eventually figures out that the 24mm setting you've provided it is incorrect.


Any idea how to fit text width to screen

Simple Driver

A possible solution could be adding a Scripted Expression Driver to the Font Size Property:

fact / len(bpy.data.objects['Text'].data.body)

where:

fact is the multiplier that determines the Font Size (in this case fact = 1)

Text is the object name

Reference

This solution is "text agnostic" (since it is based on dimensions, it works with every characters)

Make a linked copy (Alt + D) of the text object and use the copy as reference to calculate the scale.

Add drivers to the Scale Property
Use this formula in the X Scale
Driver (see picture below):

0.7 * container/reference

where:

container is a new variable from container dimension.x (the blu rectangle)

reference is a new variable from reference dimension.x (the linked copy of the text object)

0.7 is the factor to fit the text into the container
Copy the X Scale Value to the Y Scale Value:

This is the final result:

Changing the reference and container size, the text size will change accordingly.

Move the reference object on a hidden layer...


My "Mix Shader" node doesn't have a "Fac" input socket

There is a Mix Shader node with a fac input and an Add Shader node with only 2 shader inputs, they are not the same node :

Or in Italian


When moving a selected vertx the whole cube moves

You've probably enabled the Proportional Editing option:


How to make a round point or a rounder point in this case, where edges come together and join into one vertex?

Yoy cannot round 1 vertex.
You need to add more geometry.

Nothing in the real world is perfectly pointy, so use a face, instead of one vertex.
By scaling it you can make it more or less pointy.

You can use the subdivision modifier to smooth out the whole object.

Or use bevel to only smooth out the rim.


Png does not work with cryptomatte, as it requires a 32bit float precision which PNG can not provide.
You must use EXR in float32bit !
Blender will save out either a OpenEXR or OpenEXR multilayer. If you want all layers in one EXR file per frame, choose the multipayer option.
If you wish to save out multiple EXR per pass (Diffuse, Specular, Crypto ..) you must do via the Compositor "File Output" Node.
Apparently Blender will not render out multiple passes as EXR unless from inside the compositor. See also this answer here:
Save all render passes to EXR image?


Ok, I figured this one out.

tFont = 'fonts/' + row3[7] + '.ttf' # read font from .csv data file
fnt = bpy.data.fonts.load(tFont) # load font
bpy.context.scene.sequence_editor.sequences_all[tField].font = fnt # change font
bpy.context.scene.sequence_editor.sequences_all[tField].text = 'Text' # use font


Math Power Node

This is the equivalent of the math function, eg
y = math.pow(x, 2)

for y equals x squared.  In the context of the node x is the value, 2 is the exponent.
See this answer re expanding the math node types in the UI https://blender.stackexchange.com/a/197449/15543


Where are the brush settings in the Image Editor in Blender 2.80?

First you will have to exit the fullscreen area overlay. Now look over in the Properties window. There is a new tab called "Active Tool and Workspace settings." This tab will look familiar, and you can find all the same settings you are use to seeing in the tool shelf from pre 2.8.


Exclude pinned vertices from physics simulation

Unfortunately this is not possible as I showed here as well. However, this should be possible if you are willing to dig into Blender's source code and figure out how to ignore the calculations done on pinned vertices. If you are willing to do that, you need to look into the code in softbody.c and see where you can make the necessary changes and then recompile Blender to get the desired behavior.

As I explained here Blender's soft body physics solver will go under significant overhaul in the future and doing what you want looks to be definite possibility once the new system has been put in place. This will take a couple of months though.


Can we simulate with mathematical calculation using blender and python?

I won't pretend to know all required physics and the good initial conditions, but that can be done using the Python script.
The idea is to setup a function (a handler) which is fired by Blender each time frame (current time) is changing. This is done by "bpy.app.handlers.frame_change_pre.append( theFunction )" which mean "theFunction" is called before the change of the frame.
The result is the following:

The code:
import bpy
from mathutils import Vector

#get first object and arbitrary location
o1 = bpy.data.objects['o1']
o1.location = Vector( (-5,0,0 ) )

#same for second one
o2 = bpy.data.objects['o2']
o2.location = Vector( (5,0,0 ) )

#define constants: G and masses
G = 6.6740831e-11
m1 = 1e+11
m2 = 1e+05

#initial speeds
v1 = Vector( ( 0, 0.01, 0 ) )
v2 = Vector( ( 0, -0.5, 0 ) )

#frame rate for calculation
frame_rate = 1 #24 (normally 24 but 1 is faster)
seconds_per_frame = 1 / frame_rate

def two_bodies(scene):
    #import globals in the function scope
    global o1, o2, G, m1, m2, v1, v2
    global seconds_per_frame

    #calc current direction between the objects
    direction = o1.location - o2.location

    #calc the squared distance
    d_squared = direction.length_squared
    #keep the direction of the strength
    direction.normalize()

    #calc new speed vectors
    v1 = v1 - (direction * (G * m2 / d_squared) * seconds_per_frame)
    v2 = v2 + (direction * (G * m1 / d_squared) * seconds_per_frame)

    #calc new locations
    o1.location += v1 * seconds_per_frame
    o2.location += v2 * seconds_per_frame

#get rid of previously set frame_change_pre handlers (if not the same handler may be fired n times)
bpy.app.handlers.frame_change_pre.clear()
#install "two_bodies" as current handler
bpy.app.handlers.frame_change_pre.append(two_bodies)

The blend file is below. To use it:

In the text part, use the "run script" button in order to setup initial conditions and the handler itself
In the 3D view part, use AltA to run the animation


Making good looking materials is dependent on a number of things like

Shape: Chrome is usually applied to an organic looking metal object like a fender.

Environment: A nice environment that make reflections in the surface. Make sure to use a reflection probe in EEVEE.

Material

Color: Chrome R=0.550,G=0.556,B=0.554 (https://docs.unrealengine.com/en-us/Engine/Rendering/Materials/PhysicallyBased)

Metallic: A metal material is always 1.0 in metallic.

Roughness: It's usually a matter of taste but since it is Chrome it should be fairly shiny. Is really good to have a noise texture here so you will get variation and imperfections.


Can't decrease the brightness of the transparent shader effect

The following node setup still uses an emission shader, but ensures that it only affects the camera. The math node allows to control the transparency of the image. If you'd like to adjust the brightness you can add a Bright / Contrast node between the texture node and the emission shader node (Add > Color > Bright / Contrast).


I should also add a Texture Coordinate Node and attach it to the Mapping Node. That makes the texture visible.


I have two objects, and in UV Mapping, one has a value of UVTex, while another has UVMap

I had this issue before. Rename both UV maps (on the mesh properties panel) to have the same name, then join (ctrl+j) the meshes and both UV maps should be preserved.


Try going to both of the directories and just remove the files completely. Then try installing it again to the Blender Foundation directory, checking every time if the add-on is visible in the list.

Edit: as batFINGER said, deleting the Users...\measureit folder would also suffice presuming that is you main blender directory.


How can I edit an action strip while seeing the global NLA animation playing?

If you select the strip in the NLA and press Tab, the action will open in the Dope Sheet and the other objects will continue to be animated.
The only problem is that the action you want to edit will stick to the beginning of the timeline, or at the frame where it is supposed to begin in the Dope Sheet as an action, not at the frame where the strip is placed in the NLA.
To make it begin at the same frame as in the NLA, enable the track pinning option:


There are a couple of things to reduce the meshes.

You can find the most part in the Mesh > Cleanup menu.

Remember you have to enter the Edit mode.

Also a Mesh > Faces > Tris to Quads helps to reduce the edges.

See the image below:


Sequencer won't show the actual animation

If you want a scene to be used in video sequence editor, add a Scene Strip.

Add > Scene

You can add the current scene as well as other scenes.

Check the Open GL Preview and choose the Preview Shading


How about something like this?

Or, even more fun:

Or a ball:

Or a tribute to the question author:

(I am having way too much fun with this)
The dot aspect ratio depends on your UV unwrap, so you can customize it as you want. I have gotten them to be square on a non-square image, but having a square image makes it a lot easier.
Workflow:

Identify the nearest hole.
Find the distance to the hole.
If the distance is greater than the radius, use transparent. Otherwise, use the central color of the center of the hole.

EDIT: GitHub user @JayFoxRox has kindly
suggested some helpful simplifications to the below node
setup. Instead of computing distance by taking the square root of the
sum of the squares of components, simply compute squared distance by
taking the dot product of the two inputs via the Vector Math node.
(Then, of course, compare this to the squared radius instead of the raw
radius.) And the “Combine Vector” and “Separate Vector” node groups now
exist as first-class “Combine XYZ” and “Separate XYZ”, anyway. Thanks!
Blendfile: Dropbox, Blend-Exchange.
Usage:

Main node setup (right-click → Open Image in New Tab to see larger):

Separation (top) and combination (bottom): (would be nicer if it were built-in)

Distance: (Pythagorean theorem/Euclidean norm)


Can i create multiple materials for single face

While you can't directly apply multiple materials to a single face, you can use a texture map to control how two different materials appear on a face.

Blender Render:

Make sure your object has a material.

Click the Use Nodes button.

Drag out a new panel.

Change the panel to the Node Editor.

Add a MixRGB node...

...and plug it in like so.

Duplicate the Material node and plug it in to the MixRGB node. Make sure to assign both nodes their own materials.

Customise both materials to your liking. Notice that dragging the MixRGB slider left or right changes which Material node the final material uses. 0 corresponds to the top node, and 1 corresponds to the bottom node.

Create a new texture in the data textures list.

Customise the texture to your liking, or import a UV map for more control.

Add a Texture node from Add --> Inputs --> Texture, and plug in the Value output into the MixRGB node. Notice that the black parts of the texture correspond to the top Material (value 0) and the white parts correspond to the bottom node (value 1).

Voilà! Rendering an image shows that it mixes the materials regardless of the faces!

The same concept can be applied to Cycles; just replace the Material nodes with a shader node tree each.


Is it possible to export object from Blender with modifiers and use them in external applications?

A modifier uses part of blenders programming to dynamically alter the mesh data. As such they can only be used within blender, though other software may provide ways to get similar results.

The only way to use the results of blenders modifiers in other software is to apply the modifiers before exporting. For a static mesh nothing more than applying the modifier before exporting is needed, many exporters provide an option to do this for you.

For a modifier that generates an animated result, you will need to "bake" the result as a series of meshes for each frame. The .mdd and .pc2 file formats support mesh data that is different for each frame. Alembic is a newer format that supports baked animations, 3dsmax is listed as supporting alembic.

The only difference between exporting to an .obj file and an .mdd file is that the .mdd file contains multiple copies of the mesh for each of it's visual states. Whether exporting a static or animated object, it is a matter of finding a file format supported in both applications that provides a desired result.


Composite glare overlayed by alpha transparency of other material?

Solution 1:

You might want to switch the blending mode from 'add to 'screen'

Solution 2:

Instread of a mix node you can use an 'alpha over'. to my experience this works better for more complex overlays with multiple colours. make sure you add the alpha channel to the 'alpha over' node or it won't work
(in your case you would take the alpha from one of the 'ID masks', not the alpha from the image)


How to add edges without changing the form ?

Use To Sphere tool. After adding the vertical loop cuts select each loop with Alt+RMB, change the pivot type to Individual Origins, press Shift+Alt+S and drag the cursor outwards the mesh. Select the other loop and press Shift+R to repeat the process. Do the same with the other ones. Now you've got additional loops in your mesh and it's also perfectly smooth.

EDIT: If you need to add the horizontal loopcuts also you may subdivide your mesh (W-->Subdivide), then smooth the vertices (Ctrl+V-->Smooth Vertex) and increse the Smoothing value to 1.000. As you can see the objects look the same.


How to access Render Result pixels from python script?

unfortunately accessing render results cannot be done via bpy.data.images['Render Result'].

There is a workaround by using Viewer node. basically you will need to attach a Viewer node to your render layer and then access pixels of the Viewer.

see this link: https://ammous88.wordpress.com/2015/01/16/blender-access-render-results-pixels-directly-from-python-2/


Change Particle attributes when inside a specific area

Keyed Particles is one approach

Note Blender Render, Cycles not considered

The green sphere holds the plan for particles moving from the yellow cube to the red tall box.
This is a starting point for further research.

You stated
[I don't know where to start wwith this task]


Python for Text migrating from 2.79 to 2.8

Turns out to be stupid simple:

bpy.context.scene.sequence_editor.sequences_all["Test"].text = "New text in the field."


How to use the result of a modifier stack to create a new object?

You can do this by converting everything to a mesh.

Object -> Convert -> To Mesh

In the operator options you may want to enable Keep Original (so as not to replace the existing objects).


under what circumstances will a single vertex split into multiple when UV unwrapping?

It can be caused by a seam on the edge marked with green:

You can mark and remove seams in edit mode by select edges and going to Mesh > Edges > Mark Seam or Clear Seam:

You can also call the functions from Edges menu - ctrl+e in the 3d viewport.


Is there a function that is able to cut a sound depending on the volume?

The VSE can't do detections and auto removing silence like that, but ffmpeg can do this: https://stackoverflow.com/a/29411973


This is because Blender assumes the model is symmetrical in its local space and that would be very useful if you had the model's rotation match it's local space and if it's also rotated in the scene, because the symmetrical sculpting would still work on the object, however for some reason you have the model's space rotated but not the mesh. Maybe you rotated it's origin point accidently.
Select the model in the viewport in object mode and apply rotation data with Ctrl+a -> Rotation so that the orientation of the objects local space is forced to match the global space:


How to prevent particles from spawning on its emiter's edges?

Let's say you have a plane object,

then a border to restrict the particles can be added by pressing I once to inset the face(s), adjust the border as to how big you need it. Then press I once more and add another border close to the first one. This is needed for the weighting to have some space to change from 1 to 0, as otherwise a single face loop border would have a gradient from inner(1) to outer(0) resulting in particles still spawning there.

With the inner face(s) selected, switch to weight paint mode and make sure the Weight is set to 1:

Now with the mouse over the 3D-Viewport, press Shift+K to set the inner face(s) to a value of 1.

By default the weight is 0, so the outer border should look like in the picture above.
With the weighting done, all you need to do is go in the ParticleSettings under Vertex Groups and select the (with the weight painting) created Group in the Density field.

Happy Blending


Why is my texture rendering in a different position than it shows up when in texture view?

By default, Blender uses 'Generated' Corrdinates for placing textures on objects when rendering with Cycles. In the viewport however, when you have Cycles selected as a render engine, the texture node which is selected will be previewed on the object using the currently selected UV map. That's why you see it mapped correctly in the viewport, but mapped in a different fashion in the rendering.

Now I don't know why you were told that Blender would not unwrap correctly using the UV map node, but anyways: Use either a Texture Coordinates Node and plug the UV output to the 'Vector' input. This will use the UV map from the object which is currently marked as 'renderable' (yellow circles in screenshot). Or, you use the UV Map node. Here you can choose the name directly, but remember that if you rename the UV Map later on in the mesh data, you'll need to update the input field in the node as well (red circles).


1 Go to View >> Area >> Vertical split then Editor Type >> Outliner

2 Go to View >> Area >> Horizontal Split Then Editor Type >> Properties

Hope that helps

Good Luck


all meshes are selected, yet they don't appear on UV EDITING

The problem was the UV maps were all different names. When I renamed them, it solved everything, and then after I joined.


Use a cuboid to surround the scene, and use a volume scatter node as volume. Nothing shoud be connected to the surface socket.
The default value of 1 for volume scatter is way too dense for practical use, so use a much smaller value.

Add a point light and make it very small (in this example is 0m) and very, very, very bright. The smaller the light, the more defined the shadows will be.

If you are using a glass material for the windows, you have to modify it so that it let's direct light go through it.

For more info on the glass shader read:
How to illuminate the dark areas behind glass in cycles
As for the noise... use a lot of samples.


Symmetry is a wonderful operator for borns editing, so mirror constraints are not necessary. It can be used as follows.
In the edit mode, select L bone and press Armature > Symmetry in the header menu.


How to update values based on existing properties via Python?

somewhat important note: this way if doing it should work, but its really hacky and might be unstable or interfere with other parts of blender (im using blender 2.80).

  step one

create a new file in C:\Users\--Username--\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons or the eqivalent path in other operating systems,  its important that the file ends with .py copy the code below and paste into the new file.

  step two

open blender and go to Preferences>addons search for test and enable the test addon, save user preferences, open a new file (in blender) or close and reopen blender, if you have a sequence selected and press the left mouse button you should get a message in the console that says "The Script goes here" (open it by going to Window>Toggle System Console).

from bpy.app.handlers import persistent
import bpy

bl_info = {
    "name": "test",
    "author": "Syler",
    "version": (0, 0, 0, 1),
    "description": "test",
    "blender": (2, 80, 0),
    "category": "Object"
}

@persistent
def load_handler(dummy):
    print("Load Handler:", "test")
    bpy.ops.test.modal('INVOKE_DEFAULT')

def script():
    print('The Script goes here')

class TestModal(bpy.types.Operator):
    bl_idname = "test.modal"
    bl_label = "test Modal"
    bl_options = {"REGISTER", "UNDO", "INTERNAL"}

    def modal(self, context, event):
        #note: using context.area.type to check weather the event got called in the video sequencer doesn't work, don't know why.

        if event.type == 'LEFTMOUSE' and event.value == 'RELEASE':
            if context.selected_sequences != []:
                script()

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

classes = (
    TestModal,
)

def register():

    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    bpy.app.handlers.load_post.append(load_handler)

def unregister():

    from bpy.utils import unregister_class
    for cls in classes:
        unregister_class(cls)
    bpy.app.handlers.load_post.remove(load_handler)

the way this works is the addon gets registered, then when a file gets loaded it calls the TestModal Class, which checks the input for the left mouse button, when you also have a sequence selected then it calls the script def.


Cant find bone constraint in blender 2.8?

You have to be in pose mode to get access to the bone constraint tab (even in 2.79).


Some meshes follow the armature and some don't

This rigging seems messy, probably because it comes from a game that has its own system, so it would take too long to fix it all, but a quick fix for the hat for example: Go in Edit mode, select all the vertices, go in the Properties panel > Object Data > Vertex Groups, change the name of Root to Root.001, which is the name of the bone that is supposed to control it, then click Assign.