How to mirror a mesh on x-axis on pivot point with python?

Simple mirror in place about origin

To mirror about the X axis (the ZY plane) at the origin is a simple matter of negating the x vert coordinate (v.co.x = -v.co.x or v.co.x *= -1)  Sample script run in edit mode, mirrors all verts.

import bpy
import bmesh

context = bpy.context
ob = context.edit_object
me = ob.data

bm = bmesh.from_edit_mesh(me)
for v in bm.verts:
    v.co.x *= -1

bmesh.update_edit_mesh(me)

Matrices

Check out the layout of a transform matrix an example of which it the 4x4 matrix ob.matrix_world .   Just setting the matrix value to -1 as shown in question will not work as expected in all cases.

A transform matrix T to mirror on x axis would be identity with T[0][0] = -1  Or a scale matrix T = Matrix.Scale(-1, 3, (1, 0, 0))

T = Matrix.Identity(3)
T[0][0] = -1
bmesh.ops.transform(bm,
        verts=bm.verts,
        matrix=T,
        space=Matrix.Translation(-pp))

Where pp is the point on x axis about which to mirror, Can exclude (as it's default) when mirroring about the origin pp = Vector((0, 0, 0)) or since it's default pp = Vector().

Another example from py console run in object mode, will mirror mesh about axis by transforming vertices of the mesh.vertices collection

>>> T = Matrix.Scale(-1, 4, (1, 0, 0))
>>> C.object.data.transform(T)
>>> C.object.data.update()

On an object level

>>> C.object.matrix_world *= T.to_4x4()

Finally to mirror about some arbitrary pivot point, will need to translate such that the pivot point is the origin, mirror,  then translate back.  This is the equivalent object level result of changing space in a bmesh operator with the translation matrix.

>>> pp = Vector((3, 0, 0))
>>> A = Matrix.Translation(-pp) * T * Matrix.Translation(pp)
>>> C.object.matrix_world *= A

this may quite likely invert some normals that will need to be fixed later.

Putting it together to mirror each mesh about a designated axis using the scene scene cursor location as pivot point, and correcting the normals. Run this script in object mode.

import bpy
from mathutils import Matrix
import bmesh

context = bpy.context
scene = context.scene
pp = scene.cursor_location # in global coords
mesh_obs = (o for o in scene.objects if o.type == 'MESH')
bm = bmesh.new()
axis = 0 # x, y, z = 0, 1, 2
T = Matrix.Scale(-1, 4, Matrix.Identity(3)[axis])
for ob in mesh_obs:
    me = ob.data
    bm.from_mesh(me)
    lpp = ob.matrix_world.inverted() * pp # pivot point local coords
    bmesh.ops.transform(bm, matrix=T, space=Matrix.Translation(-lpp), verts=bm.verts)
    # recalculate the normals
    bmesh.ops.recalc_face_normals(bm, faces=bm.faces)
    bm.to_mesh(me) # write to mesh
    me.update()
    bm.clear() # clear for the next one.
bm.free() # free the mem used by bmesh

Bmesh Mirror operator

bmesh.ops.mirror(...)

Test script run in edit mode. Will mirror the whole mesh on x to the scene cursor location's local x location.  Creates new geometry as the mirror.  Remove the original to only leave the mirrored result.

import bpy
import bmesh
from mathutils import Vector, Matrix
from math import radians, degrees
context = bpy.context
scene = context.scene
ob = context.edit_object
me = ob.data

bm = bmesh.from_edit_mesh(me)

pp = ob.matrix_world.inverted() * scene.cursor_location
bmesh.ops.mirror(bm,
        geom=bm.faces[:] + bm.verts[:] + bm.edges[:],
        axis=0,  # x, y, z <==> 0, 1, 2
        matrix=Matrix.Translation(-pp),
        merge_dist=-1 # disable so center verts dont merge.
        )
bmesh.update_edit_mesh(me)

Note the operator returns the new geometry.. ret = bmesh.ops.mirror(...) in a dictionary. new_geom = ret["geom"].


Is it possible to mask animated displacement textures?

You could create a vertex group and then in wait paint mode, paint a gradient onto those vertices, and then use that vertex group in the displacement modifier.

For an All-Modifier Approach that doesn't require any editing the actual plane
They way you can mask out the edges is by creating a mask texture in texture paint mode with white all around the edges of the plane.  Then you can use that along with a Vertex Weight Edit modifier placed before the "Texture" vertex weight edit modifier you already have to remove the edge areas from the vertex group.
First, copy your "Texture" modifier and move the copy up to come first.

Then, go into Texture Pain mode and turn off all your modifiers so that you can see what you're doing better.  Then, go into the "Active Tool" tab of the Properties editor, and under "Texture Slots" set the Mode to "Single Image" and press "New"  Name it something like "Texture Mask."  You should then see a black image appear in the Image Editor and the plane in the 3D view should also turn black (make sure you're in solid view instead of material view.  That threw me off at one point).  Then paint a white edge around the plane.

Next, switch to weight paint mode and turn on the "VertexWeightEdit.001" modifier you copied from the "Texture" modifier.  You should now see a bunch of spots on the blue plane.  Now, go into Texture tab of the Properties editor.
Make sure the modifier is set to the correct one (VertexWeightEdit.001).  Then click the "2" next to the name of the texture.

Then, set the Type to "Image or Movie" and choose the "Texture Mask" image you created earlier.  Then, go back into your modifiers and change the VertexWeightEdit.001 modifier's Texture Coordinate from "Object" to "UV".  Also, select "Group Remove" and set the Remove Threshold to 1.  You should now see your mask appearing in red against blue on your plane.

Finally, turn on all your modifiers, and everything should be working properly.


Multires Normal Baking Not Baking Normal Data

Baking normal map from Multiresolution modifier data relies on the difference between the viewport number of Multires subdivisions and the highest level it was subdivided to:

The higher difference in these numbers is (Viewport vs. highest from Sculpt / Render), the stronger effect of the resulting normal map will be.

If your normal map is very light or flat then probably Preview level is set to the same one as Sculpt or Render is. Set it to lower number and choose how much of the normals change you want to bake.

Note that baked normal map should be applied to the low-poly mesh with the same amount of geometry as the mesh had with the chosen Preview level of the Multires modifier.


As you  have discovered, this can be caused by non-planar faces.
Ngons are particularly susceptible to being non-planar, but this can happen to quads too.

You can fix these automatically by selecting everything (A), then pressing Split non-planar faces in 3D view > Header > Mesh > Cleanup:


Use less memory in for faster rendering (32GRAM)

Linked Duplicates
https://docs.blender.org/manual/en/dev/editors/3dview/object/editing/duplication.html?highlight=duplicate%20instances

Mode:   Object Mode
Panel:  Tool Shelf ‣ Tools ‣ Edit ‣ Duplicate Linked
Menu:   Object ‣ Duplicate Linked
Hotkey: Alt+D

You also have the choice of creating a Linked Duplicate rather than a Duplicate; this is called a deep link. This will create a new object with all of its data linked to the original object. If you modify one of the linked objects in Edit Mode, all linked copies are modified. Transform properties (object data-blocks) still remain copies, not links, so you still can rotate, scale, and move freely without affecting the other copies. Reference Expl. Duplicate Example for the discussions below.

Note
If you require the applied material to not be linked you will need to turn on "Object" data on the material panel here.


Changing the location of panels in different categories in the Toolshelf (script needed)

This Addon could be of your interest. Using it You could create your own panels and then move the existing ones to them. This way its possible to have for example all the architecture addons (Archimesh, Archipack...) in one panel called Architecture.
https://blenderartists.org/t/addon-ui-tabs-change-category/649585


How can I solve a far away stacking Freestyle line

I'm not sure if you're already doing this, apologies if so.

You can assign a Distance from Camera modifier to the line thickness in the View Layer Properties tab > Line Style panel.

Before:

After:

You might have to use separate Line Sets for other features whose
detail you want to preserve in the distance.
You can assign the same modifier to Alpha, making the lines more transparent in the distance -  a possible alternative.
As you can see, depending on the resolution of your rendered image, at some thickness, sampling/antialiasing takes over. This might be before your set 0 point; you'll have to tweak the curve / base thickness accordingly.


How to animate vertex color of an object?

Cycles
In Cycles Render, it's rather easy. Create your two Color Layers and animate the MixRGB's Fac: value.

I'm not familiar enough with Blender Internal to find a suitable answer for that engine. Luckily, brecht provided an answer
Blender Internal


Passing properties to an operator, here's a small example (see the test call towards the end). This snippet is an elaboration on TextEditor > Templates > Python > Operator Simple

import bpy

class SomeOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.some_operator"
    bl_label = "Simple Object Operator"

    property_one = bpy.props.StringProperty(default='state one')
    property_two = bpy.props.StringProperty(default='state two')

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

    def execute(self, context):
        print(self.property_one)
        print(self.property_two)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.some_operator(property_one='woop_one', property_two='woop_two')

if you want to call such an operator from a layout element..

# if you want to pass a single property
row.operator('object.some_operator').property_one = 'some_new_value'

# if you want to pass multiple properties
some_op = row.operator('object.some_operator')
some_op.property_one = 'some new value one'
some_op.property_two = 'some new value two'

Autocomplete

If you don't know the name of the properties, then you can use the Python console's autocomplete.

In this example hit ctrl+space after the parenthesis ( , here you see lines is the only property you can set.

Documentation

Another resource is the current api docs use the search feature, type in for example bpy.ops.text.scroll and it will show the signature.

In the case of WM_OT_append you should be looking for bpy.ops.wm.append.

Tooltips

Use the tooltip that appears by default upon hovering of menu items / buttons:


I cant see your reference image. If you want to pack the image with the .blend file, you need to go to
File > External data (at the bottom) > and choose "Pack all into .blend

This will stick the images into the blend file for others to see.

Now you question seems a little vague, you seem to be on the right track. There is nothing inherently wrong with your model. Stick a mirror modifier on there and keep working and you'll be done in no time.

If you don't like how your model looks compared to the image, look at the image and say, "How is my model different?" Then change it.


It's not brutally important when you have a limited amount of parts.

Blender 2.79 is still not amazing at handling many 1000s of objects, so sometimes joining can speed selection up quite a bit.

But there is one thing to think about:

If your detail objects make up a lot of verts, I wouldn't put them into the hull but their own object. That way you can, to speed up test rendering, switch them off and keep the hull.

Depending on complexity, that can make a difference.

Another aspect: you can parent objects to faces. Not too relevant here but if you have an object that might change later, parenting the details to a face means you can change the height of a floor and the objects will follow.

If it's all geometry, you either have to select all tiny meshes or abuse a vertex group for selection purposes.

Yet another aspect: Object origins make for great rotation centers. If it's a mesh, you either need a used or hidden center vertex or you have to select the right verts to place the cursor.

My advise here? Save a backup copy of the unjoined objects, join the details into one or a few objects (bow, midship, stern etc) and parent those to the hull.


Using multiprocessing to speed up multiple sound bakings

I'm sure someone will school me if I'm wrong (please do!):

The Python multiprocessing module allows one to run concurrent python code, this makes sense for processes that don't rely on each other to reach a conclusion. What you want to do is get Blender to concurrently perform the sound bake function (C code). As far as I'm aware calls to that function are blocking Blender from doing anything else until the function ends and control is returned to python.

If that's right, then A solution could be the one I offered in the comment s:

use Popen or subprocess and instantiate multiple Blender threads with scripts, and  append the F-curves from each resulting .blend into a final .blend.


Okay, after many time of research I found a quite enough answer on my question. I rephrased what I want and made the following things.

Custom operator

First I created a custom operator. It looks like this:

class SaveFile(bpy.types.Operator):
    bl_idname = "my_wm.save"
    bl_label = "Save My File"

    def __init__(self):
        print("It is working now")

    def execute(self, context):
        try:
            bpy.ops.wm.save_mainfile()
            print("My code!")
        except RuntimeError:
            print("ERROR: Can't save file!")

        return {'FINISHED'}

    def invoke(self, context, event):
        return self.execute(context)

After that I registered it:

bpy.utils.register_class(SaveFile)

Invocation

In the places, where I want to execute my custom code, I use this:

bpy.ops.my_wm.save()

Hope that it will be helpful for somebody else.


This script will apply the resolution of the first scene to all other scenes. It will auto-update all scenes as soon as you change the resolution in the first scene.

import bpy

def set_resolution(scene):
    x = bpy.data.scenes[0].render.resolution_x
    y = bpy.data.scenes[0].render.resolution_y
    for scene in bpy.data.scenes:
        scene.render.resolution_x = x
        scene.render.resolution_y = y

bpy.app.handlers.depsgraph_update_pre.append(set_resolution)

All you have to do is run the script once after opening your project in the Scripting workspace.


Blender 2.91.2 Transparency Effect no longer works with emission

Answer from a helpful person
"check when you press n in the material editor > options, if blend mode is set to alpha blend or alpha hashed. – Alex bries"


How to create slanted edges and rounded handles for a tray?

I'd do it using a Mirror Modifier and a Solidify Modifier.

Create a quarter of the tray, with no thickness.
Add a Mirror Modifier and a Solidify Modifier
Tilt the handle using a 3D cursor as pivot (or proportional editing)
Tilt the sides just by moving upper vertices.

The solidify modifier keeps even thicknes for you, saving fiddling with vertices.


How do I make vertices equidistant from a given center?

Select the ring of vertices
Shift+Alt+S. Then hit 1.

Or Mesh > Transform > To Sphere


How to load an image and use it as vertex weight

try to use this node
https://github.com/nortikin/sverchok/blob/master/docs/nodes/generators_extended/image_components.rst
it allows to do vertex masking by coefficienting.


The bevel may be being held back by the “clamp overlap” setting. Turn that off and see what happens.
The stain is normal flaws, and is happening because the shade smooth is averaging the normals between the bevel faces and the large ones that are meant to look flat, affecting the large flat ones as well. The solutions for this problem vary. Most use “Inset Faces” after all modifiers have been applied.


How to rotate video in Movie Clip Editor?

You can select your strip and press ShiftA > Effect Strip > Transform:

Then select the effect strip it has created and in the N panel > Strip > Effect Strip > Rotation, type 180°:


Python add sound sequence result only one frame

Problem in invalid file path.

Короче надо так '//digital.mp3', а не '~/sound/digtal.mp3'

scene.sequence_editor.sequences.new_sound("digital", "//digtal.mp3", 1, 19)


In Blender 2.80, when i try to bake a fluid simulation using flip fluids, it gives me the error 'Cannot find fluid engine library: libblpyfluid.dll'

According to a note on the the GitHub repository, the Microsoft Visual Studio Compiler is not officially supported:

  WARNING: Compilation using MSVC (Microsoft Visual Studio Compiler) is experimental and not officially supported. Building with MSVC may result in errors and performance issues.

When building the FLIP Fluids addon for Windows, the MinGW compiler should be used to avoid potential errors and to ensure the simulator runs correctly.


I am still figuring out how to selectively edit icon size, but the line and file you are looking for is #define ICON_DEFAULT_HEIGHT 16 and #define ICON_DEFAULT_WIDTH_16 in UI_interface_icons.h. For example, changing this height and width to 32 instead of 16 will double all of your icons; it would be ideal if you're scaling the rest of your interface (e.g. button padding) proportionately. This works for Blender source version 2.79. Hope this helps!


Ok, so in Blender VSE, I've added an image;

I added an adjustment layer;

Then an effect layer (transform);

(You can see each addition in the sequencer)

@batFINGER was talking about this scaling (as if a coin was spinning on a side);

I feel like you were probably asking for this;

Thing to note: The adjustment layer and effect layer need to overlap the image on it's layer.


boat structure modeling - shape to curve along a surface

Both of these methods require a  set of edge-loops in the hull where you you would like the stringers to run.

A destructive method:

Select the loops which will become your stringers, ShiftD duplicate them, and P separate the selection to a new object
AltC in Object Mode, convert the new object into a curve
Set a full bevel, minimum resolution, on the curve in its Data tab, adjusting the depth.
In Edit Mode, all selected, set the Mean Tilt of the curve to 45 degrees
Assign a Shrinkwrap modifier to the curve, target the Hull, 'Nearest Vertex', 'Keep above Surface' with an Offset sufficient to raise the stringers onto the hull.

This method has a few disadvantages: Without adding a profile object, you can only have square-profile stringers.. you can change the shape of the hull a little and the stringers will follow, but not far before the Shrinkwrap goes out of range, and has to be applied.

A non-desructive method:

Make the selection of edge-loops as before, and make a Vertex Group from them
AltD make an instance of the entire hull
Add the illustrated modifiers to the instance, aimed at the Vertex Group.

The Bevel sets the width of your stringers (not necessarily 3 segments)
The Mask hides all vertices outside the bevel
The Solidify puts a thickness on the remaining faces, and sets the depth of your stringers

Now any changes you make to the hull will be reflected in the stringers, and widths and depths can be edited after the fact. You can add a further bevel, if you like, to round out the profile.

With appropriate  crease values put into the Solidify modifier, and in any Solidify assigned to the hull, both can  have a Subdivision modifier assigned, and stay in good shape.


This can be done with the workbench engine, if you don't need motion blur as shown in your example image and the colors don't have to be 100% accurate. For accurate results you will have to create a material for Cycles and Eevee.

Approach 1: Workbench Engine

Switch to the Workbench engine

Enable MatCap as material and select the normal map matcap.

Enable Transparent for the Film

Set the View Transform to Standard

Approach 2: Material for Cycles and Eevee

If you need accurate results, then you have to create a material for Cycles and Eevee that transforms the object's normals into camera space and uses them as a color for the object. This can be accomplished by transforming the Normal output of the Geometry node, which gives the normal in world space, into camera space with the Vector Transform node. In order to get the proper colors you will have to adjust the output though, since the camera normals have the following ranges:

$$ x: [-1.0, 1.0]\\ y: [-1.0, 1.0]\\z:[-1.0,0.0]$$

Colors have to be in a  $[0.0,1.0]$ range, therefore the vector has to be multiplied with $[0.5, 0.5, -0.5]$ componentwise and then shifted by $[0.5, 0.5, 0.5]$. The node setup is depicted in the following image. Note that the emission shader is only visible from the camera and therefore doesn't impact other objects in the scene.

Make sure to either save the result as OpenEXR or set the View Transform to Raw to get the exact pixel values.

The result produced with the second approach is more accurate, since it calculates the normals properly instead of performing a look up in the matcap bitmap. The material doesn't have to be assigned to every object individually if you use material override as @RobinBetts mentioned.


I assume that you are trying to add clip to Blender.
So if you are in:

2.79

Go to the selection list and select Movie Clip editor.

and open your clip..

2.80

Again go to the selection list and select Movie Clip editor.

and open your clip..

Hope this helps.


You can animate the hue. Here's a setup I used some time ago. The hue is cyclic, and often represented by 0° to 360° on a circle, but in Blender it is represented by a value between 0 and 1. Greyscale values, including black and white, will not change by this, because they are completely desaturated.
Further explanations of HSL and HSV on Wikipedia

The Separate HSV and Combine HSV nodes separates a colour into Hue, Saturation and Value and combines Hue, Saturation and Value into a colour. They are located under Converter in the Add menu.

Modulo makes sure the hue never goes above 1. It's a Math node, also located under Converter. However, it doesn't prevent values from becoming negative (specifically, it keeps the value between -1 and 1). The Less Than node (also a Math node) followed by the Add node take care of that, by adding 1 if the value gets below 0. The reason I do not simply select Clamp in the first Add node, is that that would make the cycling stop at 0 if the value became negative and at 1 if the value became greater than one.

Now, animate the value marked with a red rectangle.

Here's a .blend, but I stripped it of the texture I used for the gif above.

UPDATE: The above will make the cycling linear in the positive direction on the hue circle. To make it go the other way, change the first Add node to Subtract. And below is a setup to get more control, for example to make the cycling go back and forth or non-linearly.

The Value node is the one to animate in this case. It's available under Input in the Add menu. The RGB to BW node (available under Converter) isn't strictly necessary; I just added it for clarity, though plugging an RGB into a single value socket, does this conversion automatically.

The output from the ColorRamp node is what gets added to or subtracted from the hue, so by tweaking it, you can make the cycling happen virtually any way you please.

Updated .blend


How do I delete an armature but keep the baked pose?

Ctrl + A to apply all transformations
Alt + P to clear parent and keep transformation
Apply all modifiers


Is it possible to change the gravity of a single Rigid Body in the scene?

This is related to How can I make scene with multiple gravities going in opposite directions without using a force field?
It used to be that you could move rigid bodies into different layers and they would only be affected by the forces within that layer. This would allow you to create a force (such as Drag) which would only affect some of the objects. However, at later versions of Blender, that functionality is broken - see https://developer.blender.org/T87458.
Once that bug has been addressed it should be possible to have forces affect only certain objects by putting the objects in different Collections.


Maybe you want to use the Extrude operation.  Select the last control point on the curve and hit e.  You can then move your mouse around to choose where the new control point will go.


Script changes to driver expressions and variables

import bpy
context = bpy.context
scene = context.scene

for obj in scene.objects:
    mesh = obj.data
    if not mesh or not hasattr(mesh, "shape_keys"):
        continue

    # shape key collection
    shapekeys = mesh.shape_keys

    # animation data
    ad = getattr(shapekeys, "animation_data", None)
    # no animtion data no drivers
    if not ad:
        continue

    #select the driver part of fcurves in drivers list
    drivers = [fc.driver for fc in ad.drivers]

    for d in drivers:
        #variables of type distance
        vars = [v for v in d.variables if v.type == 'LOC_DIFF']
        for v in vars:
            # set the target 2 to obj that has driver.
            v.targets[1].id = obj


How can I create irregularly apportioned vertices in regularly distributed vertices in a loop, without changing the loop?

The shipped Loop Tools add-on > Space option may do exactly what you want..

It can make a cubic interpolation from existing irregular points, resulting in a smooth curve fit. You can set it to 'Linear'..

.. which will be more faithful to the jumps in tangent directions created by gaps between vertices before the operation.


how to simulate 3dmax cellular map for displace like in video?

It sure is possible. I made a similar rock in a few minutes. You can check my settings from the image.

You can do this with one displacement map but for some reason I got better results with two. Put them underneath a subdivision surface modifier, and the displacement modifiers should have their strength reduced to the same number (.3-.5). The realism of the rocks comes from playing with the voronoi texture settings: size, and distance metric were most important. I found distance squared worked best. Also the color ramp can help level off any circular spots in the texture.

Hope that helps. Good luck!


To change a property of multiple objects simultaneously, press ⎇ Alt will adjusting it.

⎇ Alt LMB drag will change the property of all objects relative
⎇ Alt LMB click, entering a value and pressing ⏎ Enter will change the property to the same absolute value for all objects


You have added a keyframe. It can be deleted by clicking on the diamond again, or right-clicking in the number widget and select "Clear Keyframes":


Avoid obstacles overlap with BezierCurves

Raycast into the scene

As a proof of concept have put together a "dodgy" artillery trajectory.

Define the two end points in scene
Target from point to point and shoot a ray into scene
If it hits an object, raise elevation by one degree and try again
If it does not hit, using current aim vector,  extend the right handle of the source knot to where it intersects the plane defined by target point and source to target normal.
The incoming handle is lazily set to vertical.

Note haven't put any checks and balances in to test if there is no possible LOS trajectory A to B.
To improve could use same method going other way.  Have found only the trajectory on the vertical plane.  Spinning the aim around point to point axis could be considered to find shortest two point bezier path that misses object obstacles between two points.  Another way to put this would be we are looking at pitch, could also consider roll, moving our aim around ever increasing concentric circles until a miss
Test code.
from bpy import ops, context, data
from mathutils import Vector, Matrix
from mathutils.geometry import intersect_line_plane
from math import radians

scene = context.scene
pt0 = Vector((-5, 0, 0))
pt1 = Vector((5, 0, 0))
up = Vector((0, 0, 1))
t = d = (pt1 - pt0).normalized()
axis = d.cross(up)
d_elev = radians(1)

hit = scene.ray_cast(
        context.view_layer,
        pt0,
        d,
        )[0]

R = Matrix.Rotation(d_elev, 3, axis)
while hit:
    t = R @ t

    hit = scene.ray_cast(
            context.view_layer,
            pt0,
            t,

            )[0]

t = R @ t # rotate one more time
pt2 = intersect_line_plane(
    pt0,
    pt0 + 1000 * t,
    pt1,
    d,
    )

ops.curve.primitive_bezier_curve_add()
curve = context.active_object
curve.name = 'Trajectory'
bez_points = curve.data.splines[0].bezier_points

bez_points[0].co = pt0
bez_points[0].handle_left = pt0 - t
bez_points[0].handle_right = pt2

bez_points[1].co = pt1
bez_points[1].handle_left = pt2
bez_points[1].handle_right = pt1

Added one more rotation after miss. Raycast can be a little dodgy if it hits an edge.

Some test results of moving two cubes, active curve is last result with cubes in current location.
As mentioned this is simply a proof of concept of manipulating the handle of a bezier curve to emulate lobbing over an obstacle in LOS changing degree of elevation.
Doing this using points of a right angled triangle with right angle at destination point.
To make this a "shortest" curve that misses obstacles would require more bezier points or investigating looking from other end moving  the apex of the triangle that is the intersection of handle right of source point and handle left of destination point vectors.


Disabled constraints still being calculated?

It's not the constraint that's the cause. The common way to deal with this is to enable "simplify" and globally reduce the subdivision level while you're animating.


How to bake normal map for discontinuous mesh

Here is a workflow you could use:

Build the high poly mesh first.
Add details as you like by adding separate meshes.
Build the low poly mesh over high poly mesh, using Shrinkwrap and Surface Snapping to help.
Separate your low poly meshes according to requirements (textures, extrusion etc).
Bake your maps.

This ensures correct normal and AO map bakes.


Determine if fcurves cannot be evaluated from Python

ID.path_resolve
Probably not the loop to use (action in bpy.data.actions) Need to know for what object(s) the action is for. For example all pose bone fcurves will be invalid for the Cube. If the object is an armature it will require the named pose bone.
Similarly to
Evaluate FCurve without keyframes won't work
can use Object.path_resolve(FCurve.data_path) in a try / except clause to search for what will be seen as invalid fcurves.
Have left out the "obvious" test of looking to see which action is assigned to objects animation data
Is the object that is associated with an action selected?
action is ob.animation_data.action

or searching for it in the Strips of NLA Tracks. Something like
any(s.action is action for t in ob.animation_data.nla_tracks for s in t.strips)

Also look at the Action.id_root which is set when adding a new action to a particular data type using the UI.  No suitably rooted paths error when trying to set action on object
Test script, checks all actions against all objects, meshes, shape keys and materials and counts the fcurves  valid for each.
import bpy
from itertools import product
context = bpy.context
prev = None
for action, ob in product(
        bpy.data.actions,
        sum(
                (
                bpy.data.objects[:],
                bpy.data.meshes[:],
                bpy.data.materials[:],
                bpy.data.shape_keys[:],
                ),
                []
            )
        ):
    if action is not prev:
        print("-" * 44)
        print(f"Action : {action.name}")
        n = len(action.fcurves)
        print()
        print(f"\tID {action.id_root}")
        print(f"\tFcurves : {n}")
        prev = action
    def is_valid(fc):

        try:
            ob.path_resolve(fc.data_path)
            return 1
        except:
            return 0
    v = sum(is_valid(fc) for fc in action.fcurves)
    print(f"\t{ob.bl_rna.identifier} : {ob.name}  Valid : {v} ({100 * v / n}%)")
print()

Test run, quickly added some keyframes to some objects, a mesh, an armature object a material and a shape key.  The "CubeAction" on the cube action was LocRotScale, which will be valid on any object.
--------------------------------------------
Action : ArmatureAction

    ID OBJECT
    Fcurves : 10
    Object : Armature  Valid : 10 (100.0%)
    Object : Camera  Valid : 0 (0.0%)
    Object : Cube  Valid : 0 (0.0%)
    Mesh : Cube  Valid : 0 (0.0%)
    Material : Material  Valid : 0 (0.0%)
    Key : Key  Valid : 0 (0.0%)
--------------------------------------------
Action : CameraAction

    ID OBJECT
    Fcurves : 3
    Object : Armature  Valid : 3 (100.0%)
    Object : Camera  Valid : 3 (100.0%)
    Object : Cube  Valid : 3 (100.0%)
    Mesh : Cube  Valid : 0 (0.0%)
    Material : Material  Valid : 0 (0.0%)
    Key : Key  Valid : 0 (0.0%)
--------------------------------------------
Action : CubeAction

    ID OBJECT
    Fcurves : 6
    Object : Armature  Valid : 6 (100.0%)
    Object : Camera  Valid : 6 (100.0%)
    Object : Cube  Valid : 6 (100.0%)
    Mesh : Cube  Valid : 0 (0.0%)
    Material : Material  Valid : 0 (0.0%)
    Key : Key  Valid : 0 (0.0%)
--------------------------------------------
Action : CubeAction.001

    ID MESH
    Fcurves : 1
    Object : Armature  Valid : 0 (0.0%)
    Object : Camera  Valid : 0 (0.0%)
    Object : Cube  Valid : 0 (0.0%)
    Mesh : Cube  Valid : 1 (100.0%)
    Material : Material  Valid : 0 (0.0%)
    Key : Key  Valid : 0 (0.0%)
--------------------------------------------
Action : KeyAction

    ID KEY
    Fcurves : 1
    Object : Armature  Valid : 0 (0.0%)
    Object : Camera  Valid : 0 (0.0%)
    Object : Cube  Valid : 0 (0.0%)
    Mesh : Cube  Valid : 0 (0.0%)
    Material : Material  Valid : 0 (0.0%)
    Key : Key  Valid : 1 (100.0%)
--------------------------------------------
Action : MaterialAction

    ID MATERIAL
    Fcurves : 2
    Object : Armature  Valid : 0 (0.0%)
    Object : Camera  Valid : 0 (0.0%)
    Object : Cube  Valid : 0 (0.0%)
    Mesh : Cube  Valid : 0 (0.0%)
    Material : Material  Valid : 2 (100.0%)
    Key : Key  Valid : 0 (0.0%)


If you want to open a Tool Shelf panel click the little '+' symbol on the left of the window or press the T button. You may open the Properties panel in the same way, but instead of pressing T, you press the N button.


Parenting with Automatic Weights- Bone Heat Weight Failure

The main cause of that error is when there are overlapping/duplicate vertices and/or intersecting parts.

I would suggest a couple of things.

First, your model has a huge number of faces. 287k faces for an object like that is quite a lot. The large number of faces is making it hard for blender to tell which vertex should be assigned to which bone. I would suggest making the model with way less faces and using a Subdivision Surface modifier to make it smooth. Unfortunately that would me remaking your model but it will save you countless headaches in the future. Using the decimate modifier set to unsubdivide with 6 iterations can do most of the work for you, but it doesn't seem to work on the legs very well.

Second, automatic weights is not going to be the best way to rig your tripod. Your tripod is made of a number of segments and each segment looks like it should be parented to a single bone. Automatic weights will assign each vertex to the nearest bone(s) and thus you will have multiple bones controlling each segment and the segments will bend and deform. Instead, I would suggest parenting with empty groups and manually selecting each section of the tripod in edit mode and assigning it to the appropriate vertex group. Hovering your mouse over a vertex and pressing L will select everything connected to what is under your mouse which will save you time selecting each section.


Using Alpha Textures doesn't work properly

In your screen shot you plugged the alpha channel from the image in the the mix Shader.

Just plug the color socket of the image texture in to the factor of the mix Shader.

Edit:

The alpha channel of an image stores where the image is clear. The image in your question does not have an alpha channel, so it will be all white. If you used a png with transparency in the image then you would use the alpha channel as the mix factor.

If you change your image, delete all the black part so that it is clear. Then the alpha and color channels would be the same. White only where the letter P is.


You are using default Blender Render engine instead of Cycles Render engine.

To get the Surface option in the World tab you need to switch from Blender Render to Cycles Render on the top of the Blender screen.


How to correctly export VDB files from Blender smoke or cloud generator?

In Blender 2.81 the "VOLUME" object data was introduced in Blender. The way it works is: SHIFT+A > Add a volume object, and go to the properties of the volume, and target a vdb sequence by selecting all of its files in the explorer window, then ACCEPT.
You can playback the result in the timeline, which will "cache" to view it on GRID voxels. You can setup a principled volume shader to also tweak temperature and combustion plus other attributes you sent from your original vdb export software into Blender.
2.79 which is the version this question was asked, DID NOT had any vdb addons ready for the public at the time. All though Tangent Animation Studios did implement their first vdb reader as a custom in-house solution to develop the Netflix movie NEXT GEN back in 2.78.


How do I fill in every single face correctly?

Select the 2 opposite edges and press CtrlF > Grid Fill


Motion Tracking Tripod with Given Camera Settings

For a static camera the default camera solver will not work, you need to solve as tripod.

That will yield tracking points projected to a sphere only, but no real 3D information, but the camera move will be recreated.
Read:
How can I get better results when doing camera motion tracking?


strange black lines on object when rendered

I have not seen this behaviour before but if you select the arch and Set Origin to geometry the artefacts will go away. I suspect that it's related to precision errors when the geometry is too far away from the origin.


Ik rig severely deforms, target pole rotates torso?

I think what had happened was that there were as I suspected, weighting issues, hierarchial problems and bones had been edited in the wrong mode which can cause problems with the set rotation, scale and location in pose mode.

Here I've given you an example of a rigify rig which comes with names and and logical hierarchy. It will need weight painting to fix deformations of limbs but it'll give you a head start.

https://www.dropbox.com/s/2xhietllb671q0k/posed%20girl_edit.blend?dl=0

Good luck with it


It's the Proportional Editing. You switching between enabling and disabling it by pressing "o" on a keyboard or choosing grey/blue circle icon on the bottom tool bar.


I have taken a look at your file. The transparent plane on which your shadow is casted has a setting for it to show or no to show shadows, and in which scenario.
Select that plane, go to the object settings on the right side and find this section:

In your case, only 'show in viewports' was ticked. You also need to tick the box that says 'show in renders' and your render will look the way you imagined it.
Good luck!


How do I separately apply color correction to a model and video clip?

OK, so here is what I would do:
I would strongly suggest that you render your model and put it on top of your image in 2D by simple image/videocomposite. Render out an exr or png sequence and then re-import that in Blender and use an alpha-over node in the compositor (you can also use any video editing software that way)
Then you can just put your image through any CC nodes and process it before merging.
I would also suggest using EEVEE, since you don't have any detail that relies on caustics. Should turn those 40min into 40s.
And as final tip: If you are using motion blur or depth of field, leave the plane in the background, but turn off camera visibility. This way it will already blend into the blurred areas saving you a lot of fine-tuning.


Custom pie menu not working with keyboard shortcut anymore

In your register function you are adding properties to bpy.types.Object but in the menu you are displaying properties of a camera, which doesn't have the properties you registered.

You need to adjust your register function to add the properties to bpy.types.Camera


Is it possible to Generate a Master Shape Key from different objects?

If you select one of the shape key value you just need to right click on this one > Copy as new driver, then go to the other object> shape key value > Right click Paste driver


Change modifier visibility for multiple objects at once

All you have to do is to select all objects, then go to Modifiers, click on visibility button and then Right Click  on that button.

There will be a menu that will give you option to Copy to Selected. That will do the job.


How do i get my grid to stay on top of plane

First solution : Use X-Ray Mode
The shortcut is ALT + Z or click this icon in the top right :
Second solution : Use the material alpha
This works only in lookdev mode and you need to set Eeevee as your renderer first. Click on your object and go to its material or add one if it doesn't have one already. Then go the alpha value and lower it, don't forget to set the alpha blend mode to "Alpha Blend".

Enhance the grid line visibility
If you want to see the grid lines more easily, you can tweak the opacity inside the user preferences :


Cycles Render not rendering what viewport camera shows

You have a Subsurf Modifier applied to the plane that you're using as a mask. Most modifiers allow different settings for preview in the viewport and at render time. You probably have the subdivisions for "view" set to zero, and the subdivisions for "render" set to 1 or 2. This is so that you can minimize impact on the viewport but still have a nice render.

Select the plane and then look in the modifiers tab. You can either adjust the subsurf settings to be more reasonable, or just delete the modifier altogether.

If you never tried to add a subsurf modifier and are wondering how in the world it got there, it's possible to add one by pressing ctrl1 or another number, up to 4 (I think). So you probably accidentally used that shortcut.

Hope that helps!


Why do my textures look different in texture paint mode and object mode?

Possibly you can turn up the aliasing and filter settings in the Viewport in Preferences like I did here, maybe that will help some.


How to make the sculpt detail size always look the same?

You have to switch to Constant Detail in the Dynotopo panel.


How to create a flat vortex force field?

Ok I hope this is what you are looking for?

DOWNLOAD THE BLEND FILE HERE.


How to place the right seams for the UV mapping of a curvy object like this?

I'm not at all an expert in unwrapping, but I'd say the trick is not so much in the seam placement, but more in the top geometry of the mesh where all the loops meet.

Make sure you have an all quads mesh that doesn't end in a triangle fan.

If you are not sure what I mean, try this:

1) Select the top vertex and delete it.

2) Select the first open edge loop, extrude it and right click to cancel (leave it in place).

3) Scale it to zero to make it meet at the center.
You may move it slightly up in Z to compensate so it's not perfectly flat.
Make sure you don't remove doubles so you have a quad's only mesh.

4) Lastly you can use the Unwrap > Follow Active Quads > Lenght Average to have an even rectangular unwrap.


Unlink "Material" from current "Material slots" (but not remove) with bpy

The DATA materials are stored in ao.data.materials. Try
for i in range(len(ao.data.materials)):
    ao.data.materials[i] = None


Make sure you've applied the scale of your object (ctrlA in Object mode), and in the modifier enable the Even Thickness option.


Just use a Ping Pong repeated time as the scale of one of the meta balls as follows:

You can also evaluate the output at some interpolation to get more custom animation.


Getting the image of a texture node that feeds into a node group

This is done with searching the node links for one that connects into the node input. The image node is on the other end of that link:

import bpy

mat = bpy.data.objects["Suzanne"].data.materials[0]

# get node input (socket)
socket = mat.node_tree.nodes.get("MyNodeGroup").inputs[0]

# get node link that connects into the socket
link = next(link for link in mat.node_tree.links if link.to_socket == socket)
# get the other node of that link
node = link.from_node

# get the image from node
image = node.image


Difference between Octane render and Eevee render?

Well, yes and no. Octane is not for blender only, it's more of an engine in many 3d software. https://render.otoy.com/forum/viewtopic.php?f=7&t=72241#p366488, Octane uses the computer GPU to render, and it is like Cycles but a real-time raytracing, which means its acts like evee but produces renders like cycles. Evee is just a real time render engine
which doesn't care about light that much.


Just quoting one solution that Daedalus_MDW gave me in another thread.

to solve your issue, you need to make the armature a parent of the mesh. but then collision wont work. heres how it should look.
-> simple collision mesh (low poly invisible physics)
-v> armature
--v> visual mesh (pretty hires stuff)
make sure everything is at (0,0,0) location, otherwise unusual things may occur.

It worked as expected :)


Click on the World tab and in Ray Visibility only keep Camera enabled. This way the world will be visible but won't light your objects.


Fixed it, if you are importing from blender to unreal, and get the degenerate tangent base problem ujst uncheck this

the first two options
P.S. sorry, my unreal engine is in spanish


At its simplest, that's probably selecting the face in Edit Mode (Face), and from the right-click menu, selecting 'Shade Flat'.


Why is the Cycles render of my worn-edge material different from the viewport?

You probably have a Subdivision Surface modifier with the Render subdivisions settings being higher than the Viewport subdivision: the edges are rounded more deeply in render, which affects your shading.

Example: the difference a level of subdivision can make, especially when using Pointiness as a texture source

When tweaking your shader, especially if the shader is geometry-dependent, make sure to match Render and Viewport subdivisions in your modifiers to preview your rendered results more accurately.


Hotkey to go DIRECTLY to vertex, edge, face edit mode?

The operator for this is bpy.ops.object.mode_set_with_submode(). It allows you to create custom shortcuts that both switch to edit mode and enable a combination of vertex, edge and/or face select.

The keymap can be edited through Edit > Preferences > Keymap. As shown in the screenshot below, you need to set the Identifier to object.mode_set_with_submode, select Edit Mode and choose the desired Submode.

The complicated part is the choice of shortcut though, since the number keys are already used in Object Mode. You'd either have to remap the shortcuts for hiding collections to e.g. CTRL + ALT + the number key or use a different key combination for your new shortcuts that don't involve the number keys.


Using a series of Text objects in an array

You can use the Clamp To Constraint on a Bezier Circle to get this, you have to do each separate piece of text, but you can use the same curve. Like this:

To rotate the text move along whatever axis (in my case it was the Y). To rotate a certain number of degrees you can use this formula: (r/90) * degrees. So if you want to turn 90 degrees and you have a radius of 3 then just move the same distance as the radius. Also check Cyclic if you want the text to be able to go more than a full circle.
To continue just do this:

To figure out how far to move the text each time I used that equation. For me it was: (1.5 / 90) * 270 (3/4 of a circle) This gives 4.5, then you want to split that distance between 10 items, so you get to move it 0.45 on the -X axis in my case.


Yes true. That addon is not that necessary. Mostly all of addons doesn't make sense if we think that it can be done manually. But, add-ons are created with the soul purpose of making things easier than it is. If your render farm do not support the addons than it's up to you weather you want to use it or not.


Rendering using both GPU and CPU is not possible

In fact it IS possible. You need to download a branch like this:

http://graphicall.org/1240

...and many others on this site. Open Settings and in the System pane You will find settings as on the image below. Hope it helps, buddy.

Sincerely, Jan

REM: Sometimes using GPU+CPU could be SLOWER then using GPU only!


How to bake texture with same brightness as original?

As it turned out the simplest solution to this problem was to make the world white and disable any lamps to make sure every part of the mesh gets the same amount of light. Blender Internal would be a good alternative but if you're working in cycles you probably don't want to redo all settings after switching back. (Though I do think the setting will stay)


For realism should I use the maximum number of Subsurf levels?

My advice would be the exact opposite:

Use the minimum amount of subdivision that will give you acceptable results.

How much that is depends on the complexity of the shape and the resolution of the images you want to generate.

Needlessly increasing the amount of subdivisions comes at a price: RAM (memory) usage and computer processing. A higher number of vertices will impact your computer's performance. Keep in mind that for every level of subdivision you are increasing the number of vertices exponentially, so it's quite easy to end up with geometry that exceeds your computing capacity.

For more details read Render crash using subsurf modifiers.

3d realism requires taking clever shortcuts and fooling the viewer. Use high level of detail only on those areas that are featured prominently on the final image(s), objects that are going to be far away need less detail than those up close.


Is it possible to get render time per tile?

from datetime import datetime
from bpy.app import handlers

TIMER = None

def start_timer(scene):
    global TIMER
    TIMER = datetime.now()

def elapsed(dummy):
    print("Elapsed:", datetime.now() - TIMER)

handlers.render_pre.append(start_timer)
handlers.render_stats.append(elapsed)

Example output:

Elapsed: 0:00:10.819869
Fra:1 Mem:7.10M (9.89M, Peak 17.07M) | Mem:1.21M, Peak:1.29M | Scene, RenderLayer | Path Tracing Tile 133/135
Elapsed: 0:00:10.863458
Fra:1 Mem:7.10M (9.89M, Peak 17.07M) | Mem:1.29M, Peak:1.29M | Scene, RenderLayer | Path Tracing Tile 134/135
Elapsed: 0:00:10.931486
Fra:1 Mem:7.10M (9.89M, Peak 17.07M) | Mem:1.21M, Peak:1.29M | Scene, RenderLayer | Path Tracing Tile 135/135
Elapsed: 0:00:11.466759
Fra:1 Mem:7.10M (9.89M, Peak 17.07M) | Mem:0.02M, Peak:1.29M | Scene, RenderLayer | Finished
Elapsed: 0:00:11.467813
Fra:1 Mem:7.08M (9.89M, Peak 17.07M) Sce: Scene Ve:0 Fa:0 La:0
Elapsed: 0:00:11.841684
Saved: /tmp/0001.png Time: 00:11.84 (Saving: 00:00.37)


Click on the bone that you want to connect to the other, then shift-click the bone you want to connect to, then press P to parent. A menu will appear and just click on "connected". This will connect the bones and parent the horizontal bone to the vertical bone (I'm assuming this is what you want to do).


Background movie clip does not show up in render

In Blender render its under solve>Scene Setup (in the movie clip editor


How to rotate an object in Blender 2.74 using python script

import bpy
from math import *  # It's considered bad practice to import everything from a library, especially when you're not using any (or just a few) of its function
import mathutils

Name = 'Dimi'

# The primitive_cylinder_add does not return the object, but rather only a status indicating success or failure
exitStatus = bpy.ops.mesh.primitive_cylinder_add(radius = 0.5, depth = 1)
scj = bpy.context.scene

# The added cylinder will be the active object afterits created
ob = bpy.context.object
me = ob.data
ob.name = Name

# These two lines are unnecessary and will generate another copy of your cylinder
#ob = bpy.data.objects.new(Name, me1)
#scj.objects.link(ob)

# If you want to move your object, simply set its location thus:
ob.location = ( 4, 0, 0 )

# And you can rotate the object the same way
ob.rotation_euler = (0,0,0)  # Note that you need to use radians rather than angles here


How to Show Face Center Dot in Blender 2.8 Solid Viewport Display Mode?

You have to check Center in the Mesh Edit Mode section of the Overlays options.


Your object has very irregular topology containing triangles and ngons:

These should be avoided as much as possible when working with the subdivision surface modifier, as they will cause strange distortions like the ones you are seeing.

When working with subsurf, try to make your object completely out of evenly spaced quads (faces with four vertices):

Also try to keep the normals consistently pointing outwards, otherwise you might see dark shading artifacts. You can recalculate the normals by selecting everything (A) in edit mode (↹ Tab) and pressing ⎈ CtrlN.

This will result in a much smoother surface, which makes shrink wrap give the desired result:

Note that the object you are shrink-wrapping is made up of tris, so subsurf isn't advisable on it either.

Example .blend


Only reflection from one side of glass material

It looks to me as if your balcony glass has no thickness or the normals are bad. Try either adding thickness (eg, Solidify modifier) or recalculate normals. For a physical glass pane the glass would pass through two surfaces - the front face and the.back face - and would refract opposite ways. With only one surface or with bad normals the refraction is being applied one way only - it's as if everything viewed through the balcony glass is within a solid volume of glass. I don't think that's a reflection your seeing but a refraction of the building through the glass.

Here's an image to demonstrate :

The right-most example is for 'correct' refraction - where the light is bent towards the 'normal' on entry to the glass and away from the 'normal' on leaving the other side. If the Normal of the back surface is pointing the wrong way (the middle example) then the 'exiting' ray is again bent towards the normal (directing the rays towards your building in your case). A similar situation occurs on the left-most example - where there isn't a back face since the "glass" is only a plane. In that case the light is bent towards the normal but is never bent back - as if the ray remains within the glass.


Missing Ray visibility and ambient occulsion settings

Ray Visibility and Ambient Occlusion are only available when you set cycles as render engine.


Why is weight painting appearing on areas of my mesh I haven't painted?

The problem is due to the fact the frame lock is not a separated part of the mesh. The vertices involved in your issue link the frame lock to the other part of your mesh. So this is a model problem not a weight paint problem.

You need to rip these vertices.

Doing that is a bit messy with this model as many tris are involved. But here is the principles :

Go to edit mode
In the modifier panel click on 'Display modifier in edit mode' and on 'adjust edit cage to modifier result' (in order to identify the good vertices easier)

So you can see that in edit mode when you move the frame lock bone :

Now the principle is to select the edge which links the two parts and rip it with V.
Then remove the unwanted vertices from the 'frame lock' group.

I had to repeat these two steps several times as the vertices are very intricated here. And that makes the detailed explanations hard to give here.

But the result :

and the blend file


Texture becomes black when tryng to bake vertex color to texture!

You have no vertex colors, your file has blender render materials but is set to Cycles right now. Turn it back to Blender render. In your scene, you have no light source, so every bake will be black.

edit: My steps were incorrect the first time, so here is a corrected flow:
1. Your file as it is with Cycles as renderer but has no Node materials.

2. I switch to Blender Render and find your UV are wrong, so I Smart UV Unwrap

3.I also then remember in Blender Render that I can bake using Textures to get the straight diffuse color without a lamp

And then the result comes out pretty clean


Blender can use up to 8 cores, and it does.
For rendering, or baking the two most CPU intensive tasks, the 2.93 ghz 6 core would be better. The clock speed is not as important as computational power, and for that the more cores wins.

For Cycles a good GPU would be faster then any of those CPUs listed. However if you are rendering on the CPU (like me) then the same is true more computational power will win out over a faster clock speed.

Blender guru article on buying a computer for blender.


Rendering to multichannel .exr has empty rgb layer

The OpenEXR file format stores pixel data in 2 ways (Scan Lines or Tiles), and read/writes data in 2 modes (Arbitrary Channels or RGBA Only).

Excerpt from http://www.openexr.com/ReadingAndWritingImageFiles.pdf

In our case, Blender only stores data via the Scan Line method, so our main focus in our the read/write interface in use.

When the OpenEXR format is chosen in Blender, the output class used is the OutputFile class, and the EXR format used is the RGBA Only format which renders out the single beauty pass with no channel information. This means that it only contains a single RGBA frame buffer.

Excerpt from http://www.openexr.com/ReadingAndWritingImageFiles.pdf:

When the OpenEXR Multilayer format is chosen in Blender, the output class used is the RgbaOutputFile class, and the EXR format used is the Arbitrary Channel mode which organizes all image data into Layers and Passes/Channels. There is no RGBA buffer that does not exist inside a Layer and Pass/Channel.

Excerpt from http://www.openexr.com/ReadingAndWritingImageFiles.pdf:

If we have an arbitrary Layer named "Foreground", then Blender automatically calls the beauty pass/channel "Combined" (we don't have control over the channel name, unfortunately). The image data would be defined as "Foreground.Combined.R", "Foreground.Combined.G", etc.

If Nuke is ingesting a MultiChannel EXR file, it should not be trying to read a master RGBA beauty pass because none exists. Image data only exists at the Layer.Channel level.

It probably would be more helpful if Blender could name a Layer as "rgb" (which it can) and the beauty pass "rgba" instead of "Combined" (which it can't).


Blender Cycles shows object in viewport render but not in final render

Your DirtGround object does not have the Show Emitter checkbox checked under the particle system render settings, only under the viewport settings:

If you check that checkbox, your ground object should appear in renders as well.


Idle Chit-chat

I could not make sense of the link in your last comment, but I was able to create the setup from your next to last comment in Cycles render. I did not spend a great deal of time modeling the camera (it's a rectangular prism missing one of its bases [where the lens would be] and half a face [for the actual camera to see through]).

Knowledge

Before you can begin to understand this setup, you have to have an understanding of how Cycles works. In real life, photons come from an emitter, like the sun, bounce off objects, and eventually make their way into our eyes. In Cycles, it's the inverse. 'Camera rays' come out of the camera, bounce off meshes, and make their way to a light source. This is the primary reason why a bigger light source is less noisy in Cycles: There is a bigger area of light (for a camera ray) to find.

Camera rays are not the only rays, or Light Paths as they are more commonly known, in Cycles. There are Shadow Rays, Diffuse Rays, Glossy Rays, etc., but the only two you will need to be familiar with are Camera rays and Reflection rays.

This is the material for Mirror 1. We will be using it. It is very similar to that of a one-way mirror. Camera rays are 'photons' that come directly out of the camera and have not bounced off a mesh yet. They are important, because I use the Is Camera Ray fac from the Light Path node in the material for the first mirror (above). The fac differentiates between a Glossy BSDF (mirror shader) and a Transparent BSDF (for the second mirror to see through). The material basically says, "Normally use Transparent BSDF. This will let light from the second mirror pass through me. If the light that hits me happens to be from an unaltered camera ray, however, use the Glossy BSDF so that I act like a mirror."

This is the material for Mirror 2. It is a simple mirror material because that is all that the second mirror does; it doesn't have any special properties.

This is the material for the camera tube. We will be using it. Reflection rays are 'photons' that have bounced, but in the bounce, reflected perfectly off an object. A reflection ray would be like shining a laser pointer at a mirror. The photons that have bounced off the mirror but not yet hit an object would be Reflection rays. They are important, because I use the Is Reflection Ray fac from the Light Path node in the material for the camera tube (above). The fac differentiates between a Diffuse BSDF (outside appearance shader) and a Transparent BSDF (to not get in the way of the second mirror). The material basically says, "Normally use Diffuse BSDF. This will let outside objects view me. If the light that hits me, however, happens to be from a reflection ray, like that from one or both of the mirrors, use the Transparent BSDF so that I do not appear as a border around the final rendered image."

The Setup

The above is the actual setup. I selected the two mirrors for clarity (1 is yellow, 2 is orange). The cube off to the right side was just a cube that the camera could view. It's blue, but that's unimportant. I also used the cube when I was aligning the rotation of Mirror 1. It gave me a point that I knew should be at the center of the camera's view. It told me that I had to use a rotation of -46.3, rather than -45 (my guess).

Last Notes

Because of the distance the ray has to travel, I realize that the cube can look farther away than the camera would normally view it. My solution is that you select the camera, go to the Camera Object Data tab in the Properties panel, and change the Focal Length: from the default 35.00 to 152.00. This will show the cube as it would be seen from the front of the camera. Don't be alarmed by how far the camera object stretches out. That's normal.

Lastly, there is no lens distortion, and to add a reflective material in the 3D to this setup would not be wise. To add lens distortion, go to the compositor and use this node setup:

It will bend the cube and slightly distort some colors.

To Help Out...

As I realize this could be very time consuming to make, I took the liberty of including a .blend file.

=Puck


That really depends on the node setup. If you go to this tutorial and follow along with what it has to say, then there are specific drivers in the tutorial that will allow your clouds to move and be very flexible.

Here's the .blend file in which you can append from! Just make sure your project is in Cycles, and press Shift + F1 (append) and go to path\suppliedblend.blend\world\sky.
;)

EDIT:

Here are some further steps on how to animate the clouds without actually having to watch the tutorial. Now, when going to edit this answer, I realized that my supplied .blend file wasn't actually optimized to have these animate-able  properties. So, It's really quite simple to add that feature. Make an edit to the provided node setup and add a new node (Shift+A) and add a mapping node. (Vector>>Mapping) Put your node in between your Texture Coordinates node, and your Noise Texture node. That way, the mapping node will have the output of the texture coordinates node going into the input of the mapping node. It's output will then go into the input of the noise texture node. Simple. Once this has been added, to make your clouds move you just need to keyframe the location coordinates parameters. If you hover over one of the sliders and press I then you will have keyframed your value. Make sure that the other keyframe is far enough away from the first to achieve a realistic effect.


Make sure you enable all objects renderable in the outliner panel. It's the Camera button next to the object name.

Also make sure your render layer is connected to a composite output node.


Can't see through BSDF principled/glass 2.8

You can't see through any shader that was opaque.

The BSDF shader work on Surface Only, as Blender is a surface mesh 3D tool.

If you assign a opaque color to inner surface, the glass BSDF will become useless since you are literally painting the inner glass with that color.

A better approach will be adding a surface on the liquid surface, and change that surface color. Also blend shader with Glass or other transparent shader to make better.


In python ** means exponent. So count**2 is count squared. For multiplication it is count*2. Is this what you want? Or am I understanding wrong?


In Animation Nodes, is it possible to make a node to translate position of the UV's of an instance?

Note: I have replaced the Shader Controller Node (no longer supported) by new Material Attribute Input/Output Nodes, so I have updated this answer.

=============================

Method-1: Offsetting the coordinate in Mapping Node of single texture for different materials:
Here, I have made a simple example to use Material Attribute Input/Output Nodes. These nodes are work similar to Object Attribute Input/Output Nodes,

A simple shader Node-tree:

AN Node-tree for one object:

Now, for multiple objects: I have instanced a cube (with deep copy) and a material then assign them to individual objects by using Object Material Output node in a Loop Node. Then use the same setup of Material Attribute Output Node (mentioned above) to offset coordinates of Mapping Node with Random float node. However, you can use own coordinate list to offset them:

Method-1 Blend File:

=============================

Method-2: Assigning different textures to different materials: In this method, we need a small script which loads a texture from the specified folder then assign to a material. Here is the script:

import bpy

try:
    bpy.data.materials[material.name].node_tree.nodes['Image Texture'].image = bpy.data.images[image]
except:
    filepath = path + image
    newImage = bpy.data.images.load(filepath)
    bpy.data.materials[material.name].node_tree.nodes['Image Texture'].image = newImage

and in AN, I have used Script Node to use the script,

This script needs three inputs: material, the path to the image folder, and name of the image. Because, we have multiple images, so we going to use Loop Node, here is the setup:

Now, for multiple objects: I have instanced a cube (with deep copy) and a material then assign them to individual objects by using Object Material Output node in a Loop Node. Then use the above setup to assign different textures for different materials,

Method-2 Blend File:

=============================


Is there a way to "merge" two extruded regions to one?

Delete both overlapping faces. Then select the edges on both steps and do bridge edge loops.


Moiré patterns in viewport but not in render?

Rendering has higher sampling per pixel, hence the precision, diminishing visible moire.


rendering: is a transparent material equivalent to a non-existent part?

No, an "alphaed out area" is not the same as deleting those polygons.
In any raytracer (such as Cycles or Evee), a ray is cast (either from the light source into the camera or from the camera to the light source, I do believe, but somebody else can tell me if it's wrong, that in Blender we do the latter).
If this ray now has to go through one of these holes:
a.) If its cut out, it just goes through
b.) If its alpha, the ray hits the mesh, looks up the material, looks up the uv unwrapping, then decides that it has nothing to show and travels on with its path.
This said, adding a lot of more polygons to accomodate for the holes, will affect your blender file's size and the RAM usage.
There is no better or worse, its "case sensitive". For making trees, e.g. , some tutorials suggest to not use alphas, but cut the leave's plane to the mapped leaf texture (because then you could have ray intersecting hundres of leaves, but only in its alpha regions and slowing it down unneccessary).


Your mesh contains two sets of wings, right on top of each other, with the dark wings "below" the red ones. Here is how you can disentangle them.
First, go into Edit mode and bring up a UV editor. You can see that there are bunch of verts with their UVs in the dark part of the texture. Those are the ones we want to grab.

Turn on "UV Sync Selection". This syncs the selection between the UV editor and 3D view.

Select the blob in the dark part of the texture...

Hold shift to add to the selection, and select the small blob near the top too...

You now have all the verts for the dark wings selected. Move the mouse back to the 3D view, hit g to drag the selected verts, and move them away. You should now see both pairs of wings.


Texture looks good on some faces but not others

You are using a Mapping node to stretch out or compress the noise to produce a 'brushed steel' effect. Here's a simplified material for demonstration (removing unnecessary nodes while retaining the stretched mapping) :

The Mapping is compressing the noise in the Y-axis so as to produce a 'brushed' effect. This works on some of the faces but not others (note the top and side looking 'brushed' but the 'front' just showing undistorted noise).

This is due to the mapping only affecting the Y axis. Since the 'front' face is aligned with the Y plane it is not affected by the mapping. This is due to Generated coordinates being a '3d' mapping - there is no distinction between faces and the orientation of those faces cannot be controlled individually.

The way to resolve this is to unwrap your model (which you have already done) and you should be using UV coordinates (instead of Generated) as follows :

Using UV coordinates you can adjust the 'direction' of the brushing on each face by changing the UV map to reorientate each face as desired.


Map the uv values as the color of a material

In principle, just plugging the "UV" outlet of the "Texture Coordinate" node into the "Color" property of your shader should work. This is because, by chance, your choice of colors (red, green) matches the R, G, B order.

A more elegant and controllable way is in the node setup below. The three nodes in the middle are MixRGB nodes, using the "Mix" and "Add" blend modes. Note: the Fac: value for "Add" must be 1.0.

You may want to swap red ↔ black and green ↔ black, as currently higher X/Y values give lower red/green intensities.


Trying to loop through points and create splines in Animation Nodes

The solution was to add a new Generator Output Spline List to the loop and use it to drive a Curve Object Output:


Why do the workspace tabs disappear when I switch to another tab from Layout?

The problem is interface scaling. On my 4k monitor I had set the scale to 1.5. If I drop the scaling to 1.4 all the tabs are there for every workspace. Around 1.42 some workspaces have no tabs.

The 2/19/19 build (blender-2.80.0-git.855b3e68ef27-windows64) did not have the problem at 1.5 scale.

FYI


Object origin is being set to wherever the 3d cursor is even if i move it. How do i fix it?

Your Transform Pivot is just set to Pivot Cursor. Press Ctrl+, to go back to Median Transform. The Shortcut for Cursor Pivot is by the way . so you might accidently clicked it. This answer only applies if you are a beginner and you don't know what the object origin is. Your question doesn't provides an image so I just assumed it


I don't understand how to import texture files in Blender

When you try to import the FBX file into Blender (2.90) you get an error. The mesh is not bound to the armature and the materials are missing.
But the textures are included in a separate folder. They are Fortnite specific and some of them are multi-channel textures. I found some info about the Fortnite Texture Format on reddit. The letter at the end of the filename means:

_D = Diffuse (Base Color/ Albedo alternatively)
_M = Misc or Mask (Red Channel = AO, Green Channel = Rim, Blue Channel = Subsurface Coloring)
_S = Spec (Red = Spec, Green = Metal, Blue = Roughness) - Set to None Color Data.
_N = Normal (None Color, Invert Green Channel for OpenGL Normals in programs like Blender)
_E = Emission Texture (May need to seperate channels for different texture)
_FX = Effects Texture/Mask (Used to apply emission in particular areas, and effects while ingame).

With this info, you can solve the puzzle:

the yellow pistol has only a Normal texture.
the body has a Diffuse & Normal texture.
the head has a Diffuse, Effect (for the glowing left eye), and Spec multi-channel texture.
the hair has a Diffuse, Normal, and Spec multi-channel texture.

Now you just need to create 1 material for the gun and 3 materials for the model (body, head, and hair).
To assign the 3 different materials, select the model, switch to Edit mode, and hover the mouse over the head, and press L to select the loose parts. This will select the entire head. Then assign the selected mesh to the material. Repeat the step for the hair.
Finally, you just have to feed the Principled BSDF with the textures for the different materials. With the Separate RGB node you can split the multi-channel values.
Don't forget to select Color Space: Non-Color for the normal and multi-channel textures.


How to apply a material to a noise zone?

Here are two ways of doing this, both are using Color Ramp with Constant value, and both can be changed to something else and with white value (from Color Ramp) you can control how much colour will affect area.

Mask between two shaders:

This is best option if you want to have not only different colours, but also different shaders assigned to "frosted" area.

Different colours for one shader:

This is best suited if you want only to change colours.


You can do this by having your gun, in addition to firing your bullet, also fire a no-colision plane. this plane scales from 0 to 100 in 100 frames. the gun also shoots a bullet that travels one frame every logic tick. when the animation of your laser is running at one frame for every logic tick, the end result will be a no-colision plane filling the space between the gun and the bullet before impact. In the demo below, I have the bullet invisible. All you can see is the scaling plane.

To make your plane scale to get it elongating at a rate of one Blender unit per Logic Tick, use this logic setup.

You need to start with a plane, and move the origin to one edge. then move the edge opposite the origin in to make it One blender unit by Two blender units.

Then set the timeline to frame 100, and in object mode press S to start the scale, press X to constrain the scale along the X axis. Press 100 and then press Enter this will set the scale so that the demotions will be 100 blender units by 2 blender units. press I to set a keyframe, and select Scale

this will set a keyframe with the scale on frame 100.

Now do the same thing at frame 0, only this time we need to set the scale along the X axis to 0.

Set the timeline to frame 0, press S to start the scale, press X to constrain the scale along the X axis. Press 0 and then press Enter this will set the scale so that the demotions will be 0 blender units by 2 blender units. press I to set a keyframe, and select Scale

Now we have the scale animated from frame 0 to frame 100.

However, if we move the timeline, we can see that the animation is not quite right.

We can fix this by going into the graph editor and changing the curve type to linear

Now when we test it, we can see that every frame makes the plane scal one blender unit longer.


How to move a whole mechanical rig without selecting all the individual parts?

Rigid Body objects are all automatically assigned to a specific Rigid Body group. To select them all simply select one and then use Shift+G to select group. See https://docs.blender.org/manual/en/dev/editors/3dview/object/selecting/tools.html#bpy-ops-object-select-grouped

Once selected simply use the usual manipulation tools (eg grab, rotate) to move them.

You can also create your own groups to allow you to organise sub-sections of your objects and select them in the same way.


Improved explosion: possible to nest smoke domains and apply them to mutually exclusive emitters?

Why create a plane below the explosion and then on the physics tab choose collision? Why is this necessary? What does it do?
The plane below the explosion will prevent explosion products (ie, the smoke and flames) as well as particles from moving below the floor. (As commented by @vklidu the 'ground collider' doesn't need to be flat if the ground is uneven - for more realistic ground collision - or, if flat, you can actually use the boundary of the domain itself.)
When you select some emitter and add object->quick effects->quick smoke, does this generate smoke from all the particles emitted inside its domain volume? Is it possible to have one domain nested inside another and each of the two smoke domains connected to different, non overlapping particle emitters?
By default, the smoke domain will act on all smoke emitters and effectors. However, within the Domain properties there is a Collections setting that lets you set the Collection used for Flow and Effectors. Leaving these blank will use all Flow and Effectors in the scene for this Domain. However, setting it to a specific Collection will restrict it to using only that Collection.

Note that if you have multiple domains you should ensure that they are at slightly differing locations/scales so as to avoid z-fighting issues at their boundary faces.
Does a quick smoke+fire simulation act as a light source? In my picture here, the shadows of the two columns are totally unaffected by the explosion. I'm hoping to render a night scene where the explosion is the only source of light. If I need to create a light source inside my explosion, it should clearly be a point light source. How would I make the intensity and size of this light change over time?
This depends on your render engine. For Cycles, yes - it will act as a light source by default. For Eevee you need to enable volumetric emission by way of the Irradiance Volume Light Probe.
Is there some way to generate random fragments/chunks flying outward that are leaving a trail of smoke? These should be pointed and not cauliflower/broccoli shaped. The space shuttle explosions come to mind.
You can model the fragments and use Rigid Body or particle system to eject them from the explosion. Making them emit smoke should leave suitable trails if you have sufficient timesteps to give sufficient precision for their velocity.


how to move 3dcursor with axis constraint

To do this, you should first enable Face Snapping. Press the magnet icon to enable snapping, and open the drop-down menu and select Face. You can toggle snapping using Shift+Tab. Also, Ctrl+Shift+Tab can be used to bring up the snapping type menu.

From there, use the Cursor tool and press Z to lock the motion to the z-axis. Holding down LMB and hovering over the face of the cube will then move the 3D Cursor downwards to the face.
Tip: You can also move the 3D Cursor by pressing Shift+RMB.


Select Box in 3d View edit mode brings up the move tool, not a select box

This can happen when you enable Object Gizmos in your viewport.

The gizmos are then visible even without selecting any transform tool.


When you connect a BW image into the FAC input of the Mix Shader:

Black areas mean A
White areas mean B

When using the FAC slider:
0 means A
1 means B

Universal rule:
For all nodes (roughness, metalness, fac...)
Black means 0, white means 1.
You can use gradual transition as well.


LoopTools : Wierd shape instead of being a simple circle

I had this. For whatever reason it unticks merge in your mirror modifier.


How to point and select mesh containing face if model contains many meshes?

1) Make sure you're in Object Mode.

2) Right-click on any part of the model, and the corresponding mesh should get highlighted.


Set your framerate to 30fps, (easier to calculate), and set the fluid domain to start at 20 and to end a certain amount of seconds later. Now there is a trick to this: the numbers here are the duration of the animation divided by the framerate of your animation currently. I.e. 300 frames / 30fps = 10 fluid seconds. If you want to end your fluid simulation at frame 900, then set the fluid domain to end at 30 seconds. Here is where you control these settings:


How to fix ngons overlapping wire edges?

You have a large ngon face over the other faces. The same thing goes for the bottom of the nose and the chin. To fix this delete the large polygon and bridge the edges.

Select the large ngon faces:

Delete the faces only

Use bridge to add new polygons. Or you can fill them one by one using the fill tool: F

Do the same for the bottom of the nose and the chin.


Your Render Engine is set to "Workbench".

Set it either to "Eevee" or "Cycles", depending which one you want to use in your project.


Set it once in the addons User Preferences.
Suggest using a property in  addon preferences  The user chooses the folder.  I had deleted this answer, as it is not "automatic", however setting a storage location once,  is IMO, not a huge overhead.
Modify the script in link with a folder property
class ExampleAddonPreferences(AddonPreferences):
    # this must match the addon name, use '__package__'
    # when defining this in a submodule of a python package.
    bl_idname = __name__

    assets_folder = StringProperty(
            name="Assets Folder",
            subtype='DIR_PATH',
            )

    def draw(self, context):
        layout = self.layout
        layout.label(text="This is a preferences view for our addon")
        layout.prop(self, "assets_folder")

And then when you need to access it
    preferences = context.preferences
    addon_prefs = preferences.addons[__name__].preferences

    assets_folder = addon_prefs.assets_folder


How Do I Move The Center Of My Model To The Blender Origin?

I'm not sure there is an easy way.  The hard way that I can think of is to use the 3d cursor to move the origin of the object, move the cursor back to (0,0,0) and move the object to the cursor.  Unfortunately you then have to move the object origin back where it belongs.

The origin of an object starts out as the geometric center of the object.  It appears as a small yellow dot. Step by step to do this

select the object in object mode
switch to edit mode (TAB-KEY)
switch to face select mode (CTRL-TAB and select face mode from the pop up)
move the 3d cursor to the center of the face (SHIFT-S and select cursor to selection)
switch to object mode (TAB-KEY)
Move the origin of the object to the cursor (SHIFT-CTRL-ALT-C and select origin to 3d cursor)
Move the cursor to the origin (SHIFT-S and select Cursor to center)
Move the object to the cursor (SHIFT-S and select Selection to cursor)
Set the origin back to the geometry (SHIFT-CTRL-ALT-C and select origin to geometry)

There are other ways, but this one introduces you to using the cursor to precisely align objects.


I have similar situation recently, got thousands of objects and only needing to clear certain channels. I was trying to see if I could find Python script, but apparently Dope Sheet have Summary feature and you can quickly filter out Channels of your selected Object(s) by "Name". So this is super handy as you can search for Scale, and then select all and delete those Scale XYZ channel, or search for X Scale and the summary filter will filter out the X Scale from all selected objects, and then so you can select all from filter and delete those keyframes you don't need.


Explanation of noise texture node settings in 2.8

You can better understand texture space using a color grid image (2D), with "generated" coordinates, which is the default for noise textures.

You have to imagine the 2D texture laying on the floor of the bounding box of your object (the tiniest box that can contain all your object), with lower left pixel as starting and pivot point, which will stay in the lower left and front corner of the box.

In this case all points on the surface which share the same X and Y coordinates will get the same colour, as you can see on the front face of Suzanne, unlike its top, where the texture is projected nearly undistorted because every point has different X and Y coordinates.

The same happens with noise texture when set to 2D.

If set to 3D, points on surface with different Z coordinates will have a different random color even if they share X and Y; it works as "voxels" instead of pixels (and is the "classic" use).

1D means that a random color is outputted, based on the W parameter value only.

4D is like 3D, but you can vary the W parameter to have a different random combination (similar to what happens when you animate one coordinate parameter).

The more dimensions used, the more calculating power is needed, so use the minimum dimension you need.


Make a short cylinder for the emission object then turn off gravity field.

The shorter you make the ring the flatter the plane of emission. Increase the Emission Normal value  for fast explosion then add drag to the particles so that they slow as they depart.


Applying armature scale messes up the action

Since F-Curve points for each bone are calculated w.r.t. the rest position of the bone, we can kinda get away with scaling them w.r.t. y=0 axis.
see this for clarification:

In this gif, I created 3 dummy bones and animated them. Then I scaled them in object mode and applied the scale. Then in the pose mode I selected all the bones and in graph editor, I selected all the location curves and scaled them on the y-axis by 2. You can see the root bone is now traveling 4 units and the scale is 1 in object mode.


Can I export Quick Favorites from 2.82 to 2.83

Quick Favorites are part of user preferences and saved along them in the preferences file.

Copying this file from one installation to another should bring Quick Favorites with it.

Beware that this file saves most Blender settings along with it, so overwriting with an older one may unintentionally change other preferences you may have already configured. It may also cause unforeseen issues when things change between Blender versions, so use with caution and take care to make backups beforehand.

This file is usually saved under C:\Users\<UserName>\AppData\Roaming\Blender Foundation\Blender\<VersionNumber>\config for Windows OS. After installing a new version you should have two different <VersionNumber>, so copy it from the relevant one to the new one.


Problems rendering hair in cycles render

Whenever it comes to differences with particle systems between preview and final render it almost always has something to do with the subsurf modifier.

Always make sure that you have the subsurf modifier enabled in Render and Preview mode when you use "Particle Edit" (cut, comb, etc.). I believe that you had it turned on, when you combed the hair, since it is activated in your file (see image below)
Always set the viewport and render settings to the same value when rendering particle systems. If the render setting is lower than the viewport setting (which is the case in your file, see image below) the render process will undo or at least mess up your combed hair.

Try to set the viewport subdivs to 2 and you'll get the same messed up hair effect you had after rendering.

Set the Render subdivs to 3 and your problem should be gone.


How to render what I see in the texture view

What you will want to do is an OpenGL render. In order to this go into your camera view by pressing 0 on your numpad, then in the top Info panel click on Render, then click on OpenGL Render Image. You can also do this by clicking on the little camera icon at the bottom of the 3d view panel.

Hope this helps.

-Tom


That's right os.remove() is the way to go, on Unix (Linux and OSX too) and Windows. See this answer on stackoverflow

That error likely occurs because you are calling os.remove(some_file_path) where:

some_file_path isn't set at that moment in time
or the filepath can't be resolved by os.remove().

Try printing the value of some_file_path just ahead of calling os.remove(), most likely you'll either get an empty string or some modified path.

See this working example.

This will add a panel to properties called Hello World Panel,
it has a file selector and stores the filepath as a scene variable called some_identifier.
The button 'Remove File' removes the file identified by scene property

code:

bl_info = {
    "name": "FILL ME IN",
    "author": "",
    "version": (0, 1),
    "blender": (2, 7, 6),
    "category": "3D View"
}

import os
import bpy
from bpy_extras.io_utils import ExportHelper

class WMFileRemover(bpy.types.Operator):
    bl_idname = "wm.remove_file"
    bl_label = "Remove File"

    def execute(self, context):
        fp = context.scene.some_identifier
        if fp:
            print('os.remove(', fp, ')')
            os.remove(fp)
        else:
            self.report({'ERROR'}, 'filepath is an empty string')
        return {'FINISHED'}

class WMFileSelector(bpy.types.Operator, ExportHelper):
    bl_idname = "something.identifier_selector"
    bl_label = "some folder"

    filename_ext = ""

    def execute(self, context):
        fdir = self.properties.filepath
        context.scene.some_identifier = fdir
        return{'FINISHED'}

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

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

        # ui
        col = layout.column()
        row = col.row(align=True)
        row.prop(scn, 'some_identifier', text='directory:')
        row.operator("something.identifier_selector", icon="FILE_FOLDER", text="")

        col = layout.column()
        col.label(scn.some_identifier)
        col.operator("wm.remove_file")

def register():
    bpy.types.Scene.some_identifier = bpy.props.StringProperty()
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.some_identifier


Why can't I type simple formulas when using transforms?

Activate formula mode for the Numeric input

That's because currently the "formula" input (advanced mode) is not active by default. This was made to preserve some old functionalities, like the / shortcut that, as in your case, transforms the number to its inverse.

The rule is that the formula mode becomes active only once the Numpad * (or the =) key has been pressed, so in your case you can type

Numpad *360/5

Or

3Numpad *60/5

36Numpad *0/5

360Numpad */5

and all should work as expected.

Here you can find the Sneak Peek video made by Plasmasolutions about the topic.

And here's some lines from the 2.70 release notes abot the UI (see Transform Tools Number Input section):

  Number input for tools (when you grab an object for example, you can type indirectly values with the keyboard) has been reworked, you can now use units and Python expressions in it. (87cc890aef53).

  We have two "modes", simple and advanced ones, use '=' or 'pad*' to
  enable advanced mode, and 'ctrl-=' or 'ctrl-pad*' to switch back to
  simple mode.

  Simple mode works nearly like it did before, it only accepts simple
  numbers, and you can still use '-' to negate and '/' to inverse the
  value (as well as non-number input shortcuts like XYZ, RSG, etc.).
  Compared to Blender 2.69 behavior, you can now copy and paste
  expressions, and navigate in the number you typed, so you can for
  example fix a typo without having to type everything again.

  In advanced mode, we gain more power and flexibility, but lose a few
  "shortcuts" like '-' to negate, or '/' to inverse

The 3282.81° issue can be explained with the fact that Blender makes some conversions between radiants and degree that, in conbination with the inverse operation, led to an apparently unexpected results.

By default the input for rotation are considered as degree (1° in the depicted case). In randiants would be:

rad(1°) = 0,0174532925199433

When you press / Blender uderstand that it has to caluculate the inverse of your input, so it switchs to radiants to perform the operations. The resulting input now  is

1/0,0174532925199433 = 57,2957795130823

And only at this point he perform the degree conversion:

deg(57,2957795130823) = 3282,80635001174°

To avoid this kind of I would suggest to use the advanced mode, where you get expected results:

* 1/1


Smooth the join between 2 separate meshes

I don't exactly understand what you are trying to achieve by separating the limbs from the body but IMHO there is no way to get rid of the line.

If you have two separate objects or even two sub-meshes that aren't connected, you will always have a visible line where they seem to be connected. This is just how shading in every renderer (at least the ones I know) works. And that's the reason why almost every 3D artist will keep limbs connected to the body.

Besides that your 3D Viewport is set "Solid" shading. In this mode your scene gets a basic material with basic lightning setup. That setup will make the line even more prominent compared to "Render View" with an actual light setup and a material applied. It might help a little, but you will never get rid of the line entirely.


In most modern driving or open world games, the shadows are actually dynamic/realtime, otherwise the texture size required to have sharp shadows across a large area is going to be huge.

What most games do is make the shadow-casting lamp follow the location of the camera, this way, you always see shadows all around you, but it doesn't have have to render a huge shadow map for the entire map.

Static shadow maps (using a different set of UV) is still a huge part of most games with a high percentage of indoor space, as it gives softer appearances and potentially bounced lights as well.


Problem of distorsion using the displace modifier with an external displacement map

Just make one seam along the whole tube (not around). Simply unwrap it. You should get a square. If it matches the whole UV space it will be seamless.


How can I make my animation play for longer than 250 Frames?

Changing the Length of Your Animation

In order to see a longer preview of your animation, you need to make your animation itself longer. To do this, you can change end End Frame of your animation in several places:

Properties Editor > Render tab > Dimensions panel: Set End Frame to a higher value
Timeline area: Increase the End value
Timeline area: Place the green frame cursor on the desired end frame, press E to set it as new End

NOTE: Changing the End frame in any of these places changes it in all the other places also


Which action should take newly created keyframes?

It seems that only Keying Sets like location, rotation accessible from the Keyframe Menu are stored in the currently active Action.

For each other property like influence slider values, colors, transparency etc. an F-curve associated to the object is created and holds the keyframes and some kind of virtual Action Strip is added to the NLA Editor.


My sculpting tool is not changing my model but I can transform (grab, snake hook, etc.)

I ran into a very similar issue. I'm using version 2.91.2 on Windows. Only Grab, Hook and Clay appeared to work for me.
To fix it, I started off by trying everything in this Blender StackExchange answer - Sculpt tool not working - But it didn't help.
Restarting Blender however, did the trick.
I would have answered on question I linked to, which is much easier to find in a Google search, but community rules prevented me from doing so. So happy days if you find this answer, and it works for you.
Also check your brush tablet pressure settings, just in case:

You'll want to switch them off, when troubleshooting issues with sculpt tools.


Freestyle without anti aliasing for pixel art (2.8)

I figured it out!

Set the sampling to 1, and it will get the effect extremely close, I might have to touch these up a little bit in a 2D art tool, but the effort will be minimal.