normals changed after separating object in 2 pieces When having smooth shading on a sphere and separating the top into a separate object the shading is no longer smooth over the 2 parts, there is a discontinuity:

It turns out the separate action changes the normals:

I understand blender recalculates the normals based on the mesh it knows within the object, but is there any way to override this behavior, so that on separation, the original normals from before the separate are retained?

Normal at a point P is a vector that is perpendicular to the tangent plane to that surface at P.

That means when you separate the mesh the Normal will be 90 degrees to the surface at the edges.

To fix that issue you can copy the original sphere and use it on both parts in a Normal Edit Modifier.


Is there a way to place a single edge in the same way you place an edge loop? I want to be able to press a shortcut, then hover over an edge, click it and then place a single edge (not an edge loop) just the same way I press Ctrl+R to place an edge loop. Also would be great if I can use the mousewheel to control how many subdivisions or edges to place like you can do with Ctrl+R. Or any way to control how many edges get placed at once.

Is there such functionality? I dont want to use the knife tool which takes so much longer to use because of the extra clicks and the inability to place multiple edges at once. I was trying to get the subdivide tool to do taht but it seems like it doesnt let me subdivide by just hovering over an edge nor can I select how many subdivisions... unless I missed something?

Any other suggestions or workarounds on doing this?

You can add new edges using the Subdivide function.

Select two opposite edges
Go Edge > Subdivide
Adjust the number of cuts in the pop-up menu.


How do I UV Unwrap Part of my Object? I want to apply a texture to a section of my object, but I don't want anything showing up anywhere else on my object. When I select the part of my object that I want unwrapped and unwrap it, it also unwraps every other part of the object, but unwraps each face as a full square. The area selected unwraps just fine.

This seems to be fixed by scaling all the UV's I don't want down to 0, but is there another/better way?

This works in Blender 2.74

Select your mesh, enter edit mode, and select only the faces that you want to unwrap. Now press U and select the type of unwrap you want to use:

Notice that when I select other faces, the only visible selection is a vertice on the lower left, while an unwrapped face becomes fully visible when selected in the viewport. Basically, Blender automatically unwraps the selected part of the mesh, and then sends all other vertices to 0, 0 as there is no coordinate information to display for them. However they do still display a color:

What you can do is to assign a different material to the not unwrapped vertices so that you can control the color easily. Select all the unwrapped faces and press Ctrl+I to invert the selection. Now go to the materials panel and make a new material, and press the Assign button:


How to quickly remove all zero-weight vertex groups? I wonder what is the quickest way to remove vertex groups in which all vetices have zero weight? Currently I got nearly 100 groups listed there after days of hard working, and I'm sure some of them are completely zero-weight groups and should definitely be removed, but it seems not so easy to quickly locate and remove them all.

This python snippet should work if you paste it into a Text Editor's new buffer and click Run Script.

import bpy

def survey(obj):
    maxWeight = {}
    for i in obj.vertex_groups:
        maxWeight[i.index] = 0

    for v in obj.data.vertices:
        for g in v.groups:
            gn = g.group
            w = obj.vertex_groups[g.group].weight(v.index)
            if (maxWeight.get(gn) is None or w>maxWeight[gn]):
                maxWeight[gn] = w
    return maxWeight

obj = bpy.context.active_object
maxWeight = survey(obj)
# fix bug pointed out by user2859
ka = []
ka.extend(maxWeight.keys())
ka.sort(key=lambda gn: -gn)
print (ka)
for gn in ka:
    if maxWeight[gn]<=0:
        print ("delete %d"%gn)
        obj.vertex_groups.remove(obj.vertex_groups[gn]) # actually remove the group


Expand vertex group by texture aplha I would like to ask how to expand or erode vertex group which is setting by alpha of texture. If there are non-destructive system it will be best. Thank you very much.

I'm not exactly sure what your asking but you could use a displacement modifier with a texture attached. Then extrude all the vertices out and delete them. If that's what your asking.


Deselect first and last vertices of a path with Python I have a path of verts and I want to deselect the left one and the right one: with indexes 0 and 2:

The problem is that I can't seem to figure out how to find correct indexes. Iterating through ob.data and bmesh.verts gives me a sorted lists, using a ops.mesh.select_less() deselects everything (in this example), I've tried different options of Sort Mesh Elements without any luck, so I'm out of ideas to make this happen without using something like geodesics on surface.

In the example above the verts I'm looking are placed as far from each other as possible but this is not might not be the case, for instance:

The two verts with largest angle between two linked selected edges.

  the angle between the first and the last edge may be different but
  it's always larger than between all the other selected edges

Going by images in question you have a closed loop, if the two verts are ends of selected edge path, see below.

Test Script orders a list of selected verts, orders them by "edge angle" if they have two selected linked edges else assigns -1.  The last two vertices are deselected.

Note this is only a proof of context. Getting the angle of three verts a, b, c, edges ab, bc, could also be done via checking dot product of normalized edge vectors.

import bpy
import bmesh
from math import degrees

def edge_vec(e):
    return e.verts[1].co - e.verts[0].co

def edge_angle(v):
    edges = [e for e in v.link_edges if e.select]
    if len(edges) == 2:
        e0, e1 = edges
        return edge_vec(e1).angle(edge_vec(e0))

    return -1

context = bpy.context
scene = context.scene
ob = context.object
me = ob.data
bm = bmesh.from_edit_mesh(me)
verts = sorted((v for v in bm.verts if v.select), key=lambda v: edge_angle(v))

if len(verts) >= 2:
    for v in verts[-2:]:
        print(v, degrees(edge_angle(v)))
        v.select = False

bmesh.update_edit_mesh(me)

EDIT

For the case here, where the verts in question are at either end of an edge path, it would be a matter of looking for selected verts that have only one selected edge in their link edges

verts = [v for v in bm.verts if v.select
         and len(e for e in v.link_edges if e.select) == 1]


All was fine and suddenly Out of memory? quick question.
my laptop is gtx 1080 and i5 and he render any scene without any problem.
but when I got home to my stronger pc (rtx2080 ryzen3700) and opened the project, chose render view and tried to render it says " out of memory" and that it!
what is wrong ?

If the laptop has an ssd it is able to handle page-file operations better (at the cost of some drive lifetime) and that seems to let you render things that you are otherwise unable to with your page-file on a traditional spinning hard drive.


Select faces with similar uvs? I'm working on a voxel game where some meshes use the same repeating uvs. I'm trying to select faces with similar uvs so that I can easily change the tile used for them (e.g. different leaf colors).

I've seen the "Select Similar" menu, but nothing there seems to work for finding faces with the same uvs.

Thanks!

Here my how-to:

In UV/image editor select "keep UV and Edit mode mesh selection in sync"
and Face select mode:

Now select in 3D view needed face, and you will see it in UV/image editor:

And finally, use C or B to select all faces in that position:


How to rotate a child opposite of its parent in BGE? What I want to do is, rotate the parent-object (while playing the game), and its child (which will revolve around the parent) to rotate in the direction opposite to its parent:

This is the original position.

This is when I rotate the parent(selected)

This is what I want(But while playing in BGE, either by python script or logic bricks

This should be possible without Python and Logic bricks.
As far as I see, you want the child to keep its original orientation. This can be done by vertex parenting. You need to add a single vertex to the mesh of the parent on the location where the child is. Then parent the child to the vertex.


UV Texture Bleeds Over I've nearly finishing texturing a Pelican in Blender painting on UV maps from photoshop and importing the result on the Pelican, everything is fine except for the beak, where parts of the uv are bleeding over into each other particularly in little corners. (See Image) other than cutting up the mesh of the Pelican again is there any other way to fix this? I have the mirror modifier applied as well.

Try switching your subdivision surface modifier from Catmull-Clark to Simple.


How to put a cursor in the middle of the screen? How could I add a pointer at the middle of the screen, where my mouse is fixed there? Something like this:

Aside from this method, if the "cursor" always stays in the middle of the screen, another way would be to parent an object to the camera (⎈ CtrlP):


Are themes for Blender releases prior to 2.77 compatible with 2.77? I ask this cause most themes I find are are from version below 2.73, and I want to avoid messing with the UI.

I need insight on the compatibility of those themes on BlenderSwap.

They should work well enough between versions for the most part.

Only thing that might happen is that older themes may be missing color definitions for newer themeable elements that were introduced in later versions and have no color information for them.

The closer the versions are the least trouble is to be expected.

Other than a few undefined colors everything else should work fine.


How to animate random turbulence on a mesh surface? I'm trying to create a 3d object that behaves similarly to what you see in the background of this website ( not interactively, and only on one mesh ).
The idea is to take a sphere, maybe cut away a few parts so it looks like a piece of broken egg-shell, - or even just a flat plane, and then perturb the vertices randomly over time.

I started looking at a displacement modifier with some noise/cloud textures, but found that it would only distort the verts directly along their normals. Also, noise/cloud textures appear to be kind of hard to animate. I've started looking at forces and physics, maybe a cloth simulation? But here's where my Blender-specific experience falls short.

I've done a fair amount of work like this in max and maya, so I can probably find my way if pointed in the right direction. I'm just fairly new to blender.

Note: I did find this very promising answer, but I'm thinking this will still only move the verts directly along their normals.

Thanks!

PS I only plan to render the wireframe, so texturing isn't likely an important factor.

You can achieve this effect in many different ways. It will involve:
1) Particles / points that is wiggling around
2) Some kind of edge creations when points are closer together (KDtree).
3) Shaders to make it nice
4) Instancing

But I think the easiest and more elegant is using something like Animation Nodes Add-On or Sverchok.

Search: Plexus effect, Blender, kd-tree.

You might even found plug in that does this already.

Actually Animation Nodes has a template that does this kind of noise "plexus" effect or random points and network connection already. All you need to do is just make it pretty by adjusting the shader, transparency, etc.

And Sverchok has one node that generate KDTree edges...

Enjoy!


How do I place the "follow active quads" results against the UV Grid? Below is a view of my dinner plate.  The green faces traveling around the blue center of the plate, display as a circular image the UV image, and do not texture correctly.  So I thought I would try to use "follow active quads" just for those green faces.  At first it appeared to work, as it gave me the flat non-circular grid you see on the UV grid.  But I see no way to rotate it so it will lie flat against the UV grid.  I made one face active, then using circle select, I selected all the other green faces.  The I pressed U for unwrap, and chose "follow active quads" and ok.  Can someone tell me if I am doing something wrong, or have not gone far enough?  I would appreciate any advise.

You need to reset the UV coordinates, before using Follow active quads.
I don't know why :).

Select the faces (Ctrl+L to select the whole island)
Go UV > Reset to clear the UV coordinates
Unwrap through UV > Follow Active quads.


How do I stop the Compositor Output Node from overwriting my images on each new render? Using the compositor node setup above, when I hit F12, it makes a new pass and the rendered images are automatically saved. The problem is that the new render erases the previous one that was saved in my folder.

How can I prevent this?

I've already unchecked the "overwrite" option in the output panel in the properties editor, I did not see any similar options in the compositor editor.

I just want Blender to create a "render01" if a render is already there, exactly like in the outliner!

Thinking ahead, you want the Output Path in sync with all the File Output Nodes of the compositor.

I think one easy way to solve this is adding a 'version number' to all output paths (as usual) and keep all file names in sync. Here is a quick'n dirty Add-on to address that. Once you add v and some arbitrary number to the Output Path, a new 'slider' appears in the Output Area, which allows to change the actual version string on the fly.

render_version.py

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

bl_info = {
    "name": "Render Version",
    "description": "Output version number control",
    "author": "p2or",
    "version": (0, 0, 2),
    "blender": (2, 80, 0),
    "location": "Properties > Output > Render Version",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Render"
}

import bpy
import os
import re
from sys import platform
import webbrowser

# ------------------------------------------------------------------------
#    Scene Properties
# ------------------------------------------------------------------------

def rv_update(self, context):
    context.area.tag_redraw()
    scene = context.scene
    render = scene.render

    # Replace the render path
    render.filepath = version_number(
            render.filepath,
            scene.rv.rdr_ver
        )

    # Replace file output
    if not scene.render.use_compositing or \
        not scene.rv.sync_comp or \
        not scene.node_tree:
        return

    nodes = scene.node_tree.nodes
    output_nodes = [n for n in nodes if n.type=='OUTPUT_FILE']

    for out_node in output_nodes:
        if "LAYER" in out_node.format.file_format:
            out_node.base_path = version_number(
                out_node.base_path,
                scene.rv.rdr_ver)
        else:
            for out_file in out_node.file_slots:
                out_file.path = version_number(
                    out_file.path,
                    scene.rv.rdr_ver)
    return None

class RVSettings(bpy.types.PropertyGroup):

    rdr_ver : bpy.props.IntProperty(
        name = "Render Version",
        description="Render Version",
        default = 1,
        min = 1,
        update = rv_update)

    sync_comp : bpy.props.BoolProperty(
        name = "Sync Compositor",
        description="Sync version string with File Output nodes",
        default = True)

# ------------------------------------------------------------------------
#    Operators
# ------------------------------------------------------------------------

class RVOpenOutputDirectory(bpy.types.Operator):
    """Open up Output Directory in File Browser"""
    bl_idname = "rv.output_directory"
    bl_label = "Open Output Directory in File Browser"
    bl_description = "Output Directory"
    bl_options = {'INTERNAL'}

    def execute(self, context):
        fp = os.path.dirname(context.scene.render.frame_path())
        try:
            if platform.startswith('darwin'):
                webbrowser.open("file://{}".format(fp))
            else:
                webbrowser.open(fp)
        except OSError:
            self.report({'INFO'}, "No Folder")
        return {'FINISHED'}

class RVOutNodesCleanup(bpy.types.Operator):
    """Remove version strings from File Output Nodes"""
    bl_idname = "rv.remove_version_strings"
    bl_label = "Remove Version Strings from File Output Nodes"
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def remove_version(self, fpath):
        match = re.search(r'(v\d+)', fpath)
        delimiters = ("-", "_", ".")
        if match:
            head, tail = fpath.split(match.group(0))
            if tail.startswith(delimiters):
                tail = tail[1:]
            fpath = head + tail
            return fpath[:-1] if fpath.endswith(delimiters) else fpath
        else:
            return fpath

    def execute(self, context):
        scene = context.scene
        nodes = scene.node_tree.nodes
        output_nodes = [n for n in nodes if n.type=='OUTPUT_FILE']

        if not output_nodes:
            self.report({'INFO'}, "Nothing to operate on")
            return {'CANCELLED'}

        for out_node in output_nodes:
            if "LAYER" in out_node.format.file_format:
                out_node.base_path = self.remove_version(out_node.base_path)
                for layer in out_node.layer_slots:
                    layer.name = self.remove_version(layer.name)
            else:
                out_node.base_path = self.remove_version(out_node.base_path)
                for out_file in out_node.file_slots:
                    out_file.path = self.remove_version(out_file.path)

            scene.rv.sync_comp=False
        return {'FINISHED'}

# ------------------------------------------------------------------------
#    Drawing
# ------------------------------------------------------------------------

def draw_rv(self, context):
    """Append Properties and Operators to the Output Area"""
    rv = context.scene.rv
    if re.search("v\d+", context.scene.render.filepath) is not None:
        layout = self.layout
        #col = layout.column()
        row = layout.row(align=True)
        row.prop(rv, "rdr_ver") #NODE_COMPOSITING
        row.prop(rv, "sync_comp", text="", toggle=True, icon="IMAGE_RGB_ALPHA")
        row.operator(RVOpenOutputDirectory.bl_idname, icon="DISK_DRIVE", text="")

# ------------------------------------------------------------------------
#    Helper
# ------------------------------------------------------------------------

def version_number(file_path, number, delimiter="_", min_lead=2):
    """Replace or add a version string by given number"""

    match = re.search(r'v(\d+)', file_path)
    if match:
        g = match.group(1)
        n = str(int(number)).zfill(len(g))
        return file_path.replace(match.group(0), "v{v}".format(v=n))

    else:
        lead_zeros = str(int(number)).zfill(min_lead)
        version = "{dl}v{lz}{dl}".format(dl=delimiter, lz=lead_zeros)
        ext = (".png",".jpg",".jpeg","jpg",".exr",".dpx",".tga",".tif",".tiff",".cin")

        if "#" in file_path:
            dash = file_path.find("#")
            head, tail = file_path[:dash], file_path[dash:]
            if head.endswith(delimiter):
                head = head.rstrip(delimiter)
            return "{h}{v}{t}".format(h=head, v=version, t=tail)

        elif file_path.endswith(ext):
            head, extension = os.path.splitext(file_path)
            if head.endswith(delimiter):
                head = head.rstrip(delimiter)
            return "{fp}{v}{ex}".format(fp=head, v=version[:-1], ex=extension)

        else:
            if file_path.endswith(delimiter):
                file_path = file_path.rstrip(delimiter)
            return "{fp}{v}".format(fp=file_path, v=version)

# ------------------------------------------------------------------------
#    Registration
# ------------------------------------------------------------------------

classes = (
    RVSettings,
    RVOpenOutputDirectory,
    RVOutNodesCleanup,
)

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

    bpy.types.Scene.rv = bpy.props.PointerProperty(type=RVSettings)
    bpy.types.RENDER_PT_output.append(draw_rv)

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

    bpy.types.RENDER_PT_output.remove(draw_rv)
    del bpy.types.Scene.rv

if __name__ == "__main__":
    register()

Gist: https://gist.github.com/p2or/cff74514f467034a03177871dbc8912b


Is it possible to deselect random elements? I know you can select random elements (verts, edges, etc.) however is it possible to deselect elements?

I want to be able to select random elements in a certain area (which would be defined by a preexisting selection)

I tried

Selecting an area
Inverting the selection
Hiding the inverted selection
Selecting random elements
Unhiding

The only problem is the hidden elements are selected when they are shown again. It can sometimes be a pain to deselect these without affecting the randomly selected area.

After selecting your random vertices, assign them to a vertex group.  Then unhide everything, unselect everything.  Finally, select the vertex group.


Symmetrical object won't rotate on axis evenly This is a wheel with bones and constraints to help it roll and turn. I don't know what I did in the process, but my wheel no longer rotates symmetrically like it used to despite not manipulating it at all.

I've tried Origin to Geometry, Cursor to Center, and resetting the Rotation, but it doesn't fix the problem.

Is there a way to fix my wheel's rotation?

Set Pivot Point to Median Point

Go to Edit Mode and select vertices in the middle that creates a circle so your pivot point is now at the exact center, something like at this screen:

Press ShiftS > Cursor to Selected to move the 3D cursor to that pivot point

Now exit from Edit Mode and set the object's origin to the 3D cursor by pressing the best shortcut in the universe CtrlAltShiftC, select Origin to 3D Cursor

Whole process demonstrated on your model:


Get Shape Key from Action or FCurve in Python? I've been messing around with this for a while and I can't seem to find the connection between fcurves and the specific shape key values they control.

I can use something like the following:
bpy.data.actions['KeyAction'].fcurves[0].data_path
to get:'key_blocks["sitFix"].value'

But how do I get the shape key list that "sitFix" is in?
bpy.data.shape_keys['Key'].key_blocks["sitFix"]
i.e. 'Key' in this instance

Searching by name doesn't look like it will work, as Blender allows different shape key blocks to use the same name within different shape key lists, so there's a 'sitFix' in both 'Key' and 'Key.001'

Ultimately, I'm trying to see which mesh is being affected by a particular fcurve, but here I've hit a break in the chain connecting them.

key_block names can be used for different shape key lists, which means same shape key name but different objects. Every object uses its own action, thus you need to use the action the object references (Object.data.shape_keys.animation_data.action). See:

# Cube

>>> bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

>>> bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['KeyAction']

# Cube.001

>>> bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

>>> bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['Key.001Action']


Blender (2.9) can't rotate or scale any objects in object mode using keyboard I've been working on a project in blender for a while now, and one day I open my file and suddenly It's not letting me scale or rotate objects using hotkeys.  I am able to scale and rotate them in the objects properties panel by editing the values there, but when I press something like "R" on my keyboard to rotate, nothing happens.  For some reason, I can still grab objects via the "G" key, but when I try to scale and rotate using keyboard, nothing works.  I opened up a new blender window and everything worked fine in there, so I must have activated some weird setting somewhere.  Does anyone know how to fix this?
(blend file)

uncheck "locations" here:

and i free tip:
don't ever just try out any shortcuts, if you are not sure what you are doing because nearly every shortcut does something in Blender - and something different n each area.


copy/paste keyframes doesn't work(?) Well when i select a keyframe, right click it and select copy, and then paste it it doesn't paste?
I have tried searching for this on other websites (reddit,youtube etc...) but nobody seems to be having a problem like mine or everybody knows how to fix this except me.

Make sure you select (with Left Click) another frame in the timeline before pasting the keyframe.
You can also duplicate the keyframe(s) with SHIFT + D (or Right Click > Duplicate) and move your mouse to the desired position or type the number of frames you want to move.


How do i turn multiple of the same object into instances? I have need to render a scene but have been running into trouble because it would run out of memory. The scene has a lot of leaves (999 to be specific) and they are all identical. How would i turn all of these leaves into a instance of one leaf to save memory and computing power? (All of the leaves are separate objects and already exist in the scene and i do not want them to move)

Select all your leaves (if they have the same material, press ShiftL (Select Linked) > Material), select one last to make it active, press CtrlL (Make Links) > Object Data, now all the leaves share the same mesh, they are all instances.


Properties of a selection of objects Imagine a scene containing multiple objects, for example a bed and a chair. The bed and the chair aren't blender-objects themselves, but they consist of many subobjects. To view the dimensions, rotation etc of one of these subobjects is not a problem, but what if I want to see the dimension of the whole bed? I have thought about parenting all sub-bed-objects to one of the parts or adding them all to a group. However, so far I have not been able to figure out how to display the dimensions of a whole group. How could I do that?

I have created an addon that will create a mesh cube that encompasses all selected objects. Of note is that non-render objects such as camera, lamp and lattice objects report there bounding box as a zero size cube, this can lead to a cube of zero size that is only seen in the outliner.

To use you can save this link to your addon folder or to somewhere convenient and use the Install from file button in the preferences. You will then find Create Bounding Box under the Add Mesh menu.

This will give you a single object that clearly shows the outer dimensions in the object properties as if all objects had been joined.


How to export fills on Freestyle SVG export? I have a simple cube object with a blue diffuse color. I enable the freestyle svg plugin and check all the necessary boxes. Freestyle exports the edges to the .SVG but there are no colors present.
Do I have to do something specific to export the materials as fills?

The SVG exporter only supports exporting the freestyle lines at the moment.
If you want to have the fill in your SVG file as well, you can use the trace bitmap function in inkscape (or a similar action in other vector graphics programs) on your rendered image.

This is a little bit beyond strict blender topics, but I don't think there's a way to do this without external programs.

http://i.giphy.com/l41lKvw47mA396Ei4.gif


Creating Holes in Cylinder for Lightsaber I'm trying to create the graflex lightsaber, and im almost done. Although, I need help cutting 2 types of holes on the cylinder mesh (main body)

Circular hole in the mesh (Shown with arrow and circles) to reveal the geometry (the one with two small pins) I have under it
A square hole just above the word "cut"

You can refer to the reference image below

Thank you guys! I'd appreciate help

I have a few pictures that I can set up to show you. First, you add 3 loopcuts through the area you are working in. After that, you select 4 faces to make the inset for the rectangle and then 6 for the circle. I select the inner faces after the inset on the area to be turned into a circle, and duplicate it and separate it from the mesh. In object mode, I select that set of faces and use Looptools > Circle to round them into a circle after shifting the view to top view down with selection by pressing Shift Numpad 7. Here I then turn on the magnet and select Faces and then just press G to grab and confirm without moving it - the circle is then projected to the cylinder underneath. Join them back together with ctrl-J and enter edit mode -  and then delete the faces underneath , and scale the circle to fit the hole.  I used alt-M top merge at last by selecting the outer ring vert and then the one in the circle. After completely welded back together, I inset the faces to create another edge loop and then delete the inner faces for the circle and the rectangle.


Emission shader color saturation clipping I stumbled on a trick that while working on one project that will help me with another, but I am not sure why it works.

When I set the color of an emission shader to a saturation of 1 the shader appears that color no matter how strong the brightness is set to. However, if it is set to about .85 or lower, the shader becomes white when very bright much like a light would be in a photo. When you apply a glare filter to the output the glare is the color of the emission node while the object itself is still white.

I understand why this would happen in camera, clipping and all of that. What I don't understand is why this happens for lower saturations in Blender and not higher ones.

Easiest to explain it with an example. Let's take fully saturated blue. At power 1.0, that is RGB 0.0, 0,0, 1.0. Let's boost power up to 2.0. We now have 0.0, 0.0, 2.0. This can't be display on our monitor, so it clips to 0.0, 0.0, 1.0. Essentially negating the power increase. We have the same blue we started with.

Now let's try 85% saturation, but still at full brightness, emitter power=1.0. That's RGB 0.15, 0.15, 1.0. Let's put the emitter up to 2.0. We now have RGB 0.3, 0.3, 2.0. That clips to 0.3, 0.3, 1.0. See what happened? We raised all the channels, but only R and G had room to go up, so they increase relative to blue, leaving you with a desaturated blue. This doesn't happen with 100% saturation, because R and G are 0 in that case and don't get scaled up when you boost the power.

Btw, on the subject of the glare node, it doesn't clip linearly. I've never looked into what it does exactly, but it does some sort of scaling or clamping to avoid changing saturation or outputting superwhite values. (usually that's done by scaling down all the 3 channels by some identical value that will leave you with brightest channel=1.0)


Generating a UV map from object generated texture coordinates I'm trying to map planet textures on spheres, and the maps are Equirectangular. I'm initially mapping the textures to the spheres by using "object" generated texture coordinate input as the vector for and "environment texture" node instead of "image texture" since environment texture node has a equirectangular projection setting and image node does not. This is currently the only way I've found it possible to map equirectangular textures to spheres without distortion.

Now that I'm ready to paint on the textures and add mountains and valleys to
 the planets, I have to UV unwrap the spheres. Is there a way to bake or generate a UV map from the object generated texture coordinates?

Spherical Coordinates

The pictured above part of node setup from https://blender.stackexchange.com/a/148354/15543  (refined from https://blender.stackexchange.com/a/159492/15543)

produces spherical coordnates (r, theta, phi) from object texture coordinate (x, y, z)   Equirectangular coordinates map latitude to U and longitude to V .. (or is it vice versa) and are recognizable from their 2 x 1 aspect ratio image.

The angles are in radians.  360 degrees = 2pi radians.

The latitude is mapped to [-pi/2, pi/2] the longitude [-pi, pi]  mapping both to [0, 1] by dividing by range (pi for  latitude and  2 * pi for longitude) and adding 0.5  will produce Equirectangular UV coordinates to plug into a texture node.

Note the mapping node is not required, but can be used to alter the meridian for example.

Alternatively could use vector maths and input up and zero meridian vectors.

Texture Painting

If we set up a sphere from a grid, or plane as described here

How to animate morphing a rectangular plane into a sphere  in particular using method for 2.8 used here https://blender.stackexchange.com/a/24053/15543

poles are nicely collapsed to a point, and the UV is a perfect quad.
Hence  can texture paint on our sphere to an Equirectangular projection image.

First time texture painting.. but in the right spots

Note: Made the grid 2x in x dimension. Empty rotated (90, 0, 90) the simple deforms -180 in z on top of -360 in x.


Does the Principled shader alleviate the need for custom PBR setups? A couple of months ago I took Blender Guru's PBR tutorials to create the dielectric, metallic and uber shader. I find that these work really well, and I know of other PBR setups such as Remington's shader. However, with the release of the Principled shader, I was intrigued to know whether it would replace the need for all of these custom made PBR setups. Any knowledge over this would be greatly appreciated.

Yes - and no.

For most 'real world' materials, the Principled shader should be able to produce very good results. However, it is not perfect and cannot deal with every situation - otherwise it would have far more parameters, inputs and sliders than would be practical.

The existing principled shader should be fine for pretty much all 'simple' materials - those where the visible effect is due to the material and surface properties alone - or where there is a single layer of 'clearcoat' that is within the capabilities of the 'clearcoat' parameters.

This should be sufficient for, say, 99 percent of materials (or more!). However, there are feasible situations where the principled shader is insufficient - and under those situations you would again need to combine multiple shaders. For example, a surface with multiple 'clearcoat' layers  with different properties of each layer, or a surface where the micro-detail has a significant effect on the appearance (such as the fine structure of butterfly wing scales or the irridescence of beetle wingcases).


Unable to see rendered View even after adding HDRI and exr files I am adding hdri and exr files to Env texture but even then i am unable to see the view ( in rendered mode) .
It was wroking last week with some files ,but now its not working.
Attached is screenshot.

Please help.

Since the World Output node doesn't have a red header and the World Properties show that a background node is connected, you have another World Output that is active. You will have to remove the duplicate output in the node editor, that is likely somewhere outside the visible area. All nodes can be brought into the view through View > View All (Home or pos1).

The proper node setup for HDRIs is shown in the following image:


Crash report. Cycles shader graph connect: can only connect closure to closure My Blender model keeps crashing and I don't really know why when I render it get to between 80% and 95% on updating BVH and just flat out crashes. I am using cycles with 2.78c

Crash report-Cycles shader graph connect: can only connect closure to closure (Bump.Normal to Add Shader.Closure2).
Cycles shader graph connect: can only connect closure to closure (Bump.Normal to Add Shader.Closure2).
Malloc returns null: len=16 in Cycles Alloc, total 2348295728
Malloc returns null: len=8 in Cycles Alloc, total 2348295664
Malloc returns null: len=8 in Cycles Alloc, total 2348295672
Error: Unrecognized Exception
Error: Unrecognized Exception

Anyone Got Any idea this is all I got from the command prompt thing.

If the crash is reporting an issue with shaders then investigate into how the materials are created. Are you connecting a bump map to an add shader node? Nodes have colors that determine what kind of information should be plugged: purple should connect to purple, yellow with yellow and grey with grey... A green input is expecting a green output.

Read: What is the meaning of the color of the node sockets in the node editor?


How to make object scale at specific point on Z axis based on bone? So, I'm working on a rig and I hope to get a mouth rig working.  Behind the mouth is a plane which I've textured red to act as the inside of the character's mouth.  Problem is, that while it might be possible to move the red plane witha bone, I haven't figured out how to scale it.  The jaw will deform and as a result, some of the red texturing will not be able to deform with the jaw and make it appear seamless.

Scaling the bone should scale the mesh as well. It is really easy to try it out:

Add a plane
Add an armature
Parent the plane to the armature (automatic weights)
Scale the bone

Move the mesh origin point in order to change the scaling origin.


Is is possible to create an animatable morph between two lines? I'm trying to create a morph/blend as seen in the second image, but instead of beeing the same line from start to end I want them to be like the first image different lines A and B. The result has to be animatable so I can move a vertex of the line A or B and Blender updates the inbetween-lines during animation.

Is this possible?

You could use the Animation Nodes Addon.

Create the a shapekey, morphing from A (Basis) to B (Key 1).

The (in animation nodes) instance them with the Object instancer and vary the shapekey value in a loop. Remember to check Deep Copy, otherwise all mesh are going to have the same shapekey value.


ImportError for module installed in scripts/addons/modules Where do I put the Python packages my addon imports so Blender can find them? (There are some questions on this topic already but I can't find what I'm doing wrong.)

It works fine on my Linux system where I can install the dependencies to a standard Python path. But I understand Blender often comes with its own Python installation, and besides I want a way to bundle all the code together for a one-click install from zip file.

First I tried making it into a single package, that is scripts/addons/my_addon/ containing my code in __init__.py and subdirectories for the dependencies. Blender finds __init__.py fine, but import fails even though the modules are right there in the same place.

So I tried putting the dependencies in scripts/addons/modules/, though I don't like that because they could clobber different versions installed by another addon, and they stay there even if the user removes my addon through User Preferences. But this still isn't working.

For example: "six" is a module that helps with python 2/3 portability; it's contained in a single file six.py. From the Blender Python console on Windows:

>>> print(sys.path[-1])
C:\Users\jwelsh\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\modules

>>> print(imp.find_module('six')[1])
C:\Users\jwelsh\AppData\Roaming\Blender Foundation\Blender\2.70\scripts\addons\modules\six.py

>>> import six
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
ImportError: No module named 'six'

You can convert your single file based addon into to a module by creating a folder with the name of the intended module, ie six and renaming six.py to __init__.py. This folder will be now recognised as a python module and loaded as an add-on because of the bl_info in the __init__.py.

With this setup, you can use it to store and segregate your add-on dependencies from other addons that you have installed.
This also has the added benefit of keeping things as you manage the contents of this folder and should not rely/assume other dependencies exist.

Generally you will want to use ..\scripts\addons\ folder as the root directory for your add-on as the ..\scripts\addons\modules folder can be used to install shared dependencies by authors of modules, which you allured to could have conflicting versions. Also this folder may not exist if you have some custom install scripts and you will have to ensure its created.

If you have the above setup then all you need to do is zip up the folder and it should be installable via Blender's addon installer.

Edit:
Didn't realise six.py was your dependancy. In which case the above will work for your main addon. Assuming that you have your dependency stored in a modules folder the following sample code will add it to the sys path.

# Python dependencies are bundled inside the io_scene_nif/modules folder
_modules_path = os.path.join(os.path.dirname(__file__), "modules")
if not _modules_path in sys.path:
    sys.path.append(_modules_path)
del _modules_path


Eyes won't follow mesh for animation I'm trying to experiment with an animation. When I move some controllers, the eyes start to stretch after a certain offset.
Here is the blend file

I used automatic weighting, the metarig and the generated controllers. Some of the controllers don't work as planned, but I can managed to make some poses. I also deleted the WTGS rigs.

EDIT: the eyes are not eyeballs, they are a separate mesh, along with the hair, which is consisted of bezier curves.

https://gofile.io/?c=m5eyWj

I'm not sure what you want to do exactly, but I just deleted all the vertex groups for the eye mesh except DEF-spine.006 and assign 1.000 weight to all verts of the eyes mesh then moved the armature modifier above the data transfer modifier, and they move with the head bone (DEF-spine.006 is the head deform bone, I think).  GL OP


Airdiffusor water bubbles I want to create a watersurface with airbubbles and white foam + wave produced by the air bubbles.
I know i can use particles for air bubbles underneath the watersurface. But how to get the little bubbles above the surface + the foam like shown in the picture?

I got this so far. Any suggestions? It doesn't look quite real.

Ok, so here's  my attempt at your shader. I did my best to recreate what I saw were the  most standout features of the photo, namely a relatively calm water surface with a disturbance in the center with bubbles forming somewhat of a ring around the disturbance and some foam appearing in the center. This all accompanied by some slight ripples coming from the side.

This may be not exactly what you're looking for , but hopefully you'll be able adapt enough of the methods outlined to suit your needs.
The graph is mainly created from many different noise textures each with varying size and detail. I also used some gradient textures to get shapes such as the inner disruption circle, the ripples, and the area what the ripples are allowed to effect.
First off, I needed the center area, and it needed to not be a perfect circle, as water disturbances are much more random. I chose to get a circle by combining a spherical gradient with a greater than math node - Changing the threshold changes the size of the circle. To make the shape more random, I used the values from a noise texture to warp the vector if the input coordinate, so when I use the result of the "warp" as a vector input for the gradient texture(s), the result comes out appropriately warped. See below:

I then subtracted slightly smaller versions of the same texture from the original to leave me with two "warped rings" of different thicknesses. I used these to form the foam ring. I made the thicker ring slightly darker than the thin one before I mixed, because I plan on using this ring as height information for the "disruption outline" and the variance in brightness of the two rings helps give a more even falloff.
I admit, that  I am not particularly happy with the way this "ring falloff" turned out, however, I predict it would take me several more hours to get it just right, and I feel like I've been messing with this graph forever. I don't like how harsh the transition is between the turbulent and calm areas - I just couldn't get it right in time.  However, here are some of the steps I took to mitigate the "harshness" of the edge. The first thing I did was to multiply the pure white "ring "with a rather large noise texture to soften some of the edges, and remove some others.

I then multiplied it with a couple of different (highly scaled) noise textures that I clamped rather tightly with ColorRamps, to remove a good deal of small black areas to form the "spots" in the foam ring.
Speaking of foam, I used three different noise textures of varying sizes and positions, subtracted from each other to leave only a few white blotches. I then applied the same technique I used for the ring to soften the edges and add spots. Then I mixed them together.  Keep in mind that I still have the original "disruption area" black and white cutout shapes. In any place where I need things to be contained by/excluded from this area, I can either accomplish this my mixing the values with one of these maps (or the inverse of it), or by using it as a mix factor. In most of the cases in this graph, I opted to add and subtract values to and from these maps, because doing it this way gave me better manual control over the mix factor. The result of the ring/foam mix looks like this:

While discussing isolating sections, I should mention that I made the most use of this while creating the height information. Outside the "disturbance" I wanted a water-like, but relatively smooth surface. I did this by multiplying a (brightened and softened) noise map with the inverse of one of the original "disturbance shapes" to make it only affect the outside area.
I did a similar thing to define the inner ripples, however I used a distorted noise texture mixed with a musgrave texture to give a more "turbulent look". I then mixed these two together.

To make the ripples, I used a wave texture set to circular, mixed with a diagonal gradient that I had warped using the method I mentioned at the beginning. I multiplied these together to give an area where the ripples are allowed to appear (in real life they would both transfer across the turbulence, but also be disrupted by it ).

I then mixed these ripples with the height information I made previously to make what would be the final height map. As per convention with procedural textures, I plugged in the height map to the height input of a bump node. I then used this as my normal input. Note that I reduced the strength substantially because the default of 1 is almost always too high (I used 0.1). I also connected this to a displacement node, but I did not use it in my final substance because to be honest I feel that it makes some things look better, while making other things look worse. Play with it if you want, just note that when I had the displacement connected, the graph seemed to take an inordinate amount of time to recalculate. I don't know if that's just my PC acting strange, or it's inherent to the graph. Either way, tread lightly.
To add some finishing touches, I used some of the whites from the "foam" that I had made to make a simple roughness map. I also mixed the basecolor image with a bit of blue increased the metallic value a little to make the water seem more of a "deep blue".
The final result looks like this:

I'll also include the .blend file, feel free to tinker with it as much as you like. I tried to label the graph in the most self-explanatory way, so hopefully you can figure out what everything does.
File is here -
Sorry for the wait. Hope this helps.


Blender 2.90 - Bevel node not working at all I use blender 2.90 , I create a simple shader, add a bevel node and it has just no effect at all
I tried outputting it to base color, and to node wrangler viewer node
I do this under cycles renderer in shaded mode
nothing seems to be working
I expect it to blur the normal on the edges
thanks

I was also stuck a same thing, but when I changed the viewport (press Z) to Render (with Cycles), the bevel node was working.
Your viewport is material preview. So, unless you change the viewport to render, you can not realize the bevel node working.


How to rig a robotic mesh? I'm extremely new to Blender, and the first thing I've set out to do was to make a mesh and animate it; just so I get an overall feel for the software and what it can do.

That said, I need some help in trying to rig a (supposedly) robotic mesh. What I've tried in layers 0 and 10 is to parent separate objects from just one side of the mesh to the armature for testing purposes, but that ended extremely awkwardly and almost nothing moves well (especially the hand which just seem to break apart for some reason when moved).

On a previous attempt, I have also tried to combine all the separate objects of the mesh (Ctrl + J) and parent the whole thing to the armature, but that ended in a "failed to find solution to bones" error.

I'm not sure where the culprit is in the problems I am experiencing above, whether it's just poor mesh construction, lack of bones, existence of the joints as objects, every individual mesh not being merged together as one object, displacement of the origin points, or something else entirely.

I have placed (in the attached Blend file) a copy of the mesh itself in layer 1 and a copy of the armature in layer 11 if it makes for easier editing. It would be really helpful if I'm be shown how proper rigging works using the items on layer 1 and 11 (feel free to modify them as needed), so I could learn from it as well.

Thanks in advance for the input!

Link to the Blend file: http://pasteall.org/blend/index.php?id=49982

What I would do is:

Join all the different pieces of the robot with ctrl J, no reason for separate pieces.
shift ctrl alt C to make Origin to Geometry so that it's clean (same for armature).
In Edit mode select all and ctrl N to recalculate the Normals.
Back in Object mode, in the modifiers remove the Mirror which seems useless.
Unparent the object with alt P.
Delete all vertex groups in Data > Vertex Groups > menu available with the down arrow on the right of the Vertex Groups list > Delete All Groups
Display the layer with the armature, and even put it on the same layer than the object.
Align the bones to the mesh shape, for example drag the Spine head up to the bottom of the head.
Delete some useless bones, for example I don't think your Pelvis will be useful as I guess you don't want the hip to be flexible as it is a robot.
Perhaps create a bone for the hip that will be independent from the torso, you can use the current Spline to make the Hip, so create a child of this Hip for the torso, etc... it really depends on how you want to animate your object, which part is flexible etc...
Your armature is incomplete, for example you should have some IK controllers an pole targets for your forearms and shins, and also a root for the whole armature that would be the parent of the spine and all those additional controllers/targets
Anyway, let's make a basic parentage: As it is a robot, you won't use With Automatic Weights because it is rather made for flexible objects. Use ctrl P > With Empty Groups, it will create one Vertex Groups by bone, but it won't assign any of those Vertex Groups to the mesh yet.
Now you can manually assign each part of your mesh to the Vertex Group you want. Select your Object, go in Edit mode, select the left hand with L, go to Data > Vertex Group, with the down arrow menu Sort by Name, choose Hand.L and click Assign. Now when you move the Hand.L bone, the mesh follows.
Continue with the whole mesh.


How to pass command line arguments to a Blender Python script? Let's say we have a Python script my_script.py that does some data processing with Blender. This script accepts some arguments (e.g. arg1 arg2). How can I forward arguments to the script when using it with the CLI?

blender --background --python my_script.py

The only trick I could find was this one:

echo "arg1 arg2" > my_input.txt && blender --background --python my_script.py

Is this really the only way to do that?

Update

I found a similar question on Stack Overflow.

Yes, Blender's Python can read command line arguments.

In summary:

Python can read all arguments passed to Blender via sys.argv(just the same as you would in Python)
Blender will ignore all arguments after: --(double dash with no arguments, as documented in the --help message)
Scripts can check for -- in sys.argv and ignore all arguments beforehand.

Example:

Script: mytest.py

import sys
argv = sys.argv
argv = argv[argv.index("--") + 1:]  # get all args after "--"

print(argv)  # --> ['example', 'args', '123']

Execute like this:

blender --background test.blend --python mytest.py -- example args 123

Having spaces around -- is important, this is a signal that Blender should stop parsing the arguments and allows you to pass your own arguments to Python.

Further information:

For a more comprehensive script example, background_job.py is a Python template which comes with Blender,
this uses Python's argparse module, for more flexible handling of arguments.

If you want to have comprehensive arguments for your script with a --help message, Look into argparse, general Python docs on the module can be used.

Note: if -- is not always needed, you can check for it like this.

import sys
argv = sys.argv
try:
    index = argv.index("--") + 1
except ValueError:
    index = len(argv)

argv = argv[index:]

Note that using argparse is optional, you can simply do checks such as:

if "--myarg" in argv:
    do_stuff()

... but I've found as soon as you want to pass values to arguments, this becomes a hassle and its generally better of to use argparse to begin with, unless...

You're making a quick test and only need primitive argument handling.
You have a good reason to spend time doing your own argument parsing, and argparse can't handle your use-case.


How many samples should I use? I finished my model and if I render it using 128 or 2048 samples it looks the same.How many samples should I use?
The only thing that samples do is to rid of the grain?

You find the right amount of samples by testing what is enough to get a clear image
Samples represent the calculations of how each pixel should look. During one sample a path from a pixel to a light source is calculated. A ray travelling that path is effected by various interactions with surfaces in the scene and this is how the colour of the pixel is determined. The same pixel can be a result of light coming from a lot of directions so the more samples, the more accurate the result, because they each calculate another path checking if it goes to some light source.
So simple scenes with direct lighting need a lot less samples than complex scenes with a lot of indirect light or caustics for the render to have less noise/grain. To determine the correct amount of samples for your scene you should test, how many samples is enough. You can start with fewer samples and make test renders to see if it's enough while increasing the amount. If you do this with the whole image this might take too much time so you can render only regions for testing (ctrl+b in edit mode to define region, ctrl+alt+b to remove region):

It is best to chose the regions that are the darkest lit places that will have the most indirect light and therefore are most likely to contain noise or any areas that you suspect might have more noise. You can also choose progressive rendering and just look at the render while it's going to see how many samples is enough.


How to implement a custom ray tracing algorithm in Blender? I want to implement a custom raytracing algorithm in Blender using nodes or preferably via python scripting.

Can someone please point me to the right direction? A tutorial will be nice.

Edit: Mainly, I want to have a rendering pipeline like BlenSor but through without relying on the native backend code. OSL does not seem to be the solution for me because I want to simulate the real optics behind it.

A very broad question. I know there is functionality in OSL for this but OSL equals Cycles. So if it should be possible in OSL it is possible with nodes. OSL does not have that much of references. The people who explored this field are Blender Sushi and the blog Small Blenderthings.

You do not exactly state what you are after so I can not help you that much further.


How to output numpy array from the animation script node is there a way to output a numpy array from script node in ?
Or do i have to make my own output class types in the socket folder of this addon ?

You can use Generic type to output ndarrays.


How do I copy existing properties in the UI so I can include them in my custom panel? This has surely been asked before but I think I don't know the correct terms to search for. What I want is in my custom panel, sliders for changing the active camera's location and rotation. Basically, I get this easily with:

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

    cam = context.scene.camera

    layout.label(text="Location:")
    layout.prop(cam, "location", slider=True, index=0, text="X")
    layout.prop(cam, "location", slider=True, index=1, text="Y")
    layout.prop(cam, "location", slider=True, index=2, text="Z")
    layout.label(text="Rotation:")
    layout.prop(cam, "rotation_euler", slider=True, index=0, text="X")
    layout.prop(cam, "rotation_euler", slider=True, index=1, text="Y")
    layout.prop(cam, "rotation_euler", slider=True, index=2, text="Z")

However, this ends up in a slider with no limits (limits are number ranges of computer, I think), so a slight change in the slider will result in massive change in position/rotation of camera.

Actually, what I really want to achieve is a copy of the sliders like they appear in the "Item" tab when I select the camera. Anyone able to help me there with links to other threads or questions or a direct solution?

If you want the properties to be identical to the original ones, you should set Slider to False or simply not include Slider at all.

A Slider is a bar that fills the field from left to right. When disabled, the field has 2 arrows on both sides instead.

If you use a slider you have to include min and max values or else they will be determined by Blender and be huge.

Edit: Code would look like:

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

    cam = context.scene.camera

    col = layout.column(align=True)
    col.label(text="Location:")
    col.prop(cam, "location", index=0, text="X")
    col.prop(cam, "location", index=1, text="Y")
    col.prop(cam, "location", index=2, text="Z")
    col = layout.column(align=True)
    col.label(text="Rotation:")
    col.prop(cam, "rotation_euler", index=0, text="X")
    col.prop(cam, "rotation_euler", index=1, text="Y")
    col.prop(cam, "rotation_euler", index=2, text="Z")


How can I combine 3 actions with the NLA Editor? Please help me out, I use blender 2.76b, I tried to combine three actions in NLA editor but only the selected track is functioned while the others are muted. Please help me.

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:


connect loose objects I want to create a kite. Four triangles and one rope but without a connection. Now I want to add a Force Field (Force) but all objects are flying confused. How can I create "one" object without connecting this five parts?

select all the individual objects and try CTRL J


How can I create an advanced addon with a GUI and multiple settings for Blender 2.8x? How can I create an advanced addon for Blender 2.8x that is displayed in the n menu (right panel of the viewport) with multiple settings.
What are the most important GUI scripts, how to add settings, how to access settings between multiple files, how to add icons, how to read the documentation to find lines of code?

Here is how to create addons with an interface in Blender 2.8x. I share here minimalist scripts snippets.

If the addon has multiple files compress it to a .zip.
To enable the addon go in Edit > Preferences..., in the Addon section and type "Minimalist Addon". I suggest you to name your main file __init__.py, it's a convention between every addons. Make sure to use the extension .py for all your files.
To edit your addon you don't need to reimport it each time, you can find it here on Windows: C:\Users\NAME\AppData\Roaming\Blender Foundation\Blender\2.8x\scripts\addons
And here on Linux: /home/NAME/.config/blender/2.8x/scripts/addons/
You will need to reopen Blender to see the changes. If the addon doesn't appear it means you have made a mistake somewhere, if it is still visible in the Preferences try to re-enable it to see the error message.
Your addon must be in a folder and not directly in the "addons" folder, otherwise you won't be able to find it in the Preferences.
If you need console (to print message and values by doing print("my message") ) do Window > Toggle System Console on Windows. On Linux download Blender from the website, open the Linux terminal (shortcut Ctrl + Alt + t), type the path to the Blender folder using cd (ls to list the files and folders) then launch Blender by typing ./blender.

  Single file addon

This is the most minimalistic addon you can create, it contains a single file, it displays a button that prints "Hello World!" in the console.

__init__.py

bl_info = {
    "name" : "Minimalist addon",                        # The name in the addon search menu
    "author" : "Your name",
    "description" : "A minimalistic addon",
    "blender" : (2, 80, 0),                             # Lowest version to use
    "location" : "View3D",
    "category" : "Generic"
}

import bpy

class theInterface_PT_Panel(bpy.types.Panel):
    bl_label = "Panel Name"
    bl_category = "Tab name"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

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

        layout.label(text= "Properties:")

        row = layout.row()                              # Create a new line
        row.operator("view3d.print_text", text = "Print text", icon='WORLD_DATA') # Display the operator by calling his idname

class theTools_OT_Operator(bpy.types.Operator):         # Create the operator
    bl_idname = "view3d.print_text"                     # idname to display the operator
    bl_label = "Simple operator"
    bl_description = "Tool description when overing the mouse"

    def execute(self, context):                         # What the operator does
        print("Hello World!")
        return {'FINISHED'}

classes = (theInterface_PT_Panel, theTools_OT_Operator) # Classes name here

register, unregister = bpy.utils.register_classes_factory(classes)

  Multiple files addon

__init__.py (gives the addon informations and gather the files)

The difference here are that the classes are in other files. You must add the lines with the name of your file without .py and class like this:
from . File_Name import Classe_Name

bl_info = {
    "name" : "Minimalist addon",
    "author" : "Your name",
    "description" : "A minimalistic addon",
    "blender" : (2, 80, 0),
    "location" : "View3D",
    "category" : "Generic"
}

import bpy

from . Interface_Panel import Interface_PT_Panel
from . Tool_Operator import Tool_OT_Operator

classes = (Interface_PT_Panel, Tool_OT_Operator)

register, unregister = bpy.utils.register_classes_factory(classes)

Tool_Operator.py (what is executed in the addon)

import bpy

class Tool_OT_Operator(bpy.types.Operator):
    bl_idname = "view3d.print_text"
    bl_label = "Simple operator"
    bl_description = "Tool description"

    def execute(self, context):
        print("Hello World!")
        return {'FINISHED'}

Interface_Panel.py (the interface)

import bpy

class Interface_PT_Panel(bpy.types.Panel):
    bl_idname = "MenuName_PT_Panel"
    bl_label = "Panel Name"
    bl_category = "Tab name"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

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

        scene = context.scene

        layout.label(text= "Properties:")

        row = layout.row()
        row.operator("view3d.print_text", text = "Print text", icon='WORLD_DATA')

  Getting commands

You can get the commands of every tools each time you use one in the Info Window, you can display it by clicking on the Scripting tab at the top of Blender's interface.
For example after selecting a mesh, doing right click and selecting Shade Smooth, this command appears:

bpy.ops.object.shade_smooth()

  Adding settings and using the values

WIP

  Frequent mistakes

If you operator isn't visible in the interface, check if his class name is unique and do not forget to import it at the classes line at the bottom by writing his name.
Your addon won't be accessible if it is directly in the scripts folder, you must put it in a sub-folder.

  FAQ

What is an operator?

An operator does one or several actions like adding a cube in the 3D view, scaling it then applying a material, all with a single button. The operators are often available by the interface.

What row = layout.row() does?

It creates a new line in the interface, without it your button operators and settings can't be displayed. You can add multiple settings at the same line, however it is recommended to displayed one on each line for a better visiblity.


how to make a line break in a text object from an external file So I am controlling a test object's text property from an external text file with this code

def text():
    import bge
    from bge import logic
    path = logic.expandPath('//')

    cont= logic.getCurrentController()
    scene= logic.getCurrentScene()
    own= cont.owner
    T= int(own['t'])

    try:
        file = open(path+'text_file.txt', 'r')
        info = file.readlines()
        own.text = info[T]
    except:
        print('error')

it works fine except for if I want line breaks so it doesn't stretch off the box i have it in. for example i have the veriable 't' set to 0 and the first line of the txt doc says "example text for stuff" but i want a line break between "text" and "for". If i was setting the normal text vaule and wanted a break there i'd have the code

own.text='example text\nfor stuff'

but if i type that in the txt file it just displays the line break command (\n). how do i make a line break command from inside the txt file be recognized  by python? or is it even possible.

When the text file is read, no interpretation is made of what is written, is just text.
For that reason yo sould write in the text file as: own.text = 'write it in \na new line' and then in your script use exec.
from bge import logic

def text():
    path = logic.expandPath('//')
    cont= logic.getCurrentController()
    scene= logic.getCurrentScene()
    own= cont.owner

    try:
        file = open(path+'text_file.txt', 'r')
        info = file.readlines()
        exec(info[0])

    except Exception as e:
        print('error', e)

Disclaimer
CAUTION
This is as dangerous as someone writing "wipeout this pc" and boom... your info is gone!.


Lego Surface Imperfections? I'm attempting to recreate tiny brick imperfections similar to the Lego Movie, but I'm having a hard time finding realistic textures to accomplish this effect.

Generating a mix of noise textures and scratches comes close, but still looks a bit too artificial. Any idea what kind of texture I'd need to create/find to reproduce something like this?

For the answer, you can use this (as shown):

How to Create a Vinyl Plastic Toy Shader?

Just try to pay attention to detail!


Can anyone tell me why the icing isn't producing an "ooze" effect? I have an image showing all of my selected options, which I think are correct? Except, when I try and select a vertex and use "g" to grab and drag to pull the icing down, it clips into the donut instead of sliding down the surface as I believe it should.

I'm a noob here, but any help would be great, thanks!

I had this problem too.

You have enabled the snapping option. Change the offset in your Solidify Modifier (1 or -1) of the icing part.

Remember, when you grab that point, you will pull the part and at a certain point, the vertices that are at the top that point will intersect with the donut. You can prevent that by adding or subdivide your face. With that, you will have more points to control for the ooze effect


Add camera at random position through Python I am using Blender for the first time. Currently, I have a basic scene with a camera and some light sources present. What I would like to do is to add a second camera that is located at a random position in the same Z-plane as the first camera and is looking at the same XYZ-point. Maybe it would be possible to define a circle where the first camera is on and the second camera can freely choose a point. The first camera should not move. I would like to do this through Python, since I am generating multiple renders from this scene in a loop.

Any pointers to relevant documentation would be helpful, since I am not finding the correct resources to tackle this.

You can spawn cameras in a circle around your object, at the altitude of your main camera. Then add a "Track to" constraint to make the camera face the target object. Finally, set the camera to active.

The constraint adds the benefit that it will follow the target object if it moves. If you dont have a target object you can create an empty in the scene.

How to randomly distribute points along a circle

import bpy
import math
import random
from mathutils import Vector

camera = bpy.data.objects['MainCamera']  # Make sure your first camera is named 'MainCamera'
target_object = bpy.data.objects['Cube']  # The camera will face this object. /!\ Naming

z = camera.location[2]
radius = Vector((camera.location[0], camera.location[1], 0)).length
angle = 2 * math.pi * random.random()

# Randomly place the camera on a circle around the object at the same height as the main camera
new_camera_pos = Vector((radius * math.cos(angle), radius * math.sin(angle), z))

bpy.ops.object.camera_add(enter_editmode=False, location=new_camera_pos)

# Add a new track to constraint and set it to track your object
track_to = bpy.context.object.constraints.new('TRACK_TO')
track_to.target = target_object
track_to.track_axis = 'TRACK_NEGATIVE_Z'
track_to.up_axis = 'UP_Y'

# Set the new camera as active
bpy.context.scene.camera = bpy.context.object

Result :


is there a node that outputs the distance value from the camera dof in cycles? I'm trying to work out a node group that will take the distance value from the camera to color objects from that point forwards / backwards and i've been triying to find an output that will give me this value so i can use it.

You can use the Vector Transform node to convert from Object or World coordinates (depending on whether you're using 'Object'coordinates from the Texture Coordinates node or the Position from the Geometry node) and then Separate XYZ to get the distance from the Z coordinate. With some simple maths you can then shade based on distance based on the depth of field.

In the above material, changing the value of the Subtract node will adjust the distance to the centre of the 'range' affected by the Color Ramp (larger values are more distant). Changing the value of the Divide node will affect the span of the 'range' (larger values spread the colors over a deeper range).

Note that you must have the Vector Transform set to 'Point' for this to work with Object coordinates.

EDIT : As pointed out by @sambler, the first 3 nodes can actually be replaced with a Camera Data node.

The View Z Depth socket will produce the same result as that shown above (the distance from the plane of the camera) whereas the View Distance will be a true distance from the point location of the camera.

Note, however, that the Vector Transform method is still useful if you require additional effects - such as applying a transform to the Camera or Object coordinates using a Mapping Node (to, say, rotate or shift along an axis) or similar.


How to make objects suddenly stop I am pretty new to Blender so please bare with me, as I'm sure this question has a very simple answer.

I'm making a scene where my character falls and hits the ground. By default, Blender smooths movements like this, but obviously things don't slow down before they hit the ground, they just come to an abrupt stop. I just want to know how to stop my character from decelerating (and accelerating) so that I can make this fall seem real. Thanks!

The default interpolation mode is smooth, in the graph editor select the keyframes on the graph you want to stop suddenly. Then go to the menu:

Key>Interpolation mode>Linear

This will make acceleration and stopping at the same speed from start to finish. This should help you accomplish your goal.


How to access to pivot location? I just want to get the pivot location of the 3d model!

I tried to set the cursor to pivot position and print the cursor location
import bpy

bpy.ops.view3d.snap_cursor_to_selected()
print(bpy.context.scene.cursor.location)

I had this error:
RuntimeError: Operator bpy.ops.view3d.snap_cursor_to_selected.poll() failed, context is incorrect
Error: Python script failed, check the message in the system console

Objects pivot around their origins, or (0, 0, 0) in their local space. An object's position is simply the location of its origin in world space. You can get this as a Vector from the object's location variable:
import bpy

obj = bpy.context.active_object
print(obj.location)

If you actually did want to set the cursor location:
bpy.context.scene.cursor.location = obj.location

See How do you get an object's position and rotation through script? for a more thorough look.


I can‘t assign three materials and UV maps to multiple objects I am making a beverage can factory animation now. Movement of cans is completed and now I made material of can (lid, label and bottom). Top and bottom lid are with image texture and color ramp, label with image texture in color. UV mapping is also completed and finally I tried to assign all the material to multiple objects. All objects are the same cans.

I selected multiple objects, original can at last. Object > make links > materials. They are successfully assigned. Then UV mapping. I bring the can lid material on top then….
Object > make links > transfer UV maps.

Iron texture is successfully assigned. Then the label.

It is also assigned. But as you can see, this is NOT what I want.
I want to assign all three materials (a top lid, label and bottom) at the same time.
Same geometry, same materials… some may think “why don’t you simply duplicate them?” But I can’t. Because I already made quite complicated movements of cans, animation, Rigid body constraint, shape keys and so on. And it took a whole month to do it. I can’t do it all over again. I just want to assign three materials to finish the process. My job is almost completed but I can’t move forward now. Does anybody help me? It will be very much appreciated.
2021・04・21
Thanks for your advice. I have made a lot of progress.
I combined the image texture in one.
"3 materials in one"
And 3 of them are successfully assigned. Now I have to adjust the surface.

I followed the Gordon Brinkmann's advice, made it black and white.
And plugged the image texture to basic color and color ramp to metallic.

They are all successfully assigned.
Still there are a lot of thing to add or adjust. I'll keep working on it.
There is one problem.

About painting black and white, looking from the side, it looks good. But when I looked from the top....

This is no good.
I think I'll try texture painting next.

The comment that moonboots gave is the best answer if all your cans are exactly the same. However, if the constraints and shape keys on them are differing from each other, those individual informations would be lost. So this might help as a workaround (if they still share the same mesh):

Select all cans so that the one with the correct UVs is the active one. Then Ctrl+L > Make Links > Transfer UV Maps. This way they have all the same UV maps.
Now you have to link all materials to the other cans. Ctrl+L > Make Links > Materials. Now all materials, no matter how many, are put on all the other cans.
The problem with this is, since you can copy materials to different objects that not necessarily share the same geometry, Blender doesn't transfer the information to which faces they are assigned. That's what you have to do manually.

It's still a lot of work I guess, but maybe less than having to do all constraints, shape keys, rotations, etc. over again. If someone knows how to copy face assignments for materials, please edit this answer.
A different solution would be: combine all three different materials in one material and separate them by masks and UVs, then all cans would only share one material with one UV map and there was no need for re-assigning faces.


How do you extrude text in blender 2.8? Following:
What's the simplest way to wrap extruded text around a cylinder?
I've managed to wrap and scale text around a (circle) Bezier curve. There seems to be, however, no extrude option in the tabs for blender 2.8. Where is it?


On appended character keyframes are semi-visible and not saved I have problem with my character, which I append to my file. Keyframes in Dope sheet are semi-visible as you can see in the image. When I change position of any bone of this character, keyframe appears. After closing the file and reopening, new added keyframes are lost. Please help me where is the problem and how can I fix this? Thanks.

Click the F to save the animation in the Action Editor. It stands for Fake User. Blender will discard data that does not have a user when you save a file.


Creating glass material - Glass shader or Principled give black/dark or mirror render in Cycles I have already searched for as many threads I could find to find a solution and tried them all as best as I could, but I can't make glass shader or Principled shader work with to make a transparent material resembling a realistic glass or clear acrylic. It almost always shows as completely black, or sometimes mirror-like

The most common solution to this was to increase bounce values, which I have done. I have also tried flipping and recalculating faces and tried different lights. The only closest material I can make to a glass is by using a transparent shader with a glossy one, but its result isn't satisfactory. The environment is set to black background, and setting it to any other colour just introduces reflection of that colour on upper half of the sphere.

Idk if this is the result you're looking for but this is the material I use.


Manipulator settings My Manipulator is rotated with the object in pose mode. How can i switch it back to the standard x, y, z, manipulator. I cant find the solution anywhere!!
please help

You got transformation orientation switched to Gimbal, change it back to Global.You will find this setting on the bottom toolbar in 3D view.


Shrink/Fatten, weird edges. How to get uniform scale? I want to scale outwards, which scale does not do... it is biased with the faces on the left/right sides the mesh is wide / not perfectly square.
This is my mesh before doing anything.

This is after scaling with S. It is not 100% uniform, but the corner edges are perfect.

Now after that didn't do what I wanted, I found out about Alt+S, which almost did what I want, it made scaling 100% uniform for all the faces:

But on closer inspection, you can see the edges are completely messed up! as seen in this picture:

How do I get the uniform scaling of Alt+S Shrink/Fatten but the correct edges of S Scale?

After extruding the face loop, with the loop selected.

Short answer:

  Select the edge loops and scale them with their individual origins.

Hide all other faces. ⇧ ShiftH
Switch to edge mode. ⎈ Ctrl↹ Tab > Edge E
Deselect all. A
Select the two edge loops. ⎇ Alt RMB, ⇧ Shift⎇ Alt RMB
Set the Pivot center for rotating/scaling to Individual Origins. ⎈ Ctrl.
Scale with S.

Outset Even

You can't outset in Blender without geometry outside. This means we'll have to add some geometry.

Make a face for both edge loops.
Duplicate the faces and hide everything else.
Extrude the edge only and scale them with individual centers.
Select the faces we want to outset.
Inset I, with outsetO.

Delete the helper edge loops.
Delete the extra faces.
Bridge the unconnected edge loops.
Remove doubles.


How to animate a rig by using a video as a source? I have a series of movements that I want to animate, I have videos of the front and side of these movements and would like to know how to setup Blender to use the footage to create the animations.

I have looked at mocap but the cost is a problem and some of the motions have some subtle details that need to be replicated exactly.

In the 3D viewport, you can add background images to use as reference while modelling or animating. You can also add an image to an empty to get an image floating in the viewport that is always visible as you move around. An image sequence or movie can be used as well as a static image.


UV stretching when subdividing - how to avoid I made a mesh with a decent topology, gave it a subdivision before UVing and UVed it after. Even still, when I subdivide it again after UVing I get some very ugly distortions on my checker textures. How to avoid this sort of issue? Frankly the mesh hardly shifts shape when I smooth, and even still the distortion is disgusting.

Edit:

A simpler example to see what is happening here:

Now we add a loop cut on the conic part:

And if the loop cuts were on the cylinder part:

In both cases, the proportions are respected in the mesh point of view. But the vertices which are displaced by the subsurface modifier are not at the same position in the UV map. So, they are not kept in place (relatively) the same way.

... a bit hard to explain... but I hope this example is enough to get the point.

In your model, cuts are mainly on the equivalent of the cylinder part here, plus, some are in the cylinder part and others in the conic part (the seam is mixed). So you have distortions.


Scripting: How to change objects mode and then revert back to previous mode In my script I'm trying to set mode to a certain type, but when I'm done with whatever I'm doing I would like to set back the previous mode it was in.

Example: Scene is in EDIT mode, but I need OBJECT mode, but then when I'm done I want to go in to EDIT mode back since it was initial mode.

My code goes:

originalMode = bpy.ops.object.mode
bpy.ops.object.mode_set(mode='OBJECT')

...

bpy.ops.object.mode_set(mode=originalMode)

And I get this error:

  ... File "C:\Program Files\Blender Foundation\Blender\2.79\scripts\modules\bpy\ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
TypeError: Converting py args to operator properties:  expected a string enum, not BPyOpsSubModOp

I don't know how to convert this back to 'EDIT' string to set the mode...
Hlp please :)

I don't know that is this: bpy.ops.object.mode current mode is here: bpy.context.mode

Save current mode:

returnto=False
if(context.mode!='OBJECT'):
    returnto=context.mode

Return to edit mode:

if(returnto):
    bpy.ops.object.mode_set(mode=returnto)

bpy.context.mode


No Compatible GPUs found ... Blender 2.8 User Preferences No Compatible GPUs found ...

Seen in Blender 2.8 User Preferences

System ... Cycles Render Devices ...

Version 2.78 recognizes the GPU.  I understand that 2.78 and 2.8 have different requirements.  Yet I would like to rule out other problems.

Is there any action I can take to correct this situation?
Is there any steps I can take to investigate this situation.  In the past I have rarely had to consider a situation like this with the GPU.

Windows 10 OS,

Nvidia 670M GPU Laptop. GeForce GTX 670M    Compute Capability 2.1

https://developer.nvidia.com/cuda-gpus#compute

System Info provided by Blender 2.8 as a text file.

Excerpt

Blender 2.80 (sub 75) System Information =

Blender:

version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: f6cb5f54494e, type:
build date: 2019-07-29, 09:44 AM
platform: Windows

OpenGL:

renderer:   'GeForce GTX 670M/PCIe/SSE2'

vendor:     'NVIDIA Corporation'

version:    '4.5.0 NVIDIA 382.05'

Some links that were not particularly helpful to me

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

https://code.blender.org/2019/04/supported-gpus-in-blender-2-80/

https://devtalk.blender.org/t/hardware-requirements-for-blender-2-8/3440

The requirements for GPU rendering are higher than the minimum requirements for running Blender.

  Supported Graphics Cards

  These requirements are for basic Blender operation, rendering using the GPU requires slightly different requirements.

The manual states that CUDA compute capability 3.0 or higher is required for GPU rendering. Graphics cards that do not meet that requirement will not be listed in the preferences.

  NVIDIA CUDA is supported for GPU rendering with NVIDIA graphics cards. Blender supports graphics cards with compute capability 3.0 and higher. To make sure your GPU is supported, see the list of NVIDIA graphics cards with the compute capabilities and supported graphics cards.

The Nvidia website lists the GeForce GTX 670M with a compute capability of 2.1, which does not meet the requirements for GPU rendering.


How to toggle(Open/Close) `T` or `N` Panel in 3D view Using Python I want to hide or show blender T and N panel using Python.
From This
To This

You can use bpy.ops.wm.context_toggle(data_path) This will toggle N or 'T' panel of whatever area operator was called.
import bpy

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

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        bpy.ops.wm.context_toggle(data_path="space_data.show_region_ui")
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

If you run this script and call the operator in Text_Editor It will open this side panel.
So if you want to open/close N Panel of view3d from other areas you need to override context. It is a way to fool blender thinking that operator was called in different area.
import bpy

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

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        #copy context
        context_copy = context.copy()
        #loop over current areas
        for area in context.screen.areas:
            #Check if there is 3d view area
            if area.type == 'VIEW_3D':
                #If yes then override context
                context_copy['area'] = area

        #Now pass our custom context.
        #When calling any bpy.ops operator it takes context in which it was called
        #but you can override that.
        #look here for Offical documetation : https://docs.blender.org/api/current/bpy.ops.html#overriding-context
        bpy.ops.wm.context_toggle(context_copy,data_path="space_data.show_region_ui")
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

Now when you run script and call operator from text editor, it will open n panel of 3d view
HOW TO DECIDE data_path
What I do is go to edit>preferences>keymap
Change search type to Key-Binding and type key which is used in Blender to open/close whatever panel you want. Here I am searching for Tools or Toolbar or T panel in viewport. It can be open using T key. So I searched for it. So Operator call  will be like this : bpy.ops.wm.context_toggle(context_copy,data_path="space_data.show_region_toolbar")


How to show expected remaining render time When rendering animation, the info in the top-left corner of the render window shows the time per rendered frame. Is there a way to also have the expected remaining render time for the whole animation showing?

Blender does not have the function to show complete animation render time. Best option is average render time multiplied by remaining frames. It should be noted that render time changes according to what is visible on screen. Its actually quite hard to know ahead of time how much time is needed per frame and it can also be affected by other processes other than Blender running on the computer.


How to remove an island from a UV map? I unwrapped my head in one UV map and the unwrapped head still appears in the map when I create a new UV map. How do I remove the head island from my new map? Is sliding it out of the image the only solution?

Here is an illustration of what I am requesting if it makes any sense.

To add a new UV map just clique the plus under Object Data Properties/UV Map.
To remove completely (deleting) a UV map just go to the minus icon. If you would like to switch between them just unchek the one ot the other.


How to write a python script to execute a .blend file and modify it I am doing a complicated 3D scene model. Actually, I am using the blender GUI (not python script) to do it. Once I designed the scene, I need to move randomly an object in the scene for many times. So, I am wondering, if possible to write a python script that execute the *.blend file and then in the same script, I write lines to move randomly the object. Any suggestion?

import bpy
from random import randint

# Generate 50 cubes in random locations for i in range(50):
bpy.ops.mesh.primitive_cube_add(location = [ randint( -10, 10 ) for axis in 'xyz' ])

Replace cube with your model and this should work.


render bloom in eevee without cutting by silhouette I want to render image with postprocess effects but bloom cutted in final render in eevee

How can i solve that problem? may be i need activate/deactivate some option in render setting or same?

That node tree in composer solve the problem


Disallow objects to be rendered from specific cameras during playtime Can I order specific cameras to not render objects during play-time?

And how?

You can dynamically toggle visibility of objects. So when you switch a camera you toggle the visibility to your needs.


Can I only use "Materials" to color the model? People usually use uv map to color their models. But I found videos where people only use "Materials" for coloring.
For example: https://youtu.be/jBeRreVLtE4.
On 9:35 they used only "Materials" to paint without uv map.
Or https://youtube.com/playlist?list=PLhEFRhEnz05sfcqDU_stZR2gxoP2cTzj-.
She also used only materials for model.
As I know people use uv map/textures/shader to diversify their models' view and uv map is necessarily used for importing in games.
So can I use only "Materials" to paint my models if

I will use only flat colors (as the videos above)
I don't need to import a model in the game
I want to share model on social media like illustration/image
I want to export model in .fbx file format to share with someone
I want to render model in Blender Cycles (on the second YouTube video she used Blender Render)
I want to rig model and maybe to make animation

A "Material" is basically instructions for a renderer, and in most cases the materials are very specific to a certain renderer.  In the case of Blender, Eevee might render the same as Cycles, but not always.  In general, a Material will not work outside of its native program.  These Material instructions tell the renderer how to color and shade the surface.  The color can be either a simple flat color, or a complicated set of nodes that make detailed surfaces like wood, scratched metal, or simply an image. The Material settings typically define things like color, reflections, or how bumpy something is.
UV mapping is a set of coordinates to relate a 3D model to a flat image.  In essence you're just saying "this point here on this model maps to that point there on that image."  That's how the 3D program knows where to put a texture map on a model.  Otherwise, the program has no idea how to wrap a texture around a 3D model.
UV coordinates, being simply numbers, are easily translated when you export a model from Blender to, say, .fbx, or importing a model INTO Blender.  The coordinates of all the vertices and the UV mappings keep their relationship, so you can apply an image in a game or other program and it still looks correct.
However, as I mentioned before, a Material doesn't translate easily.  Unity has no idea what to do with Blender materials.  Blender has no idea how Mental Ray, Octane, etc. work.
In your list:
I will use only flat colors (as the videos above)

no.  You can make quite complicated Materials in Blender without using textures or UV mapping. For example:

I don't need to import a model in the game

yes. a game will have a different renderer than Blender and won't know what to do with your Material settings.

I want to share model on social media like illustration/image

depends.  If you share a model on a Blender site like BlendSwap, you can use Materials, or if you know your consumers will use Blender.

I want to export model in .fbx file format to share with someone

no. You could only use a UV-mapped image.

I want to render model in Blender Cycles (on the second YouTube video she used Blender Render)

yes. Cycles can handle complex materials.

I want to rig model and maybe to make animation

yes, as long as you render it within Cycles (or Eevee, or Blender renderer)

HOWEVER - you can certainly "bake" a Cycles material into a UV mapped texture and then use it as if were an image.  The material won't, by default, stay on an exported model.  See this answer for detailed info on baking: Export cycles material to unity


Can we measure the brightness intensity of a Model(Cube) I wanted to know is it possible to measure the intensity of the brightness falling on a cube in blender 2.8.
Example: I have attched an image, in the image the brightness of the light falling on the face of box-1 is higher than the brightness of the light falling the face of box-2. Is there any way to measure the intensity of brightness falling on those boxes in blender.

A few alternatives:
Use the false colour view transform in the color management.

(from https://sobotka.github.io/filmic-blender/)

False Colour.
This Look is an extremely useful tool for evaluating your image in terms of the dynamic range and latitude. It is a colour coded “heat map” of your image values, according to the following codes:

Or render an image, and you can probe the values for the pixels under the cursor by pressing the right mouse button wile hovering over the image.

The values appear at the bottom of the image editor screen. You can see the coordinates of the pixel, and values before and after the color transforms of the color management.
Or you can measure the brightness of the image using a waveform monitor in the scopes section.
The scale here is 0 for black and 100% for white.

Note that these values are after the color transforms, or display referred values.


Automate geometry creation to match texture UV mappings? In this model, https://poly.google.com/view/dXYoN00Ng8j), the eyes are not defined as separate geometries but rather drawn in the texture.

Since the texture has UV mappings, is there a way to write a script to automate the creation of geometries that match UV mappings?

1) In other words, could a script create geometries from the texture UV mappings of this elephant and create the eyes?

In short yes, but It could take forever to do so too. It could be much faster and easier to remove mesh faces at the eyes in the model and attach a modified sphere with UV Map/s (Duplicated) to display your details but ultimately depends on what your desired results are to be in the area.