Whats the best way to make & animate Crater/s in eevee 9.2

I recommend dynamic paint, set to displacement. If that doesn’t work, try using a displacement modifier with a color ramp on the texture to make it the right shape for a crater.


How to export vertex colors or vertex group as polygroup for export?

Go to Edit Mode and select what you want to Polygroup.

Go to Object Data tab and click plus next to Vertex Group then assign with your selection active and name if you like.

On obj export make sure the Polygroup box is checked.

ZBrush doesn't use smoothing like Blender does you need to subdivide to make it look smooth.


I guess what you want is a property confirm dialog. You basically just have to add a new 'invoke' and a 'draw' method. Note that I removed == (python strings can be "falsy") as well as bad references like bpy.context in your 'execute' method.

import bpy
from bpy.types import Operator

class WM_OT_my_popup(Operator):
    bl_idname = "custom.my_popup"
    bl_label = "Area Operator"
    bl_options = {'REGISTER'}

    areas = [
        ("VIEW_3D","View 3D",""),
        ("VIEW","Image Editor",""),
        ("UV","UV Editor","")]

    my_enum: bpy.props.EnumProperty(name="Areas", items=areas)
    my_bool: bpy.props.BoolProperty(name="Chose area Type", default=True)
    my_type: bpy.props.StringProperty(name="Change area to", default='UV')

    def execute(self, context):
        area = context.area
        if self.my_bool:
            self.my_type = self.my_enum

            if not self.my_type:
                self.report({'ERROR'}, "")
                return {'CANCELLED'}
            else:
                area.ui_type = self.my_type
        else:
            if not self.my_type:
                self.report({'ERROR'}, "")
                return {'CANCELLED'}
            else:
                area.ui_type = self.my_type

        return {'FINISHED'}

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self, width=400)

    def check(self, context):
        return True

    def draw(self, context):
        scn = context.scene
        layout = self.layout
        row = layout.row().prop(self, "my_enum")
        row = layout.row()
        row.prop(self, "my_bool")
        row.prop(self, "my_type")

classes = (
    WM_OT_my_popup,
)

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

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.custom.my_popup('INVOKE_DEFAULT')

Tip: Blender enforces naming conventions as of 2.8x:

  The class name convention is: UPPER_CASE_{SEPARATOR}_mixed_case, in the case of a menu the regular expression is:
   [A-Z][A-Z0-9_]*MT[A-Za-z0-9_]+

Related:

How to call a confirmation dialog box?
What do operator methods do? (poll, invoke, execute, draw & modal)


An animation of a beating heart can be generated using a fixed geometry and armatures to animate the beating. This method is a way to generate the complex motion by animating a few elements.

(Geometry from Blendswap.com - courtesy Bruno Laurencich/elZancudo)

Procedure:

Load heart geometry as a single mesh

Add bones for the left atrium, right atrium, left ventricle, and right ventricle. Place the bones roughly at the center of each of these parts of the heart. These bones will be animated to make the heart pump.

Add bones for the arteries and veins. These bones will keep that part of the heart relatively stationary. The image below shows all of the bones in the model.

Select all of the bones and join them into a single armature. This can be done using ctrl+J after selecting all of the bones.
The armature is connected to the mesh using automatically calculated weights (see armature automatic weights). This allows each bone to affect only part of the mesh in the heart. This is done by selecting the mesh, then the armature, then hitting ctrl+P. The menu which appears will have an option for armature deform with automatic weights. Select that option.

This will automatically setup all of the weights for the different bones on the mesh. The weights for the 4 bones in the heart are shown below. For finer control, the weights can be edited.

To keep the rest of the heart still the other bones are affecting the veins and arteries. One of these is shown.

To simulate the pumping, the bones in the center of the left atrium, the right atrium, left ventricle, and right ventricle are scaled. Over the timeline, these bones are scaled between 0.9 and 1.1. In the animation that follows, the bones in the 4 chambers of the heart are animated by scaling the bones, this causes the rest of the mesh to smoothly pump. Because the other bones are kept in the same position and with the same scale, the veins and arteries stay relatively still. Looking closely at the following animation shows the small changes in the bones driving the changes in the mesh.

Adding material properties and rending gets the final result.

The blend file can be downloaded at:


It's available in the Timeline header menu > Playback > AV-Sync dropdown menu, it seems like it worked the same in the previous versions, no?


How to cancel circle select mode by 'X' key instead of ESC key?

I believe you can't change the Escape keybinding, which is also used by many other operators.

But there are other (quicker) methods to exit circle selection.

From the manual:

  To cancel the selection use  RMB or key Esc or ⏎ Enter.

Press the  RMB.
If you're right-handed, awkwardly swivel your right thumb onto Numpad Enter.
If you have a programmable mouse, assign any of its buttons to ⏎ Enter or Escape, this would be a useful keybind anyway which is not wasted.


You have two solutions :

1- Use the game engine to make powder fall and after save the last frame. You can modelise each particule of pownder as a tiny cube for example, but it won't give you a result that is graphically appealling.

2- If you want to have a result that looks exactly like the image you posted you need to sculpt because of the special pattern that there is on the image.


Blender is not rendering an HDRI properly

Your node setup uses an Image Texture instead of an Environment Texture node.

The correct node setup is shown below. It includes the Mapping node for adjustments to the rotation.


How to make a group of objects single-user data?

You can do this by running Make Single User and then select All when prompted.
Note however that this will bu default only make the Object a single user and not the mesh. You will need to use the menu or change the default in the floating Operator Panel to make the mesh to be single user.


I wrote the function get_blender_camera_from_3x4_P to do this, listed below.

    # Input: P 3x4 numpy matrix
    # Output: K, R, T such that P = K*[R | T], det(R) positive and K has positive diagonal
    #
    # Reference implementations:
    #   - Oxford's visual geometry group matlab toolbox
    #   - Scilab Image Processing toolbox
    def KRT_from_P(P):
        N = 3
        H = P[:,0:N]  # if not numpy,  H = P.to_3x3()

        [K,R] = rf_rq(H)

        K /= K[-1,-1]

        # from http://ksimek.github.io/2012/08/14/decompose/
        # make the diagonal of K positive
        sg = numpy.diag(numpy.sign(numpy.diag(K)))

        K = K * sg
        R = sg * R
        # det(R) negative, just invert; the proj equation remains same:
        if (numpy.linalg.det(R) < 0):
           R = -R
        # C = -H\P[:,-1]
        C = numpy.linalg.lstsq(-H, P[:,-1])[0]
        T = -R*C
        return K, R, T

    # RQ decomposition of a numpy matrix, using only libs that already come with
    # blender by default
    #
    # Author: Ricardo Fabbri
    # Reference implementations:
    #   Oxford's visual geometry group matlab toolbox
    #   Scilab Image Processing toolbox
    #
    # Input: 3x4 numpy matrix P
    # Returns: numpy matrices r,q
    def rf_rq(P):
        P = P.T
        # numpy only provides qr. Scipy has rq but doesn't ship with blender
        q, r = numpy.linalg.qr(P[ ::-1, ::-1], 'complete')
        q = q.T
        q = q[ ::-1, ::-1]
        r = r.T
        r = r[ ::-1, ::-1]

        if (numpy.linalg.det(q) < 0):
            r[:,0] *= -1
            q[0,:] *= -1
        return r, q

    # Creates a blender camera consistent with a given 3x4 computer vision P matrix
    # Run this in Object Mode
    # scale: resolution scale percentage as in GUI, known a priori
    # P: numpy 3x4
    def get_blender_camera_from_3x4_P(P, scale):
        # get krt
        K, R_world2cv, T_world2cv = KRT_from_P(numpy.matrix(P))

        scene = bpy.context.scene
        sensor_width_in_mm = K[1,1]*K[0,2] / (K[0,0]*K[1,2])
        sensor_height_in_mm = 1  # doesn't matter
        resolution_x_in_px = K[0,2]*2  # principal point assumed at the center
        resolution_y_in_px = K[1,2]*2  # principal point assumed at the center

        s_u = resolution_x_in_px / sensor_width_in_mm
        s_v = resolution_y_in_px / sensor_height_in_mm
        # TODO include aspect ratio
        f_in_mm = K[0,0] / s_u
        # recover original resolution
        scene.render.resolution_x = resolution_x_in_px / scale
        scene.render.resolution_y = resolution_y_in_px / scale
        scene.render.resolution_percentage = scale * 100

        # Use this if the projection matrix follows the convention listed in my answer to
        # https://blender.stackexchange.com/questions/38009/3x4-camera-matrix-from-blender-camera
        R_bcam2cv = Matrix(
            ((1, 0,  0),
             (0, -1, 0),
             (0, 0, -1)))

        # Use this if the projection matrix follows the convention from e.g. the matlab calibration toolbox:
        # R_bcam2cv = Matrix(
        #     ((-1, 0,  0),
        #      (0, 1, 0),
        #      (0, 0, 1)))

        R_cv2world = R_world2cv.T
        rotation =  Matrix(R_cv2world.tolist()) * R_bcam2cv
        location = -R_cv2world * T_world2cv

        # create a new camera
        bpy.ops.object.add(
            type='CAMERA',
            location=location)
        ob = bpy.context.object
        ob.name = 'CamFrom3x4PObj'
        cam = ob.data
        cam.name = 'CamFrom3x4P'

        # Lens
        cam.type = 'PERSP'
        cam.lens = f_in_mm
        cam.lens_unit = 'MILLIMETERS'
        cam.sensor_width  = sensor_width_in_mm
        ob.matrix_world = Matrix.Translation(location)*rotation.to_4x4()

        #     cam.shift_x = -0.05
        #     cam.shift_y = 0.1
        #     cam.clip_start = 10.0
        #     cam.clip_end = 250.0
        #     empty = bpy.data.objects.new('DofEmpty', None)
        #     empty.location = origin+Vector((0,10,0))
        #     cam.dof_object = empty

        # Display
        cam.show_name = True
        # Make this the current camera
        scene.camera = ob
        bpy.context.scene.update()

    def test2():
        P = Matrix([
        [2. ,  0. , - 10. ,   282.  ],
        [0. ,- 3. , - 14. ,   417.  ],
        [0. ,  0. , - 1.  , - 18.   ]
        ])
        # This test P was constructed as k*[r | t] where
        #     k = [2 0 10; 0 3 14; 0 0 1]
        #     r = [1 0 0; 0 -1 0; 0 0 -1]
        #     t = [231 223 -18]
        # k, r, t = KRT_from_P(numpy.matrix(P))
        get_blender_camera_from_3x4_P(P, 1)

Tests

I got an image with known 3x4 projection matrix P. This can be from a computer vision dataset (usually following the conventions of the Matlab camera calibration toolbox), tracked set, or by generating P from a blender camera as in 3x4 camera matrix from blender camera
I ran the above algorithm for such P, obtaining a camera in Blender.
The dataset I tested with has 3D reconstruction data as well
Numpad 0 gives the camera view. I confirmed that it looks like the photo
By adding a background image to the camera, I noticed that the 3D model projection is spot-on.

Remarks

This code is meant as a basis for a general solution. Modify this if you follow different conventions.
Only unit aspect ratio (render option) is supported for now.
The camera representation might sometimes look odd, but the only thing that matters is that it generates the right image.


How to copy/paste X, Y, Z coordinates in one step

Try the following steps:

Select the object(s) you want to move (the one you'd be "pasting" coordinates to).
Shift+Select the object with coordinates you want to copy, making it the Active Object.
In the 3D View's Properties region (N), right-click any one of the Location coordinate fields and choose Copy to Selected from the menu that appears
All selected objects will have the same location as the active object. This also works for scale and rotation.


Blender makes a distinction between CtrlB, Bevel Edges, and CtrlShiftB, Bevel Vertices.
So, use the other shortcut, or, having reached the Adjust Last Operation panel visible in your illustration, switch at the top from 'Edges' to 'Vertices'.
(In other panels, or the Bevel modifier, it might be a small checkbox - 'Only Vertices')
I didn't realize.. as @moonboots has pointed out - there is a hitch in some Blender 2.90.x's meaning the shortcut doesn't work: you have to go to the panel, and switch it there.


Most mouse and keyboard inputs stopped working in Blender 2.80. How can this be fixed?

If you have a rig in the scene, make sure you aren't in "pose" mode. If in pose mode you can't select the mesh just by clicking on it. You must switch to object mode first.


Simplify a complicated mesh for export as an STL

I agree with Jachym.   The remesh modifier may do the trick.

In object-mode, select Modifiers, and add the Remesh modifier.  Find the Octree Depth Option (it will be the main one for your issue) and adjust it up or down.  Careful! With high poly-counts like you have - adjusting it higher may cause Blender to crash so take the necessary precautions with this in mind.

See this vid at the 1:30 timeframe to see it in action.

https://video.search.yahoo.com/yhs/search?fr=yhs-symantec-ext_onb&hsimp=yhs-ext_onb&hspart=symantec&p=tutor4u+blender+text#id=5&vid=79e85e222216fa41a1ec00cee407affe&action=view


Thoughts on Building a Blender-Oriented PC

Note

Although this question is about hardware we need a canonical answer on this!

Canonical posts for hardware questions?
Answering vague support questions (once)?

Answer

Mike Pan has started a thread on BA and collects benchmark results in a sheet.
Be careful because the benchmark results may differ due to different Blender versions and Cycles performance has been optimized.

A few things to consider:

GPU

Cycles uses CUDA and is provided by NVIDIA only.
A single system designed for Cycles should be focused on maximum number of shaders kernels (CUDA cores) on the GPU. When you use shaders written in OSL the scene can only be rendered on the CPU.

Nvidia model numbers start with a digit for the generation 5,6,7

 oldest    540 < 550 < 560 < 570 < 580 (fastest, 512 CUDA cores)
           640 < 650 < 660 < 670 < 680 (fastest, 1536 CUDA cores)
 newest    740 < 750 < 760 < 770 < 780 < 780Ti (fastest, 2880 CUDA cores)

You could find something like 590, this means AFAIK the two 580's have been connected.

GPU RAM

If you use many big textures the RAM of a 1.5GiB card could be the limiting factor more is better.

CPU

Baking, preparation of the scene is calculated only by the CPU. According to the benchmarks I guess Intel is to prefer.

i3 2 Cores (slowest)
i5 4 Cores
i7 4 Cores + Hyper-threading (fastest) Hyper-Threating adds approx. 10-20% of performance.

Server CPU

A Xeon-CPUs an E3-1231-v3 (4-cores) costs a bit more than an i5 but comes with Hyper-threading. . There also costly CPUs like E5 available Depending on the motherboard you can add 2 of them (Socket 2011) having hexa(6), octa(8) or deca(10) cores (plus hypertheading which adds ~10% performance) but they cost > 1.250$ (Sep. 2014).

System RAM

Should start at 8GiB, 16GiB would be suitable for most use cases.

Realated Resources

Blender Cycles performance benchmark - more CPU cores vs higher clock frequency benchmark
Cycles versions speed comparision

Some numbers from my machines for Mike Pan's BMW:

Blender v2.71

i5-3470@3.2 GHz 02:50.00
CUDA GeForce GTX 660 Ti 01:12.65

Xeon E3-1231@3.4 GHz 01:36.48
CUDA GeForce GTX 580 01:08.23

i7-2630QM@2.0 GHz 03:39.96
CUDA GeForce GTX 560M 03.00.87

You find a lot more results at:

Blenchmark benchmarks-overview


Make strength of emmision independent from the surface brightness

With the Blender Internal renderer, it's not very easy, but it is doable.
The basic idea is to render the glowing ball twice, and composite the dimmer one over the brighter one.
Keep everything you have so far, but investigate how to render just the ball. The basics are, move it to its own layer and set up a second set of render layers that gives you only the ball, with nothing else in the scene at all.
More on Render Layers from the Manual:

Each Render Layer has an associated set of Scene Layers. Objects which are on one of the associated Scene Layers are shown in that Render Layer, as long as that Scene Layer is also visible.
Warning
Only the objects in visible Scene Layers will be rendered. So, if only Scene Layer 1 is visible and your Render Layer set specifies to render only Layers 2 and 3, nothing will be rendered.

Once you have those two renders happening at the same time, you will use the compositor to put the dimmer ball (that's all by itself) over top of the image that has everything in it. You'll use an Alpha Over node to combine the two.
More on the Alpha Over node in the Manual:

Use this node to layer images on top of one another. Alpha Over does not work on the colors of an image.

Doing this with Cycles is much simpler, but Cycles does not use the same materials as BI. You will have to make your materials again, as Cycles materials. That's why everything doesn't have any color when you just change renderers. Cycles is using a default gray material.


Knife Tool is stuck to the origin of the geometry of the object

Your View clipping range in the 3D View in the 'bad' file, is enormous, so the depth calculation for point-picking in the viewport is beyond floating-point resolution.
In the 'View' tab of the N sidebar, set the Clip Start and Clip End to values that are enough to comfortably accommodate your scene, but no more.
A visual clue that this is happening is 'shards' appearing in shaded surfaces, like Z-fighting, even though the surfaces interfering with one another are not coincident.


Why is Cycles causing this distortion in displacement of a cco node?

One solution is like you said to disconnect te dislacement node. The other better solution is that you mix your displacement node with your normal map. Add a bump node and set the distance to somewhere around 0.01. Once that is done, connect your displacement image texture (Without the displacement node in between) to the height input of the bump node. Connect the normal map with the normal input in the bump node and connect the bump node to the normal input in the Principled BSDF. The way you did it heavily displaces the whole mesh.
Extras: You can try to decrease the scale of the displacement map the way you connected to about 0.001 or something as an experiment.


How do I make hair particles appear on top of the emitter and not through it?

Some things to verify when making grass or other hair objects from a mesh item:

Is object origin where you want the particle to attach to the ground?

Are you copying rotation? (You can, or can not, as Yoda would say... but be aware of what it is set for...)

Are you adding roundness or radius?

Is the object being used as a hair positioned weirdly relative to global axes?

Is there weirdness interjected by velocity or physics settings?

And I bet I am forgetting some... but the one I always start with is "where is my origin, and what is the object rotation?"


Assign material to multiple objects in edit mode

How to assign materials to all or part of a single object
This is a simple process. Here's a screenshot:

Go into edit mode. Select the geometry that you want to be a different material (you can select faces individually, or press L when hovering your mouse over a mesh). Then simply click on Assign as shown in the screenshot above.
How to assign materials to multiple objects while in Multi-Object editing mode
Select one of your objects and create two material slots, and then also create two materials. Tweak your material settings for the second material to whatever you wish. I just used a bright blue color here.

Select all of the objects that you want to edit, shift click the first one so it becomes active.

Press CTRL + L to open the links pop-up, and then select Materials.

Make sure the number that appears on the materials panel matches the number of objects you have.

Select all of your objects and TAB into edit mode. Select what you want to change, be it faces or meshes, and then simply assign the new material.

Done!


To reply here as well just in case others are looking for the same thing, you can achieve the same fake reflection effect with the following node setup:


Cannot use sculpting tools on specific part of a mesh

Okay, so I enabled Dynotopo and now it works.


You can use Principled Volume for that.

Use the Density value to adjust the strength
Larger volumes obscure objects more
For Eevee, crank up the samples in  Render Tab > Volumetrics.


How to clear unused linked-data (libraries) quickly

Blender does not save unlinked datablocks. Thus linked datablock always has a user in the file it was linked from. To remove from your scene you must first click the make local button  and then it can be unlinked


How to move selected edges toward 3D cursor?

select your faces, use Shift+S then select "selection to cursor (offset)".


As far as I know, you cannot do such modifications in the layers table of the 3d window header.

Solution: Enable the Layer Name addon.

You can then change the layers names. You'll find the Layer Managment tab in the Tool Shelf (T).


How can I bake alpha in cycle nodes-images to make leave textures for my trees?

Start with a picture of leaves. This one I took is not the best example since I did not put the leaves on a neutral background which makes selecting the background in a 2D editor less precise.  Just put the leaves on a sheet of paper when taking the picture and things should work out.

(if you have difficulty seeing detail of the images I've posted, you can right-click the picture and select View Image.  It will open up to it's full size.)

Now in GIMP or preferably Krita because the selection tool is much better, select the background and flood fill this selection with black.  Invert the selection so the leaves are outlined and fill them with white.  You may also want to blur the mask a bit so the leaves have soft edges.  This will help to hide artifacts left from the selection tool.

Now I baked the leaves using the following nodes, you can set the render samples very low for baking Emission. There should be no noise at all using 8-16 AA samples.
Remember to increase the color value of the Emission shader all the way to full white.  It's default is 0.8.  Set that to 1.0 instead.

This is the result I got from the bake.

And the final node setup up for the scene render,

Update:

To separate leaves like this you can enter Edit mode with the plane selected which has the leaves all together on one sheet.  This will make it easier to UV unwrap the separate leaves.
So now add a bunch of planes and scale them to the size of the leaves on the image plane.
Now select everything, including the plane which has the leaves already and press the 'u' key and select Project From View(bounds).  The original plane will act as a container for the unwrapping algorithm and this will keep the new leaf planes proportional to the image they will be mapped to so no extra adjustments will have to be made at this stage.

Now locate the UV maps area that is shown in the following image and click the + sign to add a new UV set and give it a name that makes sense to you.  Also make sure to activate it and click the camera icon at the right side.  Whatever is selected here will be the image that is baked to.  Now this time for Unwrapping, I used the one at the top labeled 'Unwrap' and I set the margin to '0' since the edges will be transparent and there will be no seams.  There will also not be any mip-mapping issues because of the transparency if you decide to also do something like this for a game.

After they were unwrapped and the original plane was deleted, I selected all the 'leaves' and separated them using Separate p->By Loose Parts.  Now return to Edit mode, select them all and use  Ctrl +  g to make them a group.  You can now use this group in the Particle generator settings to add them all in together but still as separate pieces.

To bake the color, I used the baked texture that I showed how to make from the steps earlier.  Here is what it looks like now.

And I also did the same thing for baking the black and white stencil.  I just replaced the baked texture node with the stencil node from the earlier steps.

Next, I used Texture Paint mode to clean up the edges for both the newly baked textures.

I then sketched out a quick wireframe for a tree then used the Skin Modifier to fill it out.  Applied the modifier and clean the mesh up a bit then added a Sub-surf modifier.  Now I added a particle system set to Type:Hair and adjusted a few settings.  I also used Weight Paint mode to control the leaf Density and Length. Here is the final result.


How to make object A a parent of object B via Blender's Python API?

Avoid all the dancing around using bpy.ops and that setting selection and active. Most of those bpy.ops commands are meant to be called by the UI once a user clicks a ' parent to x ' button , etc.

You are on the right path by using the .parent  attribute. All you really need are the names or references to the objects and you can parent much, much simpler.

import bpy

objects = bpy.data.objects
a = objects['Cube']
b = objects['Cube.001']
b.parent = a

There are times using a bpy.ops is a reasonable solution, but in this case the lower level solution of using b.parent = a is functionally equivalent and fewer lines of code.

Edit

In the comments of this answer we discuss how to decide when to use a member of bpy.ops, but CoDEmanX has a fine clarification here


Subdivision surface modifier creates pinching at corners

The issue is in your topology. I suggest you do something like this :

The idea is that you have to place the basis of topology which the subdivision modifier will follow :

If you do that correctly, you will have the right result.

Also, be aware that using mean crease really should remain as a temporary solution. It's handy for prototyping mostly; because it's fast and doesn't require more work, but it doesn't provide any precise control on the obtained shape and geometry.
I've seen some people using it to create quickly and roughly a basic shape. Once they are happy with the shape and volumes, they add a new object on top of it, add some shrinkwrap modifiers, snapping tools, and they to the final model and focus on topology and shape refining.


Generating a spline from centers of multiple mesh

Not sure about the normals part, but you can easily create a bezier curve running through selected object centers with the builtin Btrace addon.

Under User Preferences > Addons activate the BTrace addon.

In the 3D View ToolShelf > Create > Btrace choose Object Connect.

Select the desired objects and press the Run button at the bottom of the panel.

If you desire a smooth curve, you can then enter Edit Mode on the created bezier and change handle type to Smooth by selecting all vertex pressing V > Automatic.

Not sure how you want your normals represented, curves have a builtin Offset property from the Properties Editor > Object Data > Offset which allow you to add an offset to the original curve, but you can't easily access the resulting points coordinates.

You may optionally extrude the curve slightly and convert to mesh, then access face normals.


You need to fill the faces with quads or triangles, or remove the smooth shading on the nogons.

You can try (CtrlT) then (AltJ), to fill it with quads, as a quick fix.

A better method would be to repair your modeling.

Delete the vertices on the ends of your N-gons:

Select one of the edge loops at the bottom or top.

Extrude the vertices out(EX y or Z)

scale them to zero along the axis that you extruded them out(SX y or Z0).

Do the same for the bottom vertices.


Why do I keep getting a 'No faces filled' error when using the Face-fill tool?

I ran into a similar issue but was mixing up the "Make Edge/Face" (F key) command, and "Fill" (Alt F keys), "Make Edge/Face" was working


3D manipulator stuck on left side of split viewport

It appears that you've hidden the gizmos in the left viewport, which is why the Move gizmo is invisible and the Measure tool gives you an error message. Enable them by clicking the Show Gizmos icon shown below.

Ensure that the following options are enabled in Viewport Gizmos.

The exact error message is "Gizmos hidden in this view" which is printed by view3d_ruler_add_invoke() (view3d_gizmo_ruler.c) when the Measure tool is used and v3d->gizmo_flag has the V3D_GIZMO_HIDE or V3D_GIZMO_HIDE_TOOL flags set. V3D_GIZMO_HIDE is set when Show Gizmos is disabled and V3D_GIZMO_HIDE_TOOL when Active Tools in the Viewport Gizmos options is deactivated.


when i turn on b-bones i don't get the blocks


I do not recommend you to render directly to video.

If any error occurs during this render, you will lost all the movie.

Rendering in frames (stills) you can render in parts, also in case of error, you can render the remaining frames later.

Use the video editor to render the stills to the final video.


First of all you have to guess how the back, bottom and part of the top look.

As far as proportions go, a box in orthographic projection at 20 degrees means that it projects about 93% of actual length of the front and 34% of the side. I asked a question here and got the answer for all the angles of a plane rotated in one axis.

As a note the vertical stays at actual length and only the horizontal is shrinking. From the lines I measured, the side distance distance between the points is 2.15 times greater the the front one. However, it’s necessary to understand the form. For example, the back of the side is occluded, and the limit of the back is closer then that of the contour.

If you are dealing with more complex angles, I gave an answer here about how to approach proportions. Hope this brief answer helps.


The Z pass is the absolute distance from the camera to objects in the scene for every given pixel on the image. The camera is the 0 on the scale and the units used for its values are the working units set for the scene (blender units, meters, cm, inches, etc).

The minimum and maximum values are clipped according to the camera's start and end clip distances.


To scale the outer loopcut (like Edge Slide with Clamping enabled does) scale along normals.
Press E to extrude and Esc to cancel. There were created double vertices which have the same position as their parent vertices.
Now press Alt+S to scale along normals.

Note that after the scale procedure is done scaling won't provide the same result as normals' orientation for newly extruded vertices changed; they will move towards the view point because of that (Edge Slide will work instead).


Try to check and make sure the jitter is a low value and the curve for jitter is linear. Also perhaps try increasing the number of samples.


The reason why your polygon cut is larger than that of the original polygon is that you are performing the Knife Projection in perspective view. To make sure it maintains its scale, switch to orthographic view.

This can be explained as follows. If one want to Kinfe Project a circle onto a plane, the perspective projection of the circle is related to the field angle or focal length and the position of the camera as shown in the figure below. On the other hand, orthogonal projection is performed regardless of the position of the camera or any other property, also shown in the figure below. So, the scale of the perspective projection is directly proportional to the field angle while it is always constant in orthogonal projection.


Knife Tool Project - Cutting Away Volume

You can use the Boolean modifier to do this. Create an object that is the exact shape of the hole you want, then select the object you want the hole in, and add the modifier. You can now select the name of the object you want to use to create the hole. Now change the boolean  method to Difference, press the Apply button, and delete the mesh you used to make the hole.


Render Image F12 shows non-existing plane after Boolean modifier

Thank you for posting your question clearly.
1. make sure you have really applied the boolean modifier on your object (lamp).
If you did and you still get a non-boolean operation in your lamp, additional objects may have been created.
2. Go to your outliner and click on your modeled lamp. See if there are any children under the main object.
3. If there are (and surely there will), just click the EYE icon and the CAMERA icon to the right of the outliner icons. Those will disable render view and display view.
Try rendering now.

It is quite possible you have a duplicated object as a result of the boolean operation. But instead you´re seeing the END result object. At render time the original boolean object gets also rendered.

If you find this is the answer, please click the check mark icon to the left of this post, and thank you for your consideration as the answer voting it up.

BFCT_Schiller


Character Creator 3 to Blender - Reimporting a texture that was accidentally deleted

Figured it out.
CC3's vertex groups can be set to textures. Linking related videos for future CC3 users.
https://www.google.com/search?q=assign+vertex+group+to+texture+blender&rlz=1C1CHBD_en-GBAU900AU900&oq=assign+vertex+group+to+texture+blender&aqs=chrome..69i57j33i22i29i30.8902j1j15&sourceid=chrome&ie=UTF-8#kpvalbx=_hKRrYOfpHuObmgf7g5v4BQ17
https://www.youtube.com/watch?v=GTd8NBg8EZU


You may try to set the interpolation type of the curves to Constant.

If you're looking for a manequin, bizzare looking movement try the Bounce effect.

Here's this dynamic effect applied to the head and a right hand of the model.

I also encourage you to test some other available types of interpolations, for the different (sometimes really amazing) movement types. Maybe one of them'll fit your needs.


The face is there but it faces the wrong direction. The autodesk viewer probably ignores the face normal and shows it on both sides.

What you have to do is to flip the normal of this face.

you can read more about this issue here:

How to make all faces flip to the right/consistent direction?


How to change the shortcut (F) to resize the brush in sculpt mode

You have to go in the "Blender Preferences" and under "Keymap" select search by "Key-Binding".

Then click in the middle of the list to be able to scroll down and search for the first entry under Sculpt

The open one is the one for the basic resize with F, so you can just click on the field i marked red to then assign a new key means click on it, then press S.
If you want to keep the functions on the same button for the different types of resize, then i'd recommend to assign the S key to the 2 other "Radial Control"s. Do only click again on the same area as before and press S, the modifier keys in the column below like Shift, Ctrl, Alt and Cmd stay the same as long as you do not click them.

It should then look like this after the change:

Happy Blending


Where can I control the length of the dashed line indicating the rotation of a sun lamp

You could always parent the Sun lamp to say, a single-arrow Empty, aligning the lamp to the direction of the arrow.

Bearing in mind the position and scale of the lamp will have no influence on its effect, (only its rotation,) it should be easy to find a convenient scale and location for the arrow for adjustment, and you can hide the arrow, too, without switching the light off.


Undo aka ctrl + z is a pain on my system with Blender

Consider Blender undo/redo as an automately backup system, they read all data in previous step and load all of them directly. (2.8x)

 (2.9x add some optimized method to it, see the link below)

 (2.7x and below is another system)

memory management - Poor Undo Performance: Blender 2.9 - Blender Stack Exchange
⚓ T60695 Optimized per-datablock global undo

Handling time will depend on your memory accessing speed and your data 'size'. In some situation, undo/redo can be bulky:

Large amount of meshes vertices
Low available system memory (RAM) causing constantly memory swap
Dirty blender file with lots of abandon/orphan data chunks leaved in data
Cumulative memory leak in process when running Blender (restart Blender)


How to center text on slanted triangular face?

Here is the script to do that

import bpy
import bmesh

def addText(text, location, rotation, mat, fact = .2, extrude = .005):
    myFont = bpy.data.curves.new(type="FONT", name="myFont")
    fontOb = bpy.data.objects.new(fontObjName, myFont)
    fontOb.data.body = text
    bpy.context.scene.objects.link(fontOb)
    bpy.context.scene.update()
    fontOb.select = True
    bpy.context.scene.objects.active = fontOb
    fontOb.dimensions = (fontOb.dimensions[0] * fact, fontOb.dimensions[1] * fact, fontOb.dimensions[2] * fact)
    fontOb.data.extrude = extrude
    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')
    fontOb.location = location
    fontOb.rotation_mode = 'QUATERNION'
    fontOb.active_material = mat
    fontOb.rotation_quaternion = rotation.to_track_quat('Z','Y')
    fontOb.select = False
    return fontOb

def labelObjFaces(obj, mat):
    bpy.ops.object.mode_set(mode = 'EDIT', toggle = False)
    bm = bmesh.from_edit_mesh(obj.data).copy()
    bpy.ops.object.mode_set(mode = 'OBJECT', toggle = False)
    for f in bm.faces:
        fontOb = addText(str(f.index), f.calc_center_median(), f.normal, mat)
        fontOb.parent = obj

fontObjName = "__fontObj123"
matName = '__labelMat123'
deleteOldFs = [fObj for fObj in bpy.data.objects if fObj.name.startswith(fontObjName)]

#clean-up
for delF in deleteOldFs:
    bpy.data.objects.remove(delF)
if(matName in bpy.data.materials):
    bpy.data.materials.remove(bpy.data.materials[matName])

mat = bpy.data.materials.new(matName)
mat.diffuse_color = (0.3731134057044983, 0.59569658041000366, 0.3000000715255737)

labelObjFaces(bpy.context.object, mat)

To execute the script.

open the blend file that has your object
switch to script view
click new button
paste the code
deselect all the objects (move the mouse to 3d view and press a)
select the object on which you want to put the labels by right clicking on it
click the 'Run Script' button


Trouble getting windowmanager properties to save it's contents with blend file

Custom properties to the bpy.types.WindowManager type don't serialize to .blend
(as if options={'SKIP_SAVE'} was set).

Your options are to use

bpy.types.Scene, but you will need to chose one scene instance to store the actual properties, and if that scene is deleted, they will be gone
Serialization: serialize your data to a string and make it the text body of a new text datablock. Give the datablock a name that starts with a dot, e.g. .my-data, to hide it in the interface. It is less likely to be removed like a scene this way.
AddonPreferences or saving to a custom configuration file - if the data is relevant to not just the current .blend, but the local Blender installation


Array instances do not follow the path of the curve

There are 2 issues here:

The curve and object that should follow the curve must have their origins at world origin.

apply the Location of the curve (Ctrl + A in Object mode). This will move the origin (orange dot) to the world origin (0,0,0).
move the chain segment parts (parent and child in your case) to the world origin. It's easy to do with the 3D cursor (Shift + S in Object mode)

the bad curve has loose segments and a single lost control point in the top left area. It doesn't need to be closed but the curve must not have any loose parts. Check it in Edit move. Select a control point and press L to select all linked segments. What will be not selected are the loose segments. Move it a bit to see what's going on (G).

When the issues are fixed you can set Fit Type to Fit Curve and select the curve in the Array modifier settings. Blender will adjust the length of the array so it fits the curve.


Blender GPU Support on Linux with AMD Radeon Pro WX 7100 Mobile

By the looks of the lspci you're using the non pro AMD driver which is required for OpenCL at the moment.

The pro driver is available going to AMDs website and searching for drivers for your card. There is a download link for Ubuntu but the latest version they support is Ubuntu 18.04 (x86_64). You might also find you have to use a slightly older kernel version too.

Hopefully at somepoint we will get OpenCL support from the kernel amdgpu driver.

https://www.amd.com/en/support/professional-graphics/radeon-pro/radeon-pro-wx-x100-series/radeon-pro-wx-7100


It is most probably a problem with blender. You shouldn't have set it to 50 FPS though. You should have gone with 60 FPS. If you still need it in 50 fps, I would say you should render it in frame-by-frame form and then import it to Camtasia 2020 and arrange it in the order you want. Make each frame last 0.02 seconds. Then see, it will probably work. If it still feels a bit rough, you can smoothen it using the tool you have. I am not very sure though, this is my best guess. If you face any issues, please comment. Hope the answer helps.


Python: template_ID()-like UI for PropertyGroup

It is possible to create a group of inputs that behaves very similar to the normal chooser. This is the code to draw the widgets:

def draw_buttons(self, context, layout):
    group = layout.row(align=True)
    choose_props = group.operator('example.choose_item', text="", icon='PRESET')
    if self.item_set:
        group.prop(self.get_item(), "name", text="", expand=True)
        clear_props = group.operator('example.clear_item', icon='X', text="")
        clear_props.node_tree = self.id_data.name
        clear_props.node = self.name
    else:
        new_props = group.operator('example.new_item', icon='ADD', text='New')
        new_props.node_tree = self.id_data.name
        new_props.node = self.name
    choose_props.node_tree = self.id_data.name
    choose_props.name = self.name

The choose operator itself uses context.window_manager.invoke_search_popup() to open a search box of available items. Here is example code for the operators:

items = [('one', 'Any', "", 'PRESET', 1), ('two', 'PropertyGroup', "", 'PRESET', 2), ('three', 'type', "", 'PRESET', 3)]

class ChooseItemOperator(bpy.types.Operator):
    bl_idname = "example.choose_item"
    bl_label = "Choose item"
    bl_options = {'INTERNAL'}
    bl_property = "enum"

    def get_enum_options(self, context):
        global items
        return items

    enum: EnumProperty(items=get_enum_options, name="Items")
    node_tree: StringProperty()
    node: StringProperty()

    def execute(self, context):
        tree = bpy.data.node_groups[self.node_tree]
        node = tree.nodes[self.node]
        node.item_set = true
        node.set_item(self.enum)
        return {"FINISHED"}

    def invoke(self, context, event):
        context.window_manager.invoke_search_popup(self)
        return {"FINISHED"}

class NewItemOperator(bpy.types.Operator):
    bl_idname = "example.new_item"
    bl_label = "New Item"
    bl_options = {'INTERNAL'}

    node_tree: StringProperty()
    node: StringProperty()

    def execute(self, context):
        global items
        tree = bpy.data.node_groups[self.node_tree]
        node = tree.nodes[self.node]
        node.item_set = True
        newitem = ('four', 'type', "", 'PRESET', 4)
        items.append(newitem)
        node.set_item(newitem)
        return {'FINISHED'}

class ClearItemOperator(bpy.types.Operator):
    bl_idname = "example.clear_item"
    bl_label = "Clear Item"
    bl_options = {'INTERNAL'}

    node_tree: StringProperty()
    node: StringProperty()

    def execute(self, context):
        tree = bpy.data.node_groups[self.node_tree]
        node = tree.nodes[self.node]
        node.item_set = False
        return {'FINISHED'}

Of course this is just example code and adding new items should be smarter than just adding items to a global list, but this is the general idea.


Select the top vertex and press G > G to initiate vertex slide

It will move the vertex along the edges they belong to without distorting UVs.

You wont be able to snap that way though, but your model seems to be using some sort of grid metric so if they are halfway distance you could input 0.5 instead.


Why is my blender file now not rendering the current frame

old question, I guess you figured out meanwhile, but here is the answer
You have a shapekey Shin that you must set to 0 :
in edit mode it will show you only the active key that you are editing, as soon as you leave Editmode, the final model taking in account the overall shapekeys mix will be displayed (and rendered in your case)


Is it possible to get an objects scale through an input in the cycles node editor?

You can use the following nodes to extract the scaling information :

The key here is the use of the Vector Transform node. The Vector Transform node allows you to transform a vector between different coordinate spaces - World, Object, Camera. When transforming between Object and World coordinates, blender will apply any object Translation, Rotation and Scale and this can be used to extract the scale directly without the use of drivers.

By feeding a known vector into the Vector Transform we can use the output to glean information regarding the object. In this case, the vector [1.0, 0.0, 0.0] is being transformed from Object to World space in 'Vector' mode, meaning that only the Scale and Rotation is applied (the location is ignored). We know that the vector entering the transform has a length of 1.0 and the Dot Product node used this way, followed by a Power of 0.5 (square root) will output the length of the resultant vector and this allows us to ignore the rotation - the change in length is a direct result of the scaling.

The input vector [1.0, 0.0, 0.0] will effectively read the X scale. Passing in [0.0, 1.0, 0.0] will read the Y scale, and passing in [0.0, 0.0, 1.0] the Z scale.

We can therefore use the following material to color the object based on its X, Y, Z scale as R, G, B :

For your situation you can simply use the output of one of these scales to drive your mix factor.


Giving Mesh thickness with additional requirements

I don't think you can use a modifier in this case. You will probably have to do it manually.

Go into edit mode tab
select all a
extrude e
scale shift+y, (which will only scale on x and z.)

Now, if there are faces which are on top of each other (in the same place), you can try any of these options;

s, then y to scale along y.
Change pivot point to individual origins, then scale on y.
Simply adjust it manually.

It's hard to say what you should do, because I haven't seen the mesh, but this should help. Keep in mind, that I am assuming facing down your tunnel is the y axis. When scaling, you want to exclude the axis you are looking down, so that it only gets wider, not longer.

I hope this helped, please comment with any questions.


Final:

Overview:

As for most of those issues the main problem lays in bad topology.

Example above is made from retopologized Text Object. It's not the best topology you can get but it should show you what you want to achieve finally. Quad based topology.

You can try to use Remesh Modifier. Check:

better Curve/Text to Mesh generation?
Change that convoluted font mesh

But those are examples for Text Object. As for more complicated meshes Remesh Modifier is not working very good.

  Take my advice and start making meshes with quad topology in mind. It
  will pay off quickly.

My example was made by deleting inner part of each letter and then filling them with new quads by hand. F2 and LoopTools addons can help you a bit.

I'm not making How to retopologize Text Object answer as this is not a part of this question.


Boolean Modifier making original object disappear

The problem is that one of your two objects to be used in a Boolean operation is the combination of two joined objects. You don't want that. You want only one object being Booleaned with only one other object. You can fix this simply by separating the joined objects (go into Edit mode, press p for the Separate menu, and then choose to separate by Loose Parts), then  Boolean those two newly separated objects together in Object Mode with a Boolean Union operation. Doing this will make the two previously unjoined objects truly one object, which they actually weren't before. After doing that, you can attempt your Boolean operation mentioned above, and it is very much more likely to work.


Geometry Nodes: How can I make some instanced object disappear when they reach a Z-scale of zero?

Yep, you can.
Use point separate to split points into 2 groups by height:

Group with 0 height you should not use, second one will have only points with height > 0


Materials and shaders are not transferable with Obj format. It does not allow to export Blender materials and shaders. All it can do is to export a simple Phong shader plus some textures. And not everything can be baked into a texture. So the general answer is no.
You could bake all the color information into a single diffuse map. Use Cycles and bake with method Combined. Also a normal map should arrive. But the rest you most probably need to reassing in your target platform then.
Make sure to use relative paths so that the textures are not missing.


Why can't I use the boolean modifier on more that two objects before it fails?

Try joining all the spheres into 1 mesh and just using that as the boolean object


You can activate POV-Ray addon in user preferences.  A povSphere then becomes available among other primitives for Blender to add to the scene. It will behave like you're used to in POV and never show any tesselation at render time


is there a way to mirror traditionally painted textures?

I think you should look at doing your painting in Blender and then 'fixing' it in your external editor. Look at two things to help : The Curves panel, choose a brush curve that gets you a better paint stroke along with the stroke type set to Curve where you can set the points with ctrl-click and then enter key to stroke along the path.
For Symmetry, your UVs don't need to be lying on top of each other in Blender since you can toggle the symmetry axis there to determine where your paint is mirrored despite your UV island arrangement.

If you must use the external paint then you will need to make your object's UV islands to coincide right and left on top of each other, but I think you might be better off trying the method I laid out here.


unlocking objects which was locked and saved before

At the top right of the Outliner there is a "Filters" button (it looks like a small funnel).

Click on that, and at the top of the tab that appears you have "Restriction Toggles". You want to turn on the "Selectable" toggle, which is the second button in the row.

Once you do that, you will be able to mark objects as able to be selected or not able to be selected just like you did before they updated the 2.8 interface.

You can also do the same thing to restore the options for render visibility and globally disable in viewports if you want them too.


Simple texture blurred in Cycles render but not in Eevee

After several tests, I found the problem.

My file is a Sketchup import and the floor geometry is a bit special. As you can see the mesh has a thickness and a diagonal edge, and this one was like inside the mesh. By moving it up outside (I did it much more to illustrate on the picture), the mesh becomes more valid and the texture is correctly applied.


No GPU utilization with CUDA devices [cycles]

As said above in comments, I suspect(ed) RDP is doing much more that just remoting frames, and it could tweak the remote session to not use GPU, at least not with blender cycles... and by default. There are similar questions on other QA sites (https://serverfault.com/questions/880922/gcloud-machine-doesnt-see-gpu-over-rdp).

RDP is a highly efficient Remote Desktop Protocol, not just a remote video/audio frame repeater: it creates a new session, which can have more or less features, but imho it could try to "optimize" the viewer experience and, for some reason, not expose the GPU to the session.

VNC or Teamviewer are different: they don't create a new session, they "just" transmit an existent session "frames" (but the session is running as it was local, with all its features), trying to optimize the transmitted video/audio for the remote transmission...

It's probably a somewhat more "neutral" way of remoting a session, but also RDP could be much more efficient, and give better performances if you can work with the session "features" it allows/exposes to your client.


Making a circular fade to transparent with nodes

I think you need a simple circle (spherical)gradient, to control the transparency. Here a simple basic set up.You could add a math node before the ramp to control it, if the texture coordinate node is not enough.The texture could be, also,connected in the object space of the sphere,to let the transparency follow the object around


text renders in black when it's red in 3d view, why?

There's no light source in your scene. What you can do is give your text's material an emit value (in this case 1).

Or alternatively you could check the "Shadeless" option.


Is it possible in Cycles to have faces with alpha, overlaying diffuse faces in a single material?

Create two node groups ( or two simple  shaders )  in one material ( each act as a separate material )
you will use one output and a mix shader, the mixing factor comes from a comparison against a known limit of the UVmap created for this purpose only, as in the following setup :


Setting custom normals without customdata_custom_splitnormals_add() operator?

Turns out you don't need the operator at all and I was getting funky results because I had a remove_doubles operation further down the pipeline.

Working example code:

no_array = []
for face in me.polygons:
    for vertex_index in face.vertices:
        no_array.append(mesh_verts[vertex_index][3:6])
    face.use_smooth = True
if use_custom_normals:
    me.use_auto_smooth = True
    me.normals_split_custom_set(no_array)


If property does not exist, use default value in python

Extract and edited from my Movement script:

import bge

def main():

    cont = bge.logic.getCurrentController()
    own = cont.owner

# Verifier si les propriété existent.
Verif_Prop(own)

def Verif_Prop(own):

    # Verifie si la propriété existe.
    if "VitesseMarche" not in own:
        # Non définie, utiliser la valeur par défaut.
        own["VitesseMarche"] = 0.2

Source (i own the script): http://blenderartists.org/forum/showthread.php?381505-FR-EN-Advanced-Moving-Script-for-the-BGE-V2-0


How can I get single "a" to deslect in 2.8?

Since Blender 2.8 is still beta, this option might still be moved around in the Options but right now it should be under "Menu - Edit - Preferences - Keymap" and there on the right side under "Preferences - Select All toggles".


Is your tablet's pressure sensitivity working in other applications? If not, here's a potential solution to the pressure sensitivity not working:
https://www.drivereasy.com/knowledge/fixed-wacom-pen-pressure-not-working/

It says to go either go to search "Wacom Tablet Preference File Utility" open that application and click "remove all user preferences. Save your preferences then restart your computer.

You can also try updating your Wacom Driver.


How can I combine 3 actions with the NLA Editor?

The nonselected actions are muted when editing the selected action. Try switching out of edit mode.

Similarly, if the NLA stack is muted when editing the action, the NLA Track below it will be edited with solo enabled.

If switching between NLA Tracks, the solo status for the previous track will be transferred to the new track.

If you've already considered that, then the speaker icons may be disabled:


Rotate two points on f-curve by opposite amounts

Can be done in 2 ways:

Selecting the first side inner handle and rotating it, then selecting the other side inner handle and pressing Shift+R to repeat the last rotation. Before doing anything else, press F9(F6 in blender 2.79) to open the options window. In that window you get the currently used angle, which if negativ needs to be made positive to mirror the rotation. Else other way around.

See in the little visual explanation:

The other way is by indirectly rotating through moving the handles:

You select the one side inner handle and press G followed by Y and move the handle to obtain the angle you want. After that you select the other sides inner handle and press Shift+R to repeat the movement, resulting in the exact same angle just mirrored. While rotation can also be repeated, it would be in the same direction and not result in a mirrored effect.

Little visual explanation:


Update objects in a Scene without re-creating it

Linking scenes will not update automatically. You need to use Background scenes.

In a background scene all the changes are directly available. But be aware that some parts of blender will not work as expected. Like physics between background and foreground objects. But if it is just render engine and settings it can be a solution.


Basic question: how to use Transform Median?

In 2.79, typing GZ2 will move your selection by 2 units in the Z of world space, GZZ2, in the Transform Orientation set in the header. Adjustments to the operation can be made in the Tool Region, bottom left in your screen grab.

If the Median location in the top right is set to 'Global' then any entry you make in the X.Y and Z fields will move the median point of your selection to that point in World space, while leaving the relative positions of the elements to each other the same as they were.

If the Median location is set to 'Local' then the coordinates displayed are in the space of the object to which the elements belong: scaled, rotated, and measured from the object's origin. Once again, modifications are absolute, in the object's coordinate system. Mostly, that's very intuitive, but if the object (rather than its mesh) has been scaled at some point, then so have its local coordinates.

If an object has been scaled by 2 in Z, then setting the local median Z of a selection to 1 will send the selection to 2 units away from the object's origin in its local Z.

Try applying the scale of your cylinder.


How to draw a circle on a plane with OSL (Open Shading Language)?

These scripts will create two nodes. The first one is for the grid and the second one for the circle. By changing the size of the grid, you will have more or less circles. By changing the radius, you will have bigger or smaller circles.

shader Tiles2D(
    point Vector = P,
    float Size = 1,
    float Offset = 0,
    output vector Tiles = vector(0,0,0)
)
{
   Tiles = Vector * Size;
   Tiles[2] = 0;
   Tiles[0] += step(1,mod(Tiles[1],2)) * Offset;
   Tiles -= floor(Tiles);

}

shader Circle(
            point Vector = P,
            float Radius = 0.5,
            output float Fac = 0)
{
    vector st = Vector;
    vector dist = st - vector(0.5,0.5,0);
    Fac = smoothstep(Radius*0.99, Radius * 1.01,dot(dist,dist)*4);
}


Exporting / Importing Object with Animations

For this, you will have to do the animations in the 'dope sheet' tab.
If you still do not know, I'll show you how it works.
Basically, it is equal to timeline. But here, you can define several separate animations, and each one will have its own name.
To access the 'Dope sheet' tab, pull a new tab and select it.

Now you will have to switch to 'action editor', because this is where you can name animations and do other things.

Click New and type a name for your animation.

Check the F box so that the animations are saved in your project, so you will not risk losing them when you leave the blender and open the project again another time.

Now, do a little simple animation and export again to see if everything will work fine.
If you want to create more animations, just select + next to F.


I am trying to create a Script that does a Smart UV unwrap of seperate connected parts of a mesh

I finally got something that works, it's slow as molasses, but works.

    def execute(self, context):     # execute() is called by blender when running the operator

        while (hasMoreVerts()):
            bpy.ops.uv.smart_project()
            bpy.ops.mesh.hide(unselected = False)
            bpy.ops.object.mode_set( mode = 'OBJECT' )

        return {'FINISHED'}         # this lets blender know that the operator finished successfully

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

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

if __name__ == "__main__":
    register()

def hasMoreVerts():
    bpy.ops.object.mode_set(mode="EDIT")
    bpy.ops.mesh.select_all(action="DESELECT")
    bpy.context.tool_settings.mesh_select_mode = (True , False , False)
    mesh=bmesh.from_edit_mesh(bpy.context.object.data)

    if hasattr(mesh.verts, "ensure_lookup_table"):
        mesh.verts.ensure_lookup_table()

    for vert in mesh.verts:
        if (not vert.hide):
            vert.select = True
            bpy.ops.mesh.select_linked()
            return True

    return false


Eevee & particles: hide mesh emitter at render

Depending on your needs, deselect "Display duplicator" and/or "Render duplicator" in the Object properties panel.

This works in Blender 2.8 regardless of the rendering engine (it works with Cycles too). It applies to every situation in which an object is used to create instances of other objects.

Note that unchecking "Display Duplicator" will prevent you from selecting the object with right-click in the Viewport: you'll still be able to select it from the Outliner.

(As of today, the viewport doesn't update correctly once you uncheck the boxes, but if you advance one frame in the timeline it should refresh)


Fully working car driving example can be downloaded from here:
https://www.blender.org/manual/game_engine/physics/types/vehicle.html

Just download the zip, open the .blend and hit P to drive.


Aligning a grouped object on the global axes

Firstly, I wouldn't worry that much about slight rotations. They are very hard to notice unless you stare at the model close up in orthographic view. It's also pretty normal for models imported into Unity3D to get given annoying rotations like 89.999999 on some axis. It's better to just ignore it than go insane trying to fix it.

However, to align all your objects to some axis you just have to align the top level parent how you want. Then you can apply the rotations down the stack or not as you wish.

First thing I noticed is your objects have picked up some delta transformations from somewhere. That can make the transformation values confusing, because the actual orientation will be transform + delta. So I'm going to clear the delta transformations from the empty. I'm also going to clear the delta rotations from the child objects because they are all the same. I will leave the delta location on the children because that is how they are matched up. I also zero out the regular transforms on the empty:

Now I find a face or faces in edit mode that I think should be aligned along a global axis but aren't. I take these ones in the centre of the 'bottom' object and snap the cursor to them as well as aligning my view to their Z axis (SHIFT+Numpad 7) since I think they should be aligned on Z:

Exiting edit mode, I add an object and align it to view. I choose an empty in this case:

The 'WeaponCase' empty gets parented to this new empty I just made:

Finally I clear the rotations from the new empty and then clear the parent of 'WeaponCase' making sure to 'keep Transformations':

For here you can delete the empty and apply transforms if desired. Repeat the process if you need to make other alignments but keep in mind that depending on what faces you use to make new alignments, you may break this one.


Is it possible to tweak round corners of UI?

Not yet,
but I dislike the rounded corners as well, I decided to fix this.
It's hardcoded, so I'm exposing a option that enables you to turn this on\off.

I've uploaded a patch here:
https://developer.blender.org/D2178

I have a example screenshot here showing it:


Export actions(animations) to FBX and open in Unity

I have the answer now:

The first problem is, that I don't clear the old actions when I start the script twice. Therefore, it appends the new actions to the old ones.
Now in Blender there are only the needed actions.

However, when I Export it to FBX and open it in Unity I have the same problem.

You have to push the action down to a new strip:
Open the NLA-Editor and push that button next to your action.

For the export you have to select the following:

When you open your FBX in Unity there is only one action for each object.

How you do it in python:

#Add NLA-Strip
bpy.context.area.type = "NLA_EDITOR"
bpy.ops.nla.action_pushdown(channel_index = 1)#choose your index
#Export Settings
bpy.ops.export_scene.fbx(filepath = yourfilepath,
                         use_selection=True,
                         bake_anim_use_all_bones = False,
                         bake_anim_use_nla_strips=True,
                         bake_anim_use_all_actions=False
                         )


Can't choose Plane Track in Plane Track Deform node while compositing

You need to create a plane track, just select the solve tab, then plane drop down and lastly create plane track. you should now be able to select the plane track compositing.


Possible or impossible to import 3D-models with correct UV-mapping and texture into Blender?

It is most definitely possible. If the models are modeled well and exported correctly to one of the huge number of formats that Blender supports you should have no problems. .obj, .fbx and .3ds as well as .dea files are among the most popular formats used. They all support geometry and UV Maps well.

The problem with materials is that they differ too much in different software using different render engines (see this answer for more detailed explanation: .fbx export why there are no materials or textures?) so you will need to recreate them and assign the image textures during this process. This is true for any software, not just exporting from 3ds Max to Blender. You would have similar problems exporting from 3ds Max to Maya or Cinema 4D or Houdini or any other software that you would use a different rendering engine in.

Regarding the models being a big mess, from my experience I can say that this very common situation very often has nothing to do with the software you are trying to import the models to. They could just be exported with settings not suitable for your purposes, but it is also very common for models that originate in solid modelling or other CAD software to have a very untidy and messy geometry making it a nightmare to work with them. This issue cannot be solved by switching to 3ds Max or any other 3d package unfortunately. My recommendation would be to check carefully if this is not the case before investing your money, effort and time into switching to another 3d package.


UV unwrap or geometry issue (cylindrical object)

The lid probably only needs a single UV seam on its lower inside edge.

Then you can arrange the UV's something like in the screenshot below:

Your jar was almost 2 meters tall. Unless you have a special reason not to I would suggest that you always model to real world dimensions. In this casxe scaling it down to size ( s 0.1  giving a more realistic jar hight of 180mm) means you get 10 times the texel density on the finished model when using the same size texture.
(2K texture for such a model seems a bit excessive :) )

Also, you have way to many edge loops in the Wires. I would suggest removing as many as 4 out of 5 in the Low version.


What is the technical difference between a diffuse shader and a rough glossy shader?

A glossy shader at "1" roughness is still far more "smooth" at the microscopic level than a true diffuse shader. This intrinsic microscopic hardness or smoothness stops it from having much, if any diffusion reflectance, and it has to rely on it's specular reflectance, which transmits reflections from nearby direct and indirect light sources.

Diffuse materials are usual highly porous or permeable at the microscopic scale, so they trap and scatter any light that hits them at unpredictable angles, and scatter it almost equally in all directions. Likewise, a lot of their "albedo color" comes from underneath the shallow surface. Metal, some liquids and some amorphous solids have no "diffusion" ability due to the hardness and solid nature of their microscopic surfaces, so all the light that hits them immediately bounces off in a predictable, angualar direction.

The technical explanation is that the glossy shader is still reflecting light at (mostly) coherent and predictable angles in comparison to the diffuse, which is spraying light every which way from sunday.

As a rule of thumb, you use "pure" glossy shaders for metals, some liquids and some amorphous solids (like varnish)

Diffuse is for really rough and microscopically porous things like plaster, rock, concrete, etc


Your problem is in the Compositor - you don't have your render layer hooked up to a Composite output node, in fact I didn't find any nodes when I switched on 'Use Nodes' so I rigged up a simple set up. Your scene didn't have enough light so I turned on AO, and I set your Shading tab to use alpha instead of render sky. I hooked the render layer alpha to the mix factor of the color mix node, and plugged the image node into the other color as a background(this is wher eyour video footage goes). The file should help a little to fix the original file hopefully. redone file


I guess you are in Object mode, switch to Edit mode


You can achieve this by first disabling the temporary render window, then in your preferred workspace add in an image editor which is displaying the Render Result.


How can I keep the text resolution and sharp but resize the rectangle?

You change that in the "Context", which is the printer-like symbol:

It has Resolution X and Y properties that will affect the cameras:


Is there a Blender api to fill a color to a certain vertex_colors?

Set all loop vertex colors to one
Use foreach set method. Example of use here creating bezier curves https://blender.stackexchange.com/a/180184/15543
import bpy
import numpy as np

context = bpy.context

name = "Xxxx"
r, g, b, a = (1, 0, 0, 1) # red

ob = context.object
me = ob.data

color_layer = (me.vertex_colors.get(name)
               or me.vertex_colors.new(name=name)
               )
ones = np.ones(len(color_layer.data))

color_layer.data.foreach_set(
        "color",
        np.array((r * ones, g * ones, b * ones, a * ones)).T.ravel(),
        )

me.update()

Could also simply
np.array((r, g, b, a) * len(color_layer.data)).T.ravel()


Finding with re

Alternatively, find all objects that match a pattern using active objects name.  With object "Cube" active a simple re could be

regexp = r'Cube.\d+'

any object with a name starting with "Cube." and ending only with digits past that point will match.  Need only iterate over scene.objects, or any collection containing objects eg all in blend  bpy.data.objects, and see if they match, as opposed to finding if any of each of a  1000 exist.

There are other ways without re, eg split or rpartition on "." and test if part is numeric.

>>> "Cube.001".rpartition(".")
('Cube', '.', '001')

Test script finds the matches.

import bpy
import re

context = bpy.context
scene = context.scene
ob = context.object

rexp = f"{ob.name}.\d+"

matches = [o for o in scene.objects if re.fullmatch(rexp, o.name)]

print(matches)

Ok if we have matches, can iterate and delete from blend.

while matches:
    bpy.data.objects.remove(matches.pop())

Or with the operator, passing a context override.

if matches:
    bpy.ops.object.delete({"selected_objects" : matches})

There is a lot of over zealous hoo-ha re not using operators.  If you had 1000s of matches above, the operator is still called only once... IMO this is Ok.

but Don't!!!! do this

for o in matches:
    bpy.ops.some.op(....)

and call the operator 1000s of times.

Python performance with Blender operators

Why avoid bpy.ops?

Please also note that bpy.ops.object.select_pattern(...) has similar functionality, and this could be a 2 liner.

bpy.ops.object.select_pattern(pattern="Cube.*", extend=False)
bpy.ops.object.delete()

Which will delete "Cube.001.001" also.


Why does knife-edge text bevel reflect differently with doubles removed?

Well, phooey!  A little bit more exploration of the interface after posting the question reveals the Mesh --> Faces --> Shade Flat command.  Which restores my nice knife-edge look.


Flickering particles when rendering animation

The problem is with the 'Post processing' settings under render panel.You need to uncheck the sequencer.

Because when the sequencer is checked, it takes into account any videos or image strips already present in the video editor. In your case, you do have a video - most likely a previously rendered video.In such a case, whenever you hit render, instead of rendering the frame again, it simply picks the frame in that video and shows you as render.

You can verify if you have any videos by going into Video Sequence Editor as shown.

Instead of unchecking the sequencer in render settings. You can also delete this video strip to render properly.You can do this by right clicking on it and pressing delete button. You will get an option to 'erase strips'. Click it.

One small suggestion. When you are uploading a blend file here or sharing with someone else please click on 'Pack all into .blend' (as shown below) and save the file before sharing.

This way the textures and files you are using will also be shared in the blend file. In the file you shared, the video and brick textures were not included. This led to delay in figuring out, what the actual problem is. Hope this helps, if not share the blend file again, this time with external data packed.


How can I use an array modifier to create individually manipulatable objects?

Apply the modifier to make the data real
Enter edit mode on the object and press P > Separate by loose parts
Select all separated objects and press Shift+Ctrl+Alt+C > Origin to Geometry

This will make each piece an individual object with the origin located at the origin of the original object. Now you can manipulate them as you wish.

Note: Original object has to be one mesh. If original object consists from more parts (like Monkey head + 2eyes) you will have to connect them together by simple edge.


How do I make the upholstry of a vehicle panel looked puckered by a door handle?

As example, my monkey is the door handle, and my cube is the door panel.

Use for both a subsurf modifier.
Overlap the monkey with the cube
Enable the cube as canvas and set type to displacement

Enable the monkey as brush and set paint source to mesh volume


Blender 2.79 crashes whenever I try to open a rig

disable other add ons, they could be interfering with epic rig, that worked for me, had the same problem


Change this value to "0", should reset it to flat.

Edit: option to leave it rotated normally, and edit at 0 degrees

If you add an empty, then set the object with a "copy rotation" constraint;

Then you can apply the rotation of the empty to the object, regardless of where they're located relative to each other.

Also, you can "hide" (disable) or "show" (enable) the rotation at-will with this icon here;


I just figured it out, it was the video player I was watching the final video on. I was using wondershare video, which is an excellent tool for those who have never used it, but for whatever reason it could play my video without skipping. Once i played it on windows media player and VLC it had so skipping issues. Hope this helps for anyone having this issue in the future.


I'm not immediately able to test the numpy and PIL lines as I don't have those installed, but...

First - is your main loop really setting the pixels you intended? The comment says "create random colors for each pixel" but what it's actually doing is creating random colors in every 3rd pixel - and the stop condition of num_pixels-5 is arbitrary and seemingly will have no effect, since you're stepping 12 each time.

So that's the first thing. If you actually want to set all pixels, it would be range(0, num_pixels, 4)

Second - your line creating the 'pxs' array is making an int array of length 12800 (80*40*4) out of all the pixel components. If you want a binary packed representation, maybe you need to do

pxdata = struct.pack("<%uf" % len(img.pixels), *img.pixels) # pack RGBA floats as binary.

instead? Double-check what the PIL Image call is taking.


Can I use an HDRI to illuminate the scene and another one for the background?

In the world shader, use the light path node to differentiate between the two.

Result with a white cube :


You should probably define an operator. See Python example files that come with Blender about how to write an operator:

It might be a good idea to change objects location directly instead of using an operator that is for user interaction. You can change the location of the active object by changing bpy.context.object.location values.


Array and curve modifiers behave strangely

It was an origin related issue as suggested in the comments by MarcClintDion and cegaton.

What I did to fix it was:

Switched to edit mode with the curve selected;
Selected the first vertex of the curve;
Snap Shift + S > Cursor to selected;
Got out of edit mode;
Set Origin Shift + Ctrl + Alt + C >Origin to 3D Cursor;
Selected the plane;
Set Origin Shift + Ctrl + Alt + C > Origin 3D Cursor.

Not sure if steps 6 and 7 are necessary.

Additionally because the generated road was getting crazy cambers in some parts I went to the curve's properties and set Twisting to Z-Up.


Use pivot point or 3d cursor as center when scaling down verts in edit mode in 2.8 instead of selected volume center

You need to set your pivot point to 3D cursor.
It's currently se to median.

Just click the pivot point menu, and select 3D cursor.

Short explanation:
When you're in Object mode, having your pivot point set to an object's median is very useful.

But in Edit mode, vertices don't care where the object's median point is.
They calculate their own median.
That's why there's the 3D cursor - to set your pivot point easily.


How come I can't see my bones in orthographic view?

x-mirror is not view dependent, and is dependent on the bone names (i.e. ending with .L, .R)
+1 screenshots or .blend


Materials are staying the same as another object even if changed

You are not setting the material in the correct place. The tab you have set the material is for the material override, which sets all object on the render layer to the same material.
See https://docs.blender.org/manual/en/latest/render/post_process/layers.html

Instead you should clear the material from there and set it on the materials tab (the one with the ball symbol). See https://docs.blender.org/manual/en/latest/editors/properties_editor.html#tabs


Blender 2.91 Mesh Object to 3D Print STL

Just a hunch, as I don't know anything about your slicer program. But I know people often get tripped up in other cases by joining objects without realizing the limitations of doing so. So step 7 is likely your culprit, though it may not be the only issue. I'm just betting it's one of them. When joining objects in Blender, they are almost more "grouped" than "fused"; they can be separated later. My gut tells me that your slicer program is complaining about them being joined. You will likely need to separate the joined objects and combine them properly afterwards with a boolean union operation.


Falloff node setup similar to 3DS Max falloff node? Need perpendicular / parallel falloff for correct fabric rendering

"With the default settings, the map generates white on faces whose normals point outward from the current view, and black on faces whose normals are parallel to the current view."
What you're describing sounds like the dot product of the incoming vector and the normal vector.  Probably, clamped:

If I've misunderstood what "point outward" means, you may want to multiply the dot product by -1.0 instead of 1.0.
Use of the incoming vector might not be appropriate for Cycles-- some variation of the view vector (from camera data) might be appropriate instead, although I can't figure out what space that vector is in; or, you might just do it for camera rays only.  Remember, incoming vector can be incoming from camera, or incoming from reflection or refraction or anything else, given Cycles bounces.
The dot product does not give a value that varies linearly with angle.  It varies linearly with projection of incoming onto normal, which isn't the same thing.  It is common to prefer arccosine(dot(v1,v2)) to dot(v1,v2), which varies linearly with the angle instead.

Which requires a bit of remapping to pi-based stuff.  Both of these examples are black where the normal is perpendicular to incoming and white where it is parallel with incoming; the difference is how they interpolate between those two colors.


The animation speed is a property of the path, called "Evaluation time". You can find it in the curve's properties. When you animate the path in the constrait menu Blender creates a curve modifier for it in the graph editor. After you delete it you can animate the property as any others, or you can also modify the generator modifier.


UV Mapping External Texture Changes to a Black Diffuse in Texture Paint mode

Try changing the painting mode to Image and selecting your image in 3D view > tool shelf > Slots while in texture paint mode:


Weird outline between two roughness values

I could be wrong, but I think the halo is caused by the very same phenomenon as the inversion, that it can be  expected, and it's made more obvious by the low resolution of the roughness map.

Let's divide the material into three regions for the sake of argument: glossy, semi-glossy, and rough.

Where the glossy is directly reflecting a dark backgound, the rough is lighter: it's reflecting contributions from many more directions, including the lighter areas.

Where the glossy is directly reflecting a light background,  like the sky, the rough is darker - its contributions include scattered reflections from the ground.

In the grey zone, around the inversion, it's possible for the semi-glossy to be brighter than both the glossy and the rough: imagine the cone from which reflection-samples are being taken. It's possible for the medium cone to contain a bigger fraction of light areas than both the narrow and the wide, especially if there is variation along the horizon. The semi-glossy area is particularly prominent in your texture-map - all of the anti-aliased region between light and dark.

Maybe not strictly part of the problem, but there's also an optical illusion going on, like the checker-shadow illusion illustrated here. The 'dark' areas near the top of your rough regions of grain are actually lighter than the 'light' areas toward the bottom, although they don't look it.

You might consider playing with a procedural wood using something like this method.

.. which can get the same inversion, but with a less prominent, distinct, middle-zone. The material shown above is in this .blend, and can be tweaked.


This way starts with mesh loops rather than vertices, because, although it seems true, I can find no guarantee that polygons list their vertices in order with respect to their normals. (Maybe someone can correct me on that.) So there's a bit of extra wrangling.

As is typical of 3D applications, loops are ordered anticlockwise with respect to forward-facing normals, so have to be reversed, and the (formerly) last element repeated.

import bpy

me = bpy.context.object.data

# per-poly lists of loop indices
pli = (p.loop_indices for p in me.polygons)
# .. to per-poly lists of vertex indices
pvi = ([me.loops[l].vertex_index for l in ll] for ll in pli)
# ..to per-poly lists of vertices
p_verts = ([me.vertices[id] for id in idl] for idl in pvi)

# floating point precision
prec = 2

co_lists =[]

for v_list in p_verts:
    co_str = '    (('
    co_strs = []
    for v in [*v_list[::-1],v_list[-1]]:
        co_strs.append(f'{v.co[0]: .{prec}f} '
                       f'{v.co[1]: .{prec}f} '
                       f'{v.co[2]: .{prec}f}')
    co_str += ', '.join(co_strs)
    co_str += '))'
    co_lists.append(co_str)

DBstr =  "SELECT ST_GeomFromText('POLYHEDRALSURFACE Z(\n"
DBstr += ",\n".join(co_lists)
DBstr += " )');"

print(DBstr)

If nothing else, maybe you can pick the slice  [::-1]... [-1] out of it for reversing and repeating your elements, and/or the str.join() for dealing with your extra terminal comma.


You have a ngon but you don't see it because you have 2 of its vertices overlapping, so remove one of those, or select all and remove doubles with enough Merge Distance (0.02).


texture preview for displacement in Cycles?

This has been added as of this commit (will be in 2.72).

Any recent development build will have this.


Using Blender with wider gamut than 709 primaries (like ACES)

Short answer
Yes you can use ACES OCIO config in Blender, but...
@troy_s don't hesitate to correct mistakes or add infos to what follows.

Longer answer
I've just try it since 2 days, I've seen the new ACES 1.2 OCIO config pop up and decided to give it a try. At the begining I was quite enthusiastic, made some tests, more saturated, ACES config need adapting color values.
First problem
Since you can't change the colorspace of the color wheels, they are going completely crazy, click on a color of the wheel, then in HUE change the saturation, or click and drag on the wheel, it speaks for itself, if a dev read this, we really need to have color managed RGB color wheels as well as a better color picker... if we want to work with other colorspaces.
Knowing that I thought, ok I know this limitation, so I can be carefull and use only RGB channels to set my colors (a pain but I've tried it and managed to make an ACES test scene)
I was quite happy with the render result even if it looks a bit too saturated and then I realised that the glossiness looks less present, perhaps it's like Filmic that looks to desaturated at the beginning because we weren't used to it, for this part I don't know if it's something expected and normal or not.
However, today I've made tests with a chart image to see if it is correctly interpreted.
Second problem
Images aren't correctly converted. I have this sRGB chart as a base to see what a transfer from ACEScg color space to sRGB should look (sorry I never know if it's EOTF or OETF):

A screenshot of the convertion from ACEScg to sRGB, we can see is that it don't react very well:

Even in Resolve/Fusion it's not 100% correct:

Conclusion
I don't know if the color difference is a big deal for a normal scene, but it makes me doubt that it's a valid workflow inside Blender, for now. If someone see a mistake in my test let me know.
I will perhaps try a real scene to confirm all of that, but looks like for the time being, there is nothing better than this great Filmic OCIO config we already have.

Edit 1
In fact all of this makes me think that I understand a bit better my fist test with ACES.
I've made a simple scene only with shader colors, no textures, resulting in an oversaturated image.
What made me thought that, like Filmic at the begining we would have to adapt a bit the workflow, but now that I look at the wrong desaturation of the bars of the chart, it feels normal that I have an oversaturated image, and that it's not a workflow to adapt but that I'm fighting a wrong colorspace convertion.
The filmic scene:

And the ACEScg verions:

Edit 2
I've just understood some fundamentals things, and then read Troy's comment that confirm it.
I've made mistakes, and like he said I've learned a lot from them.
I will surely make more but perhapse all of this will help other to understand this so complicated topic.
What I've just realised is that ACES OCIO config doesn't map primaries to rec709 ones, it clamps them. So the desaturation of the top horizontal bars can't be something else, in fact I've ask someone to try with an other render engin (he tries with Guerilla render) I was shocked that it was the same.
And what we see on my test scene rendered in ACEScg is just that, clamped gamut, a bit like the clamped intensity of Blender's standard(sRGB) view transform but with gamut.
One other thing I've realised is that wider gamut isn't about having better color display on a standard monitor but having more colors to display to a wide gamut monitor and surely internals calculations. Perhaps it looks obvious but this topic has so much confusing part that I was thinking, converting from a colorspace to an other was also to match primaries from the first one to the other but it's not what ACES does.
So, can you use ACES OCIO config in Blender, yes, would I use it to have better images than with filmic, hell no. Even if Filmic isn't perfect, I think it's still better than to fight clamping gamut, unmanaged color wheels... and I don't think the cases where you would see a gain compare to Filmic worth the pain.
If you need ACES it's for other reasons.
I'll surely add more stuff here later when my knowledge grows, or perhaps add a new question on Stack Exchange, like for exemple converting rec709 values (or pointer's gamut ones) to ACEScg colorspace.


How can I do color keying using the VSE?

Option 1

The VSE cannot do a chroma key by itself. You can however make a simple key with modifiers. In this example I have:

The foreground strip (source A) at the bottom to serve as key source
Then I slightly blur it to hide imperfect edges

The yellow color effect serves as background
Duplicate the foreground source clip to the top (source B)
Add a Mask Modifier to it using strip Blur as its input

To source A add a Hue Correct modifier and set its Value and
increase key colour (blue or green) range to all other colours to
0 . Use the curve to tune colours in or out of key. Switch to the S button for saturation and edit the curve so that all Control Points are at 0 or black and white.
Add Curve modifier to source A. Raise the black control point
(bottom left to the top and lower the white point control point (top
right) to the bottom. Place an extra control point in the middle and drag it right up to the top making a high contrast key image.

Remember to press the refresh Sequencer button while you do these changes to see the result.

Option 2:

Otherwise use the compositor. It has proper keying nodes. You can add your source clip as an input to a compositor in another scene (this is important). Perform the key there but don't add a background, make sure to use the Convert Alpha node to premultiply the output. In the VSE add that scene (with the compositor active) as a scene strip, make sure to use Alpha Over. Then place and trim as you wish over the background strip in the VSE.


generate an event or function callback when a stringproperty is changed via user interface

I suggest looking at the context properties, for instance in this example context.area.type.  If scene.x is changed in the console it prints CONSOLE, a panel in the properties panel PROPERTIES etc.  As a test, print the context.copy() dictionary to find what suits for your needs.

import bpy

from bpy.props import StringProperty

def goober(self, context):
    print(context.area.type)
    return None

bpy.types.Scene.x = StringProperty(update=goober)


2.8 beta won't let me texture-paint on bump map slot interactively

I found the answer to my problem, with some prodding from @CraigDJones:  there's two things that enable texture bump painting to work as I expect:

Use LookDev preview mode in the 3D View texture painter
Turn off the Overlays.

It's not clear why either of these steps are required, but for this beta at least (2019-02-10 Windows version) I've got a functioning solution.

==== EDIT ====

Sadly, that solution only works for very simple .blend files, it seems.  I have a more complex model and I still cannot get texture painting to work on the bigger model.  It seems like there are so many weaknesses from a UX perspective in this feature that it just can't be called a 'feature' yet. :(

I've had to un-accept my own answer: there's a novelty!


Firstly the issue and error with your code.

Operators only return a python  set containing the status of the operation, for example {'FINISHED'} if finished normally, or {'CANCELLED'} if there was a problem.

On looping a primitive add operator, the object will be context.object the mesh context.object.data on each iteration.  If run in edit mode, (enter_editmode takes you into edit mode on first iteration) then all will be added to the edit objects mesh. This is why you have one object.

Secondly, I'd probably use the bmesh create cone operator as pointed out in answer by @TLousky,  for completeness here is a way to put the created cylinders into a "live" bmesh, that is a bmesh from the edit objects edit mesh.  To demonstrate, I've put in code to select the ngon caps of the cylinders.

import bpy
import bmesh
context = bpy.context
ccValids = [(1, 1, 1), (2, 2, 2)]
for c in ccValids:
    leafs = bpy.ops.mesh.primitive_cylinder_add( location = c, enter_editmode = True )
# we will now be in edit mode
bm = bmesh.from_edit_mesh(context.edit_object.data)
# deselect all but ngon faces
for f in bm.faces:
    f.select = len(f.verts) > 4

Result.  Still in edit  mode, cylinder ngon caps selected.

When you've finished operations, a bmesh.update_edit_mesh(context.object.data) will update the edit mesh.


I would try highlighting it in the UV image editor, (if you cant isolate it in the UV window highlight it in the 3d view port and it will show in the UV window next to it,) then rotate that particular part of the UV map. If this doesn't work try a new UV unwrap with smart UV project.


How to do custom Freestyle brush shape in Blender 2.74?

Have you looked into example .blend files for using textured strokes?  If not, try a couple of example .blend files available within the Blender 2.71 release log you cited, i.e.:

http://wiki.blender.org/index.php/File:Teapot_pencil.blend

http://wiki.blender.org/index.php/File:Mouse.Blend

Start from one of these existing line styles for textured strokes, and customize it with your texture PNG image.

EDIT: In reply to the updated question (22 May 2015)

Freestyle textured strokes always use a texture image as non-overlapping tiles repeated along stroke.  Internally, textured strokes in Freestyle are rendered using UV texture mapping (that is a general functionality of Blender).  Freestyle strokes have its own UV coordinates along stroke to map a 2D point in a texture image on to another point in the 2D stroke space.  This means that the texture image cannot be mapped in such a way that one tile overlaps on top of another.  (I guess this is a general limitation of UV texture mapping.)

I believe you need to rely on other Freestyle options to achieve what you are intended to do.  How about using the Calligraphy thickness modifier instead?


Copying ANIMATED keyframes from active to group (Ridged body)

Yes, what you need to do is use copy animation data. Do this by selecting all your objects, the active should be the one you want to copy the key frames from, hit Ctrl-L>Animation Data to copy the keyframes.

Note: This will copy all animation data, so if you have other keyframs like location or scale, this will be copied two


In the properties editor, in the mesh tab, UVs panel, you can manage UVs of your mesh as well as creating several UVs.
Note that one UV map in the list has the camera incon turned on: it means that UV map is used by default by your image texture nodes and by your Texture Coodinates nodes.
If you want to manually select a particular UV map from your shader, you will need to use the UV Map node.


You can add a "Child of" bone constraint to the root of the character, pointing to an appropriate bone of the vehicle. You can animate the influence of the constraint, to separate the two actions. After the set up of the constraint, click its "set inverse" button to build the correct location relationship.


What are some good low-poly scene techniques?

Well, you can:

Use Ambient Occlusion in BI
Use rougher materials
Set up the Depth of Field setting to get a tilt-shift effect
Use the ortographic camera instead of the perspective


How do I correct input videos that are flipped upside down in blender video edit mode

That's actually pretty easy. In the sequencer editor, select your strip and hit N to display the sidebar on the right. Under Adjust / Transform, check Mirror X and Mirror Y.

However, that will only work for the active strip (the last selected one). If you want to do this with all your strips at once, you can "group" them in a Meta Strip (Ctrl+G), then do the Mirror on that Meta Strip.


The import goes fine, but the model isn't visible in the viewport because the view isn't pointing at it, you could do a few things:

zoom out  (mouse wheel)
rotate the view. (middle mouse button)
press home to View All.

Use the Outliner View to see if the object imported, then select the object by clicking the name.

With the mouse cursor in the 3D View press . (period) to focus the view on the selected object.


There are two possible ways to duplicate, one is duplicate object in Object Mode and another is duplicate faces on Edit Mode.
When you duplicate objects, material also is duplicated applied automatically same as object from copied one.

To avoid this you have to add different material to each object from material Panel.
Click on X in material panel and delete old material, and then click on New to add new material to object. Do this to each object you want to have different material.

Let's check another possibility:
If you have duplicated faces in edit mode.

In such case add more material slot in same material panel by clicking + button beside material name;

Then click New.

After that select face, select material slot you want to be applied and then click on assign.

Now all faces are having different material.


Is it possible to save the text of the command line automatically?

Tested on Linux and Windows, should work on MacOs too :

 blender -b file.blend > file.txt