How to boolean with non manifold geometry?

I will demonstrate my approach on Suzanne so that it is a bit more complex than say, a cube.

Setup the "knife cutter". For this I use a simple mesh with 3 vertices. Notice that the cursor is set to the pivot point for easy rotation control.

Perform the knife project.

Clean up the cut out vertices. Notes: use wireframe mode so the selection goes "through" the mesh, don't select the verts along the cut line...just the ones inside.


What is the easiest method to add a half circle cut out

Step 1: Add a cylinder, then size and move it to where you want it to be.
Step 2: Add a boolean modifier onto the box, and select the cylinder as the object.
Optional step 3: apply the modifier by selecting the modifier, and pressing Ctrl+a, or pressing apply on the modifier


How to completely nullify rigid body bounciness

Probably better if you can attach your simplified blend with issue. Use https://blend-exchange.giantcowfilms.com and paste given code into your question. This topic is quite case sensitive :) and not always there is a solution.

Here with Cubes

Collisions > Shape > Box
Surface Response > Friction > 1 (Bounciness > 0)
(probably also for small Cubes > Dynamics > Damping Translation > 0)

Important - Apply Scale Ctrl+A to all objects.

Edit according to the given file:

You didn't set Collision Shape to Box.
Also one very important aspect is set Geometry to Origin for proper simulation. If collision box doesn't fit to your high-poly mesh, move vertices a bit closer to border in edit mode.

Sidenote - Is it OK to have object dimension just 4 mm? On my computer it starts flicker that can be fixed in 3Dview's side panel (N) > View Clip Start = 1 mm End = 100 mm.
I'm asking because part of problems can be a size. Simulation on these micro values is not too much stable in general. But here works without bouncing with RB Active object > Mass = 0.0001 mg and RB Passive object with Strength = -10000.


How to enable denoising for my final render?

Make sure the dropdown on the top right of the Image Viewer is set to the correct pass (DENOISED):

I'd suggest render to OpenEXR Multilayer to get both passes (beauty and denoised) in one file for comp:

Alternatively you can add a Render Layer node in the Compositor to get the DENOISED socket and connect both passes to a File Output node or even blend between both passes before saving:

Note: The Composite Node has only one input socket so this approach does not store any raw data.


How can edge loops move independently and stay connected?

Animate the bones of an Armature in Pose Mode.

Above is quick armature which you can greatly improve.
An armature modifier was created.
The master bone has deform disabled.  The other two bones deform the mesh.

A vertex group is selected to show weights.


Missing Detect Features properties in Blender 2.8x?

Okay. I found it!

Once clicked on Detect Features they appear as shown on image below (red circle).


Looking to change the color underneath the skin

Use Bake, and then edit them outside blender (for example with Gimp).
The vertex paint can replaced using dynamic paint.
You can bake the vertex colors at the render panel. There, you will find the bake mode "Vertex Colors" which will export the vertex painting.
In your image editing software, you can change the hue or brightness or whatever and after image processing, you can bring it back as a texture.
As for applying the modified vertex paint to your model, the following QA will be helpful.
How to bake uv map texture to vertex color (selected to active)?


How to fit an image to the UV Editor window's borders?


For Fluids:
Select the domain object -> Physics tab -> Fluid -> Settings -> Free Data
Then don't forget to re-bake the Mesh and Particles.
For Cloth:
Select a cloth object -> Physics tab -> Cloth -> Cache -> Delete All Bakes
Then Bake again.


Odd Bump/Normal Map behavior with Texture Nodes - Blender Internal

To output normal data, you need to use the Normal socket on Output node. (Be sure to also enable Normal setting in Influence)


Cycles : shadows on smooth shaded mesh, strange behavior

I believe what you're looking at is called the "Terminator Problem" which is a ray tracing issue. I think most rendering engines actually suffer from this problem.

I think the solution is to add more geometry or play around with your lighting setup.

You can read more about it here.
https://developer.blender.org/T37814


Dope Sheet mode in 2.8 : is it possible to display Grease Pencil & regular Dope Sheet keys at the same time?

AFAIK there is no way, for now, to display several Dope sheet editing contexts in the same area. The best you can do is to stack two dope sheets and give them each editing context you need:

Maybe this could be a nice feature request though.


can't execute the blender python through subprocess

First I expect you should use subprocess.run() rather than popen, which is a lower level call that offers more options that you aren't using.

I would suggest using a full path rather than the ./ prefix to a command.

The main source of your error is your arguments list, the first parameter to run() or popen() is called args and is the arguments used to run the external application. In your case you are passing the path to the current executable, which would be the python interpreter you are running the script in. The next argument is a single string, which python appears to be interpreting as a file path to a script to run.

The arg parameter should be a list of strings that you would use in a terminal, the first string is the executable and each following string would be each option passed to the executable.

By defining the list on multiple lines for clarity -

myargs = [
    "/home/abc/Destkop/blender/blender-2.78/blender",
    "-b",
    "/home/abc/Destkop/blender/car.model"
    ]
subprocess.run(myargs)

The full path can be made more flexible by using bpy.app.binary_path.

You also have a trailing space after the filename which would get interpreted as part of the filename.


Not sure to get it, but something like this for sure is possible:


transparent glass material refract the light

Glass refracts light, this is what it usually does so there's nothing wrong about it. I don't know why you setup your glass like that, although a lot of people do it.
Most of the time I simply use a Glass BSDF with an IOR of 1.45 or a Principled BSDF with Transmission set to 1.
This should work if you use it correctly: do your windows have a thickness or are they just flat planes? Real windows have a thickness, if you have flat planes the refraction works as if your furniture was embedded inside a glass cube.
The setup you have there is mostly used by people because of balck artifacts they experience when using simple glass. To avoid this, go to the Render Properties > Light Paths > Max Bounces and set a high value for Transparent like 64 or more.
On your windows this shouldn't matter, but sometimes with more complex glass objects there are still dark parts that are unwanted. In this case you have to increase the max bounces for Glossy. To have an effect, the Total bounces have to increased to this value as well (this is not necessary for the Transparency bounces).
The last problem is, which might be another reason for your setup, that the glass still absorbs a lot of light and your room looks quite dark from the outside. Then of course you have to mix in a Transparency BSDF node to make the glass transparent or invisible for certain rays. Although in reality it is like that - sun and sky are really really bright light sources, so standing outside and taking a picture without over-exposure results in dark windows. Or if you want to see what's inside, the outside gets very very bright.
I'm sorry, that was quite a long answer to say: the strange refraction might come from simple planes as windows. But I can't tell from your screenshots.


Why doesn't the focal length of Viewport change upon zooming?

Yes with Ctrl+MMB you don't zoom, but you dolly (by default):


Boolean modifier shows object as hollow at the cut out

I think your problem was that you never actually applied the modifier before deleting your carving object. Otherwise, as you can see, after I deleted your modifiers to restart with a fresh one, I could achieve the desired effect. I hope this helped.
EDIT:
Here's a .gif of the procedure:

delete the pending modifiers
create a UV sphere (scale it down and drag it around)
create a new modifier
apply it
delete the sphere


My best bet is that the fluid was not successfully baked. That's why it turned back into the domain mesh.
(I have noticed that it has been some time since you make this question and you may have already known this. But if not, hope it helps.)


How can an OBJ sequence be converted to an FBX animation?

If you can guarantee the same number of vertices will appear in the same order in each .obj file (such as a single character model exported to individual frames), you could accomplish this by interpreting the vertex movements mesh transformations on import. Otherwise, you're stuck with entirely separate objects on each frame.

I don't know of any off-the-shelf versions of this, though the stop-motion script you mention in your question could be modified to work this way (in particular, the bakeSequence() function which creates a separate mesh object per-frame).


How to connect "disconnected" edge loops between vertices

Your mesh is non manifold at these spots. There are faces inside the volume which you have to delete.


Ok. Actually, to model this blade, you have first to understand the underlying geometry. Its the intersection of 3 circles that make up that shape. In the following I will show you how to make that shape (with the hole) step by step.

EDIT:
0. go into Top Ortho by pressing Numpad 7

Create a circle with 30 vertices

Go into Edit Mode (press Tab) and make sure the circle is selected (if not press A until it is). Press Shift+D to duplicate the circle. Before confirming the action press Y and type in 1 to move the circle by one up.

Press . (not on your Numpad) to select Cursor Pivotcenter. Then press Shift+D again and this time press R and type in -72 to rotate your Circle correctly.

Next select the vertex at [0, 1, 0] (where the 3D Cursor is in the next image) and press Shift+S. Select Cursor to Selected in the popup menu. Your Cursor should now be where it is in the image. Then create a Circle by pressing Shift+A and make sure it has 6 vertices.

Activate the little magnet in the bar at the bottom of the 3D Viewport. Select Vertex in the combobox right next to it. Now press R and let the rotation snap in place exactly as shown in the image below. Then Confirm by LMB or Enter

Now Scale with S and let it snap to the same vertex. Again shown below.

Reset your Cursor to the Center py pressing Shift+S and selecting Cursor to Center. Make sure the setting with the magnet stayed the same and press R. Let the rotation snap in place like shown below and confirm.

Press S to scale and let it snap like shown below before confirming.

Select the vertices as shown in the image below and press Alt+M. Select At Center in the popup menu.

Next up you have to remove all temporary vertices. Make sure you are in Wireframe Mode (to the right of the Edit Mode combobox). If you are not in Wireframe Mode press Z to enter it. Press C to use the circle selection tool and select the vertices shown below. When finished press X and select Vertices to delete them.

Select everything whats left (press A until that is the case). Press W and select Remove Doubles. (In 2.8 press Alt+M and select By Distance)
Select the two vertices like shown below and press X and select Edges.

Select every vertex around the big face (every vertex except two which are part of the hexagon) and press F to make a Face. Select (only) the 6 vertices of the hexagon and press F. Then press I and adjust the size of the hole that you what to be in there. Then after you confirmed press X and Faces to make the hole.

The following part is completly optional and because you are a beginner it may be hard to do for you. In the picture below I made a beautiful topology to be used with the Subsurf Modifier. I made that mostly by using the Knife Tool (K). If you want you can copy my topology with that tool. The most important step here is to add the Edge Creases at the inner tip. Select the 3 vertices that are the closest to the 3D Cursor in the image and press Shift+E. Move your mouse until a Crease +1.000 appears in the bottom left corner of the 3D Viewport and confirm with LMB.

Press Strg+2 to add a Subsurf Modifier and exit the Edit Mode (Tab).

Add a Solidify Modifier in the Modifier Tab (shown in the image above) by clicking on Add Modifier and select it there. You can then Adjust the Thickness of the blade and Apply that modifier.
Enjoy tinkering


There is an option that could help you to "undo" an applied subdivision surface modifier, although the best options are already said in comments (ie: a real undo before closing the file or keeping an unapplied copy of the object):

here is how it works on a simple cube


Do a while pop().

Check out the answer here, shows the return geometry of running bmesh subdivide edges operator. Iterate with python on vertices created by subdividing an edge

Notice the geom_inner returns the 3 newly created faces of the one cut subdivided plane.  Could use sets to check the difference before and after.

Also note the original faces are not lost in the process.  Some bmesh ops are destructive.  It appears sub edges builds on input geometry.

For your example, rather than counting the iter could simply copy the faces before, and do a while pop

faces = bm.faces[:]
while faces:
    f = faces.pop()
    # op

btw there is no need to use a selection here, simply collect the edges

edges = []
e = face.edges[0]
if e is interesting:
    edges.append(e)

and feed edges into the operator.  Unless using a bpy.ops.mesh operator there is often very little reason to use selection... unless the select is part of the desired result.  Note there is also a more temporary tag property.

No need to cast strings to strings

print(str("string")) # not required
print("string") will do.


Add a draw method to the Operator class, eg in text editor file export operator template operator_file_export.py

class ExportSomeData(Operator, ExportHelper):
    """This appears in the tooltip of the operator and in the generated docs"""
    bl_idname = "export_test.some_data"  # important since its how bpy.ops.import_test.some_data is constructed
    bl_label = "Export Some Data"

    # ExportHelper mixin class uses this
    filename_ext = ".txt"

    filter_glob = StringProperty(
            default="*.txt",
            options={'HIDDEN'},
            maxlen=255,  # Max internal buffer length, longer would be clamped.
            )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator settings before calling.
    use_setting = BoolProperty(
            name="Example Boolean",
            description="Example Tooltip",
            default=True,
            )

    type = EnumProperty(
            name="Example Enum",
            description="Choose between two items",
            items=(('OPT_A', "First Option", "Description one"),
                   ('OPT_B', "Second Option", "Description two")),
            default='OPT_A',
            )

    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.label("Custom Draw Method")
        row = layout.row()
        row.prop(self, "type")

    def execute(self, context):
        return write_some_data(context, self.filepath, self.use_setting)


The knife tool won't show the exact result that was done before pressing enter

Congrats. You've encountered a weird limitation of the Knife Tool.
It acts up with too large near/far clipping range.

Unexpected behavior with extreme clipping range (0,1mm-1000000mm)

Solution 01
Adjust your clipping range
Lower the highest values, until the knife tool starts working correctly.

Solution 02
Use flat orthographic view.
Knife tool works fine even with extreme clipping values, when using front/top/side orthographic view.

Note
This is actually caused by 3D View limitations that all OpenGL/DirectX graphics applications have. It's not just a Blender thing.
You can read more about it in the Blender Troubleshooting Manual.


What are the advantages of using matrices over matrices for translations

Matrices---Or Transformation Matrices in this context---are advantageous if other types of transformations are used. A transformation matrix hold much more information that a simple 3D vector. To understand what I mean, lets look at some examples.

If one wants to translate an object along a circle whose center is $(1,1,0)$ using only vectors, one would use a parametric equation as follows.

As one might expect, artists will find this solution rather complicated for its outcome. In order to translate an object in a circular path, one has to use trigonometry. Had the translation been along a linear path, using vectors would be most appropriate.

Now lets look at how matrices handle this problem.

The combine matrix node multiply the input matrix list, so the node tree can be read as follows. Move the object one unit along the x axis (First Matrix) then rotate it around the origin (Second Matrix) then move it one unit in both the x and y direction (Third Matrix). Which is very intuitive from the perspective of artists and no explicit math or trigonometry had to be done.

If you still can't understand how the transformation was done, add a cube at the center of the world, set the cursor at its location, and set the pivot to the cursor. Now perform the same instructions we explain above for any angle, you will see that the the object end up in the same location.

In conclusion, use matrices if rotations and scaling is required, if not, then vector should be used.


My Rigid body simulation doesn't work as I want it to

So the issue was that I was applying rigid body to all of the cubes at once which was giving me a different simulation. The solution is you have to apply rigid body to one cube and make sure you get the reaction you want and then apply copy from active and then bake it and it should work fine. It works great for me. You have to keep in mind that the collision shape will cause a different simulation depending on what shape you used.


Animate the children.
As intimated in question, cannot animate the hair particle count. Can however set children and animate the child count.

Sliding the child count viewport display amount, similarly set the render

So for example I want to have like 2000 particles on frame 100 and
want them to reduce to like 200 till frame 300

Example for this case, set particle count to 200, keyframe count as 10 on frame 100, and 1 on frame 300.


Try this (I am using Blender 2.81a)

import bpy
import os

# This gets text from file
filename = os.path.join(os.path.dirname(bpy.data.filepath), "info.txt")
f = open(filename, "r")
text_data = f.read()
f.close()

# Get your text object (object name here is 'Text')
obj = bpy.data.objects['Text']
obj.data.body = text_data # set text

```


How can I create and keep these faces together nicely?

My previous answer won't give a correct method.

Actually the Snap option would work correctly if it was compatible with GG (slide vertex along an edge) but it's not the case yet.

What you should do to get edges perpendicular to the X, Y and Z axis is use the knife tool: K to activate, C to cut orthogonally to an axis, Z to cut through.

Once you've created an edge, you can cut again to create a parallel one, or simply select it and bevel with CtrlB.

Then again use the knife tool for vertical edges:

And when you begin to extrude, constraint on the axis you want: E to extrude then X to move the extrusion on the X axis.


How do you change generated to object coordinates without changing the xyz

is it a plane?
You should get it right if that's just a plane.
try applying transformations!
if that's not a plane then fiddle with those numbers and you will get it!
(if it's not a plane then the z dimension matters and the origin would be at the center, so it will not show that color as your looking it on a surface.


i think this is a better approach, since setting the texture coordinate node to object will take that object's origin as the center point for the gradient to start, i also used a linear gradient and rotated it with a mapping node since its easier to handle, setting it to generated will set the center of the gradient to the mesh and not the object's origin


UE4 tools (add on) for exporting fbx is not working for me

According the error "Tangent space can only be computed for tris/quads, aborting":

You might have a mesh containing a face with more then 4 vertices (BMesh). You can make sure to triangulate your mesh or fix your mesh manually. And try again.


How to Show Thumbnails in Video Sequence Editor strips?

No one is working on it, so it'll only be implemented if someone picks it up and do the work: https://developer.blender.org/D5908


Base mesh is rendered differently between viewport and final render with animation

I tested it with Blender 2.79 and it works well. As you could see on the image below the possible problem could be the inactive Armature Modifier for the render circled in red.

On the other hand, I opened Your .blend file, load my custom HDRI map to light-up the scene, just render and everything is matching for me (even with that modifier turned off) as you could also check on the picture. Does this helps?

Sincerely, Jan


What was the step that introduced this geometry problems? In general it's better to avoid geometry problems at all than to try to fix it. So i would suggest to have an eye at your workflow.

At this point i would retopology such a problematic mesh by hand now. No algorithm can know which vertices to keep and which not. So there is imho at this stage no way around manual work.


Fluid emission doesn't follow animated inflow object

The text mesh should not be a fluid inflow, but a fluid fluid (just change type from inflow to fluid). An inflow will keep producing liquid throughout the animation.

Now, if you bake this, you will see fluid start falling at frame 1. In order to start the fluid simulation at frame 86, go to the domain settings and set Offset to -86. You don't have to rebake to see the results.

Then all you have to do is to keyframe the visibility of the fluid object (the text) so that it is visible at frame 85, but not at frame 86. Because at that point, the fluid simulation takes over, so to speak.

However, what you will probably discover is that there is an obvious change taking place when switching from the text mesh to the fluid. One way to get around this is to set the resolution of the domain to something very large (greater than 800 at least).

The easier solution is to replace the text mesh with a mesh of the fluid as it looks in the first frame of the fluid animation. Just go the first frame where the fluid appears, then duplicate the fluid domain but leave it in the same place. Under Modifiers you will find the fluid sim. Apply the modifier. This will create a mesh of the fluid as it appears in that frame. Replace the text mesh with this one.


How to retrieve value from StringProperty?

You have one small mistake: you are reading the function that creates properties for new classes, while you should be accessing the property itself in the current scene, which has the value you have stored:

print(context.scene.referenceMesh)   instead of print(bpy.types.Scene.referenceMesh)


Weird shadows when using solidify modifier on hollow cylinders

Looks like it could be a smoothing problem. Try using a Edge Split modifier after the Solidify modifier.


How to change Blender compositor node value beyond max value?

I'm not sure how well it would work for your specific image, but you could try flipping the image, adding the glare, then flipping it back. The glare should remain "flipped" (because it was added normally to an upside-down image) while the image gets put back "upright":


To let each object start at the exact same frame, I suggest to send a message. Each of the objects can start whatever it should do when that message arrives. As they all get the same message at the same time you get a well synchronized animated scene.

This even works with non-actions, sequential operations and operations that do not start at the same time (but delayed).

The benefit is that you do not need to touch each single object when you want to change the activating event (e.g. changing from keyboard to mouse key). You simply change/add a single object that sends the message.


Alpha Transparency Lightening and Volume Scatter

I deleted my earlier "answers" as they turned out to be mostly useless. The answer seems to be to use Branched Path Tracing in the cycles render settings. This eliminates the effect of the alpha transparency outline of the images as planes showing up when using volume scatter.
Blender HD has an excellent tutorial on all the obscure settings in cycles render, explaining with great examples what each one does. https://www.youtube.com/watch?v=NhOdnOow6DY&t=394s


How do I transform triangle polygons into quads?

This can be done within 10 secs. I've seen this tutorial two years ago. I'm sure you can speed up the whole workflow with the new powerful tools developed since then. :) My suggestion for step 1 to 5 on this exercise can be seen below in briefly 3 steps. However, if you just want to focus on the exact question, just jump to Step 3:

P.S.: Since you said you are new to Blender, I tried to reproduce every detailed step, so it may look a bit long, but all operations can be done in a flash if you get it then.


Selecting curve after importing svg using bpy

You can store the names of the objects before and after importing and find the difference to make sure you have the latest one:

import bpy
C = bpy.context

# Names of all objects before importing the SVG
names_pre_import = set([ o.name for o in C.scene.objects ])

# Import SVG as curve
fp = '/mylocalpath/svgcurve.svg'
bpy.ops.import_curve.svg(filepath = fp)

# Names of all objects after importing the SVG
names_post_import = set([ o.name for o in C.scene.objects ])

# Perform set difference to find the new name and store it
new_object_name = names_post_import.difference( names_pre_import ).pop()

# Reference new object
o = C.scene.objects[ new_object_name ]

# Set as selected and active in Blender 2.7x
o.select = True
C.scene.objects.active = o

# Set as selected and active in Blender 2.8
# o.select_set(True)
# C.view_layer.objects.active = o


Motion blur still showing after particles hit a sticky plane

In your case, you will have better results with the following Motion Blur settings:

Position: End on Frame
Shutter curve: 1st curve or 3rd curve (sharpest image)

Just play with the Position and the Shutter curve to adjust the Motion Blur effect.


Particles are not killed when video is rendered

I can confirm that the collision system (die on hit) is not 100% accurate or at least is not calculated when two meshes touch (it could be also because of settings from the "integration" panel under physics - like integration type, Timestep or Subframes).

The solution I can suggest is to create a duplicate version of your collision mesh and move it a little closer to the emission object. Set this duplicate as collision and hide it from the render.

It will act as emitter killer, but it won't be rendered.

The distance from the original object should be something around the RADIUS of the object you are using as source (calculated also with in mind the Scale of Render simulation).

Check this image:


Beveling a rounded corner until the beveled edges meet at a point

To bevel right to your edges you need to change the bevel tool from offset mode to percent mode and then set the value to 100%.


Operator property variables are defined as Python class annotations, so you can read those to find their defaults.
First, get the name of the class as registered:
>>> bpy.ops.export_scene.fbx.idname()
'EXPORT_SCENE_OT_fbx'

Then use that to get operator class as defined in the script file:
>>> getattr(bpy.types, bpy.ops.export_scene.fbx.idname())
<class 'io_scene_fbx.ExportFBX'>

And lastly, read the type annotations on that:
>>> getattr(bpy.types, bpy.ops.export_scene.fbx.idname()).__annotations__

The results from this are a little long and also include information like minimum and maximum permissible values, so you may want to filter them through a dict comprehension to get something easier to use:
>>> {k:v[1].get("default", None) for k, v in getattr(bpy.types, bpy.ops.export_scene.fbx.idname()).__annotations__.items()}
{'filter_glob': '*.fbx', 'use_selection': False, 'use_active_collection': False, 'global_scale': 1.0, 'apply_unit_scale': True, 'apply_scale_options': None, 'use_space_transform': True, 'bake_space_transform': False, 'object_types': {'CAMERA', 'EMPTY', 'ARMATURE', 'OTHER', 'MESH', 'LIGHT'}, 'use_mesh_modifiers': True, 'use_mesh_modifiers_render': True, 'mesh_smooth_type': 'OFF', 'use_subsurf': False, 'use_mesh_edges': False, 'use_tspace': False, 'use_custom_props': False, 'add_leaf_bones': True, 'primary_bone_axis': 'Y', 'secondary_bone_axis': 'X', 'use_armature_deform_only': False, 'armature_nodetype': 'NULL', 'bake_anim': True, 'bake_anim_use_all_bones': True, 'bake_anim_use_nla_strips': True, 'bake_anim_use_all_actions': True, 'bake_anim_force_startend_keying': True, 'bake_anim_step': 1.0, 'bake_anim_simplify_factor': 1.0, 'path_mode': 'AUTO', 'embed_textures': False, 'batch_mode': None, 'use_batch_own_dir': True, 'use_metadata': True, 'axis_forward': '-Z', 'axis_up': 'Y'}


How to nest sub panels and submenus on the TOOLS panel (T)?

Declare as many menus as you like and concatenate them by calling each menu within the previous menu by layout.menu(menu_identifier).

You can even automatically draw a button to call your menu without declaring  any extra operator by layout.operator("wm.call_menu").name="menu_identifier".

Code ripped from How to create a custom UI? and combined with Templates > Python > Ui Menu.

bl_info = {
    "name": "Add-on Template",
    "description": "",
    "author": "",
    "version": (0, 0, 1),
    "blender": (2, 70, 0),
    "location": "3D View > Tools",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"
}

import bpy

# ------------------------------------------------------------------------
#    custom menus
# ------------------------------------------------------------------------

class MyCustomMenu(bpy.types.Menu):
    bl_label = "First Menu"
    bl_idname = "OBJECT_MT_custom_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello First Menu!", icon='WORLD_DATA')

         # call the second custom menu
        layout.menu("OBJECT_MT_sub_menu", icon="COLLAPSEMENU")

        # use an operator enum property to populate a sub-menu
        layout.operator_menu_enum("object.select_by_type",
                                  property="type",
                                  text="Select All Objects by Type...",
                                  )

class MyCustomSubMenu(bpy.types.Menu):
    bl_label = "Sub Menu"
    bl_idname = "OBJECT_MT_sub_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello Second Menu!", icon='WORLD_DATA')

        # call another menu
        layout.operator("wm.call_menu", text="Unwrap").name = "VIEW3D_MT_uv_map"

        # just for fun call the first one again
        layout.menu("OBJECT_MT_sub_sub_menu", icon="COLLAPSEMENU")

class MyCustomSubSubMenu(bpy.types.Menu):
    bl_label = "Sub Sub Menu"
    bl_idname = "OBJECT_MT_sub_sub_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello Third Menu!", icon='WORLD_DATA')

# ------------------------------------------------------------------------
#    my tool in objectmode
# ------------------------------------------------------------------------

class OBJECT_PT_my_panel(bpy.types.Panel):
    bl_idname = "OBJECT_PT_my_panel"
    bl_label = "My Panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_category = "Tools"
    bl_context = "objectmode"
    '''
    @classmethod
    def poll(self,context):
        return context.object is not None
    '''
    def draw(self, context):
        layout = self.layout
        scene = context.scene
        mytool = scene.my_tool

        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_enum", text="")
        layout.operator("wm.call_menu", text="Call My Menu").name = "OBJECT_MT_custom_menu"

# ------------------------------------------------------------------------
#    settings
# ------------------------------------------------------------------------

class MySettings(bpy.types.PropertyGroup):

    my_int = bpy.props.IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_enum = bpy.props.EnumProperty(
        name="Dropdown:",
        description="Apply Data to attribute.",
        items=[ ('OP1', "Option 1", ""),
                ('OP2', "Option 2", ""),
                ('OP3', "Option 3", ""),
               ]
        )

# ------------------------------------------------------------------------
#    register and unregister the classes
# ------------------------------------------------------------------------

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.my_tool = bpy.props.PointerProperty(type=MySettings)

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

if __name__ == "__main__":
    register()

    # The menu can also be called from scripts
    # bpy.ops.wm.call_menu(name=CustomMenu.bl_idname)


You will have to go into the material settings and under there you'll be able to spot displacement method there change to "displacement" or "displacement and bump" and it will work.


My object is not moving smoothly, but in increments of one unit

Hit shift+tab while in object mode to Exit Transform Snapping

For 2.79

(source: blender.org)

For 2.8


Is it possible to use height maps from substance designer in Blender and how?

After further research it appears that the only reasonable way to make height maps work in Blender is as set out below. The displacement support is still experimental in the latest 2.8 builds. Hope the development team will procure full support in the stable release of 2.8. I'm not sure how all this affects vertex count and render time. Hope this will be helpful to someone.

choose Cycles as render engine;
choose "Experimental" feature set in render settings;
add Subsurf modifier to your mesh, switch it to "simple" and tick "adaptive" on;
create a new material for the mesh;
in Material tab scroll down to "Settings", find "Displacement method" and choose "Displacement and bump";
plug in your height map into Displacement Node.

This video illustrates the above (it is in French though): Video


Problem with exporting a proxy object (to collada .dae) including texture, material and animation

Ok i solved it by myself. The texture problem can be solved, by copying all necessary files (*Specular.png, *Opacity.png, *Diffuse.png ...) by hand to the same destination like the *.dae will be stored and disable the "Copy"  and enable "Include Material Textures" checkbox in the collada export settings.

The animation only works, if i set the body object to local (so its assignable to the proxy armature). The mesh, materials and textures are still linked, so i'm still able to change them in my origin blend file.


Why does changing animation layer make my model very small?

If you open the action called Genesis2Female|Animation|Base Layer you can see that you've keyframed the XYZ scale of the armature itself:

You can see the keyframed scale in the N panel > Item > Transform, it has been set at 0.01:

When you open your file, we can see that the armature is set to a default scale of 1/1/1, so as soon as you select this action, the armature is scaled down to 0.01 of its size.
To fix that, select the action, select the 3 Scale tracks and press X.
The little bit confusing thing is that the armature transforms (location, rotation and scale) are part of an action, not only the bone keyframes.


image texture not showing in final render but does in 3d view?

Somehow the cap label image got moved from the original location. (meaning, the image was on your desktop and moved into a folder for example)

It still shows up in the viewport because it put a "thumbnail" or quick load version of it but it is not accessing the original file.

I would reload the original file again and it should work.


Bone Parallelogram Connection Translations and Parenting

There are two simple solutions to it:
What both rigs have in common:

boss and helper are children with offset of main. That puts them into local space and prevents flipping. If ever the rig has to do a looping this becomes relevant.

bar is a child of boss.

neck 1 is a child of bar with offset.

1. Two simple constraints.
This one works if the bones are really parallel and have the same length (copied). Helper has a Copy Rotation Constraint and rotates in sync with boss.
Bar has a Locked Track Constraint pointing to helper. Locked Tracks only rotate around a locked axis and are therefore more stable than a Track To. They won't flip.
Now you can rotate boss and everything will follow.

2. One slightly more complicated constraint
This one will work regardless of lengths and rotations as long as it can function mechanically. Good for rigging excavators. It has an additional bone, target, which is a child of helper with no offset.
This time, bar has an IK Constraint pointing to helper, chain length 2. boss and helper kind of need a rename since now it's helper who gets to be animated. bar and boss will follow.
But you could just as well turn bar around, parent it to helper, put the target on top of boss and do the IK chain the other way around.

A third solution would be to let main be a duplicate of bar, maybe form a complete parallelogram with the 4 bones and give bar a copy rotation constraint to main but it's not really needed.


Are quads or triangles better for games?

You have to distinguish between modeling and later useage of the final result. Game models are usually modeled with quads first. Edgeloop tools for example doesn't work at a tri geometry. But then exported with a triangulated geometry to have the geometry as stable as possible.

Some game engines imports quads too. And when it's static geometry then it doesn't matter. But game engines doesn't necessarily import the quads with the same vertices order than what you had in Blender. And then the faces may bend into a wrong direction. So you usually triangulate it before export, and then check if all edges really points in the desired direction for your animation needs.

When it's a game model anyways, then you can also model with tris already. When it makes sense. As told, some tools works better with a quad geometry.


If you by "not showing up" mean that you were able to install and enable them in the user preferences but then don't find them in the toolshelf section in blender, this is because MakeTarget and MakeClothes end up on the properties panel, not the toolshelf. Press "n" in blender to show the properties panel.


This is a common problem. Technical explanations are here and here.

To keep consistent colors:

Set View Transform to Standard.
uncheck Save As Render in the saving window
Enjoy consistent colors :).


Why does Skin modifier give No valid root vertex error when placed after Decimate modifier?

This behaviour is based on the modifieirs' stack order. The error Skin modifier provided means that Decimate modifier which most likely is placed above in the stack already deleted the vertex used by Skin modifier as a root one (it doesn't mean that all the vertices of the mesh were deleted; it's just that vertex marked as root one was so lucky to be decimated). From manual about the Skin modifier:

  Marking a vertex as root causes that vertex to be used for calculating rotations for connected limbs. [...] Each set of connected vertices should have one root node.

So Skin needs one vertex to be marked as root one.

There are some ways to workaround this.

Enter Edit mode of the mesh with both modifiers added, select one of the vertices and mark it as root manually; chances are that it will be the vertex which won't be decimated. If it isn't really important for your mesh to have some certain vertex to be as root one for calculations this should work.
Place the Decimate below the Skin (but this means that the result will change quite a bit, i.e. all the internal faces will be skinned).
Decrease amount of faces to be deleted by Decimate modifier. This is done in different way depending on the modifier's mode, if using Planar you will decrease Angle setting. The less vertices will be decimated, the more chances that one needed for the Skin will remain untouched.


Strange lightning - what is wrong with my model?

Try turning on this, and play with the angle setting.

This model is a bit of a mess though, so many triangles, some don't look planar, those things are going to ruin your shading. Try to keep everything as quad as much as you can.


What happens after dragging and dropping a texture directly on an object?

The Image you have drop down is present in the UV editor. If you drop down the image editor image you get it.

As soon as you click the image in the UV image editor then you can excess in texture also.

Create a New window -> UV Editor and from there you can find the image from drop down.

Now you can access the image apply to as texture material on the mesh


Select your loops
Press 'Spacebar'
Type in: Extrude and Move on Indiviual Normals


Baked Cloth Sim Lost Between Closing and Opening File

I don't know why that is happening specifically. I found this thread because I was experiencing the same issue, so technically this is not an answer so much as a work-around that will allow you to do what you want.
Check the option to cache the cloth to disk as you have already done, and then bake all dynamics.  Immediately after finishing the bake, export the scene as Alembic. This file format will create cached version of fluid simulations and cloth dynamics.
Import that file into a blank blender scene. Select all of your dynamic Objects, then select inverse and delete all the other objects in the scene to leave only the baked dynamic objects and re-export as Alembic again.
Now you can load that Alembic file into your original file and new copies of the dynamic objects will be loaded in with a modifier attached to play the cached dynamics. This is totally stable and will play quickly during scrubbing playing or rendering.
Obviously, you only want to do this after you are happy with the simulation, and you have to go back the to original objects and repeat the process if you need to make a change, but this is a way to get a persistent and reliable cache on disk for cloth and fluid sims.


Making a shape key with a value that is the average of other shape keys

The data_path on a driver variable is relative to the ID object you select, in your case objects "Template".  The location x path from here would be "location.x" or "location[0]" for example.

Select key as an ID object instead and your keyset.  An example path to "Key 1" key's value is demonstrated in image.

Alternatively from the mesh  bpy.context.object.data.shape_keys which returns a pointer to a bpy.data.shape_keys keyblock.

Screenshot of average shapekey driver setup

PS.  The panel on RHS is a shameless plug for my Driver Manager Addon.


Apply a volumetric texture tangentially on a torus

I was able to get a radial result:

The key is to use a 'Blend' type texture (instead of marble) as this has the option to do radial mapping:

I use a custom ramp for the black and white bars (set to 'constant' blending), a radial blend and default mapping settings.

One other setting which has to be enabled is 'RGB to intensity':

I use the default volume settings for the material, apart from 'Density' which is 0.


It was a scale / normals problem : your objects scales were negative.

I applied rotations and scales ctrlA, then adjusted the normals (in edit mode ctrlN for both objects).

Then your model is ready for the boolean (difference) :


Complex lighting situations issues_light intensity decreases > number lights increases

The default "Path Tracing" integrator is coded so that for each sample, it will bounce light from a randomly-chosen lamp.

My suggestion is that you change the integrator to "Branched Path Trace", which you can change from the Sampling sub-tab.

Using Branched PT will make cycles take bounces from every light for each sample.  This comes at the cost of increasing render times, but with the added benefit of reducing noise.

More info here: https://docs.blender.org/manual/en/dev/render/cycles/settings/integrator.html

EDIT: As a further note, Blender 2.79 will feature probablistic termination of lights based on contribution.  Basically, it will randomly skip sampling from lights if their contribution to a sample would be below a certain threshold, causing it to spend less time computing bounces for lights which make little or no difference for a given sample.  This provides speed gains in complex lighting setups, particularly where some of the lights are distant or occluded.  More info here: https://developer.blender.org/rB26bf230


Convert boolean objects to a single mesh

You can also use bpy.ops (to change a little), so it is simply:
import bpy

bpy.ops.object.duplicate()
bpy.ops.object.convert(target='MESH')


Click on the camera icon of your Subdivision Surface modifier


What 3d file format should I use to import low poly shapes?

Blender offers a wide range of popular file formats (e.g. OBJ, FBX, 3DS, PLY, STL, etc.) that can be used to import and export.  Please note that many of the import/export features are enabled by the use of addons.  See the import/export addons section of the manual for details.


Reduce subdivision quality in viewport on multiple objects at once

One way is to use the Simplify function.

You can set Max Subdivision for Viewport or Render in your whole scene.
Render Tab > Simplify > Viewport


Selecting Vertices on Symmetry Line of Mirror Modifier

A simple code to retrieve vertices that are on the standard (centered X axis) symmetry plane.

This assumes to be without other modifiers before the mirror.

Principle:

Get all edges that have only one linked face (border edges)
Test their distance to the symmetry plane under a limit which should be similar to the merge limit of the mirror modifier

The code:

import bpy
import bmesh
from mathutils import Vector, geometry

obj = bpy.context.object

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

bm.verts.ensure_lookup_table()
bm.edges.ensure_lookup_table()

# If mirrored on self with X axis
center = Vector( (0,0,0) )
axis = Vector( (1,0,0) )

limit = 0.00001

border_verts = set()

for e in [e for e in bm.edges if len(e.link_faces) == 1]:
    if geometry.distance_point_to_plane( e.verts[0].co, center, axis ) < limit:
        border_verts.add( e.verts[0] )
    if geometry.distance_point_to_plane( e.verts[1].co, center, axis ) < limit:
        border_verts.add( e.verts[1] )

print( len( border_verts ) )


How to hide all that not in camera field of view

Finally I found a solution. The hotkey is: Alt+B (Clipping Border)

Switch to camera view
Press Alt+B
Select camera view area by cross selection tool
Switch to 3d window
Voila!


According to your pics, you have already explored Weight Paint mode. That's going to be the key. The body is collapsing because of how the automatic weights were calculated. If you look at all that light blue on the torso in your third pic, where the arm's vertex group is active, you can see that there is entirely too much arm bone influence on the main body. Just paint it out so that it is darker blue. Set your weight brush to Draw, and set your Weight setting all the way down, and your Strength setting all the way up, and go over the torso.
You may have to tweak the edges of these zones of influence at some point. Use the Blur or Average brush for that.


Both of your arms appear to be weighted to the left arm bones. In fact it appears that you don't have any right arm bones.

If you are using a mirror modifier, make sure mirror vertex weights is checked on the modifier panel.

Create your right arm bones and make sure all the left arm bones and right arm bones follow blender's mirror naming convention (names should match appart from a .L or .R suffix depending on whether they are left or right).

Delete all vertex weights on you model and remove the armature modifier from the mesh. Then reparent the mesh to the armature with automatic weights.

Alternatively, you can select all the vertices on the right arm, and remove them from each of the left arm vertex groups using the button in the vertex groups section of the mesh properties panel.


Why half of those particles (red balls) going through the collision (white plane)?

Particles are not objects in blender, they do not have a geometry, even if you attach an object to them, the geometry is not simulated physically with the particle system.

The spheres will always intersect the plane as long as the particle is flush on it.

If you want your particles to be physical, you need the Molecular addon: http://pyroevil.com/category/scripts-addons/molecular-script/

Alternatively you would need to run a physics simulation using rigid bodies.

Or in this case the collision margin of the plane needs to be the -radius- of the red sphere. Note that this will still make the red spheres intersect each other since theres no way to stop that from occurring with the vanilla particle system.


Normalize all objects scale and rotation transforms

It seems there is parented objects to empties.

Select all objects

Alt+P > Clear and Keep Transformation

U > Object & Data (this is for linked duplicates)

Ctrl+A > Rotation & Scale


Script that delete duplicated materials (from appending objects) and reassign the correct material

obj = bpy.context.active_object

for index in range(0, len(obj.material_slots.keys())):

    obj.active_material_index = index

    if "." in obj.active_material.name:

        mat = obj.active_material.name[:-4]
        bpy.data.materials.remove(obj.active_material)
        obj.data.materials[index] = bpy.data.materials[mat]

This work, I kind of cheated with the if "."


Shading / smoothing - how does it work with edges, faces, vertices?

If you have a cube and you set everything to render as smooth, then the faces of the cube will be shaded as though the object were a sphere. You can still clearly see that it's a cube since that's obvious from the geometry of the mesh, but the shading will try to behave as best it can as though the cube was actually smoothed say using the subdivision modifier.
Now take a cylinder. If you create a standard cylinder then you can clearly see that it's not perfecly round, that the sides are made of 32 faces. In order to make this appear perfectly round you could increase the resolution of your mesh, which would lead to worse performance and longer render times, or you could just change the shading to smooth. Now if you change the shading to smooth for the whole cylinder then the shading will again try to make the cylinder look as though everything was smoothed, that's good for the sides, but it's not what you want for the caps, since you still want the cylinder to clearly be seen as such. That's when you'd need to go and change the shading of individual faces of your mesh in order to maximise the appearence. Go to edit mode, select only the top and bottom faces (the caps) and mark them as flat. Exit edit mode and you'll see the cylinder displayed perfectly, smooth on the sides, but flat on the caps.


Why does origin point change its location after joining objects?

It's likely that you selected body object first and the hand - second, then joined them with Ctrl+J. This means that origin point of the joined object was where it was for the last selected (i.e. active) object prior to joining, and in your case that was the hand. Probably the latter had its origin point where it is for the resulting object on your screenshot.

It should be possible either to:

undo joining and join again with body object selected last in order to preserve origin point where it should be for Mirror modifier to work properly,
or reposition origin point which should be easy. In Edit mode select the center edge loop of the body mesh, snap 3D cursor to it and in Object mode put the origin point to cursor.

Also read How can I make the mirror modifier work right?

As a side note, correct the normals in your objects by Ctrl+N as this can give some unexpected results while modeling in particular. See Why are some faces in my mesh darker?


Duplicating objects using Animation Nodes' 'Grid Mesh' node

If you want to distribute a group of objects, you can use the Distribute Matrices node to generate the locations. You may also use the Replicate Spline node to ease things for yourself.


How to bevel corners and edges a different amount?

If I understand well, you want to round more the edges.

So you can inset individually the faces of a cube:

and add a subdivision surface:


Principled Shader - blue subsurface color for thin parts

My 2 cents tweak to avoid blue patch on thin surface:

I adjusted the distance of the ambiance occlusion to be small enough to be near to zero on thin surfaces.
I disabled "only local" to prevent collisions with external objects to also add blue color around the collision surface.

Here is how my ao values look like:

As a result, from this:

... to no more makeup:


Maybe try adding a support edge by ctrl+R in edit mode, edge like that should limit the area bevel is counted on and make to your liking :)


Rendering a scene with shaderless objects results in a completely black image

It's not going to work because of child particles

Unfortunately, since you are rendering child particles, you can't achieve your goal at the moment (Blender 2.79).

This is because the Particle Info node

  ... currently only supports parent particles. Info from child particles is not available.

I don't know the roadmap for this.

Other details

First, you are currently seeing a good "material" view, because it doesn't rely on Cycles. But if you change to the "rendered" view (you don't have to make an actual render, but it's practically the same), it falls back to black.

Now, even if you disable the "children" in your particle system, it's not going to get any better

this is because your material is, indeed, "shaderless"!

If you add a shader (like the "Emission Shader"), though:

Voilà!

Unfortunately, though, it won't work if you enable child particles again.


Script add-on runs from text editor but not from operator (spacebar) menu?

When you run the script, the various properties in the script get set and you use them in your functions, this doesn't happen when you invoke the operator. An operator is invoked in a clean environment, you only get properties you setup in the operator. An addon is a python module and allows you to expand that to some degree as the script properties are actually module properties, but you still need to set the properties from the operator or the register() function, not the top level script steps.

From your operator's execute() method you should setup the properties you want to use based on the active selection at that time and not what may have been active at the time the script was run to register the operator. To do this, you should use the context parameter passed into the execute() method instead of using bpy.context, pass the context parameter from your operator to your functions when you call them.

As you mention - you have class main(), by creating an instance in your operator you aren't actually calling any of the methods listed in the class, so yes it should be a function not a class, unless you move the function calls into the class __init__() method or another method that you then call.

While you have worked out the steps you need to use, you just have to reorganise it so that it can be used within blenders operator context.


Is there a better way to make complex cloth, than sculpting it?

Render out a texture on plane similar to the following & save the image:

Add a plane to the 3D view > subdivide it like crazy (W >> S)

Add a Displacement Modifier

Create a new texture from here.

Go into the textures tab on the properties panel and set the texture to your rendered out image location on disk.

Come back to the modifiers tab and play with your settings, start with mine here and adjust to your liking.

finally add a subsurf modifier

Last apply the subsurf modifier, then the displacement modifier.

Then go into sculpt mode and have your way with it.


Is there any way to delete the light bounces without losing the illumination?

This can easily be done by disabling the specular highlights of a lamp.

To do this, with the lamp selected and in the Properties panel, go to the Object Data tab (this is how it's actually called, but it's the one with the Lamp icon), and under the Lamp subsection uncheck the Specular checkmark.


Dope sheet and graph editor are kind of "dark"


How to remove every inactive/unused screens in python?

I came across same issue and this was one of the only things relatively close, so I'd like to share how I cleaned up the screens that should be orphans in my Blender file.
So first to determine which screens were in use, open the outliner or add one to the current workspace and set it to "data api" view like this

Then once you have it open you need to expand the window or windows sections. So if you only use one monitor then there should only be one, if you have two monitors and have opened a new window then there should be one for each open separate instance window like here is mine.

So what we want to do is like I have in the screenshot is find the screen being used by each window and rename it. Now the reason I have named it the same as the workspace, is the window manager tab in api data is unique to each workspace.
So workspace name followed by master for main screen and slave for the new window secondary screen.
Then just work through each workspace, repeating the same above process, until we have all the active and open screens renamed. We can then check in the screens list to make sure we got all of them.

Like this, see all the leftover unused "default" copies, that should be orphans since they are from a "new window" I have closed but seem to still have a user.
Once we have done this all we need to do is manually force clear all the users for the unused screens with the python console, so open one up on any workspace and using this command swapping nameofscreen with the names from the above list.
bpy.data.screens['nameofscreen'].user_clear()

Now back to the to the outliner mode and this time switch it too orphan data and you will now see a list of the the orphan screens, hit purge, that will delete them from file. Then we can go back to the API data outliner mode and we should have a nice clean screen list like this.

This was done using a custom build version 2.9 alpha but should work in any 2.8+ versions.


Realistic Material viewport without rendering?

You will not be able to have real: transparent raytracing, mirroring, subsurface scattering, generated texture coordinates, multiple light bounces

Set the 3D View Shading to Material. In the Display section of the Properties Panel check "Only Render" and "World Background". In the Shading section select GLSL shading and check ambient occlusion.

In the Viewport you can use the Blender Game Shaders / Lights.

Utilize Texture baking all Textures Channels except Specular/Glossy.

There are many different techniques to fake rendering effects.

I advise you to check out these two tutorials:

Viewport Rendering: Blender Game Engine Material
Hacking The Viewport: Many Hacks and Fake Effects

EDIT: Jerryno's comment suggests PBR, which is an important resource as well.


How can I make object movement correlate to animation being performed?

This isn't a perfect solution that automatically calculates everything for you, but maybe this will help. Use an empty plain axis parented to the character at the contact point to find the change in distance.

Press Shift+A to add an empty origin. Move it to the desired contact point and parent it to the character. If the axis isn't moving with the mesh when you're playing the animation, Tab into edit mode for the character mesh, and add the empty axis there. Since its now a part of the character mesh, the rig animations will affect it as well.

If you try to directly view the axis' location in the Item's property panel, you'll see that it doesn't actually change (due to that being its position relative to the parent).

To get around this, press ShiftS and select Cursor to Selected. That will move the 3D cursor to the axis' location, allowing you to see the axis' location via the 3D cursor location. To view the 3D cursor's location, press N to bring up a side menu, and click on the View tab.

By noting down the XY locations at various key points, you can find the exact change in position you want the character to follow by subtracting.

More complex animations such as cartwheels will get rather dicey as you want your character to be rotating about a different point. I'd suggest manipulating the pivot point while rotating the armature so that you can rotate the entire mesh around desired points.  This can be done by clicking one of the small buttons at the top of the screen shown below.

After that, I'd use a similar method of parenting empty axes to your mesh to find the displacement at various key points.


cannot see object from 3ds import; does not appear to be scaling or translation issue

It is a scaling issue.

The object is imported successfully, you can see that there are a number of faces and vertices, etc. but as As stated in the suggested links in the comments the object is not at a scale that can be immediately viewable in the 3D vieport.

Select it in the outliner.

In the dimensions section of the 3d window you will see that the scale is 0.

Make that 1 and you will see how huge the object is.

From there you can change the view to selected (numpad period) and adjust the clip distance to see your gigantic object. If the object has the center far from the mesh you might struggle a bit more to find it.

Scale it to some manageable size and manipulate at will.

Or if you really want to keep the object as large as it is, then you need to adjust the scale of the whole scene and clip distances to make it into a workable scene.


If you want to make sure that you don't paint through, make sure that you've activated one of these brush options (I still don't understand how it works though):


Baked Texture is Darker and uglier than the render

I think you did it right, but rendering is not the same as the viewport material preview. If your baking and your textures are large enough (not to loose detail because of that) increase the sample rate. Baking will take a while then too (maybe a hour or longer). Try a sample rate first double current then try 400 or 1000

PS perhaps you should take a look what 2.8 eevee can do for your kind of work.


From what I've seen online the method usually followed by the character is the following:

Add a small cube. Fix its size to be almost from the feet to the knees of the character.Then make the lowest part of the cube to be in the same height with your character's feet.
Add every motion SCAs to that cube. Only add animations to your character. So the cube will decide where you go and the character when to play the walking/jumping animations.
Set the cube's physics to "character" or "dynamic" or what suits you. Gravity will automatically affect it then.
Last don't forget to parent everything to your cube.

Tip: In order to remember which to select first for parenting think this. When a ship goes down, you pick the children first and then the parents. So the last thing you select is a parent. Read that somewhere.

Edit: Forgot about the bones's physics. Set that to no collision if you don't want it to interact with stuff. Also I think that the parent's physics would overwrite the childrens's. So even if bones was dynamic nothing would make them move differently.


Proportional Editing is not working, object is moving

Lower the proportional editing influence using the mouse wheel.


Is it possible to use one action for multiple objects?

Using armature for this may be a good solution.

CREATING AN ACTION FROM SCRATCH

Add an Armature-->Single Bone, duplicate it in Edit Mode (Shift+A) and place each bone on each separate object. Select the first object, then the second one and finally the Armature in Object Mode, then press Ctrl+P-->With Automatic Weights.

Keyframe the movement for each bone and make an action of it in NLA Editor. You now have one action for two separated objects.

USING THE EXISTING ACTIONS

In this case I've got three objects with three different animations/actions. I'll merge these into one single action using an armature.

Add Armature-->Single Bone and snap it to the origin point of the first object. Snap the cursor to the second object in Object Mode (Shift+S-->Cursor to Selected), then select the bone, enter Edit Mode and press Shift+A. It'll snap next bone to the second object. Repeat the same process with the third one as pictured below. Rotate all the bones in Edit Mode by 90 degress so they all stay horizontal.

In Pose Mode select the bone, go to the Bone Constraints header and give it a Copy Transforms constraint. Set the bones targets to the coresponding objects as pictured below. Now the bones are following the objects' animations.

Select all bones in Pose Mode (Shift+RMB), then go to Object Mode-->Tool Shelf (T)-->Animation-->Bake Animation. Check all the checkboxes in a window there, and set the Bake Data type to Pose. After clicking OK the new action in a NLA Editor'll appear.

Now you have the copied movement of the objects baked into the keyframes of the armature, so you don't need the objects' animations anymore. Delete each one in a Dope Sheet Editor.

Finally being in Object Mode select all the objects, then the armature and press Ctrl+P-->Set Parent-->With Automatic Weights. Push down an action in NLA Editor to create an action block on a strip.


Set Vertex normals to vertex color in Python

You must set vcol with loop index, not vertex index, because those are loop data (i.e. one color per face corner):

import bpy

current_obj = bpy.context.active_object
mesh = current_obj.data

if mesh.vertex_colors:
    vcol_layer = mesh.vertex_colors.active
else:
    vcol_layer = mesh.vertex_colors.new()

print("*"*40)

for poly in mesh.polygons:
        for loop_index in poly.loop_indices:
            loop_vert_index = mesh.loops[loop_index].vertex_index

            #color = [1 , 0, 0]

            #vcol_layer.data[loop_index].color = color

            #vcol_layer.data[loop_index].color = mesh.vertices[loop_vert_index].normal
            color = mesh.vertices[loop_vert_index].normal
            vcol_layer.data[loop_vert_index].color = color

            print("painting vert",loop_index, "to color ", color[0], color[1], color[2])

mesh.vertex_colors.active = vcol_layer

mesh.update()

However, since you are merely using vertex normal, it’s much simpler (and efficient) to loop directly on loops - and vcol are clamped to positive numbers, so you'll likely want to encode negative values with something like col = nor * 0.5 + 0.5:

import bpy
from mathutils import Vector

current_obj = bpy.context.active_object
mesh = current_obj.data

if mesh.vertex_colors:
    vcol_layer = mesh.vertex_colors.active
else:
    vcol_layer = mesh.vertex_colors.new()

print("*"*40)

for loop_index, loop in enumerate(mesh.loops):
        loop_vert_index = loop.vertex_index

        #color = [1 , 0, 0]

        #vcol_layer.data[loop_index].color = color

        #vcol_layer.data[loop_index].color = mesh.vertices[loop_vert_index].normal
        color = (mesh.vertices[loop_vert_index].normal * 0.5) + Vector((0.5,) * 3)
        vcol_layer.data[loop_index].color = color

        print("painting vert",loop_index, "to color ", color[0], color[1], color[2])

mesh.vertex_colors.active = vcol_layer

mesh.update()


It won't work this way, you first need to make it rotate around the cylinder, for example with a Simple Deform in Bend mode:

Then shrinkwrap.


Parent the related objects to an empty, move the empty.

To parent,  RMB select the child (the animated object), then ⇧ Shift RMB select the parent object (the created empty) making it the active object. Then press ⎈ CtrlP.


Will my geometry make for a good baking?

OK so following Leander's advice I did a baking with low res and low samples and weirdly enough, it actually gives a better result without the little steps so I completely removed them (and lost almost 4oo polygons in the process, yay). Thanks for the advice, I'm closing the subject


Your hips are deforming because their vertices are weighted relatively to two bones: Hips and Spine. When you move the Hips bone the vertices receive two instructions: one (Hips) is telling to move, one (Spine) is telling to stay still: the result is the combination of theese two istances. If you remove from vertices the Spine asignement everything will be as desired. While you're editing your rig I suggest you to have Hips and Spine bones going from down to top (it's a good practice, when you will start animating you'll understand why).


Here is the Fresnel Conductive OSL node done in pure Cycles nodes:

The node noodles:

And .blend with linkable/apendable group if you feel lazy to build this:)

Notes:

In reality the IOR is computed like this:

IOR = N + Ki

where N is Refractive index and K is Extinction coefficient. For dielectrics, the complex part can be omitted, so N becomes the IOR. However metals do have the complex part.

You get the measured N and K values from here: https://refractiveindex.info/. The problem is, that both N and K depend on the wavelength of light.

So to render metals correctly, Cycles would have to be a spectral renderer taking into account the polarization and wavelength of light.

The best we can do is to approximate and sample just for red, green and blue light.

As per the Vray OSL reference the red, green and blue values are taken at 0.65, 0.55 and 0.45 micrometers. Put the wavelength value in there and read N and K:

The usage is same as in Scott Milner's answer. This is how the Conductive's Fresnel output can look like (with extreme values):

You can see it produces the Reflectivity color and Edge Tint color that you would normally input in an artistic-driven metal shader.  But this is from exact measured values and with correct math so the way the colors blend towards the edge is more accurate than using an artistic metal shader with hacked (usually just adjusted for the base reflectance) fresnel node (which in Cycles gives dielectric reflectance response curve).

Connect this into Glossy shader color. The shader should have 0 roughness to be correct.

[UPDATE]: As roughness increases, rays have higher probability to hit the surface dead-on as in center of the sphere. When roughness reaches 1, the whole sphere is shaded with the reflectivity color:

Here is an upgraded PBR version with roughness all incorporated into one group:

Node group guts:

Blend file:

Now this approach taking measured N and K values has GPU and roughness support - two biggest downfalls removed - which imho puts it on par with PBR artistic-driven shader setups:

artistic approach with reflectance and edge-tint color input has ease of adjustment benefit (you can also find recommended/measured color values for metals online).
measured N and K values approach gives better and more accurate reflectance behaviour (but still approximated in non spectral renderers).


Camera doesnt follow ball in tube (Blender Game Engine)

I'll try to address at least something:

1) Your "tube" material has "backface" enabled, thus now you can't see it from the inside, because  tube's normals are pointing outside. Try to remove backface OR leave backface, but invert normals (in this way you can also see through the tube when looking the whole tube path from outside, to get a bird's eye view, which helps to spot how is working well and where not...

2) the current camera parenting isn't working well: moving the ball (pressing S) it goes behind it at the beginning, but then it goes around it (and something goes out of the tube), then also in front of the ball... I think you should somehow set the position  of the camera to be always behind the ball along the ball direction axis... I don't know how, unfortunately.


Models for 3D printing are sliced wrong, can't figure out optimal thickness

I opened your Slice-test.stl file in cura, and this is what I get:

The first layer appears correct to me.

Since you did not provide the line art for your flowers, I cannot verify that with cura.


Generating 1000s of objects are really slow, how to optimize it?

I figured out that generating lots of objects is not the way to go. Instead we should always think of ways to merge the objects into a single object, however still having all the data and values needed.

In case of VOXEL and Magica Voxel or Drububu, my solution is to deal with Position, Color, to represent a Box of Voxel, and instance it thousands of times, however to always keep everything as a single object.


2.8/Grease Pencil. How to flip a stroke horizontally?

In Edit mode, select the strokes you want to flip and scale them in -1. Thanks to dan2 from blenderartists.


Script to copy all materials from one object to another, slot for slot.

This is what I came up with. Select the object with the "wrong" materials first (like 'torso.001',...) and the object with the "original" materials last (like 'torso',...). Then run the script. It compares all material names and if one of the "wrong" materials starts with the name of one of the "right" materials, it will be replaced by this mat. (So the material 'torso.001' would be replaced by the material 'torso').

The script does not update the 3dView, so be sure to do some action (like zoom in, etc.) to update the viewport after you run the script!

Also this might not work correctly, if some names are combined of other names. E.g. if you have two materials 'torsoUpper' and 'torso'. If that is a problem, I can edit the script.

Hope this helps.

import bpy

c = bpy.context

# Select multiple objects.
# The last selected should be the object with the "original" colors
# The script loops through all materials of the other objects and compares
# them to the materials of the "original" object. If their names start with the same
# letters, the material is replaced with the original.
# HINT: The script does not update the 3dView!

print("---RUNNING SCRIPT---")
src = c.active_object

for i in c.selected_objects:
    if (i == src):
        continue
    for src_id in range(len(src.data.materials)):
        for replace_id in range(len(i.data.materials)):
            src_name = src.data.materials[src_id].name
            rep_name = i.data.materials[replace_id].name

            if (rep_name.startswith(src_name)):
                i.data.materials[replace_id] = src.data.materials[src_id]
                print("Replaced "+rep_name+" by "+src_name)
                break


Any simple way to apply a color index (to achieve things like 256 color range) across an entire render?

I assume from your question that you're just seeking to emulate a certain look, and you're not seeking to actually output that data into a file format with reduced range. In other words, it shall look like it was an image with reduced bit depth, but in fact it's a normal 8 bit jpeg or png that you're outputting.
If that's the case, that look could somewhat be emulated using node groups. I've put together a little demo with a Suzanne head and a random image (Agent327 header from the Blender.org homepage), which run through a custom node group:

Please keep in mind that the node group does not do any sophisticated range mapping. There is no analysation of surrounding pixel data to produce an image which is as close as possible to the original. It really just tries to add the - usually unwanted - fake posterization.
To do this, the image needs to be split up into its individual channels, as we want to work on the mathematical values there:

You'll see two things in this tree:

using separateRGB and combineRGB nodes, I split the channels into its individual components, and then run each through a custom node group
There is a Power function involved (Gamma). What I'm doing here is mangling the Display Referred pixel values instead of the scene linear ones. The mapping to target values looks more natural this way. You can mute both gamma nodes to see the difference when testing with the photo. This also means for you that you need to take care what you feed the node group with, as it expects the input to be within a 0.0 - 1.0 range

The channel node group itself looks like this:

The user outside of the node group sets a number of colors per channel. But the range the group works on starts at 0, so a 0 - 7 range = 8 colors. That's why I subtract 1 at the beginning of the tree.
Then comes the actual trick. The values are multiplied by the number of colors. So now, the channel values range from 0.0 to 7.0. But usually they are something like 3.76622. Now, that value is going through the Round node. There, 3.76622 becomes 4.0, while 3.422 becomes 3.0. By that, the channel values are spread apart, the smooth interpolations disappear, posterization happens. The result is divided again by the number of colors, to get back to 0 - 1 range.
Result:
Input:

Output (with 8 colors):


Blender 2.9 - how to delete animation action?

You can delete them the way you're trying to, maybe it moves your object as it is not transformed by the action anymore:

You can also go in the Outliner, choose Display Mode > Blender File and under Actions, delete the actions you want with a left click > Delete:

Also, if you press Shift and the X button on the right of the action name in the Dope Sheet, it will be marked as 0 (no user), it won't be saved when you'll close your file and in the Outliner > Display Mode > Orphan Data it will be displayed as orphan and you can delete it immediately if you want:


Attempting multiple loop selects with Alt+LMB; faces are being selected in some parts as well?

The faces are not being selected, Blender auto-highlights faces that you have selected all the vertices/edges for.

When you are switching from edge to vertex mode, all vertices connected to the selected edges are selected. However, if those vertices happen to encompass the entire face, the entire face becomes highlighted. Then when you switch back from vertex selection to edge/face selection, all edges/face between/surrounded by the highlighted vertices are selected.

This is demonstrated below on a cube. I first selected the top and bottom edges, then switched to vertex mode. When you switch back to edge mode, all edges between adjacent vertices are highlighted, resulting in you having all four edges selected.


How to Created Stylized Grainy Cel Shading

Shader to RGB node

Start by creating a bump map from a 3D noise like the following:

Feed a shader with strong specularity with the bump map. Then use the shader to rgb node to extract the color info of the surface. Use a color ramp node to tint the shadow, the midtones and the highlites.


How to I merge two objects so I can move them around as if they were one object?

There are many ways to do that.
One option is to select all the objects and join them into one (Ctrl J).

Another option is to parent all of your objects to one of the objects or to an empty.

Affecting the parent_object/empty will affect all of them, but you can still edit/re-arrange each one of them individually.


Moving object removes fluid while using the FLIP Fluid add on

This issue is caused a bug in FLIP Fluids addon versions 1.0.7 or lower that can result in regular obstacles not interacting properly with the liquid if there is an inverted obstacle present in the scene. This issue has been fixed and this fix is included in FLIP Fluids version 1.0.8 or later. This version is available on the Blender Market, in our Free Trial, and on our GitHub project page.


Rendering an animation, all works except frame 2?

This could be a cache problem. Try to delete the particle cache - add a new one, then delete the old one, to be sure. Jump to the last frame in your animation, and click Update All To Frame.


subdivide at line at the selected location (vertex) of that line?

Here is how I accomplish this when I am modeling:

First, select the edge you want the vertex to be added to.  Then hit W > subdivide.  This will add a new vertex on the edge, then select both the new vertex and then the original one (making sure to select them in that order) and hit Alt + M > at last.  This will merge the two vertices to the location where the original vertex was.


In Blender 2.8, can I reset 'My View' to the initial perspective used when a brand new project file is opened?

Just add a new camera and align it to view.
Then you can always switch to it by clicking the green camera icon.

Add a new camera, and make it active by clicking the green camera icon
Align it to view through View > Align View > Align Active Camera to View
Switch between cameras by clicking the green camera icons


Make specific color in a texture transparent

You can use a "Mix RGB" node set to "Subtract" and invert the resulting mask to get your alpha value.

Note : "Compare" node is a "Math" node with the operation set to "Compare"
Note : "Length" node is a "Vector Math" node with the operation set to "Length". Why it is important.
Result :

You can tweak the third input of the compare node if your magenta isnt pure, to add a threshold. This will also progressively get rid of colors that are closer to the input color. Example :

Also real-life example (Green screen) :


I am assuming you want to maintain a uniform typing speed across texts. In which case, we can assign a weight to each text based some other factor. This weight act as a duration multiplier to maintain a uniform typing animation. In this case, I will choose the length of the text as the weight. Next, I will compute a list that represents the starting times of each animation based on the weights we just computed. This can be done using a simple loop as follows:

The padding is just a constant added to pad the duration allowing for holding the animation for some time. Next, we want to know, at any time, which text are we typing. To do that we use the following numpy expression:

numpy.argmax(sums.asNumpyArray() > frame) - 1

It basically gets the index of the first element in the sums list that is larger than the current frame.

Make sure to import numpy in the Advanced Node Settings of the Expression node. Next, we get the text and its starting time at the output index, we subtract the its starting time from the time and use that as the end trim value as follows:

Now, lets divide the time to slow it down a bit and see what the result:

Increasing the padding will increase the interval between the starting animation of each text. The fading effect can be created just as we did, so I will let you do that on your own.


How can I render an animation without any texture

In 2.79 and previous versions: On the bottom of your 3d view, on the right of the horizontal menu bar, there's a button called OpenGL Render Active Viewport, if you click on it you have a quick render without any texture. The file will end in the folder you choose in the Properties > Render > Output panel.

Since 2.8: In the 3D view header menu > View > Viewport Render Animation:


Why does my cycles preview cause my PC to freeze

It seems like your CPU/GPU can't handle the cycles render.
Cycles samples the scene as fast as it can, I think your computer freezes while trying to sample the scene:
 (You can find this at the top of the 3D view.)
I suggest trying a simple scene and see if that stops freezing the scene. If it doesn't, I believe there is a problem with your CPU/GPU or it is not supported for Cycles.
It may just be a problem with selecting the wrong computing device. If you have a supported GPU you can select it like me under User Pref > System:

And then selecting GPU under the rendering tab:

And if that still doesn't work, try selecting the CPU instead.
And if all that fails, I recommend getting a better GPU/CPU. You can compare and find the best one for your price here: http://olivieramrein.com/2012/02/25/blender-cycles-best-hardware-using-the-benchmark-spreadsheet-analysis/


How does one append/change the values of matrix_basis directly in blender using the python API?

I figured it out. It's pretty straight forward.

let the 3 orthonormal vectors be represented as a matrix,
 rotation_matrix = [x_vec, y_vec, z_vec] (3x3 normalized rotation matrix)

Now, use mathutils to convert this to a set of Euler rotations and Voila!

rotation_in_euler =  rotation_matrix.to_euler()

obj.rotation_mode = 'XYZ'

obj.rotation_euler = rotation_in_euler


I hid that camera icon and the Y,Z,X axis accidentally. How do I get it back?

The name of you have hid is Sidebar.

There is three ways to unhide Sidebar:

3d Viewport > Menu > View > Check Sidebar

Click Arrow at the right corner of viewport

Shortcut N


Well, that's not an easy interface to interpret, is it? First, in the top part of the window is "Plane Point" this is a point on the cutting plane. In your case, I think you should set it to the origin (0,0,0). This is also the pivot point for angle adjustments.
The second part of the window is "Plane Normal." For the Y-Z plane, set it to (1,0,0).   For the X-Z plane, set it to (0, 1, 0) and for the X-Y plane, set it to (0,0,1). In the attached screenshot, it is set to (cos(72°), sin(72°), 0) and the poorly drawn white arcs show 72° for the normal referenced from the x-axis and 72° for the cutter plane referenced from the y-axis.
To further expand, lets cut out Suzanne's face at +/1 36°. I put sin(36°) and cos(36°) into a calculator and got 0.588 and 0.809 so lets see how to put those in:


How can I make particles not rotate after lay on the surface?

You could possibly make the Particles die on contact (by checking the option in the collision tab) and display dead Particles (In Particle Settings)


How do you work with low-res footage and render with high-res footage in the video editor?

The internal proxy generation is very slow in Blender, but what you do is to add all of your clips to the timeline and select them all(A).

Go to the sidebar, hit Set Selected Strip Proxies.

Choose your Proxy resolution.

Hit Rebuild Proxy.

Wait.

In Preview open the sidebar, in the View Tab, select the Proxy resolution.
(the proxies will stay even though you remove all of your footage again)

Or use this add-on for faster batch rendering of proxies:
blendervelvets.org/en/velvet-revolver


Cycles Realistic Lighting & Emission material

Strength of the emitted light. For point and area lamps, the unit is Watts. For materials, a value of 1.0 will ensure that the object in the image has the exact same color as the Color input, i.e. make it ‘shadeless’.

This is junk documentation, written by someone that clearly doesn't understand scene referred values.

A material albedo value of 1.0 means that 100% of the light is reflected back. This does not result in the exact same value as the colour input, which depends on the transfer function and other potential sweeteners in the transform from the scene referred to the display referred domain.

While I can't answer the wattage question any better than the other answers on this site already well written, I can speak to exposure. Exposure is always a creative choice. Glowing eyes will likely always be less glowing than a screaming ball of fire in the sky that is gargantuan. That is a creative issue that could be negotiated with creative compositing or creative exposure within your scene.

  Does this mean that Emission material strength doesn't change regardless of the lighting?

Emissions are scene referred. That is, the effective range of a value is some potentially infinitely small value to some potentially infinitely large value. If you set an emission to 146281.8, it is that value. How that value ends up in your image is a complex byproduct of the aforementioned transform from the scene referred to the display referred domain. That is, think of the transform as a sort of film stock. Various film stocks may have different colour responses, different dynamic ranges, and a few other aesthetic elements that will take a physical scene quantity of light and convert them into an aesthetic output.

  Do materials need to be changed according to the scene (lighting, exposure), or is the simulation realistic and materials only need to be configured for their realistic physical properties?

Starting with physically plausible values is a great entry point. Ultimately however, materials should serve the creative needs.

  Is it normal that realistic light values completely destroy the scene when using default Exposure, and it needs to be dialed way down?

Is it normal for a camera to take an overexposed photo when set to manual? Same idea applies here; exposure is a creative choice, as is balancing lighting in a scene, either starting with realistically plausible values or creatively lighting a piece with artificial sources.

  Is there a way to calculate realistic, physically correct emission for materials? (Ex. the emission of an LED lamp on a monitor)

Yes. This is a duplicate question with more than a few good answers on this site.


How do you model something that looks wrinkled or crumpled?

Create the text

Create a black and white image of your text in a software of your choice (Gimp, Krita, ...)
Make sure your render engine is set to cycles, then use the add-on "Import images as planes" to bring the image of your text into blender. If you don't see this option in your import dialogue, activate the add-on in the user preferences add-on panel. (It ships with blender, but it is initially deactivated)
Change the shader the add-on created on import to the setup shown in my screenshot. This will blend a diffuse white shader with a transparent shader based on your text
Subdivide your image a couple of times, you will need the extra geometry for the cloth simulation. Simulations work best with square faces, first use loop cuts ctrlr to shorten the long side of the text, then use subdivide w to create more geometry

Simulate the wrinkles

in object mode, translate your image object a little on the z-axis, to make some room for the collision objects
create a ground plane and several cubes where your wrinkles should be
in the physics tab of your ground plane and the cubes, choose "Collision"
in the physics tab of your image, choose "Cloth"
run the simulation alta, play around with the cloth settings and the position and scaling of the collision objects to find the wrinkles you like

Render your result

add a camera and a sun-lamp to your scene, position them to your liking
move the collision objects to another layer, so they won't appear in the final render, but remain in the scene in case you want to resimulate
make sure your image plane is set to shade smooth
to recreate the effect of your reference image, I changed the background color to black and rotated the sun lamp to a very steep angle. I also increased the size of the sun to 1, to get the smooth shadows


How to change background color in Blender Internal?

Switch the background alpha from transparent to sky:


Does Cycles GPU Rendering use Single or Double Floating Point Precision?

I chatted and got an answer from someone on the #blendercoders IRC chat. They said that Blender does use single precision floating points. The GeForce cards are going to be the best choice for rendering because they do better at single points than doubles. The Quadro and Tesla lines wouldn't perform as well because they handle double point operations better than singles, and are mostly used in CAD and software that does scientific research. So, the best choice would be to go for the GeForce line because they perform better at single point operations which is what blender uses.


Is there a Hand tool avaliable like in photoshop?

The "Hand tool" is made by Shift+ Middle Mouse Button.
To export select the mesh, Shift+ S Cursor to Center, select your mesh, Shift+ S Selection to Cursor, then export.

In this way, when you export the object it will have his origin exactly in the center of the scene, which is where the export .obj function places the pivot point.


How do I match the range of a distance driver to the value range of a key shape?

You need to setup Driver's F-curve. It shows how distance between objects (horizontal)  corresponds to  Shape Key value (Vertical):

So if distance 0.7 corresponds to Shape Key value of 0 and 2.6 corresponds to 1, You need to create a line between this 2 dots in drivers window:


Viewport is rendering banded shading, but only in the Layout tab

I'm not sure about what's happening, but turning off "cavity" from the viewport setting could fix the view. When I render it out on both EEVEE and cycles, it doesn't seem glitching.

(Make sure it's turned off)


Transparency in Images as planes, Blender 2.8

If you have a look at the Alpha channel (plug the Alpha output from the image into the Surface Node from the Material Output), you can see that alpha is stored as a black & white image.
White means fully opaque, black stands for fully transparent parts. But values in between are also possible!

So if you want the opaque parts to be partially transparent, you need to dim the white color to a grayish color. There are many ways to do this. For instance, mix the alpha channel with black color using a MixRGB node. If the factor is 0, the result will be the original image whereas a factor of 1 results in a completely black image (which means fully transparent).
Now that we have seen the effect this has, we can connect the mix output to the alpha input of the Principled BSDF. Then connect the BSDF output back to the material output. And there is the transparent image :)


When I Link Some Modifiers From One Object To Another It Dosen't Copy All of Them

This was reported to the bug tracker, here: T66798

It was concluded that it was intentional that it works this way and was therefore not a bug.

Philipp Oeser had this to say:

  from the Physics panel, Forcefield, Ridgid Body, Ridgid Body Constraint are no real modifiers, so these wont be copied
  Collision is explicitly excluded in code [this could be made working, needs some care because data related to collisions is stored
  in PartDeflect which has other stuff in it too, cant just copy it,
  will look into it but that's for later...]
  the others seem to be working fine
  so no bug here

Essentially, this seems to be saying that the Collision modifier is skipped because there is other data that can't be copied in a simple way. So, rather than a bug, it seems to be a limitation which may or may not be improved in the future.

As to why any existing modifiers are removed from the object you want to copy modifiers to, existing modifiers are replaced, not added to. So any existing modifiers are removed before any modifiers that can be copied are added.