Since asking this question, I've made a small (single script) plotting utility.

This could be made into an add-on however I find it useful as-is.

Usage:

Paste this script into a text-block named blend_plot.py and press "Run Script".
Running the script will create a blend_plot_func.py text-block containing an initial plotting template (if you don't have one already). eg:

def plot(x, **kw):
    return x

You could change this to, for example:

def plot(x, **kw):
    return 1 - ((1 - x) ** 2)

Playback animation (a curve object will be automatically created if you don't have one active already).
You can duplicate the object and move it around, only visible objects are handled, so hiding or moving to disabled layers can avoid extra computations.
If you want to change blend_plot.py (curve resolution for eg). Simply edit the values and run the script again.
You may want to turn your scene's FPS down, anywhere from 5 to 15 FPS (to reduce CPU usage).

Some benefits of this method:

Easy to view and change parameters for multiple plots at once (overlay or side-by-side, objects can be moved around since the script only updates object-data).
Easy drag values with real-time updates as well as using Blender's animation system.

Other details can be found in the code header.

# All in one plotting utility.
#
# - Uses a frame-change handler
#  (play back animation for real-time updates as you type)
# - Expects module `blend_plot_func.py`, to have a function called `plot`
#   which takes and returns a float and keyword arguments,
#   which are taken from custom properties.
# - Will update all objects in the scene
#   (supports multiple plots at the same time).
# - Scene and Object custom properties,
#   are passed to the plot function as keyword arguments.
#   (Scene properties are like `global` variables,
#   Object properties can be different for every object).

# Curve resolution
RESOLUTION = 320
# Range to show
RANGE = -1.0, 2.0
# RANGE = 0.0, 1.0

# Framing
MIN = 0.0, 0.0
MAX = 1.0, 1.0

PLOT_MODULE = "blend_plot_func"
PLOT_TEMPLATE = """
# Plot module template
from math import *

def plot(x, **kw):
    return x
"""

# End constants
# -------------

import bpy
from importlib import reload
from math import isfinite

def reinit_curve(context, curve):
    """ Initialize or re-initialize curve data.
    """
    curve.splines.clear()

    curve.fill_mode = 'NONE'

    # plot spline
    spline = curve.splines.new(type='POLY')
    spline.points.add(RESOLUTION)

    # frame spline
    spline = curve.splines.new(type='POLY')
    spline.points.add(3)
    spline.points[0].co.xy = MIN[0], MIN[1]
    spline.points[1].co.xy = MIN[0], MAX[1]
    spline.points[2].co.xy = MAX[0], MAX[1]
    spline.points[3].co.xy = MAX[0], MIN[1]
    spline.use_cyclic_u = True

def init_object(context):
    """ Call when we have no active plot-curve.
    """
    curve = bpy.data.curves.new(name="Plot Curve", type='CURVE')
    reinit_curve(context, curve)

    obj = bpy.data.objects.new(name="Plot Curve", object_data=curve)
    context.scene.objects.link(obj)
    context.scene.objects.active = obj
    obj.select = True

    return obj

def plot_callback_object(scene, obj, plot_cb, kw):
    from bpy import context

    curve = obj.data
    points = curve.splines[0].points if curve.splines else ()

    # re-initialize curve if we change settings
    if len(points) != RESOLUTION:
        reinit_curve(context, curve)
        points = curve.splines[0].points
    # print(kw)

    i_last = float(RESOLUTION - 1)

    span = RANGE[1] - RANGE[0]

    for i, p in enumerate(points):
        x = i / i_last
        x = (x * span + RANGE[0])
        try:
            y = plot_cb(x, **kw)
            if not isfinite(y):
                y = -1.0
        except Exception as ex:
            print(str(ex))
            y = -1.0

        p.co.xy = x, y

def plot_callback(scene):
    """ Runs on frame change, updates all objects in the scene.
    """
    try:
        plot_module = __import__(PLOT_MODULE)
    except ImportError as ex:
        # Create a new text block if this is the first execution.
        text_name = PLOT_MODULE + ".py"
        text = bpy.data.texts.get(text_name)
        if text is None:
            text = bpy.data.texts.new(name=text_name)
            text.from_string(PLOT_TEMPLATE)
        else:
            raise ex

    reload(plot_module)
    plot_cb = plot_module.plot

    from bpy import context
    obj = context.active_object
    if obj is None:
        obj = init_object(context)

    # use my keywords for all!
    kw_global = dict(scene.items())

    for obj in context.visible_objects:
        if obj.type == 'CURVE':
            kw_local = dict(obj.items())
            kw_copy = kw_global.copy()
            kw_copy.update(kw_local)
            plot_callback_object(context, obj, plot_cb, kw_copy)

bpy.app.handlers.frame_change_pre[:] = [plot_callback]


Background

This is how to create a new object and add the vertices in the verts list:

import bpy
import bmesh

verts = [(1, 1, 1), (0, 0, 0)]  # 2 verts made with XYZ coords
mesh = bpy.data.meshes.new("mesh")  # add a new mesh
obj = bpy.data.objects.new("MyObject", mesh)  # add a new object using the mesh

scene = bpy.context.scene
scene.objects.link(obj)  # put the object into the scene (link)
scene.objects.active = obj  # set as the active object in the scene
obj.select = True  # select object

mesh = bpy.context.object.data
bm = bmesh.new()

for v in verts:
    bm.verts.new(v)  # add a new vert

# make the bmesh the object's mesh
bm.to_mesh(mesh)
bm.free()  # always do this when finished

This is how to alter an existing mesh:

import bpy
import bmesh

verts = [(1, 1, 1), (0, 0, 0)]  # 2 verts made with XYZ coords
mesh = bpy.context.object.data
bm = bmesh.new()

# convert the current mesh to a bmesh
bm.from_mesh(mesh)

for v in verts:
    bm.verts.new(v)  # add a new vert

# make the bmesh the object's mesh
bm.to_mesh(mesh)
bm.free()  # always do this when finished

Answer

As for selection:

import bpy
import bmesh

mesh = bpy.context.object.data
bm = bmesh.new()

# convert the current mesh to a bmesh
bm.from_mesh(mesh)

# must run this so we can use indexing on the faces
bm.faces.ensure_lookup_table()

# "select" the 0th face by setting its select property to True
bm.faces[0].select = True

# make the bmesh the object's mesh
bm.to_mesh(mesh)
bm.free()  # always do this when finished

# go back to edit mode to see the selection
bpy.ops.object.mode_set(mode='EDIT')

To test this:

Add a cube (go into edit mode and deselect all faces)
Paste the script into Blender's text editor
Hit run script in the text editor with the cube object still selected


You'd better just make a Proxy (Object -> Relations -> Make Proxy) or make a link duplicate of the linked object ( Duplicate Linked ).
Linked object can't be moved, but linked duplicate of linked objects can (they work just like proxies for this matter).


Make sure you don't have any axes locked in Tool shelf > Symmetry / Lock > Lock:


Is there a secret setting that keeps me from painting textures

It was a really simple solution - change Blend mode of the brush to Add (in this case) instead of Color and remove texture mask with empty texture from the Texture rollout.


[Nodes]Straight displacement for UV Sphere

I am using cycles with experimental feature set.
On the uv sphere i am adding adaptive subdivision.

Selecting the area to extrude with less than node

Adding vector displacement

The multiply node is used to change the displacement distance

combine xyz node is used to get the -z direction. The displacement will occurs in this direction.

The normal displacement node displaces along the surface normals, hence you get a conical displacement


It seems like you have done some of things I would have already suggested.

Use Blender-internal or OpenGL render.
Reduce anti-aliasing samples.
Use a shadeless material
Don't use any lamps.
Tweak text resolution (for fewer triangles)
Experiment with tile size (larger tiles may give better performance)
Lock the user interface while rendering.
Render from the command line. (means you can't use OpenGL easilysee  Render with openGL from the command line? )
Check which formats save to disk fastest (PNG with low compression is quite good).


Copy the scene to a new one (you can call it "freezed"), then choose the frame you want to freeze, select the fluid object and apply the simulator modifier.
At this point you can do every animation you need without affecting the shape of the fluid.


The normal texture needs to go tough the Normal Map node. The texture data is normalised so the normal vector is between 0 and 1 (0.5 as mid value) for each channel. This needs to be recalculated to be in the range from -1 to 1 (0 as mid value). It will also convert the tangent space vector to world space.

If you need to scale the UV coordinates, the Mapper node should change the values from the UV Map node. UV coordinates are usually 2-dimensional where a texture always are within 0 - 1 range. If you go outside this range the texture gets repeated if the Texture node is set to Repeat.

But the simplest way is just to scale the UV coordinates in the UV Editor.
It does not matter if the islands are overlapping (unless they are used for baking) or exceeds the texture boundaries (if the texture is tiling). In fact, tiling textures are made to work this way.


How to soften the edges/faces of a solid?

What you can do is select the left and right edge, as well as the top and bottom loop like so (make sure to do so while selecting edges, not faces):

Then, click N to bring up a tab on the right. Under Transform, set the mean crease to 1 like so:

Then, add a Subdivision Surface modifier to your object:

And you're done, your model should look something like this:

The smoother you want the object to be, the higher the View and Render number in the modifier should be.


How to bake AO + Diffuse into one map in cycles?

Generally, you do not want to do this for AO, see Adding Ambient Occlusion to Material

However, if you really want to in this case, you can just bake the diffuse channel. Since you multiplied AO into diffuse, it is now part of diffuse. So just bake that. If you don't want to also include lighting, set bake type to "diffuse" and bake only the color pass:

(remember, however, by multiplying AO over diffuse, you are already "including lighting" as AO is lighting, not color)


Irregular UV unwrap from rectangular object

To fix this, I used the Conformal unwrap method. Thanks @Denis.


Adding bevels to a simple object messes up the mesh

Thanks to the help from @cgslav, pointing me in the right direction, and from this video: Blender Hard Surface Modeling : Are NGons Bad?, I was able to work out the steps to get the bevels I wanted without the messed up final result. Those steps are as follows:

First, add the bevel to the bottom four edges to convert those
angles to smooth curves.
Now you can add the finishing bevels to the straight edges:
Go into Object mode
Click Smooth in Tool shelf -> Tools -> Edit -> Shading
In Properties Editor -> Data -> Normals, select Auto Smooth
Go into Edit mode
Make sure select mode is set to Edge Select
Press A to deselect all edges
Menu Select -> Sharp edges
Properties -> Transform -> Edges Data
Set Mean Bevel Weight to 1.0
Set Mean Crease to 1.0
Press Ctrl-E, select Edge Data -> Mark Sharp
Press Ctrl-E, select Edge Data -> Mark Seam
Go into Object mode
In Properties Editor -> Modifiers, select Add Modifier -> Bevel
Under Limit Method, choose Weight
Increase number of segments to 4
Set Width to 0.1

Here is the final result:

As you see, the side surface is perfectly flat and straight now. I am very pleased with this, and hope it will help others who come across this same issue.


I think you could use a texture map instead of a procedural map.

I made a seamless tile using your image.

You can play the dimensions using a mapping node.

See the image below:


Proportional editing effects all items within a sphere of influence. If the sphere is very large then everything appears to move the same amount.

The two standard methods of adjusting this size are mouse scroll wheel and page up/page down. For a laptop there is also a trackpad pan setup, I believe apple trackpads do panning with a two finger swipe.

If you still have trouble you can modify this shortcut yourself, you can find it by going to the user preferences->Input, down the bottom of the list there is a group called 'Transform Modal Map' expand that and you will find Increase Proportional Influence and Decrease Proportional Influence for both keyboard and mouse, you can change these to any key combination that works for you.


animation nodes sorting object list by XYZ

I think you almost got it. I initially started designing loop subprograms but the sorted method and the expression nodes are your friends.
Remember you can chain expression nodes. Add an input of type "Object List"
The 3 expression nodes you should write are like so :

The 3 lines of code:
sorted(objs,key=lambda obj:obj.location[0])
sorted(objs,key=lambda obj:obj.location[1])
sorted(objs,key=lambda obj:obj.location[2])

To visualize it, create a loop subprogram to change the viewport color of the object depending on their order in the new, sorted list.

Add the subprogram at the end of your expression nodes :

Result :

Additionally, as a stand-alone python script :
import bpy

objs = bpy.data.objects; # Replace by relevant objects or collection
for axis in (0, 1, 2):
    objs = sorted(objs, key=lambda obj: obj.location[axis])

objs_len = len(objs)
for i, obj in enumerate(objs):
    fac = i / objs_len
    obj.color = (fac, 1 - fac, 0, 1)

Edit after comment asking for another way to sort the list (right to left, back to front, bottom to top)
You just have to add a slice operator at the end of the 2 first expression nodes to reverse the list : [::-1] See this doc for example (example 2)
So the expressions become :
sorted(objs,key=lambda obj:obj.location[0])[::-1]
sorted(objs,key=lambda obj:obj.location[1])[::-1]
sorted(objs,key=lambda obj:obj.location[2])

Result :


How to manage multiple f-curve modifiers

If I'm understanding the question correctly, you should be able to apply the modifier to one curve, copy it, select all of the curves, and then paste.


How to bake a fake SSS map (thickness map)

Note: you must use a version above 2.79 to have access to the AO node: https://builder.blender.org/download/

Create an Emissive shader then add an Input > Ambient Occlusion. Check Inside and Only Local (surrounding objects won't affect the AO). For the distance I have used 0.4 on Suzanne but you can tweak it depending on the model and scale (don't forget to apply the scale with Ctrl + A > scale).

To add blood directly on your model:

add a Mix node and set the first color to black, connect the inverted AO to the second slot. The factor of the node allow you to adjust the amount of blood that will be visible.
Add another mix node, connect the previous mix node to the factor, do not display too much blood. Set the first color to the base color and the second to the blood color. For the blood you can use R: 0.7 GB: 0.1.
Optionally overlay it to an Input > Geometry Pointiness node, use a Converter > ColorRamp at 0.45-0.55 to contrast it.
Finally multiply it to an Ambient Occlusion map if you use an emissive shader, otherwise the AO will be added with your scene's lighting.

Tip: you can adjust the samples of the AO depending on how much visible it is to render or bake faster.


Suddenly camera becomes so thin and not being scaled

You've probably changed the resolution settings (or the aspect ratio). Set them back to the size you need for the final output.


Why is moving objects, on the Z Plane, so unprecise?

When translating constrained to a plane, the mouse motion is translated relative to that plane. This is fine when the 'view' is relatively distant to the plane but if the view is close to the plane of motion then any small movement can be drastically amplified (for example, moving the mouse slightly 'up' can result in the object disappearing into the distance).

To test this, simply open the default scene. Select the cube and G to grab it, then Shift+Z. Note that when you move the mouse the motion of the cube closely matches. Cancel the movement by pressing Escape so the cube returns to the centre.

Now move the view so that you are close to the plane of the grid like so :

Now repeat the above keystrokes to grab the cube constrained to the plane. Move the mouse up/down and see how it now behaves - it will shoot off into the distance as the mouse moves up. The motion is relative to the plane - since the plane is at a very shallow angle in the view, small vertical motions correspond to large changes in distance.

To avoid this issue simply ensure the view point is not close to the plane of motion.


Render Blender's Internal Halo Material with GPU?

Blender Internal is designed to use CPU, not GPU, thus making this impossible... for now

Related:

Graphics Card Not Avalible in Blender Internal


Exporting issues (no thumbnails in windows explorer)

I made some tests but the lossless output did not show the thumbnail.

I think the best solution is using the high output encoding.

See the images using medium, high and lossless values:


What format is the model in? What about quads or mesh?
Quick answer is you could boolean a big box to cut the pieces off.


Materials change when I export a fbx file to Unity

This is normal, occurs because each software has a different material system.

When you export to fbx it converts the information to a "universal" compatibility format, so some types of standard information are preserved, like diffuse color, vertex paint, UV Maps, but not Blender specific settings like multi layered textures, alpha, blending mode, etc. .

Unity has a very restrictive material system that makes hard to adapt complex graphic ports. In some instances you may have even to write shaders in c# code to get good results, so for porting to Unity keep your materials with as simple setup as possible.


Reloading texture with python not working

Hi in addition to what J. Bakker said, here is some code that I used in TexTools addon to reload all images and remove unused ones.

import bpy

# Clean up unused images
for img in bpy.data.images:
    if not img.users:
        bpy.data.images.remove(img)

#Reload all File images
for img in bpy.data.images :
    if img.source == 'FILE' :
        img.reload()

Hope this helps,

renderhjs


Text Game Properties in Blender (Python)

A text object gets it's own button to Add Text Game Property. This button produces the same effect as the normal Add Game Property with the type set to string and name set to 'Text'. This 'Text' property of the text object gives the ability to get and set the contents of the text object during game play.

The 'Text' property can be accessed the same as other game properties, by treating the object as a dictionary and the property name as the key.

In a python script used as a controller that would normally be with -

cont = bge.logic.getCurrentController()
own = cont.owner
txtVal = own['Text']
own['Text'] = 'NewString'
own['prop'] = 25
own['prop2'] = 'a big long string'

Other objects in the game can also be accessed -

sce = bge.logic.getCurrentScene()
sce.objects['otherObj']['Text'] = 'something'
sce.objects['missile']['prop3'] = 356

Properties changed during game play only exist for the duration of the game. Values set in the Game Logic Editor will be in effect at the start of a game, with the 'Text' property being set to the contents of the text object set in edit mode.

EDIT: response to your code example.

While your debugging your scripts you will want to watch the console output. It can contain hints as to why your scripts fails.

In python scripts formatting is important, the indentation defines separate parts of code. Not sure if any formatting got lost copying your code across but it appears you have a function and the following code might be meant to be part of that, if so that code isn't going to run unless you add a function call at the end of the script. For this small script you don't need any functions.

The all important last line, you are mixing strings and integers which you need to convert to work as you want. int(strValue) will give you a number you can calculate with and str(number) will then give you a string to use for the text value.

import bge

cont = bge.logic.getCurrentController()
sce = bge.logic.getCurrentScene()

own = cont.owner
refillObj = sce.objects['Refill']

refillObj['Text'] = str( int(refillObj['Text']) - (80- int(own['Text']) ) )

It would appear that you may be trying to jump ahead of yourself. I'd recommend you spend an hour or so going over a python introduction tutorial to get more familiar with basic python concepts first. The official python tutorial can be a good start, even if you only go over parts 3 to 6.


How can a evenly spaced grid with a circular boundary be modeled?

Grid first, then cut it by Knife Projecting a circle.

I would start by modeling the evenly spaced grid with a couple of Array modifier (one to repeat the geometry on the X axis and one on the Y). Check the Merge boxes to avoid obtain disconnected geometry.

Apply the two modifiers, then create the circle and Knife project it on the grid.

Invert selection and delete the unwanted faces. Now Inset the faces individually, Extrude, Mirror the result, and so on...

In my example I also Beveled the edges and added a Lattice modifier after some Simple Subdivison iterations as you can see in the modifier tab on the right.

Bonus:

You can loopcut a circle's faces if you model them properly (no tris, axial edge flow) as shown in the gif below:

but it would be trickyer to get an evely spaced grid because of the vertices distribution along the circle. That's why is better to model the grid first.


In Unity to save processing power the model does not render both sides of a face, the problem is you have accidentally set the face normals the wrong way, thankfully it's easy to fix.
In Blender, select the object you need to fix and open edit mode, press a to select all and then press Option+N for Mac or Alt+N for PC. Then just select either flip normals or Recalculate outside. If you want to check if the normals are the right way without putting it into Unity you can set Backface culling to true in the materials settings window.
For example:


Afaik no, but it could also depend on the specific exporter, since they are all independent (made differently).

eg: the collada exporter has a specific option.

The simplest way to get what you need is to save your file, then create a new empty blend file and import in it from the saved file where you have only what you want (eg chest piece).

Then, even without saving the new file, export from that new file to th eformat you need (eg: obj, dxf, fbx, etc.).


I would try clean up that topology around the bottom of the glass - rather than those stretched areas, delete those faces and try clean loops, it will help even out the subdivision surface. Use edge loops or Inset (I) as required.


Don't worry about it.

Compiler Warning (level 1) C4005
'identifier' : macro redefinition
The macro identifier is defined twice. The compiler uses the second macro definition.

In most of the programming language, warning often mean bad code structure that might let the compile process work in a bad situation. But most of the time it just indicate the programmer that there might be a better way to implement the code.
And in this warning (C4005). It is fine for any performance issue since the compile should handle it correctly by ignore it or replace it. And in the source code they should be the same value and it's a minor thing in my opinion.
Only if you try the build and find out there are something wrong, you should check back if there is some bug in source code. And most of the time those bug will raise an error and halt the compile process.
Advise
If you care about those thing, you can search those warning in google or something else. With the key word after your code path, e.g. warning integer conversion resulted in a change of sign


cycles bake script error: "Circular dependency .."

Cycles is baking on the texture ( not the new image ) itself because you haven't changed the active node through the script, just add nodes.active = node inside add_bake_nodes() like this :

# function to add nodes
def add_bake_nodes(mat, name):

    # make sure using nodes
    if mat.use_nodes == False:
        mat.use_nodes = True

    nodes = mat.node_tree.nodes

    node = nodes.new(type="ShaderNodeTexImage")
    bake_img_txt = "bake_img_" + name
    node.name = bake_img_txt
    nodes[bake_img_txt].location = 300, 160
    nodes[bake_img_txt].image = bpy.data.images[name]
    nodes[bake_img_txt].select = True
    nodes.active = node   # set it as active node

   ......

"Circular dependency for image" because the image that is used as a texture (read from) is the target of the baking (written to)


Why am I still seeing a wireframe in rendered - and all views?

In edit mode select all -> merge(m) -> By distance
Those edges are not part of that mesh. You can simply move them around by selecting those edges in edit mode


How to hide the main menu and the toolbar of the 3D View?

View menu > Area > Toggle Fullscreen Area.

Keyboard shortcut: Ctrl+Alt+Spacebar.


what is this panel and how can i make it gone?

Press "T" ("Toolbar") to let it go away. The panel is made for people not know how to enter the displayed modes of manipulating objects.


High start clipping causing dashed edges in 3d view?

its because Graphic cards Render the depth to a 16 - 32 Bit Depth Buffer where the start Clipping is 0 and the end Clipping is the max Value. But that Depth Buffers are only 32 Bit and 1e-40 is equal to 2e-40 there because its rounded.
And when that happens the Graphics card can't figure out whats in the front and whats behind. You can also see this if you add 2 Planes is the exact same spot and then color them differently. You can even experiment with the distance between that planes and the clipping.


Look in the Outliner, you probably have an object whose visibility is disabled for the viewport (eye icon) but enabled for rendering (camera icon)

Or you have a duplicated object in a layer that is not visible on the 3D viewport but is renderable.


Your image viewer is set to the composite. If you use nodes in your composite, it's possible you forgot to connect your last node to the output. The composite will just show up black, like you showed. If you didn't want to use the compositor, just uncheck "use nodes" in the node editor.

To access the node editor, just click the farthest left button in the 3d view, then select node editor, and make sure it is set to the composite nodes.

Alternatively, you can just uncheck "compositing", under post processing in the properties pane:


I would try using a bevel modifier and add it to the top of the modifier stack. It adds more cuts to the edges giving it a more defined look to the overall shape you may be looking for.


How to solve the pinching in this concave geometry?

As suggested in the comments, you can use a 'guide mesh' that the vertices of your object can snap to. The guide mesh is a simplified version of your object that describes the curvature that your original object should take. This works because some close-together edge loops not conforming to the curvature of the overall surface, creating a pinching effect. A guide mesh will force all vertices to perfectly match a surface.

I have created a guide mesh by adding a plane with a few subdivisions with a Simple Deform modifier set to 'bend' on it. You don't need to use a Simple Deform modifier, I just did this to get a perfect curved plane. It also has a Subsurf modifier before it to give the Simple Deform modifier more geometry to work with, meaning a smoother bend:

I then add a Shrinkwrap modifier to your original object and choose the simplified object I just made as the 'Target':

This does improve the result - the original object is now being clamped to the smooth, simplified object, however, we can improve the result by improving the topology of your original mesh.

Here we see some improved topology:

The further apart, or more evenly, your edge loops are placed the smoother your mesh will be, however, you obviously need some edge loops to be close together to create that sharp corner. The green markings in the image show that the edges near the bottom have been spread out whilst the red ones at the top have remained close. The orange markings show edges that have been partially spread out so that the change is more gradual. This gives us the best of both worlds, close edge loops where needed, but spread out where not.

I used the add-on 'LoopTools' add-on (which comes with Blender) as it has a 'Space' option (W> 'LoopTools'> 'Space') to evenly space out selected edges. On some edges I reduced the space 'Influence' in the 'Toolshelf' so they were only partially spread out.

This gives us this result:

You will notice some slight creasing still where that 'diamond' face is on the other sharpened corner, so you could use the same technique of spreading edge loops on this part of the mesh too instead of the 'diamond' technique.

Now, obviously, this was done on a flat mesh, whereas your mesh has some thickness to it. The solution to this is to either:

Add a Solidify modifier after the Subsurf modifier.
Use a second simplified object for the inside part of the mesh and use vertex groups to assign which modifier should effect which vertices.
Apply the Shrinkwrap modifier and extrude normally.


Answer A:
The reason it doesnt work is that you have a very bad (unecessarily huge and unstructered) topology (See 1). Using a fresh and nicely subdivided icosphere/uv-sphere the boolean operation should work better. (See 2) I'd also suggest to use simple topology cylinders with bevels instead of those highpoly triangled ones.
I'd say build it from scratch and lowpoly, but if you dont want to, to keep your creases/trenches you could also try the new remeshing options (Voxel/ Quadriflow) to get some clean topology.
Your specific modell is easily reproduced using a mirror-modifier workflow, after extracting the necessery parts from an UV-Sphere via Separate. (See 4, m-mod is not applied yet in image)

Answer B:
Workaround for unreliable boolean modifier when using a loose parts cutter objects - meaning the cutting objekt has multiple unconnected polygroups inside:
Separate your cutting object by loose parts and apply to every loose part to be cut a boolean modifier per loose part cutting object.(per cylinder in this case)
Doing this by hand is tedious! Here is a script to set boolean modifiers to the active object for every single object in a specified collection:

import bpy

#boolean modifier will be applyied to active object
obj_base = bpy.context.object
#per object in collection named "Coll_Cutter" the active objects gets one boolean modifier
collCutter_name = "Coll_Cutter"

for c in bpy.data.collections:
    print(c.name)
    if c.name == collCutter_name:
        cutterlist = c.all_objects

for cutter in cutterlist:
    bool_one = obj_base.modifiers.new(type="BOOLEAN", name="bool 1")
    bool_one.object = cutter
    bool_one.operation = 'DIFFERENCE'


Why it is impossible to drag an image into UV/Image Editor and Node Editor?

I do not believe it is. You will need to add an "image texture" node, then select "open image". From there, locate your image. If it is a video, add a "movie clip" node and do the same. Hope this helps!


Trying to edit the nose, but zooming in will display the vertices behind it

Try to change the Clip Start of your scene in the 3D View Properties panel (activated with N, on the right of your 3D View window) > View > Clip > Start.


Is it possible to add fake user to animation actions after saving model without having done so?

Yes, you can still bring this back as long as you haven't closed Blender. If you did close Blender, you can only bring it back if there was an item that's using the datablock containing that Action. The whole reason for giving a datablock a fake user is to stop Blender from cleaning it out along will all the other un-needed items when you close it. I suspect it to be a resource thing.

In the Dope Sheet window, switch the mode from 'Dope Sheet' over to 'Action Editor'. There should be a dropdown next to the Key menu option at the bottom of the Dope Sheet Window that lets you do this.

Further down the menus at the bottom of the Dope Sheet Window, there should be an Action Selector. The look of this selector changes a bit based on whether or not an Action is currently selected. Either way, there will be a dropdown button with an image of three diamonds forming an upside-down triangle. If no action is currently selected, there will be a button that lets you create a new action. If an action is selected, there will be a text box with the Action's name, followed by the fake user button, create new action (based on current action) button, and de-select action (un-link datablock) button. Use that drop-down to select the Action you want to add a fake user to.

Once the Action is selected, you can add (or remove) the fake user.


Is there a way to add objects to an empty group?

Select your objects you want to add to the empty group and run Python script:

import bpy

group_name = "James Bond"
for o in bpy.context.selected_objects:
    bpy.data.groups[group_name].objects.link(o)


Its because of wrong weight paint.

Solution: In pose mode select a bone and Shift select the model and switch from object mode to weight paint mode you will see the model with blue and red color.

The red color represents the area which is under the effect of the bone in the Tool panel select subtract and paint on the parts you don't want the bone to move which are the (eye brows I guess) wallah and watch the tutorial by blender on weight paint basics on youtube ..


How to find x,y,z coordinates of a mesh in edit-mode?

As ideasman42 wrote in his comment, this will work for any mesh in edit mode, regardless of whether it was imported from PLY or any other format, or generated within Blender:

import bpy, bmesh

bm = bmesh.from_edit_mesh( bpy.context.object.data )
mw = bpy.context.object.matrix_world

selected_verts_coordinates = [ mw * v.co for v in bm.verts if v.select ]

print( selected_verts_coordinates )

This will only work for selected vertices when the mesh is in edit mode.


How do I move multiple vertices to the same point at the same time?

The new method, ALTM, has already been mentioned. The other solution is to set the pivot point in the header to either active or cursor and then scale the selection to zero S0RETURN. Scaling or rotating around the active element is pretty cool since it makes the last selected, white vertex the center.

It's actually useful to know both ways because with scaling you can exclude an axis. Let's say you want to move them all to the XY position of some topology but leave Z unchanged. Then you can place the cursor on the target and use SSHIFT-Z0RETURN. There's just the additional step of W4 remove doubles.


Applying armature removes weighted vertex/armature?

Actually, I think i found an answer. I marked my character and applied it's location, scale, and rotation to "3D cursor" at center, and then made the armature. And it works now. But thanks anyway, I did learn something or two :) It must have been something about the mirroring on negative scale ? All my normals had to be flipped once I did that. Have a nice day!


Profile a blender file to optimize render speed and quality

The Cycles Roadmap mentions the following goal:

  Statistics: for power users to investigate why rendering performance is slow, why memory usage is high, which objects or materials to optimize, etc. This would be a log generated that could be shown in Blender or as a HTML report, and possibly also debugging AOVs.

However, this goal currently (December 2016) is not scheduled to happen soon, it is in the

  things we think are very important, but that no one at the meeting planned to work on within a specific time frame.

category.


Animated procedural stylized water ripple in Cycles material

Distorting The Circle

I did some more experimenting and I got like a 50% success in distorting the circle.

I added 2 cross product nodes and 1 normalize node to screw around with the x y z values before plugging it into the multiply nodes which are now in the 'circles' node group.

The theory: The 'circle' node group draws an infinite amount of n unit lines from the origin of the cube, creating a sphere with a radius of n units. Where the sphere intersects the fluid, a circle of diffuse material appears on the fluid.

To achieve the distortion, a relative IRL suggests that I randomize the radius of the sphere by jumbling up the x y z location data of the cube. It should be able to mess up the radius enough to make a wavy looking circle. I used cross product because it was the one that came close to the desired result.

I wish I could explain this better, but then again, I'm no math wiz.

It looks close but when I render out the animation...

I got electricity instead. Coooooooooool but still not what my project team needs.

Aside from how it looks like electricity, it still doesn't hug around the cube as much as it should and there's very limited controls on how much it spreads out.

Trying Out Dynamic Paint

I never considered trying out the vertex format but as suggested, I looked deeper into what it does and it works like a charm for problem #2. The setup is shown below.

The node setup doesn't look like a nightmare anymore. Thanks, Duarte!

This is still an incomplete answer. I might update this answer as I find out more stuff. Feel free to add on top of this or come up with a better solution altogether.

What's Next: How to make the distortion behave properly (or find something else that behaves properly) and hopefully, apply that on top of the dynamic paint.

.blend file with the electric ripple thing:

.blend file with dynamic paint:


how to have one force field influence on 2 collection?

The basic way to affect a force field to an emitter: Put your force field into a collection (let's call the collection Force), select your emitter and in the Properties panel > Particle > Field Weights > Effector Collection, choose the collection called Force. Do the same for the other emitters. It seems a bit buggy so if it doesn't work, remove the Effector Collection and select it again (or tweak some values in the particle settings).
If the emitter has no Effector Collection, all the force fields of the 3D scene will affect it.
If your 2 emitters have 2 different effector collections and you want to affect one force field to both these 2 objects, then put your force field into both these 2 collections (ShiftM > Link to Collection).


With some trouble shooting it appears this could be fixed by increasing/adjusting auto smooth. Per the blender manual the auto smooth angle appears to have a threshold that if broken will consider the edge sharp.


How to disable a strange white circle around the cursor in UV editing mode?

You might have proportional editing enabled. This can be toggled with O

It can also be found under Mesh > Proportional Editing


How to convert edge selection to outer edges only?

Ensure you are in edge selection mode CtrlTab > Edges.
Then in the 3D view header Select > Select Boundary Loop

Alternatively you could (for such a simple selection) just hold Alt and RMB  on the first edge, then ShiftAltRMB  on the second edge.


2.8x ADD-ON - I need an add-on to "paint" instances of an object over another object's surface

If I understand what your goal is correctly, then here is a solution that should work for you in version 2.8 without needing any add-ons or extra tools.

Move your clone object(s) to a new collection with M and give it(them) a useful name, such as "hair".

Add a new vertex group to your main object, Suzanne in our example here. You can leave it at the default name "group" or rename it to something more useful like "hair".

Add a new particle system and change the following settings to begin with:

Most default settings are usually fine, but here you want to Render as Collection, and set the Density Vertex Group

With all of that done, you can now paint your clones. Ctrl+Tab into Weight Paint Mode  and  paint away! Everything will paint into the last active vertex group, adding to the density group of your hair system.Ctrl+Tab again to return to object mode

See the gif below adding icospheres to Suzanne.

You may also randomize velocity if you'd like, (this will allow some randomness in rotations)  the option is pictured below.


As mentioned in comments, multiple vertices that are in the same place can be removed by selecting them, and then pressing W while your cursor is over the 3d view area, and selecting 'Remove Doubles' from the pop-up menu. It is good practice to remove any doubled vertices that sometimes appear due to minor mistakes now and then, by selecting all vertices and doing the same thing.

The last part of your question is a separate matter (and thus preferably would be a separate question for better clarity, but no worries). From what you say, it sounds like this is one object, a column, with everything joined together. If so, you can select everything connected to it by selecting any part of it and then pressing Ctrl + L. Then, select the reverse of that by pressing Ctrl + I. That will leave selected everything that isn't part of the column. You can take a closer look at what it is by pressing . on the Numpad, which zooms to what's selected.


How to make independently editable copies of the same node group?

Click the little number next to the name of the node group after duplicating it:

This will "unlink" that node group and make it into a copy, so that editing it will not change other instances of the group it was duplicated from.

The number refers to the number of "users" of that datablock, i.e. the number of instances of that node group.


Is it possible to repeat modified Shape Key actions?

Blender includes the ability to convert sampled f-curves to keyframes, but doesn't include a way to use it without a python script. Luckily someone already has made an addon to make it easily accessible. Save a copy of this addon then install and enable it.

Now you can bake the f-curve with ⎇ AltC, delete the sine wave modifier and convert to keyframes with Channel->Convert to->Keyframes from Samples.

Now that you have a f-curve made of keyframes, you can delete any parts you don't need and duplicate the remaining as many times as you want.

With a graph editor and VSE open with a waveform displayed you can change the current frame by clicking in the VSE so that it is at the start of a "wubble" and this will also be visible in the graph editor, then use ⇧ ShiftDX and move into position visually.


2.80 Eevee: Rigid body collisions OK in Viewport, but none in Render?

Have you baked your Physics? Always i have not baked the Physics i got a wrong result.


About Blender Hirise DTM Importer making Mars terrain

there is a new updated add on for this
see the post here
http://www.unmannedspaceflight.com/index.php?s=&showtopic=6878&view=findpost&p=248902
it is updated for the NEW api in blender 2.8+


How to use existing UV unwrap texture on model

If the masks on your textures based off of a texture map that was made from a UV map are different it will not look to good. If you are tiling textures and say you want a different normal under a stone albedo(diffuse) megascan texture, it would work fine, it would just bring a different shape out of the albedo map. However, from the sounds of it, with a character as you are saying, when dealing with UV's the uv mask on the texture maps created from the UV's must match character UV's or it will not look very good.


My HDRIs + Shader Previews are dim/desaturated and it's affecting my material output

It looks like your View Transform has been set to Filmic Log. Setting it back to either Filmic or Standard should fix your problem.


So there could be few reasons for that. The first that the game engine does not smooth shade the same way as blender viewport engine. You can try of course making it high poly, or at least minimalizing the angles between faces. Also I would check if material/texture is applied correctly and faces are not overlapping - that can cause the artefacts at angles as well.


How to display an skeletal animation in WebGL on web browser

You can try using the experimental feature for exporting morph/skeletal animation when using that addon. I think that's the key.


How do you make a light streak like this one on Blender Internal?

To animate the streak, create two curve objects. Shape the first one to be the shape of the extrusion, the second as the path that it will follow.

In the curve settings for the path select the other curve to be the Bevel Object, then animate the start and end of the bevel factor. You could also add a solidify modifier to get some thickness to the shape.

As a starting point for the material, you want to have it emit a little and to be mostly transparent, you can add a texture to get the striped variation in transparency. For cycles use a mix node with an emission and a tranparent node.

Add a glow in the compositor to finish off the effect, maybe some motion blur as well.


How to round the edges of a mesh with small faces?

I took a look at this but honestly stuggled to find a good solution.

This was the best I could come up with given the starting point. If this is what you are looking for then I can reproduce the steps. Let me know. Maybe others have different ideas.


I expect part of the issue comes from you having the camera still following the curve after you have keyframed it. Remove the follow path constraint from the camera after you have the locations for the keyframes.

For your code - don't change frame_current, you should use frame_set(), but in your example you don't need to use either as you are specifying the frame when you create the keyframe.

I would use something like -

import bpy

# each item is time_offset, x, y, z
verts = [
    [0.0, -0.0017,   -6.6515,  5.0],
    [0.1, 58.6404,  -36.0573,  3.0],
    [0.2, 15.9993,  -53.7007,  3.0],
    [0.3, 58.6404,  -71.3442,  7.0],
    [0.4, 15.9993,  -88.9876, 10.0],
    [0.5, 58.6404, -106.6311,  5.0],
    [0.6, 15.9993, -124.2746,  6.0],
    [0.7, 58.6404, -141.9180,  7.0],
    [0.8, 26.6595, -159.5615,  8.0],
    [0.9, 79.9609, -165.4426,  9.0],
]

camera_object = bpy.data.objects['Camera']

for point in range(len(verts)):
    cur_frame = 2160 * verts[point][0]
    camera_object.location = (verts[point][1],verts[point][2],verts[point][3])
    camera_object.keyframe_insert(data_path="location", frame=cur_frame)


You can do this also by hand, but one easy way would be  to use the import images as planes (included but not enabled by default), importing your "map".

You will get a plane with the same aspect ratio as your "map", of just 4 vertices, with the uv mapping already done. Just subdivide the plane 200 times (cuts, 6000/200=30), and apply displace modifier.

If using blender render, you can displace directly selecting the already imported "map" from the list. With cycles, the displace modifier only uses  a texture, but there is a button (see image below) in the modifier to "show the texture in the texture tab" where you can set the texture to image, and select your "map".

then in the modifier set it to use "uv coordinates"

cycles example:

blender render (internal) example:


Node Setup to Adjust Colour And Distort Material On Object

You can set it up like this. Start with the same texture coordinate (UV) for all of them, but use separate mapping nodes for the sections you want transformed (stretched, etc).

If you simply want to mix the original basecolor (of the image) with another color, use a MixRGB node. I often use "multiply", however try different mix settings to find one you like.


How can I combine two displacement without the face normal changes of one screwing up the other?

I was able to achieve the effect I desired by using the Warp modifier after a displace modifier to provide initial organic displacement. Performance in Blender was much slower, but as I'm baking the results this was a non-issue.


suddenly right click selection does not work

go back to the user preferences, go to input and change select with: to right


Have you tried applying the SubSurf Modifier? If not, make a copy of the object and apply the Subsurf to the copy, then remap it. If that doesn't work, can you show us the UV map with texture?


Here is a way to do it, a bit tedious because you have a lot of duplications and NLA strips to move but it works.
Basically the method is to create 3 linked-duplicated bars, create an action for each one that makes it stick to the vertical bars, push these actions into the NLA, link-duplicate these 3 different bars and, in the NLA, move the strips so that it delays the animation for each one.

Create the path, create one vertical bar, give it a Follow Path constraint with the path as Target, click on Animate Path.
Link-duplicate the bar (AltD), in the Follow Path constraint change its Offset so that it's a bit in front of the first one. Repeat until you have a lot of bars.

Create a second bar, put it somewhere above the path, where it can't be seen by your camera at the beginning of its animation, animate it so that at one key moment it sticks to the vertical bar. Then create a last keyframe so that it keeps sticking to the vertical bar until the end of the animation, for this last part make sure that the animation is linear (in the Dope Sheet select the keyframes and press T > Linear)

In the Dope Sheet, press Push Down in order to push the animation into the NLA.
Link-duplicate this second bar, in the NLA, move the second bar's strip so that it sticks perfectly to another vertical bar:

Link-duplicate the bar, create a second animation in the Dope Sheet that makes it stick to the second vertical bar, push the action in the NLA:

Then same thing, link-duplicate this bar, in the NLA move the strip so that it makes it sticks to another vertical bar, and so on:


Attach swords to mesh/skeleton for exporting as FBX

If you want the swords as part of the character mesh, you want to add sword bones that are children of each hand and use them to control the swords.

In the armature, add a bone for each sword, let's call them sword_l and sword_r. Position them where the sword handles are and have them as children of the hand bones. As children they will follow the hand bone but can be moved separately when desired.
For each sword, remove the child of constraint, and create a vertex group matching the bone name, sword_l for swordL and sword_r for swordR. In edit mode select all vertices and assign them a weight of 1.0 to the vertex group. This will make the entire sword move with the bone.

In object mode select both swords and the character and press ⎈ CtrlJ to join them into one mesh. The vertex groups from the swords will also be part of the combined mesh and each sword will now move with the sword bone. As the sword bones are a child of each hand bone, they will follow the hand movements unless you keyframe their location away from the hand.

This is your model with both sword bones.


DPI of a texture/image will depend on how many pixels are mapped onto a polygon and the real-world area of that polygon. Now your question is more exact (homogeneous uv - no stretching), some parts of this answer aren't directed at you but hope to describe the notion of DPI and that it won't always be a single figure per model.

The following only works if your image-texture is square. width px is the same as height px

factors that decide DPI

You can use the same texture on large polygons and on small polygons, you can also scale the uv coordinates so a small polygon could contain many pixels (effectively high 'dpi'). The DPI therefor is not a property of the texture, but of each polygon and uv mapping.

If you have no such stretching going on and each uvmapped face is covered by the same amount of pixels relative to its real-world area, then you can calculate the DPI once.

Variable DPI vs Homogeneous DPI

The effective DPI of a texture is often variable, but not always. Indeed for certain kinds of texturing it is desirable to have no stretching at all. In either scenario the formula is the same, but when you speak of homogeneous uv-mapping you only need to calculate it once.

Finding UV coordinates

Code to help with this can be found in TextEditor -> Templates -> Python -> Operator Mesh UV. Below i've stripped out the template to make sure it just prints the 2d coordinates of each .uv (a 2D .uv corresponds to a 3D vertex.co). This would give you the 2d coordinate in the UVmap of each vertex per polygon:

import bpy
import bmesh

obj = bpy.context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)

uv_layer = bm.loops.layers.uv.verify()
bm.faces.layers.tex.verify()

for f in bm.faces:
    for l in f.loops:
        luv = l[uv_layer]
        print(luv.uv)

Here's the formula used to calculate the area given a list of coordinates, here's the same formula stated in Python. From the Area you can extract a hypothetical side length.

import math

import bpy
import bmesh
from mathutils import Vector

def texture_dpi(polygon_area, uv_area, image_dim):
    """
    polygon_area:   in (meters or BU)
    uv_area:        in ratio (0..1)
    image_dim:      either width or height of image, this assumes
                    square images anyway, else none of this makes sense
    """

    l1 = math.sqrt(polygon_area)
    l2 = math.sqrt(uv_area)

    # assume the units are BU or meter.
    inches = l1 * 39.3701
    pixels = int(l2 * image_dim)
    return int(pixels / inches)

def calc_area_from_2d_vectorlist(v):
    # http://www.mathopenref.com/coordpolygonarea.html
    sum = 0
    n = len(v)
    for i in range(n - 1):
        sum += ((v[i].x * v[i + 1].y) - (v[i].y * v[i + 1].x))
    sum += ((v[n - 1].x * v[0].y) - (v[n - 1].y * v[0].x))
    return abs(sum / 2)

def get_bm_from_edit_object(image_name):
    obj = bpy.context.edit_object
    me = obj.data
    bm = bmesh.from_edit_mesh(me)

    uv_layer = bm.loops.layers.uv.verify()
    bm.faces.layers.tex.verify()

    totals = []
    for f in bm.faces:
        vl = [l[uv_layer].uv for l in f.loops]
        fa = calc_area_from_2d_vectorlist(vl)  # 2d area of uv loop
        totals.append([f.calc_area(), fa])     # 2d area of face (local size)
        break  # if homogeneous  , else comment it out.

    image_dim = bpy.data.images[image_name].size[0]
    for polygon_area, uv_area in totals:
        dpi = texture_dpi(polygon_area, uv_area, image_dim)
        print(dpi)

get_bm_from_edit_object('some_texture.png')


How do I apply maps to a retopologized low poly model?

First, you need to do the retopology to create a low-poly model and uv unwrap it. Then bake the maps from the textured high-poly model to the low-poly model. Finally, connect the baked maps to the corresponding slots of the Principled BSDF node in Blender.
Use the Displacement map in the material nodes or use it with a Displace and Subsurf modifiers on the high-poly model (as you did). Then bake the Normal map. This will transfer/fake the details on the low-poly object. (Alternatively, you could bake the depth info of the Displacement map and use the baked image as a Height/Bump map. But quality might be worse.)
Note: Gloss maps are inverted Roughness maps. Use this map with an Invert node in the Roughness slot of the Principled BSDF.
I hope this helps.


Key frames don't paste and flip properly or at all in dope sheet

Not sure if answering my own question is allowed but maybe this will help someone figure out what's wrong with their rig if they come accross this issue.

So it turns out that for my specific case I had the arm and leg bones directly connected to the spine by another bone (clavicle and hip bones) which somehow messed with the ability to flip a set of keyframes. So I remade the armature from scratch with the same bones and had the arm and leg bones separate but still parented to the spine and it all flipped perfectly fine. I found a lack of memory also prevented a certain amount of keyframes from being flipped, so the less bones to animate the smaller the chance you'll get this bug.


How to change edit material assignments after joining meshes

When you are in edit mode, select the faces you want with the red material, then in the material tab select the red material and click the assign button, the faces which you had selected should have the material assigned now.


Finish settings for ocean such as wind, choppiness, etc.

Set resolution in ocean modifier. For example, 16 will result in a baked image 256x256 pixels. 64 is the largest, final baked image is 4096x4096.

Check the boxes for generate normals and Foam,

Set cache path anywhere you want (should be an empty folder) and bake.

After a while you get images like this one in your cache folder:


BoxCutter and industry standard settings conflict

This is a limitation of using “Emulate 3-button Mouse.” If you have a mouse with a depressable scroll wheel (AKA a third button), use that instead of Alt-Lmb to rotate the view as it is really standard.


Blender Portable and python script from command line

Use the blender portable version (.ZIP version) from the blender website using this link: https://www.blender.org/download/


How can I fix slight imperfections that mess up the shadows?

You can make the surface planar by making a custom transform orientation from a selected face that is flat on the right surface plane pressing Ctrl+Alt+Space, then you can select linked flat faces with Ctrl+Alt+Shift+F ant adjust the Sharpness property in the Redo Last panel so that it includes the out of place faces making sure the first(active) face you selected is on the right plane and then if you set the Active Element as Pivot Center you can scale all the selected faces to 0 in the custom transform orientation's z axis. This will make the surface planar to the selected face.

You could also just use Normal transform orientation and it would scale everything according the active face's normal just fine, but I like setting it to custom because it then works in all situations for example even if I need to make the plane at a floating single vertex.


Attempt to clarify what I wrote:

'Axle' is my short name for BezierCircle.004. You can display it's local axis by selecting it, going to the Properties window, Object tab, and enabling Display->Axis.  (Here I have moved display to the top of the tab.  It will normally be farther down)

You will see that the local axis are parallel to the world axis. Now do the same for the empty.  You will see that the empty's local axis are not the same. The Z axis of the empty points roughly in the direction that I meant by 'axis of axle'. (Here I've move the empty and the axle into local space.  The yellow axis are that of the axle, orange that of the empty.

Now rotate all of the objects on the world Y axis. The local axes still have the same orientation with respect to their objects, so the next time you rotate the rotation will cause the effect that looks like a reset.
Blend file with my version, which might not match your need:

Notice the axis orientation.  The 'axle' and 'wing' have the same orientation as the empty. The Empty is the parent of the axle. The axle is the parent of the wing. There are two constraints on the empty: Copy (Y) Rotation and Limit Rotation.

It should be possible to arrange all of this so that only the rim has to be selected, but I didn't manage that.


Can't get simple light path nod examples to work

I'm not sure what tutorials you've been watching, but this setup should work for you. Nothing special - like your attempt, the floor has a white Diffuse BSDF for it's material, and the material for the cube is shown in the graph. If this doesn't work, please let me know (ideally with a screenshot) what you're seeing instead:
This first image uses the Is Camera Ray output of the light path node to give a solid red shadow with no bounced light glow:

This setup uses the Is Shadow Ray output of the light path node, and gives a red shadow, with green bounced lighting:

Finally, this setup uses both Camera and Shadow rays, and gives a red shadow with red bounced lighting as well:


Composite for shadows Works for One object but 2nd object is semi transparent

Update: So, the problem was the last mix node before the composite/viewer nodes. It was set to multiply and it should have been set to Mix.


You are in the Sculpt mode. Turn off Symmetry/Lock in the T-panel


How to change the direction in which a menu is displayed?

Looking at your picture, I think you rather mean that you want to change on which side of the 'menu starter' widget the menu is displayed (left vs right)? A menu “direction” would rather refer to order in which its items are displayed (top to bottom or vice-versa)

In any case, side or direction, you cannot control this from py script, this is handled by internal UI code (based on several factors like type of menu, position, available area on top/bottom/left/right, etc.).


How do i place an image texture over multiple objects?

You can use the following node tree settings using "Object" output from "Texture coordinates" using another object (here an empty):

The empty will project along its Z axis.
On bottom line, the coordinates are shifted by 0.5 to center the image. The image is set to "clip".
On top line, we only keep Z values we want (upon a small negative value if the empty is placed along the objects we're projecting on). This is multiplied by alpha to render as red alpha parts of the image.


Select the UV island/islands you want to flip, press Shift+S-->Cursor to Selected. Change the Pivot type to Bounding Box Center. Then go to UVs-->Mirror-->X axis.


I have a folder of X number of textures, I wish to render the same image X number of times, once for each texture

Use an image sequence as input for your Image Texture node then render an animation.

When clicking the folder button in the Image Texture node to browse for files make sure you tick the option Detect Sequences to the bottom left of the File Browser.

Pick all images in the folder and set them up as an animated texture sequence, adjust the sequence speed so it matches on picture per scene frame.

You will have to make sure your image files have consistent naming and identical file format, so Blender can detect them as a sequence. That means a base name similar across all files, plus a numbering scheme. Say something along the lines of Base_File_####.extension.


You need to link other collection under collection's children, not objects:

bpy.data.collections["Collection1"].children.link(bpy.data.collections["Collection2"])


Yes, but probably not the way you are thinking. You might try a “Floor” constraint, or some of the other constraints for that matter. Another option might be the snapping setting for transform tools. Setting it to Vertex -> closest may or may not yield desirable operation.
Physics, on the other hand, can definitely work with non uniform surfaces, but do not operate unless time is moving forward: they will likely be unhelpful while posing a stationary scene as you can transform two rigid bodies to intersect eachother if animation is not playing. Once it starts playing, of course, they will jump apart. But with blender time stopped, blender physics is stopped too.


Smart UV project creates overlapping uv-coordinates

Smart UV Project simply doesn't guarantee non-overlapping UVs.

It doesn't detect or correct self-intersecting UV's within a UV-island.

Using lower angle limit will typically help to avoid this problem, but there are still cases it could happen.

If the possibility of overlapping UV's is unacceptable, you could use Lightmap-pack instead.

Note, in the example given - there is a lot of noise, One way to resolve could mitigate overlapping could be calculate the UV's on a less noisy version of the mesh:

Store the original vertex locations.
Smooth the vertices.
Execute Smart-Project
Restore the vertex locations.


You can use the scissor test.
        bgl.glEnable(bgl.GL_SCISSOR_TEST)
        bgl.glScissor(500, 200, 300, 200)  # adjust to match your red box
        blf.draw(font_id, self.text)
        bgl.glDisable(bgl.GL_SCISSOR_TEST)


Rendering animation as image sequence doesn't work

just open a new blender file and make it by default a video editor, add the image sequence, put your setting and render


How to Separate and automatically add missing faces?

it's not really automated but you could use the "fill holes" clean-up tool.

separate the meshes
in edit mode, select all vertices
Mesh ‣ Clean up ‣ Fill Holes
repeat steps 2 and 3 for all separated meshes


How to avoid particle data being stored in blend file to make it smaller?

In your particle system tab there is a minimized subsection called Cache.  If you open that up and check the Disk Cache checkbox and Bake, that will cause your particle data to be stashed in a directory called blendcache_something/ and not in your .blend file.


Insides of my house are not visible when I tap play button (P) in blender game engine

Go to the material tab, and under the heading 'Game Settings' there will be a 'Backface Culling' checkbox, which should be checked. Uncheck that and you should be good to go.


PNGs in distance appear to overlap foreground PNGs when viewed at different angles

The reason is that the "import image as plane" addon sets the material Blend Mode to "alpha blend" by default. Switching it to "opaque" resolves the issue.

How to solve this with "alpha blend" on is also open in my related question: Plane-object displayed in background while beeing in front (Eevee Viewport)


You could try to export from OpenStreetMap
How to model effectively using exact measurements?
It depends on what you want to achieve (should be another question) you could use layers and groups.
For buildings in the background adding textures should be sufficient for close up I would refine the geometry and add more materials. Related: Trying to create a script that makes roofs on selected boxes

Imported .osm after extrusion (Note that exporting a whole city leads to 2GB files which can't be loaded in Blender)

For some cities 360° images are available from Google street view / maps view which help to elaborate on building details and estimate their age.

Check this awesome tutorial Blender tutorial: How to Create a City


Where is the Feature output for the Voronoi texture node?

Feature Output determines which points are used to calculate the distance.
It's the one with F1, F2... values.
Keep in mind that Voronoi Texture node have changed somewhat between 2.8 and 2.83.


How to make a cross tee pipe fitting in Blender?

Final:

I do know that you said you don't want to use Subdivision Surface modifier, but just check those numbers:

Steps:

Select four faces around a Cube.
In Tools Panel choose Extrude Individual and enter desired number or move your mouse (I've entered '1').
Delete selected faces.
Add Subdivision Surface modifier.
(Optional) Add Solidify modifier.
(Optional) In Data tab check AutoSmooth and set Angle to 60 degrees.


Microdisplacement and Adaptive Subdivision is not working

No need for a bump node there, I would rather substitute it with a "math -> multiply" node, with which you can change the displacement height.
In fact, what you are doing is taking a greyscale image, making a normal map out of it and plugging it into the displacement slot, which needs a greyscale image. But now you have wrong shades of grey because of that.

You also need correct render settings:
In the render tab, in the render pane, you need to change the feature set to "experimental" and in the material tab, in the settings pane, the displacement to "both". (And obviously you need your mesh to be unwrapped properly.)


how to control an object's property in animation

Just add a driver to your viewport visibility like this:

Then copy the driver and paste it to every object you need. After each copy just adapt the new pasted driver in this way: change the object (in my case cube) to that object you just added the driver to.
… but better is @batFINGER solution here: How can you make it automatically invisible to render if its already invisible in viewport?


mixamo.com is one way to get poses. (It's free to use you just need to register with a mail address.) There you can download pre-made characters and animations/poses. Alternatively, you can upload your own model (without textures), apply an animation and download it again. Export the model in obj or fbx format in Blender. Make sure there are no messed up UV maps or materials. This may cause the export and import to fail.
If you found a pose, download it and re-import it back to Blender. There you can re-apply the textures OR you can delete all the mesh and just keep the armature. Then parent the mixamo armature with your original mesh (re-skin).
Another way is to use bvh files (motion captures). Blender supports these files and you can import them for poses.


Arrange UV maps of multiple objects without joining them

There is a tool that will allow you to visualize the islands from other objects that are still separate.  To use it, select all the objects and enter Edit mode for the primary selection that you are currently working with and check View->Draw Other Objects.  Now all UV Islands for the secondary selections should be visible with a faint outline in the UV Image Editor.

If you would like seams for objects that are already unwrapped: Enter edit mode for the object and select everything; there is a tool available UVs->Seams From Islands that will add seams to all the islands.


The method used in 2.68 only worked well for dissolving areas that were flat (in this case, vertices with co-linear edges) since it worked in a single pass, but wasn't good progressively reducing detail like in the example you show.

Committed an improved method r58879, This will be in any recent build or version 2.69.

Update:

The reason the result with 6 sides won't necessarily be equilateral hexagon is the order of dissolving vertices which have exactly the same difference in edge-angle (as with a circle) is undefined.

For this example to work the limited dissolve code would need to have checks to determine the order of dissolving vertices in the case where they have equal angles, There are a few ways this could be accomplished but I'm not convinced this is so important to support.

Such a case is fairly specific and not really the intended use of this tool, so I think its outside the scope of limited-dissolve to solve.

Though if it could be supported using the current dissolve code, I'm not totally against that either.


The image node has an offset option which does exactly this:


Ok guys, I figuredit out by myself.
The armature is missing because the Default bone view is set to octraheder.
But this one only Supports wires as bones.
So to get your lovely bones you just select 'Armature' in the outliner
and then you go to armature Settings in the properties.
Now you Change the Display Settings from Octraheder to wire.


How to evenly distribute vertices in an uv map?

Select the loop and enable the Sculpt tool:

With holding Shift smooth the selected vertices. This will space them evenly:

Make sure the sculpt brush has Lock Borders enabled:


Not recognizing my Nvidia RTX 2060 for optiX

So after further study linux needs a package called libnvoptix1. This is a linked library that blender needs to run optiX once I installed this it recognized and worked.


How to use 2 lattice to deform 2 spheres on impact

I'm not sure why you need to keep your 2 balls within one object, but you could try it with Lattice or with Mesh Deform or even with shapekeys.
If you want to do it with Lattice, scale the lattice it in Object mode (not Edit mode) so that it contains your 2 ball object, in the Properties panel > Object Data > Lattice, give it enough Resolution (i.e. subdivisions):

Now create a basic shapekey, then another one:

In Edit mode, squish your lattice the way you want:

Back to Object mode, keyframe the shapekey value to animate:

Here is what it could give:


Why does Blender warp UV pelt when unwrapping tight geometry?

As mentioned in the comments, Blender supports two algorithms for making a 2d projection of the mesh, Angle Based and Conformal. Angle based is the default and generally handle complex and organic shapes better, but runs into problems for some cases (e.g. the tight loop cuts you are using). In these cases it is best to try the Conformal algorithm.

The conformal term comes from the mathematical term conformal map, a function/projection that aims to minimise the difference in angles between the source and destination.
More details on the particular method used can be found here if you are mathematically inclined.


I guess overlays are turned off. Check in the top right of your 3D viewport (by default) and make sure following icon is blue:

Manual link: https://docs.blender.org/manual/en/latest/editors/3dview/display/overlays.html


Set a different length for each animation

It's looks like you have same animation data for different objects. So try this: Select the objects and press U -> Animation data to create a copy of it for all your objects


You need a font that includes those special characters like  ě š č ř ž ň.
The default Blender font doesn't.
High-quality commercial fonts (Helvetica Neue, Futura, Bodoni) usually include these  characters.
You can also use Google Fonts library to find free fonts with extended character support.


Blender 2.8 won't let me import reference images

Welcome back to Blender

You import reference images by "adding" an Image, pressing Shift+A and selecting the subcategory "Image"->"Reference".

A "File Browser" window will open where you select the image.
After you selected the image and confirm it, the image will appear in the viewport.
Further settings can be accessed by going in the "Object Data Properties".

By the way, dragging an image into the viewport works as well.
But i don't know where you tried to drag it to.

Happy Blending


Well blender supports applying images as textures only using uv unwrapping and then applying it around your model as a texture. Still if a bit of makeshifter will be fine then you can apply your image on a brush after going in vertex paint mode in blender from there you can increase your brush size go in a veiw when you can see on what you want to apply your texture, mask out all the other areas using a mask brush increase your brush size, increase strength to 1 and pain but make sure that you have applied subdivision modifier or multiresolution modifier(if any) otherwise blender will not able to make out vetices to apply your texture on.

In order to change your image into a normal map it is really easy, you will have to go on a layer where there is nothing accept a plane(you will have to add a plane mesh on layer) mesh added so you can focus on it, go into top veiw by pressing 7 on numpad(num 7), change your veiw to shading make and make sure that your engine is better to cycles or eevee), add a new material and add an image texture with image you want to convert, connect it to a color ramp and feed color ramp into height input of a bump node into displacement input of material output node. Now you will have to add a subdivision modifier change it to normal and apply it for getting some geometry, create a new image in uv grid and make it resolution same as you require for normal map, go to rendering panel on left side of your screen, there you will be able to find an option of baking change it to normal, add one more plane select both by pressing shift and selecting high poly mesh first and add new image texture you created and select it go to baking panel change it to normal and bake, if you get no uv coordinates error then just select both planes one by one go into edit mode press u and select project from veiw(bounds), and your normal map is ready to be used.


You have not properly assigned weights to your lowerarm. Select this bone in Pose Mode, then select the character mesh and press Ctrl+Tab to enter the Weight Paint Mode. Set the Weight factor in a Tool Shelf (T) to 0.000. Now select every single bone of the hand and see if there are weights assigned to the rest of the body and remove them (paint them, so they're blue).

NOTE 1: I haven't removed all the weights- it's just an example.

NOTE 2: The armature in my .giff is a bit off, since I'm using the older version of Blender than yours.


Good question! I was sure this is possible with logic bricks only. Check out the *.blend with a minimal example:

There are two actions:

AC_1: Turn cube by 1 Degree
AC_2: Turn cube by 20 Degree

The cube has a property "prop" initialized by 5, which decreased on every positive pulse when the left mouse button is pressed.

The releasing event for the left mouse button is detected by the M_RELEASE sensor and is connected to three controllers doing the following:

Executing AC_1 in case the property was larger than zero
Executing AC_2 in case the property was smaller than zero
Resetting the property back to 5

There should be a lean solution using Python as well. Maybe someone else has this at hand as a Plan B.

Have fun!


The color balance node only exists in the Compositor window, not in the Shader Editor.

To go to the compositor, press this icon at the bottom of the node panel editor and check Use Nodes

In Blender 2.8x and further:

In versions 2.7x or earlier: select the compositing option.

and select use nodes:


Is there a way to make slight imperfections on a model? (golden ring)

You could sculpt a high-poly version and bake the normals, but I guess the easiest way to do it is to fake with a procedural texture. Here is a chain of nodes that works in my opinion: Texture Coordinate (Object output) > Mapping > Vector input of a Noise Texture > Height input of a Bump > Normal input of a Glossy > Material Output. Note that you can play with the Noise Texture node parameters to make the defaults bigger or smaller:

Also, if you want some more or less glossy surface parts, you can plug a Noise Texture node into the factor of a Mix Shader so that it separates 2 different Glossy shaders.


Why is my file so much bigger after baking textures and adding an HDRI, and can I reduce it?

First, you can make sure no textures or external data is accidentally packed into Blender by using the File > External Data > Unpack All Into Files function.

Second, Blender keeps orphaned datablocks around until the next time you save the Blender file. So Save the file, close it. And reopen it, doing it a few times can clear any deleted datablocks from the file.

You can also use the File > Save As > Enable Compression setting to make sure the blend file is compressed to save some space. For files larger than a hundred MB, it will take a bit longer to save and open.


How to make physical simulation of unmixable fluids (like oil and water) in any container

The fluid simulation engine that ships with Blender isn't capable of mixing two fluids.

They would require two separate domains, with different parameters, being baked at the same time and reading the other domain's status frame-by-frame as input for themselves. Unfortunately, this kind of "simultaneous bake" isn't possible.


How Do I Create a self drawing 2D Shape?

Here is a simple way to make a drawing... draw itself:

draw a curve as your handwritten shape, or use Grease Pencil to draw your word, and then convert the drawing to a curve. See here:

Then you have (at least) two ways:

Use a mesh to create the writing depth, through arrays (fit length) and other modifiers: curve follow, subsurf. Then animating the "fit length" array parameter you can make it draw itself...

Here's how:

Use another (curve) shape as bevel object for the first curve. Then animating the bevel "end factor" you can make it draw itself...

Like this:

This becomes a 3D writing because the bevel object is a 2D curve circle, but you can also get a 2D animated writing using a 1D curve as bevel object, like this:


In the post-processing section disable sequencer

2.8x

2.7x


Make changes in python scripts of addons effective

I am the author of the blensor addon.

I used the tip from CoDEmanX and just implemented the reload functionality in the blensor module.

If you have an older blensor version and don't want to compile it from source you can manually add it by changing the file __init__.py

Everything above __version__ has to be changed to

import sys
import traceback
from mathutils import Matrix
from math import pi
import types
import bpy

import blensor.blendodyne
import blensor.depthmap
import blensor.tof
import blensor.evd
import blensor.ibeo
import blensor.generic_lidar
import blensor.kinect
import blensor.exportmotion
import blensor.mesh_utils
import blensor.noise

"""If the blensor module is reloaded, reload all submodules as well
   This will reload all modules at the initial import as well but
   that should not be a problem
"""
import imp
locals_copy = dict(locals())
for var in locals_copy:
    tmp = locals_copy[var]
    if isinstance(tmp, types.ModuleType) and tmp.__package__ == "blensor":
      print ("Reloading: %s"%(var))
      imp.reload(tmp)

After that hitting F8 should reload the submodules as well.


How to get the coordinates of the knife tool on an edge (in real time)?

instead of getting the coordinates of the knife tool you can get the mouse coordinates in the 3d space " since they are the same position " as CoDEmanX stated : they are not the same position. Knife tool snaps to edges and vertices and is thus not always at mouse location

all the steps needed for this are in the template script  "operator_modal_view3d_raycast.py" in blender , what it does is : cast a ray from the view and find the nearest intersection point with the visible objects , the position of the mouse in the 3d view is the Hit output from the obj_ray_cast()

here is the bare code after some elimination of unnecessary lines :

import bpy
from bpy_extras import view3d_utils

def main(context, event, ray_max=1000.0):

    # get the context arguments
    scene = context.scene
    region = context.region
    rv3d = context.region_data
    coord = event.mouse_region_x, event.mouse_region_y

    # get the ray from the viewport and mouse
    view_vector = view3d_utils.region_2d_to_vector_3d(region, rv3d, coord)
    ray_origin = view3d_utils.region_2d_to_origin_3d(region, rv3d, coord)

    if rv3d.view_perspective == 'ORTHO':
        # move ortho origin back
        ray_origin = ray_origin - (view_vector * (ray_max / 2.0))

    ray_target = ray_origin + (view_vector * ray_max)

    def obj_ray_cast(obj, matrix):
        """Wrapper for ray casting that moves the ray into object space"""

        # get the ray relative to the object
        matrix_inv = matrix.inverted()
        ray_origin_obj = matrix_inv * ray_origin
        ray_target_obj = matrix_inv * ray_target

        # cast the ray
        hit, normal, face_index = obj.ray_cast(ray_origin_obj, ray_target_obj)

        if face_index != -1:
            return hit, normal, face_index
        else:
            return None, None, None

    # no need to loop through other objects since we are interested in the active object only
    obj = context.scene.objects.active
    matrix = obj.matrix_world.copy()
    if obj.type == 'MESH':
        hit, normal, face_index = obj_ray_cast(obj, matrix)
        if hit is not None:
            hit_world = matrix * hit
            return hit_world

    return None


This looks to me like it may an issue with being in multi-texture mode.
In multitexture mode, lighting is calculated per vertex. This means that the lighting on a giant plane is calculated at the corners. Because these are a long way from the light, this means the corners are black, and this extends towards the camera.

There are two ways I see to fix this if this is the case.
The first is to switch to GLSL mode. GLSL mode calculates lighting per screen-space pixel and provides much better looking results (also allows normal maps etc.)
The second is to try subdividing the plane such that the lighting resolution is higher. If your computer is old, this may be the only option to provide decent performance.

Another possible cause is mist. Again, in multitexture mode this is vertex based. Check that mist is disabled. You may have accidentally made your default blend file have a misty world.

A final possible problem may be your GPU or it's drivers. It may not be calculating mipmaps correctly in which case either a driver update may fix it, or using .dds textures (which contain pre-defined mipmaps) could solve it.

If none of these provide a solution, upload a blend file and I'll see if the issue is replicated on my computer


I don’t know if this function is in sculpting, but it is in the mirror modifier! In blender 2.79 in the modifier is a mirror, in the settings there is a function "Adjust edit cage to modifier result"

Enable all functions in the modifier window, and try different actions, watching your model!


I can not find cylinder Projection panel

It comes up at the bottom of the Tool Shelf (press T if the panel is not visible):


2.79 Noob question: copying and creating materials in Cycles

It seems that when typing the name it is referencing the previous same image with new name (not referencing external image).
So to refer external image you have to press open image and select the image.
Actually it very simple, Because blender had thumbnails display function, search filter function and many filters to show only specific formats and also options to show sub directory levels. So play with them they can be useful in many occasions.

All refereed images ( or old materials) can be selected (by browse button in left side ) till you close blender file. After closing blender file, Blender flushes all unused images (/unused materials have zero before name) and keep references to only used images(/materials). If you want to refer unused images later press fake user button. This is ubiquitous concept in all, like materials, particle systems, world materials, where ever you can browse.

You can also pack image ( image is saved with-in .blend file, it facilitates to use file in other than your system). Thus material is renderable even if original image destination is changed. But it increases blend file size and it is redundant (copies of same image). I hope these is help full for beginners.


Have you checked the visibility of the layers in the armature panel?


'_RestrictData' or '_RestrictContext' in addon 2.8

Use a dynamic enum or a string property.
When an addon is enabled, it is imported and the register method called. At this stage both the data and context are restricted. The window manager is one of the few objects outside the restriction.
See no reason to have the persistent handler, have taken it out. Using it as an items loader from context when the addon is registered is no good either.
Cleaned up some other stuff, to prevent warnings in the console, eg the panel class name in form UPPERCASE_PT_TitleCase.
Try and avoid import *.
Test script: Have made the enum property dynamic and populated it with the immediate children of the context scene.  For example sake have added a string property and used a prop search to give options from same.
Have shown and example of an operator enum menu in panel layout.
bl_info = {
    "name" : "test",
    "author" : "Diego Quevedo",
    "description" : "",
    "blender" : (2, 80, 0),
    "version" : (0, 1, 0),
    "location" : "",
    "warning" : "",
    "category" : "Generic"
}

import bpy
from bpy.props import EnumProperty, StringProperty
from bpy.types import (
    AddonPreferences,
    Operator,
    Panel,
    PropertyGroup
)

class TEST_OT_Test(bpy.types.Operator):
    bl_idname = "view3d.test"
    bl_label = "Test"
    bl_category = "Test"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_options = {'REGISTER', 'UNDO'}

    def enum_items(self, context):
        scene = context.scene
        return [(c.name,) * 3 for c in scene.collection.children]

    coll_enum:  EnumProperty(
        items=enum_items,
        name="Collections"
    )

    coll_name: StringProperty()

    def test(self, context, collection):
        print("test", collection)

    @classmethod
    def poll(self, context):
       return context.scene.collection.children

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

    def execute(self, context):
        self.test(context, self.coll_enum)
        return {'FINISHED'}

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

        col = layout.column()
        col.prop(self, "coll_enum")
        col.prop_search(self, "coll_name", scene.collection, "children")

####################
class TEST_PT_Test(bpy.types.Panel):
    bl_idname = "TEST_PT_Test"
    bl_label = "Test"
    bl_category = "Test"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

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

        col = layout.column()

        col.operator("view3d.test", text="test", icon = "DOT")
        col.operator_menu_enum("view3d.test", "coll_enum")

def register():
    bpy.utils.register_class(TEST_OT_Test)
    bpy.utils.register_class(TEST_PT_Test)

def unregister():
    bpy.utils.unregister_class(TEST_OT_Test)
    bpy.utils.unregister_class(TEST_PT_Test)

if __name__ == "__main__":
    register()

Edit:
For the case of adding a collection to a scene with no child collections can:
    def enum_items(self, context):
        scene = context.scene
        if not scene.collection.children:
            foo = bpy.data.collections.new("Foo")
            scene.collection.children.link(foo)
        return [(c.name,) * 3 for c in scene.collection.children]

which IMO works best in conjunction  with the operator menu enum layout.


This is a feature called View Lock, wich is enabled by pressing Shift + Numpad ., and disabled by pressing Alt + Numpad ..

You can also access it from the menus like so:


To restore default settings of presets choose them again from the dropdown list (this can be done not only for cloth presets, but for other presets as well). Note that any already made changes will be lost.

This won't work if you changed any preset settings and then saved your User Preferences; new settings will overwrite default ones.          Note that preferences were separated from startup file.

If attempting to restore cloth preset after its deletion most likely you will need to install Blender once more (if you haven't saved backup of .py files with settings before deleting them) because file is being deleted as you press 'minus' button.


Dope sheet doesn't color channels anymore

nvm figured it out. this is how to do it:
1 - open user preferences
2 - click on the Animation tab
3 - in there, you should see an option under F-curves that says "Channel group colors". enabling that shows the channel colors again


Go to File > User Preferences > Add-ons and search for Add Mesh: Extra Objects and enable it.

Make sure to Save User Settings to keep it that way.

Shift+A > Mesh > Round Cube to add this object from the add-on.

In the Tool Shelf or after pressing F6 select Operator Presets and choose Capsule.
Switch Type to Edges - this will allow to control horizontal edge loops.

Now you can control capsule Radius, Length (by changing Z value), subdivision (Arc and Linear).


Yes you have to apply the texture. To do this in the Shader Editor add an Image Texture Node and a UV Map node. And then it will apply your mapped texture.
The set up looks like this.


The link batFINGER provider is the correct answer, just in case someone is wondering: The reason why my bone was expecting a matrix 3x3 is that I used

bone = C.active_bone

the correct way to get the bone is

bone = my_armature.pose.bones['my_bone']


The Displacement input of the Material Output node treats 0.0 as no displacement - rather than 0.5 as you expect. If you are using a Gray-scale image for your displacement you will need to adjust the values (0.0 to 1.0) to be centred around 0.0 rather than 0.5 and youcan achieve this by simply subtracting 0.5 using a Math node. You may also want to feed the output of that through a Multiply node so that you can adjust the magnitude of the displacement.


My GPU makes a loud noise only when I use Eevee

My guess is that you get to very high temperatures while working with EEVEE. This results in coolers working more intensely. I believe - I had a similar problem - one of the coolers might not be in a correct position. This way he touches parts of the plastic it is embedded in.
What you could do yourself on your own risk: Grab an app that shows the temperature and the coolers (Like this one). Look if what I said above is true (Temperature goes up, cooling needs be turned up). You can even try the Powermax app from the link I posted. This tests your cpu/gpu coolers rpm at different loads. If you go to high load you know that my theory is true.
Open the PC and take a look at the coolers. All the coolers, also cpu. Try to get the right cooler in its place. Do it carefully. Try different angles. Or take the pc to the closest shop. It's your call  ;)

Hope it helped. Had a similar issue once.


Joining objects in Blender 2.8 causes the objects to disapear

This looks like a bug. But you can use a helper object, to merge these objects.

Add a Curve Object. ⇧ ShiftA > Curve > Bezier
Go into edit mode ↹ Tab and delete X the selected control points leaving you with an empty bezier. Exit edit mode ↹ Tab.
Select all other objects with the border selection B. [Make sure, that the newly created (empty) bezier object stays the active object.]
Merge them with ⎈ CtrlJ.


Blender crashed computer while baking cloth animation

With self collision and a complex object in the center, I can almost guarantee you're running out of RAM and your PC is having to do swap-file operations.
Check your Committed Memory (RAM + Virtual Memory) in Task Manager while doing a bake.

In the short term, you can reduce the number of divisions in the mesh or lower the quality steps.
In the medium term, I can suggest buying a VERY cheap SSD (that you do not care to ruin) and running your page file off of it for bakes.
If you plan on doing this for long I'm sure you'll find plenty of reasons to upgrade your hardware, you won't need any convincing from me.


This panel can be resized by dragging. Hover with the mouse over the line between the upper and lower part until the mouse pointer turns into a black two ended arrow. Then click and drag up or down. You can even hide the Operator panel completely. Then you will see a little plus sign. Which you can click to reveal the panel again.


Bookshelf Drivers (Possible to add/subtract books using drivers)?

You could use particle system to emit the books from vertices:

The emitter is a subdivided plane, the origin of the book group (only 3 books on layer 2) is set to the bottom of the book.

Demofile: http://pasteall.org/blend/29436

Particle settings:

Uncheck Random under 'Emit from:'

Related: Prevent particles at the same place?


Is 100,000 faces a big render? How can I reduce it?

100,000 is a lot of faces on a slow computer, but not too many on a fast computer (definitely not unrealistically high). As a general rule, always stay as low-poly as possible for as long as you can, and use a subdivision modifier to add the look of smoothness while maintaining an easy-to-edit lower-poly mesh for edit/weight paint/etc. modes. Don't apply the subdiv modifier unless you have to. If you can get away with it, never apply it. Rigs will live perfectly well underneath or on top of a subdiv modifier. Working like that helps your viewport stay nice and smooth!

In your case--since it seems you've already applied a smooth or two to your model, you may be able to reduce your poly-count by using the decimate modifier, but that's sort of hit or miss and may require a bit of touch-up.


EDIT: It turns out you have the Auto IK option enabled. To turn that off, press N with your mouse in the 3d view to open up the sidebar and go to the tools tab.

Uncheck that and you are good to go!

EDIT: The information below did not answer the question directly, but may help others as it can cause a very similar issue.

I looks like you just need to adjust the Chain Length in the IK constraint, found here:

What this does is tell Blender how many bones in the chain to use. The default is 0, meaning the whole chain is used, in your case up to the pelvis. I think you would need to set yours to 3, but you'll be able to see the line update as you change the length.


What do green/brown(orange?)/yellow attribute highlights mean?

These colors all have to do with Keyframes.
Yellow: Keyframe has been set on current frame
Green: No Keyframe on current frame
Orange: The property has been changed but a keyframe hasn't been set
I could not find where Blender actually documents these colors though.


invoke_props_dialog(...) seems more appropriate here. It opens a popup with an OK button, and the operator's execute() method will only be called if the user clicks this button. (The other popup types execute on every property change.)

A dynamic EnumProperty is populated automatically with all UV textures of the current object (see uvtex_items callback). It is added to the dialog as expanded prop(...), remove expand=True if you want a dropdown list instead.

invoke_* require an operator instance (object), not an operator class (type). You usually pass self, which is a reference to the operator instance:

import bpy

def uvtex_items(self, context):
    return [(t.name, t.name, t.name) for t in context.object.data.uv_textures]

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    bl_options = {'REGISTER', 'UNDO'}

    uvtex = bpy.props.EnumProperty(items=uvtex_items)

    @classmethod
    def poll(cls, context):
        return (context.object is not None and
                context.object.type == 'MESH' and
                len(context.object.data.uv_textures) > 0)

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

    def draw(self, context):
        layout = self.layout
        col = layout.column()
        col.prop(self, "uvtex", expand=True)

    def execute(self, context):
        self.report({'INFO'}, self.uvtex)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

Paste the code into Text Editor and Run Script. Then move your mouse over 3D View, hit Spacebar, search for Simple and run the Simple Object Operator.