Have you tried looking in the Blender documentation? It covers the following

bpy.ops.image.save_as(save_as_render=False, copy=False, filepath="", check_existing=True, filter_blender=False, filter_backup=False, filter_image=True, filter_movie=True, filter_python=False, filter_font=False, filter_sound=False, filter_text=False, filter_btx=False, filter_collada=False, filter_alembic=False, filter_folder=True, filter_blenlib=False, filemode=9, relative_path=True, show_multiview=False, use_multiview=False, display_type='DEFAULT', sort_method='FILE_SORT_ALPHA')


You end up with a lot of doubles (ie verts in same location) from your logic of running thru faces.  Remember on the cube each vert is shared by 3 faces.  Hence you end up with 4 x 3 x 8 (96) verts for four cubes, instead of 4 x 8 (32) vertices.

If you ran the the remove doubles operator on your mesh it would "weld" it.

Here is another take on this, using the list comprehension methods here https://blender.stackexchange.com/a/54130/15543 and then extending and offsetting for each row, col with gap for the vertices coordinates list, and incrementing the face vert index by the number of verts in the "brush" object for each copy.

import bpy
from mathutils import Vector
context = bpy.context
cube = context.object
mesh = cube.data
rows, cols = 5, 7
scale_x, scale_y = 1, 1
#--Gap between each row / column
gapx, gapy = 0.2, 0.2
#--Width of each row / column
widthx, widthy = cube.dimensions.x * scale_x, cube.dimensions.y * scale_y
verts = []
faces = []
lenverts = len(mesh.vertices)
# make the
for i in range(rows * cols):
    row = i % rows
    col = i // rows
    # vector math
    verts.extend([v.co + Vector((col * (widthx + gapx), row * (widthy + gapy), 0.0))
             for v in mesh.vertices])
    faces.extend([[v + i * lenverts for v in p.vertices] for p in mesh.polygons])

# new mesh
mymesh = bpy.data.meshes.new("mymesh")
mymesh.from_pydata(vertices=verts, edges=[], faces=faces)
obj = bpy.data.objects.new("foobar", mymesh)
context.scene.objects.link(obj)

You may want to adjust the vector math depending on where you want the origin to be.


Looks like you object is not evenly scaled.

Exit Edit Mode and apply the scale to your object, by selecting it and pressing Ctrl + A > Apply Scale; then try doing the insets again.


is there anyway to automatically create a mesh for an armature


How can i get a better result Baking in blender render?

At first glance I would think that noise is due to a low sample setting.

You might try to increase the gathering samples.
Go  into the "Scene Settings" in the "Properties Editor", under "Gather", if you set it to use raytracing, you can change the sample settings.

But yeah, just a guess into the wild, maybe I am wrong? Hard to say without having the scene open...


Here's one way I would approach it:

Select the faces to create the indentation, and Inset with tweak enabled. I while holding Ctrl
. (If desired,
you may change you transform orientaion to normal,
and rotate the faces to suit your object better.)
Crease the edges that border the hole with
Shift+E
Bevel the creased edges with Ctrl+B

Final result:


Baking a normal map from a sharp edged model to an identical smooth model

Alright, I made a big mistake. I copied the workflow from a tutorial I found, but as it turns out, it's not exactly a good idea to put the meshes on different layers.

I moved the meshes to the same layer, and got result that perfectly matched my expectations.

Let's hope this helps someone in the future.


This effect can be achieved by creating a random walk using a loop as you suggested. It is important to make sure the random walk satisfy certain conditions:

The step direction has to be parallel to one of the three fundamental axis, or else the perpendicularity of the network won't be achieved. This is achieved by defining the step as a unit vector with two zeros components.
Each step should not be parallel to the previous step, or else the network will have edges of non uniform length and overlapping edges. This is achieved by making sure the non zero component of the step vector is not the same as the previous step, that is, a different component should be the non zero.

The implementation is rather advanced, so it might not make much sense for novice. First, we add a vector parameter representing the starting point of the random walk, at each iteration, this parameter is reassigned to itself plus the step vector. Then, we add a constant integer list parameter Range containing (0, 1, 2), those integers represent the possible indices of the component that will have a non zero value. An integer parameter Last Axis that represents the index of the component that was non zero in the previous iteration is added and reassigned to the index of the non zero component chosen at the current iteration. The index of the non zero component is chosen randomly from the Range list after removing the Last Axis integer from it. We now know which component will have a nonzero value, to construct such vector, we add a constant float list parameter filled with three zeros (0, 0, 0) and set the component of the chosen index to one or negative one based on the sign of a signed random number. Then this float list is converted to a vector generating the required step vector. The seed of the random generators shall be equal to an input integer parameter multiplied by the number of iterations plus the index of the current iteration, making sure the seed is unique for every input integer for every iteration. Note that the zeros and range lists have to enforce copying because they are mutable object that are being edited multiple times. So, the node tree becomes as follows:

Another loop is constructed to generate multiple splines based on multiple random walkers. A random starting point is chosen per iteration:

Lastly, the output splines are trimmed to have the animation effect:


I dont know about the blender logic operations but this is what I can do in this case:

Add a driver for the operation you want to apply to the object.
Add a distance variable and set the object to itself and the other object.
Add a custom property and call it margin which will be the margin of the object (the distance in which the object will interact from the origin point).
Add this custom property to a single property variable.
Type "ternary conditional operator" like this in the expression.
Now when ever the "Cube.001" touch the "cube" the scale will change to 2 instead of 1 (and of course you can change the operation)


Can I scale an object based on the relative distance to another object?

Driver Based Approach

Image below shows driver added to x scale of Empty.002.  The driver variable var is of Distance type and returns the distance between itself (Empty.002) and the master empty (Empty.001).

The expression 4 - var if var < 2 else 1 is set up such that if the empties are within 2 bu of each other the scale value is (4 - var) and if outside that range the scale is 1.  Change the numbers to suit.

Use the interface to copy this driver and paste into other scale fields.

When pasting into other empties scale fields, change the target of non master empty to match.


The IK solver will try to go toward a pre-existing bend: in your rig the upper leg bone is bending on the  left (of the mesh) more than on the front, so the IK solver follows that directions (left - left/front).
You can change this behaviour in many ways:

1) the simpler: in edit mode push the head of the leg bone backward and pull the knee joint  toward the front; also the foot bone can go backward. In this way the Ik solver will naturally go more toward the front.

2) The classic: create a new bone (I called it Pole Knee L), parent it with the IK foot controller, and in the IK constraint panel, set it as "pole target", fine tuning the "pole angle" parameter for correct behaviour; in this way the knee joint will always point in the direction of this new bone (which can be animated, for complete control).

3) Other ways: constraints that limit rotations, modifying IK bones stiffness, and others that maybe I don't know!

I suggest you also to turn off the "inherit rotation" option of your foot bone, and turn off the "deform" option if IK and pole controllers.


Steer Emission Strength of an Shader by the position of an unrelated bone...how?

You can set a driver to a value node
Right click on your value node and choose add driver
then just choose transform channel if not as default and select your object/axis

in the expression field you can do some operations to change/map you values
if you want it 1:1 then just put in the variable name, in this case "var"


How to use script to translate, independently, all control points in a Bezier curve?

After some more research and tests, I got the results I wanted with
import bpy

segs = 7
alt = 1
step = alt / (segs + 1)

bpy.ops.curve.select_all()
bpy.ops.curve.subdivide(number_cuts=(segs - 1))
curve = bpy.context.object
bez_points = curve.data.splines[0].bezier_points

i = 0
for bez_point in bez_points:
    bez_points[i].co.z = (i * step)
    bez_points[i].handle_left.z = (i * step) - (step / 2)
    bez_points[i].handle_right.z = (i * step) + (step / 2)
    i += 1

for bez_point in bez_points:
    bez_point.handle_left_type = 'AUTO'
    bez_point.handle_right_type = 'AUTO'


Where i can find latest compiled Animation nodes for windows 7 32 bit?

There are no 32-bit builds for Animation Nodes. The developer said in this issue:

  So far I never compiled AN for a 32 bit system. It should be possible somehow but I don't know how without having access to a 32 bit system myself.

And the release page states that for the 2.1 test builds:

  Also 32 bit operating systems are not supported.

And for version 2.0:

  Only 64 bit systems are supported for now.


Connecting the Endpoints of 2 Tubes while only moving one

I'm illustrating this with triangular openings, because it's easier to see. We're going to move green to red. All moves in edit mode. Pivot set to '3D Cursor'

Starting with 2 skew open shapes. Snap set to 'Vertex', 'Active'. Create a new Custom Orientation : Ctrl Alt Space from 3 vertices selected on the target opening.

With all vertices of green selected, and a suitable vertex made active, free translate G and snap the active vertex to the corresponding vertex in red. These points will not move any more. Put the 3D cursor there: ShiftS > Cursor to Active

Free rotate green around until it's somewhere in the vicinity. This is only to make things easier to see.

Now we need a view straight across the plane of the opening in red. With 3 verts in the red opening selected, try the orthogonal views of them (ShiftNumpad1,3or7 and the CtrlShift variants) until you reach a view suitable for the next steps. Set snap to 'Edge', 'Active'.

Make a suitable vertex of green active, and rotate all in screen space, snapping the vertex to an edge of red in this view. We now have an edge in the right plane...

...but not aligned to its corresponding edge. So we now rotate all in the Custom orientation we created earlier , RZZ setting snap back to 'Vertex', 'Active'.

Now we have an edge in place. We want to rotate around it. Create a new Custom Orientation from the edge....

...and rotate around it, having made a suitable green vertex active.. (RYY)

...so it can snap to its partner.


Workflow Question: Texture Painting (after Dynatopo)

YanSculpts is doing a basic unwrap of the model in your link.

From MarkG's answer:

  1. Create clothes for a model. You can lay a mesh out on your model, and have it "cling" to the form[...]
  2. Create a better arranged mesh to sculpt on [... Subdivision] creates VERY dense meshes. A better approach would be to retopolize your mesh before scultping so the edge flow of your polygons worked with you, instead of against you. [...]
  3. Lower the density of your mesh so you can animate it.

Retopology is simply creating a similiar shape with different topology. (Usually by snapping new vertices onto existing high density faces.)

To paint your model, you have two basic options:

Texture Painting

  A UV texture is a picture (image, sequence or movie) that is used to color the surface of a mesh. The UV texture is mapped to the mesh through one or more UV maps.

PRO works with low and varying density of vertices; this means highly detailed paint jobs on low vertex counts are possible
PRO export: colors are on a 2d image, which can be edited in image editing applications (Photoshop, Krita, Gimp)
CON we need to uv unwrap the image onto a 2d surface beforehand
CON with complex distorsion, can be slow on parts of the model

Vertex Painting

  Vertex Painting is a simple way of painting color onto an object, by directly manipulating the color of vertices, rather than textures [...]

PRO no need to unwrap the mesh, can start painting immediately
CON some angles and occlusions will leave lone vertices unpainted (in Blender) unless you rotate/zoom/readjust the view
CON needs a high vertex count, since color data is applied only per single vertex and interpolated in between them

With both methods, you can not go back to dynamic topology (changing the vertex count), otherwise your uv or vertex color data will be reset. In both cases you may edit the mesh in Edit Mode preserving the existing data.

The manual explains both processes, well. I would recommend texture painting. Although texture painting is usually not done with very dense models, its only drawback is speed (as Blender isn't designed to unwrap high density models).
If you can easily go into edit mode, navigate and unwrap by pressing U > Unwrap, without Blender constantly freezing, then proceed to unwrap.

If your model is to dense you can try to decimate it with the decimate modifier, which is an automated form of retopology as well and provides very bad topology. But as long as it doesn't cause visual artefacts, bad topology shouldn't concern you, since your aren't planning on animating the geometry.

Most dynatopo topology can be decimated quite a bit with little visual difference.

From Craig's answer:

  as far as I know, there is no way to 'texture paint' without having UV mapping on a new lower poly mesh.

The basic UV unwrapping process can be done with a high density mesh. (It just can get very slow computationally.)

Select your model, go into edit mode, select all vertices and press U and choose unwrap.

This will probably be slow and produce a horrible result. YanSculpts model has 23,000 vertices and he solves the unwrap by only unwrapping small parts at a time. To do this, box/circle select some vertices, then press U to unwrap. You can immediately position them in the 2d UV layout (UV map).

L for island selection. G, R, S and many other hotkeys work as in the 3d view.
Read up on other unwrapping methods.
Once unwrapped you can load an image texture or create a new image texture and save it.

Setting the 3d viewport to textured viewport shading will display the active texture (with Blender Internal).
Now you can edit texture paint mode, set the image as the source and start painting on it.

With vertex paint the unwrapping process is skipped.


For this box shape, the easiest way to ensure that the texture on the faces are aligned after unwrapping is to mark seams in such a way that it unwrapps as a single UV island.

See screenshots below :

Then rotate and scale in the UV space as needed :

If you do have UV islands floating about that need to be aligned then  use the snapping tool to align them. (and some rotations etc).
Note that if the scale of the two islands are different then you may need to snap individual vertice or edges into position.


If your scene was empty before the import, it looks like stuff is importing correctly as there are objects in your outliner. My guess is that the scale during import is off. The objects might be there, they're just scaled too big or too small to see. Try using the . key on the numberpad, which centers the view on the selected object.

You can also try re-importing, but in the import options start by changing the scale to 0.1 and if that doesn't work, try a larger number like 10.

You can also find some more info that might help here: how to scale imported .obj and .fbx


OBJ imported into Nifskope has no texture

Not sure what the issue was exactly, but apparently it was with my export. After downgrading to Blender 2.49 and installing the Blender NIF scripts, I was able to export the mesh directly as a NIF (instead of OBJ, then NIF) and now the textures work properly.

By having both versions of Blender installed, I can work in 2.71 with its much-improved interface, then open the *.blend file in 2.49 to export it as a NIF.


boolean multiple meshes without fusing and keep faces

This can be done, although it is a bit of a work around.

Select the hexagon object and add the Boolean Modifier to this object (as apposed to the object that cuts it in to a point), and as the modifier Object select the cutting object.

Add the hexagon object to a collection (this is optional but makes things slightly easier. Also in the future this is how you might be doing this step)

Select the hexagon object and go into Edit Mode. Press P to Separate > By Loose Parts. Now all the hexagons are separate objects, but they all have the Boolean Modifier.

Now you want to apply all the modifiers, but it would be cumbersome to do them individually. Luckily there is a trick. Select all the separate hexagon objects (possibly by right clicking the collection and choosing Select Objects) and then press Alt + C to covert them to different type of object and choose Mesh from Curve/Meta/Surf/Text. The hexagons are already a mesh but this operation will apply all the modifiers.

Finally select all the separate hexagon objects (make sure one is selected to be the active object) and press Ctrl + J to Join them into a single object again.

Because the boolean operation was done on each hex individually the chance of missing faces in significantly reduced (i think you'll find none, and I'll be surprised if you'll find any) and fusing together should be impossible.


Blender 2.79 is bundled with Filmic already. Just download that and use it, no need to install anything else.

The error is caused by Blender trying to write to a write-protected directory. You can solve that by changing the directory permissions or running Blender as admin, but you should probably do neither and just use 2.79.


A script to render each frame as image (not render animation) in 2.8

The solution is to use a script to render each frame, and the script needs to include a short time pause.
This is the script that solved the problem I have had for days.

import bpy
import time

scene = bpy.context.scene
for frame in range(scene.frame_start, scene.frame_end + 1):
    scene.render.filepath = 'C:/blndtmp/' + str(frame).zfill(4)
    scene.frame_set(frame)
    bpy.ops.render.render(write_still=True)
    time.sleep(3)

Thankyou for all your help Blender Community :)


How to change material properties with time

First you have to set everything up and then click "I" on the color bar.
Next You have to go to the desired time where the colour change will end on the timeline. After that change the colour of the Halo. Finally click "I" on the colour bar again. This sets the selected colour to the selected time on the timeline.

Final Product:

NOTE: Example above is made in Blender Render since it takes a long time for a cycles animation, but this also works in Cycles as well.

BTW This is probably not the kind of "Halo" you are talking about, but it's a good example.


Yeah, Unwrap the uv sphere(it's already done but just in case), add the texture of the sun in the image editor(just drag it in), plug colour to an emission shader, mix it with the bsdf as well, increase value at what ever size you like, turn on bloom if you are on eevee.


Bone envelope changes without reparenting

From the manual

With Envelope Weights

  Works in a similar way to With Automatic Weights. The difference is
  that the influences are calculated based on the Bone Envelopes
  settings. It will assign a weight to each vertex group the vertices
  that is inside its bone’s influence volume, depending on their
  distance to this bone.

  This means newly included/excluded vertices or new envelope settings
  will not be taken into account. You will have to apply Armature Deform
  With Envelope Weights parenting again.

And in particular

  Tip

  If you want the envelope setting to be used instantly, bind the
  Armature Modifier to Bone Envelopes.


Control an object's specularity with distance

With material nodes, you can use the Camera Data input to get the distance from the camera to the surface. Note that this number will be much higher than the 0-1 range you'd normally want for a color value, and the numbers get bigger the further the surface is from the camera, so you'll need to do some math to invert and scale this value to whatever works best for your scene.
See the image below for a sample setup in Blender Internal, but Cycles has the Camera Data node as well.


Getting the color of an object an empty collides with?

Ok I figured it out. Moving the empty around gives me the color of the nearest surface once it hits the cube. Nearest surface is based on the objects polygon's center points and material indices. I would have preferred to get the RGB values directly but I can put those in a table later. Here are my nodes.


Create a compositing node 2D Vector from individual x & y components

You can use a Combine RGBA node. This is because in practice color and vector inputs are more or less the same.


Trouble selecting correct object in viewport

You can also try changing the selection mode under User Preferences.  There are two options available now for selection.

OpenGL Select
OpenGL Occlusion Queries

OpenGL Occlusion Queries is the newer, and faster method which seems to work better on AMD Radeon GPUS.

You can also use shift+b to draw-out a rectangular selection that will cause the view to zoom in on the selected location.   Picking objects tends to work better when you are zoomed in closer.

shift+c will zoom out out to fit the scene.  Using these two shortcuts, you can quickly navigate to whatever object you would like to select and work on.


How to scale multiple objects in Blender 2.82+ without a plugin

Change the scaling mode from 'Median point' to 'individual origins'.
Scaling three spheres 3 increments on the x axis with the default - 'median point'.

Scaling three spheres 3 increments with transform settings set to individual origins.

What this does is allow the objects simultaneously selected to scale around their own origins instead of the active selected object. (The one highlighted in yellow).
To scale the objects "42%", go to select mode (the default when you open blender), select all of the objects, make sure you have the transform mode set to individual origins, and press S then press X. Type in '.420' to set the scale to 42%. You do not need to be in transform or scaling mode in object mode to scale an object.


Mesh looks OK in wireframe but shading is distorted

Answer provided by Nathan. Solution was to clear custom split normals in Object Data Properties/Geometry Data.


SL Skeleton, Avatar Workbench, MH Avatar import problem

Very easy:) Select your model (all of it...rig and all) in object mode. Now press R and Z you can now rotate with mouse...get it as close as possible then fine tune to exactly 90 deg or -90 deg in the left panel very bottom. After you're done, don't forget to press CtrlA and save rotation scale etc.


Cycles material to Blender Render Material

Try Material Utilities Specials. It comes bundled with Blender. You may need to enable it in User preferences / Addons.

Also note that the recently bundled versions of the addon may not have the ability to convert materials. In this case, just download the addon from the link above and enable the downloaded version instead of the bundled version.

Then, with your objects selected, press Shift + Q to call the Materials Specials Menu -> Specials -> to BI Nodes Off.

Note that you may need to manually add textures you may have used in your material definitions in Cycles.


What is the most efficient way to make instance real and joined

Make real and join*

Could make the mesh by making the dupliobject active and running make duplicates real, and then joining them.  Sorry haven't fixed the location properly

import bpy

context = bpy.context
scene = context.scene
vl = context.view_layer

obs = set(scene.objects)
bpy.ops.object.duplicates_make_real()
new_obs = list(set(scene.objects) - obs)
bpy.ops.object.select_all(action='DESELECT')
o = new_obs[0]
vl.objects.active = o
for o in new_obs:
    o.select_set(True)

bpy.ops.object.join()

Using depsgraph in 2.8

Result in edit mode above, default torus duplivert default and scaled down icosphere.  May be cuppa time while it runs

Instances can be obtained from the depsgraph. https://docs.blender.org/api/master/bpy.types.DepsgraphObjectInstance.html#module-bpy.types

There is a section in

https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Scene_and_Object_API

re getting the instances of an object via the python API.

Using the method prescribed for getting instances of a particular object, here is a test script to create a bmesh from all object instances of the context object,

The bmesh is written to  new single mesh object from the instances.  The mesh equivalent of make real and join.  (Without the original)

I have only tested this on a very simple example, without materials.

import bpy
import bmesh

context = bpy.context
ob = context.object
mwi = ob.matrix_world.inverted()
dg = context.evaluated_depsgraph_get()

bm = bmesh.new()
for ob_inst in dg.object_instances:
    if ob_inst.parent and ob_inst.parent.original == ob:
        me = ob_inst.instance_object.data
        bm.from_mesh(me)
        # transform to match instance
        bmesh.ops.transform(bm,
                matrix=mwi @ ob_inst.matrix_world,
                verts=bm.verts[-len(me.vertices):]
                )

# link an object with the instanced mesh

me = bpy.data.meshes.new(f"{ob.data.name}_InstanceMesh")
bm.to_mesh(me)
ob_ev = bpy.data.objects.new(f"{ob.name}_InstancedObject", me)
ob_ev.matrix_world = ob.matrix_world

context.collection.objects.link(ob_ev)


how do you make the top of a cylinder round and the bottom a hexagon

Start by creating a cylinder (Shift + a while in Object Mode). Expand its Add Cylinder popup in the bottom left of the 3D View to give it only 6 sides. Change the Cap Fill Type to Nothing.

Next go to Edit Mode and use Ctrl + r and then float your cursor near the center of a vertical edge to preview a single edge loop at the center. Left-click to commit to the one edge loop, and then right-click to cancel the tool.

Hold Shift and select the entire bottom-most edge loop and press s to scale it, dragging the mouse out until you have a decent sized base. Left-click to commit to the new shape.

While still in Edit Mode, press a to Select All, then right-click anywhere on the mesh and from the context menu that appears, choose Subdivide.

Immediately afterwards, hit Shift + r to repeat the Subdivide command several times. You want a mesh density sufficient to create the round spout.

Tab into Object Mode and create a new Cylinder. This cylinder should appear in the same space as the first one, unless you inadvertently moved the 3D cursor between creating the first cylinder and the second. It's important that the two are in the same space.
In the new cylinder's Add Cylinder pop up, to the bottom left of the 3D View, change its number of sides to something considerably higher than the current value of 6. I chose 128.

Select the original, wide-based mesh in Object Mode and tab into Edit Mode. Select an orthographic camera front view with Numpad 1. Press 1 to go into Vertex Selection mode, then press Ctrl + b for box select mode, and drag a box around only the vertices which will end up forming the round spout. Don't include any vertices from any part of the wide flat faces making up the base. Only the vertices making up the edge loops of the spout. You will probably need to go into Wireframe mode (z key to toggle it) in order to make the needed vertices easier to see.

Next, while still in Edit Mode, go to the Object Data tab (1) of the Properties Panel, make sure the Vertex Group section (2) is expanded, click the '+' icon (3) to create a new vertex group, then press the Assign button (4) to add the currently selected vertices to this vertex group.

Tab into Object Mode. Your original, wider-based cylinder should still be selected. Click on the Modifers tab in the Properties Panel and select Add Modifier. Choose Shrinkwrap from the list of available modifiers.

In the Shrinkwrap Modifier settings, choose your newer, smoother cylinder as the Target, and choose the vertex group you created for Vertex Group. Choosing a vertex group allows you to limit the effect of the shrinkwrap to only the vertices in that group, which is helpful for our situation.

While still in Object Mode, hide the smoother version of the cylinder by selecting it alone, and pressing h. If you find that the transition between the flat sides and the round sides is a bit weird, you may have to adjust some things. I had to scale the smooth version of the cylinder down slightly. I gave it a scale value of
0.934 along both the X and the Y axis, but left the Z axis unchanged.

Finally, put a Subdivision Surface modifier on the original mesh. A handy shortcut for this is to select the mesh, and then press Ctrl + 3, where "3" is the number of subdivision levels to choose. Choose a different number for a different subdivision level. Bear in mind that this shortcut only affects the viewport subdivision level, not the rendering one.

Hope this helps.


How can I get this setup in Cycles (for cell shade)

You cannot get this exact setup because Cycles does not let you use lighting as a factor in your materials. There is no Lamp Data node in Cycles, and you cannot use a shader's output as an input for another shader or color like you can in Blender Internal. This is because Cycle's lighting and shading isn't calculated until render, so that data is not available. You can make a fake one by using drivers to feed the location of a lamp into value nodes, but it isn't very accurate.

You can still get pretty close by using a Toon Diffuse with a high size and low smooth. Probably .9 for Size, and .01 or .025 for smooth (which is very slight, really just for anti-aliasing.) Note that Cycles will be very sensitive to proper setup of Smooth shading, sharp edges, etc. For a model like that, be sure to use Autosmooth.

If you want your shadows recolored, you will have to do it in the compositor. You can Add the Diffuse Direct and Indirect passes to get a proper shadow mask (the normal Shadow Pass does not include mesh lights or bounce lighting). Then use that as a factor for a color mix or HSV node with hue/saturate adjustments. This works if your shadows are a darker version of your existing color, but it will not work if you want to change the shadow color to something specific on an individual basis (in which case you'd need to use ID masks to select each specific different area that needed a color, which is very inefficient.) Note that when you add these shading passes, the values will be way above 1. You may need to ramp or clamp them.

The other major element here is that your shadows do not get very dark in your image. This can be achieved either through world lighting, having lots of lamps or a scene for light to bounce off of, or with ambient occlusion. Or in the compositor, you can use RGB curves/color correction to lift the blacks of the whole image up to what you want, or you can re-combine the image from it's passes and ramp or use math nodes to control the minimum values.

Keep in mind however that bounce lighting will generally ruin a hard edged, flat cell look. And the whole point of Cycles is bounce light. It can do fine for more detailed toon styles, but if you want to keep things flat and simple, stick to BI.


right click and click unwrap.
If you want it to look even better, click on uv>smart uv project.
This will take longer, but gives considerably better results than just simply unwrapping.


First, deselect all.

You can then select all users of (eg) a mesh by right clicking that mesh in the outliner then clicking "select linked":

It should work with any linked item as materials, etc.

Then if you switch the outliner to "selected", it will list just all linked users.

bring now able to look at your file, it seams really weird...

you have 1 scene, and bender reports 1 object, but in the datablocks you have 188 objects... how many should it have in your goal?

and you "only" object has currently one of dozen other meshes...

could it be that this file has issues due to a "troubled" history..?

I tried appending only this object from your file (all 188 objects are still there) to a blank new file, and it works well now, and its mesh has only 1 real user, as it should have been...


How do I apply materials to instances (alt+d) objects simultaneously?

To add materials go as you would for other objects. Material properties/new or brows.
The material of a Alt D object is always linked by data until you change it under the material properties shown in the image below to object.
Thank you Robin!


How to make the camera follow the plane in my blender game?

Use camera actuator instead of parenting it.

Change height, axis, damping, etc to meet your requeriments.


How to apply collision physics without destruction?

As well as defining the Shape of the collision you can also define the 'source' :

Selecting 'Final' uses the state of the mesh after all modifiers have been applied - without having to actually apply them.


How to avoid extraneous edges when using loop cut?

In this specific case, I think think the best thing is to use the cut tool k.

In specific answer to your question, the way to create a loop cut, without having it go all the way down the surface, is ripping an edge v. In your case, you would rip the edge right along the extrusion, and the front edge to the right of it. Then make your loop cuts. You can then mend the edges if you wish, by deleting the extra edge (will remove the face of the wall), adding faces (such as tris, because in the game engine it converts to tris anyway) or by making an n-gon face over the whole section.

I hope this helps. If you give me your blend file I can make examples.


Why Applying scale to my armature moves its position?

It's because your armature has currently a pose, once you've applied the scale, go in Pose mode and reset the pose (AltR, AltS, AltG) and the armature will be back to its default position.
You've given your armature a pose, poses take the bones position in local space into account, if you apply the scale it changes the distances.


SpaceNavigator in Linux: How to configure with Blender?

First you need to install Spacenav, which I've found works very simply.

Install 'spacenav', I expect most Linux distros would have a package for this.
Run sudo spacenavd -v -d
Run blender, the 3D mouse will be detected, and printed in the terminal.

spacenavd can run automatically as a service but to begin with just execute in a terminal.

See spavenav's site, it has general info. I followed the Arch Linux 3D Mouse Instructions to get this working.


These are Grease Pencil keyframes that are created when drawing with the Grease Pencil tool.

You can change the Dope Sheet editor mode to Grease Pencil from the Dope Sheet header menu to view and/or delete these keyframes:

Alternatively, you can manage the keyframes from the Grease Pencil Layers panel in the 3D View Properties Shelf (N).


Mysterious offset when alter armature's edit bones?

As Serge L suggested it was possible to achieve the expected result by first removing the parent/child relationships from each object, then modifying the edit_bones to match the template skeleton, followed by finally re-creating the parent/child relationships for those objects.

Here is some code that finally got things working for me:

import bpy
from mathutils import Matrix

def get_bone_children(parent, objects):
    children = []
    for ob in objects:
        if ob.parent_bone == parent.name:
            print(bpy.data.objects[ob.name])
            children.append(bpy.data.objects[ob.name])
    return children

def clear_parent(child): #clear parent keep transform - https://blenderartists.org/t/preserving-child-transform-after-removing-parent/616845/3
    # Save the transform matrix before de-parenting
    matrixcopy = child.matrix_world.copy()
    # Clear the parent
    child.parent = None
    child.parent_bone = ''
    # Restore childs location / rotation / scale
    child.matrix_world = matrixcopy

armature = bpy.data.objects['Armature']
bones = bpy.data.armatures['Armature.001'].bones #the template bones

bpy.ops.object.select_all(action='DESELECT')
bpy.context.scene.objects.active = armature
bpy.ops.object.mode_set(mode='POSE') #must do this or else context will not be correct
for pb in armature.pose.bones: #Reset Rotation , Translation and Scale of bones through Script - https://blender.stackexchange.com/a/147342/32655
    pb.matrix_basis = Matrix() #  == Matrix.Identity(4)
bpy.ops.object.mode_set(mode='OBJECT')

childObjects = [] #stores all bones in this armature
for i, bone in enumerate(bones):
    children = [] #all of the children connected to this bone
    for c in get_bone_children(armature.data.bones[bone.name], bpy.data.objects): #Parent object to a bone and object becomes offsets - https://blender.stackexchange.com/a/139180/32655
        children.append(c)
        clear_parent(c)
    childObjects.append([bone, children])

for i, bone in enumerate(bones):
    #match the head/tail local positions between the two armatures
    head_pos = bone.head_local
    tail_pos = bone.tail_local

    armature.data.bones[bone.name].head_local = head_pos
    armature.data.bones[bone.name].tail_local = tail_pos #Removed from main loop because makehuman rigs showed overlapping bones, besides the tail is unnecessary for pose

    #These lines are critical!!
    bpy.ops.object.mode_set(mode='EDIT') #must do this or else the new positions will not be updated
    bpy.ops.object.mode_set(mode='OBJECT')

#restore parent relationships
for i, childObject in enumerate(childObjects):
    bone = childObject[0]
    children = childObject[1]
    for c in children:

        matrixcopy = c.matrix_world.copy()

        c.parent = armature
        c.parent_bone = bone.name
        c.parent_type = 'BONE'

        c.matrix_world = matrixcopy


Animation looks fine when rendered as frames but pale when rendered as video :c

That is probably your playback software failing to decode the stream correctly. Turn off GPU acceleration and re-test.


For smoke how can I take certain frame of smoke and use as initial frame?

I found the solution, This works nicely, first you should bake all dynamics to external file, just check "External" in Smoke Cache section of Domain fluid and use folder you want to cache, then you see name of cache by numbers, for example "_000001_00.bphys" and "_000002_00.bphys" and so on, remove all frames until 50 and use frame rename frame 50 to "_000001_00.bphys", this will instantly update in viewport of blender and you see frame 1 or 0 is using frame 50 simulation, but you must offset all the name of frames regard to that frame, 50->01, 51->02 and so on.

UPDATE:
another solution for using in conjuction with motion track is to move all the motion track data/keyframes +50 frames, as this post suggested,

http://blenderartists.org/forum/showthread.php?353329-How-to-have-initial-state-for-smoke-simulation

UPDATE 2:
Also just use frame 50 as initial frame, and remove all frames include after ones cause blender start simulate from initial frame, so no need to rename all other frames of caches, just re play again and blender will automatically cache data (do not free the cache).


How to draw custom elements with python?

Blender provides opengl access through python with the bgl module which allows you to use opengl calls to draw to screen. Any opengl reference should help.

An example from the contours addon - countour_utilities.py

def draw_outline_or_region(mode, points, color):
        '''
        arg:
        mode - either bgl.GL_POLYGON or bgl.GL_LINE_LOOP
        color - will need to be set beforehand using theme colors. eg
        bgl.glColor4f(self.ri, self.gi, self.bi, self.ai)
        '''

        bgl.glColor4f(color[0],color[1],color[2],color[3])
        if mode == 'GL_LINE_LOOP':
            bgl.glBegin(bgl.GL_LINE_LOOP)
        else:
            bgl.glBegin(bgl.GL_POLYGON)

        # start with corner right-bottom
        for i in range(0,len(points)):
            bgl.glVertex2f(points[i][0],points[i][1])

        bgl.glEnd()


I didn't have the image alpha node connected to the alpha node on principled shader. connected that and it fixed the problem.


How to make easily editable text that acts as texture or normal map for another object?

I think I finally found a reasonable solution that keeps text editable on the fly without intermediate to-mesh-converting, thanks to Kamil1064 from http://polskikursblendera.pl/forum/
The secret is in shadow baking.

Steps:

switch to Blender Render
add plane
unwrap it, add new empty texture to it
position your text object slightly above plane
add sun lamp, adjust it's angle to cast light straight down (rotation x0,y0,z0)
adjust sun lamp settings to the following: Ray Shadow, Samples: 10, Soft Size: 0.010 (if you won't, you'll have jagged sharp shadow edges instead of nice antialiasing)

select your plane and bake with settings: Bake Mode: Shadow

If everything is set properly, you will have a nice, antialiased texture that you can save for later use. The best part is, it will be easily editable from within Blender, just select text object, press TAB and edit it, then press Bake again, and voila.


How to merge the mirror modifier correctly?

you need to use a lower value for 'merge limit' parameter to lower the distance before vertices are automatically merged.


There are three options.

You could leverage the "Pointiness" value. If you use it as a mix factor, you'll be able to blend between different materials based on the geometry. The benefit of this is you don't have to bake anything.

More in the Manual.

You could also create "Dirty Vertex Colors" in vertex paint mode and use that as the mix factor. It has the benefit of not having to bake anything, but its quality is directly related to how much geometry you have (more geometry will look better). BlenderGuru has a great tutorial about how to add dirt with this tool.

The somewhat more standard answer (and probably more appropriate) is to use an Ambient Occlusion map as the mix factor. You have to bake the AO to a texture of some kind, but it has the benefit of being very accurate and providing somewhat more control than the other options.

More in the Manual.

Technically a fourth option is to combine one or all of those techniques.


Can I get a more fine grained zoom in the UV/Image editor?

You can use ⎈ Ctrl +  MMB to zoom in and out smoothly. Keep in mind you are meant to press the MMB and drag up or down to zoom in and out, respectively. This works in all editors which support zooming.

Another thing to keep in mind is that, for instance in the Movie Clip Editor, when set to Graph, there are two zoom axis - a vertical and a horizontal one - which can be controlled separately.

There is also another tool called Zoom to Border, which can be accessed through Shift + B. This let's you use something that looks like the Border/Box select tool, but instead of selecting, it zooms in to the specified area.

Note that in the Node Editor (more specifically in the Compositor), any other zoom method will zoom into/out of the nodes themselves. To zoom in in the background image (when a Viewer node is connected) you can use Alt + V and V to zoom out.

Adding to gandalf3's answer, you can press Shift + Numpad Enter, when looking through a camera in the 3D View, to make it match the zoom level 1:1.


If what you need is to make one object seperated into different objects, you can go to edit mode then selecting the parts that you want to seperate (if they are not connected to other parts pressing L speed up your selection or pressing ctrl and numpad's + or -, also selecting one point and then pressing shift and ctrl then selecting the opposite side of that could select the whole area, try it on a subdivided square to get how it works). After selecting the parts press P and click on seperate by selection. it will seperate the selection to a new object. hope it helps.


Some code from this answer. But adapted for bmesh and the selection aspects of this question.

The principle is to start from selected vertices, and:

Make a dictionary of possible links to other vertices
Iterate available vertices and for each follow all possible remaining paths

The code with comments:

import bpy
import bmesh

def make_vert_paths( verts ):
    #Init a set for each vertex
    result = {v : set() for v in verts}
    #Loop over vertices to store connected other vertices
    for v in verts:
        for e in v.link_edges:
            other = e.other_vert( v )
            if other.select:
                result[v].add(other)
    return result

def make_island( starting_vert, paths ):
    #Initialize the island
    island = [starting_vert]
    #Initialize the current vertices to explore
    current = [starting_vert]

    follow = True
    while follow:
        #Get connected vertices that are still in the paths
        eligible = set( [v for v in current if v in paths] )
        if len( eligible ) == 0:
            follow = False #Stops if no more
        else:
            #Get the corresponding links
            next = [paths[i] for i in eligible]
            #Remove the previous from the paths
            for key in eligible:
                island.append( key )
                paths.pop( key )
            #Get the new links as new inputs
            current = set( [vert for sub in next for vert in sub] )

    return island

def make_islands( bm_verts ):
    paths = make_vert_paths( bm_verts )
    result = []
    found = True
    while found:
        try:
            #Get one input as long there is one
            vert = next( iter( paths.keys() ) )
            #Deplete the paths dictionary following this starting vertex
            result.append( make_island( vert, paths ) )
        except:
            found = False
    return result

obj = bpy.context.object

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

bm_verts = [v for v in bm.verts if v.select]

islands = make_islands( bm_verts )

print( len(islands) )
#print( islands )


Translate all vertices of all selected objects

This might not be the best solution, but being a developer I can't resist myself from posting this answer... :-)

Open console and type following:

# Move mesh vertices without affecting its origin
def move_by_amount(x, y, z, only_selected=True): # Default is True
    if only_selected:
        meshes = (obj.data for obj in bpy.context.selected_objects if obj.type == 'MESH')
    else:
        meshes = bpy.data.meshes
    for mesh in meshes: # We move selected/all meshes
        for vertex in mesh.vertices:
            vertex.co += Vector((x, y, z)) # See comments

# Replace with your own x, y, z coordinates
move_by_amount(10, -15, 5, True) # True to move only selected objects
move_by_amount(10, -15, 5, False) # False to move all objects
move_by_amount(10, -15, 5) # Default is True to move only selected objects

This has at least passed a basic test with few cubes without changing origins. Please test with your data. You can always undo if things go wrong! ;-)


Texture also applying to separated object

You still have the same material on both objects. You can create a new material, if you need an entirely different material.

Or click on the plus button, to make a new material from the current material. Then there will be two separate materials for your two objects.
Documentation about materials.


2.8 Properties Tabs all disappeared and nothing I've tried from other answers works

I spent over a day with this problem eventually taking bits from other results, putting them together, then investigating the few property tabs that I had still got I discovered that the Render tab had somehow acquired the Pin in it's top right corner. Un-pinning it brought back the rest of the property tabs.


How to install Blender on OS X (Blender directories?)

You don't need to install any directories. If you're looking for where the scripts, config and cache folders are, they're in the Application Support folder under your user account directory.

  /Users/$USER/Library/Application
  Support/Blender/2.74/cache
  /Users/$USER/Library/Application
  Support/Blender/2.74/config
  /Users/$USER/Library/Application
  Support/Blender/2.74/scripts

The cache folder is where the BVH cache files are saved, and you can sometimes free up quite a lot of space by deleting them.

The config folder is where your startup and userpref files are kept.

The scripts/addons folder is where all your installed addons will be.

There will be separate folder for each version of Blender under Application Support/Blender.

If you're looking for Scripts/Addons/Presets/Modules that come with the Blender install, you have to look inside the Blender.app file. On a Mac, the application appears as a single file, but it's actually a folder with files within it.

If you right click on the Blender.app file, and choose Show Package Contents, you'll see a Contents folder. Open that and you'll see a number of files and folders. The scripts and presets are in the Resources folder.

The file hierarchy is like this:

Blender 2.74.app
+--Contents
   +--Resources
      +--2.74
         +--datafiles
         +--python
         +--scripts


What is causing the bright edges on this mesh when using volume emission shaders?

Your mesh apears to be non-manifold. Specifically, it looks like you have split faces, or 'holes'. Volumetric shaders require manifold geometry to work correctly. Remove doubles, ensure that the geometry is clean, and do another test render.

Edit: Apply Scale Ctrl A > S should also be done for this object. Note that your object has a scale of 0.006 which can have consequences and cause artifacts. Try to keep a scale of 1 on your object, unless there is a specific reason not to. See Campbell's explaination on why/how non 1:1:1 scaling and rotations can cause issues within Blender (This is true for other 3D apps as well).


Create stairs in an "RGB Curves" node. To make the line straight select "Vector Handle" on each dot. Hold CTRL and click on the line to create new dots.


Solid objects can be parented directly to bones sans modifier.
In addition to @moonboot's answer am going to suggest a different route via separate objects and bone parenting, avoiding the need for the armature modifier and associated bone groups.
Since it is probably unlikely the "bone" objects are going to be deformed by the armature bones can parent directly to bones.
First step IMO would be to decimate the vert count, without a powerful computer the amount of verts in mesh will tend to make response slow.
Step 1.
Remove the armature modifier.
Make the bones all separate objects. For example sake just skull and jaw, but all teeth / eye-bones?? could be separate objects and parented accordingly. (to object or bone)

Selected all verts of skull P Selection to make the selection a different object. Now have an object each for skull and jaw.
Step 2.
In this example can see no reason to have a left and right jaw bone, so have merged into a sole jaw bone.

EDIT.

The jaw bone is halved to allow for a specific animation where the jaw
splits apart and fires a beam of energy between them.

In which case would keep the sole jaw bone, and make the two half bones children of it, each half of jaw object parented to the half bones.  In which case only need to animate jaw bone for regular mouth open close.

Notice the skull object is already parented to the skull bone.

Select the jaw object, then Shift select the armature and make the jaw bone active. CtrlP Bone. The jaw object is now parented to jaw bone.
Step 3
Parented the jaw bone to the skull bone. (Sounds like a song.) so if the skull is rotated the jaw comes along.

The jaw can be rotated relative to the skull.


Check your objects renderability in the outliner, see if any of them are set to visible in the viewport but not renderable.

I also notice you have objects in different scene layers, turn them all on before rendering.

Are you also using any render layers? Check your are rendering all render layers and if all objects are assigned to render in at least one of them.


Problem with Fluids Tespassing Obstacles (bottles, cauldrons)

Your resolution is too low. Try setting it to at least 150 but preferably more.

Yes, this will mean longer simulation times, but that's the catch with all simulations!

The resolution determines the size of the grid elements used by the simulation engine: your elements are so big (you can see the big blocks in your screenshots) that the walls are too thin for the fluid to notice, and that the hole is too narrow for the fluid to pass through!

Edit (after seeing your file): how to fix the obstacle

I forgot about this! Your obstacle should be solid in the Mesh data: this means that your flask must have the solidify modifier applied, not in the stack! I suggest doing this:

Set up (as you've done) the bottle, with the animation data and everything.
Duplicate the bottle. The original bottle will be use for rendering, the copy ONLY for simulation.
On the original bottle, remove Fluid physics, and remove the solidify modifier
On the new copied bottle, use a negative value for the solidify thickness (worked for me with -0.14) and apply the solidify modifier.
You can restrict the bottle visibility, and also you should remove it from the render layers

Run the simulation.
Restrict also the normal visibility ("eye" icon) of the duplicated bottle
Take care of the appearance of the "rendered" original bottle. For example a solidify with thickness = -0.07 works well.

PS: As regards your glass material: I've created a question & answer here: My glass material isn't transparent


Viewport pivot point changed from scene objects to around viewport camera origin

It sounds like you centered the view on the camera.
Here are some ways to set the view center:

ShiftB or 3D view header > View > Zoom Border (Note that this will also zoom to fit the view to the defined border)
Select an object/vert/face/spline etc. and press Numpad . (period) to center the view to the selection.
Press ShiftC to center the view to the world origin (default). Note this will also center the 3D cursor.

If none of these work, then it sounds like you have Locked the view pivot to the camera object (ShiftNumpad .). See if there is any object  selected in the Lock to object option in 3D view > Properties region (N) > View > Lock to object:

You can remove this lock by clicking the X next to the object name, or pressing AltNumpad ..

CtrlShiftAltC is a shortcut for snapping object origins. (it does not affect the view)


Create a plane and apply ocean modifier to it

You need to add the ocean modifier before you can 'Apply' it. Try :

import bpy

model_height = 2

bpy.ops.mesh.primitive_plane_add(radius=10, view_align=False, location=(0, 0, 0))
bpy.ops.transform.translate(value=(0,0,-1.0 * model_height / 2.0 + 0.2 * model_height))

for obj in bpy.data.objects:
    obj.select = False

plane = bpy.data.objects['Plane']
plane.select = True
bpy.context.scene.objects.active = plane

#Add the modifier
bpy.ops.object.modifier_add(type='OCEAN')

#Apply the modifier
bpy.ops.object.modifier_apply(modifier='Ocean')

Obviously, if you want to adjust the Ocean modifier you'll need to do this before 'apply'ing it (or don't apply it and leave it on the modifier stack).


Composite node/ Viewer node preview not showing

The Z pass outputs a value, measured in Blender units, from each pixel to the camera: if your object is far more than 1 BlenderUnit, the viewer of this output will be totally white, treating every value bigger than 1.0 as 1.0.
I think the best way to use the Z output is inserting a "normalize" node, wich will assign 0.0 to the minimum value and 1.0 to the maximum, scaling all others values accordingly.
You can follow the normalize node with a color ramp, to fine tune the new Z signal.
In my image the color ramp node is used only as "inverter", so 0.0 value becomes "white" and means minimum distance from the camera, and 1.0 values gets black (maximum distance from the camera).
Note that the upper angle of the cube is black.

For a quick udersranding of nodes, use the combination ctrl+shift click on a node to instantly show his output on the viewer.


I managed to figure it out on my own.  Basically I needed to do less desaturation than I was doing on the fur, and apply more (as opposed to none) desaturation to the underlying skin.  That, and also doubling (and then clamping) the brightness of the transmission color.

This .blend contains the tweaks I did to fix it up: http://www.pasteall.org/blend/36094

And below is a render of the fixed shader.  Probably not 100% realistic, but it's better.


Why are lamps and mesh lights not illuminating anything?

In your file, Clamp direct  and Clamp indirect have both been set to .03 in Render settings > Sampling.

This is forcing all the samples to return a value less than or equal to .03, which results in the apparent lack of light.

Set them both to zero to disable clamping:

Then it should work as expected:


You are currently in solid mode and not in the render preview. The former uses a simple shader and no path tracing is applied.

Solid Mode

Render Preview

If you press F12 or use Render > Render Image you will see that the lamp casts a shadow in the final render as well.


Just an idea more than a real answer, but for that very special case, you should try something like that (sorry for the very quickly done rabbid..) : the trick is to have a ability to have very few points to animate and to be easily able to stay around the wanted shape.

As you can see, very few vertices :

But all rely on a capsule metaball that I have deformed a bit :

1 : the capsule shown
2 : the capsule drawn as bounding box only

Now the rabbid has some modifiers (from top to bottom) :

Subsurf : because we have few points to animate but want it to stretch smoothly
Shrinkwrap : the most important part here as this modifier allows to stay along the capsule (see below for more explanations)
Solidify : to give it some volume

For the capsule :

Add it : Shift+A then choose 'metaball' and 'capsule' (surely you can also make your own shape instead)
Give it more precision (picture below)
Then convert it to mesh, with Alt+C, then 'mesh from curve'

Now edit it a bit in order to give it the wanted shape (to say it quickly, larger on top, smaller at the base).

We want the rabbid head and face to follow the capsule shape, but not the ears or the eyes. So add a vertex group to the rabbid. Assign this group the head part only and name it 'capsule'. Then, set this vertex group in the shrinkwrap modifier as seen two images above.

Now create your shape keys as you need :

The same kind of thing could be used to allow the eyelids to follow the eyes.


part of a mesh doesn't move with the rest

This is actually quite simple, you just didn't add weight on  the hat

As you can see, the hat has 0 weight, the amount of weight it has is how much influence the bone has on that part of the mesh

Here I set the weight on the hat to 1 (Max influence) so the head bone has 100% control over the hat, an easy way to add the weight to individual objects is to separate them in edit mode using "P" then select "Loose parts", I don't like to have all objects joined in one single mesh because that complicates things when doing weight painting or other stuff involving rigging

so there you go!, just set the hat weight to 1 and that's it, easy cake :)


uncheck orignis here -> than it works as expected again.

i am pretty sure you did what i did too often when i was bloody beginner: you searched for a shortcut and just typed it in - until you found it. Problem is: nearly every key combination does something in Blender. So i just can recommend: do only use shortcuts if you are sure you know them. So you will avoid a lot of trouble - which i had ;)


The right hand is correctly rigged, the problem is that the upper arm bone has influence on the lower arm when it should actually not:

So set your brush correctly in order to subtract and paint through:

Paint and it works:


For Blender 2.80 API, What replaces the constraint_orientation parameter in bpy.ops.transform?

Replace constraint_orientation with orient_type.
Links aren't ideal because they might die. If there is a way to add this more permanently, please let me know.
https://blenderartists.org/t/2-80-cheat-sheet-for-updating-add-ons/1148974


How to delete internal intesected faces?

Shrinkwrap is actually the best way I can found and it works pretty well. Comparing to the heightmap approach talked about here BlenderExchange, the shrinkwrap approach is easier to operate and involves less processes.

Here is how I do it, first create a plane mesh over the beveled object, subdivide the surface with 30 slices:

Add subdivision surface and shrinkwrap modifiers.  The subdivisions need to set to 4 or 5. The mode of the shrinkwrap need to be "Project" (You might need to turn on "Negative" if "Positive" doesn't work.)

Apply the modifiers and edit the mesh. To do this easily, go to a side view and box select the vertices on the top layer, remove the vertexes:

Then you get a beautiful top contour without internal intervening faces:

The shape will have more details then necessary. Use limited dissolve to fix that

End result:


Can't texture paint a specific texture; it appears as a mask over all other textures (2.79)

In the N panel > Tool > Masking, you've enabled Stencil Mask option, disable it.


How To Make Two Objects into One Mesh and then Only Animate One Object (Rotation)

I'm going to say that your importer or exporter is defective.  I am also not optimistic that unifying the mesh will solve things since it actually complicates things.

If you want to have a single mesh where part of it is animated, the first thing that comes to my mind is an armature paired with vertex groups.

You will need to assign all the vertices of the moving part of the mesh to a vertex group.  Select the mesh.  Enter edit mode.  Select the vertices for the animated part.  In the Mesh/ObjectData panel use the Vertex Group subpanel + button to create a new vertex group.  Then use the Assign button to add all those vertices to the group.  Double check that the weight is 1.0 (sometimes it is 0.0, which is almost useless).

Go back to Object mode and add a new Armature.  By default its single bone will be named "Bone".  Switch to edit mode, select the bone, and go to the Bone/ObjectData panel and rename it to match the vertex group of the mesh (which is probably named "Group").

Go back to Object mode.  Select the mesh.  Go to the Modifiers panel and add an Armature modifier (under the Deform section).  Choose the Armature as the modifier's object.  Make sure the Vertex Groups is checked.

Now you can select the armature and go into Pose mode (usually Ctrl-Tab) and put some keyframes on the bone to animate it rotating.

Because the bone and the vertex groups have matching names, the armature modifier will make the object deform according to the motions of the bone.

As you can see, this rig is much more complicated than two objects, one of which is animated.  If your importer/exporter malfunctions on your current project, I have doubts that it will properly support the intricacies of armatures.


You have several solutions. The more realistic one would be to use a cloth simulation then use it as a Mesh Deform to deform your net. You have 2 much more simpler solutions, with Lattice and, more flexible, Warp modifiers:

Cloth: It's the most realistic solution.

Create a plane about as large as your net. Give it a Physics > Cloth simulation, enable its Cloth Collision option. Pin it on its border.
Create a ball, give it a Physics > Collision simulation.
Animate the ball and simulate the movement of it hurting the net and falling on the ground. The net should deform accordingly.
In the Properties panel > Object > Display, change the display of the plane, choose Wire.
Bring your net object, give it a Surface Deform modifier, put it above the other modifiers. Choose the plane as Object. Click on the Bind button. Now the plane should deform the net.

Lattice:

Create a lattice and in Object mode, scale it so that it encompass your net object. Subdivide it a bit.
Give your net object a Lattice modifier. Choose the lattice as Object.
Assign a vertex group to the whole net vertices except the borders that are supposed to be pinned, choose this group in the Lattice modifier.
Put the necessary modifiers below the Lattice one.
Select your lattice, in the Properties panel > Data > Shape Keys, create a basis shape key and add another one, keep this second one selected.
In Edit mode, deform the lattice so that it deform the net the way you want.
Back in Object mode, play with the value under the shape keys list. You'll be able to create keyframes to animate.

Warp:: This method is more flexible as it allows you to animate more easily.

Create 2 empties, in front and behind your net.
Give your net object a Warp modifier. Choose the 2 empties as objects From and To.
If a part of the net is supposed to be pinned, select the vertex group in the modifier.
In Falloff Type, choose the kind of deformation you want, you might prefer Curve to create your own one.
You can move the empties, therefore animate the movement of the bump.


Deform a mesh object in a random manner in Blender using Python

Using bmesh on an edit mesh (run in edit mode)

import bpy
import bmesh
from mathutils import Vector
from random import uniform
context = bpy.context
obj = context.edit_object
mesh = obj.data
delta = 0.2
# get a bmesh
bm = bmesh.from_edit_mesh(mesh)
for v in bm.verts:
    if not v.select:
        continue
    v.co.xy += Vector([uniform(-delta, delta) for axis in "xy"])
#update.
bmesh.update_edit_mesh(mesh)

bpy.ops.transform.translate will translate all selected vertices.  Using it in the loop as you had it, if all verts are selected would move all verts a random amount for each vert. (or nowhere for any vert with a 0 coordinate) You would need to copy the selection, deselect all, select them individually transform the single vert, deselect etc.  Also remember scalar vector multiplication needs to be scalar * vector.


Can python be used to edit a Text Object?

No this isnt supported, you have to replace the string with a new one each time.


bad texture mapping on sides of a cylinder

While using the basic generated texture co-ordinates can be easy and helpful in some cases, you want to use UV-Unwrapping to get full control of how your texture looks. BlenderCookie has an introduction tutorial that explains more.

The basics are -

First mark the seams, this is where the edges are "cut" to get the model laying flat on a 2d texture image. CtrlE->Mark Seams with mark the selected edges.

Then you unwrap - Select all with A, then U->Unwrap

Now when you set the mapping to UV for the texture you will get the same bricks texture on the top as well as the sides.

For more control you can also assign different materials to the top and sides.


How to display mirror reflection in viewport?

The viewport has several ways of displaying your scene.

During modelling you might use Solid Shading, Material Shading,  Wireframe, or even GLSL (matcap) shading can be useful.

Reflectivity can only be seen (June 2015) in Rendered Viewport mode, this works for Cycles and Blender Internal engines, these options can give you a quick approximation of what the final render will look like.


How do i disable the bezier function in 2.8?

Just as before in the you can set the Extrapolation Mode for the channel in the Dope Sheet. For the keyframe you can set the Interpolation Mode. While the UI has changed the basic settings are the same. See: How do I make animations a steady speed?


How to create a feathered border around an object?

You might set transparancy based upon camera facing normals (ea not facing). (layer weight)
To get something that looks a little bit smoother.


The opencl support needed to use an AMD card is not 100%. The list of supported cards hasn't been updated for a while, with some other cards also being reported to work to varying degrees.

First check that your gpu drivers are up to date. The opencl libraries provide the list of available hardware that blender uses to offer available GPU options.

While I'm not sure if the devs are interested in bug reports relating to opencl, they generally appreciate reports of what hardware works and what doesn't.


Why does my scene take longer to render on two modern GPUs, than on CPU?

Oh FFS! There is actually a second switch you have to enable in order for cycles to render on the GPU!

So the answer to why my two Radeon HD 7950 graphics cards where so slow, is that cycles wasn`t using them! It was still rendering on the CPU.

It is simply not enough to "enable" GPU computing under the Blender User Preferences (Ctrl+Alt+U) -> System -> Compute Device!

What you have to do, to actually render your scene on your GPU is:

Use Cycles to render your scene
"enable" GPU computing under the Blender User Preferences (Ctrl+Alt+U) -> System -> Compute Device
After this a "Device" option pops up under the "Render" options. Which you have to switch to GPU.

then, and only then, your scene will render on your GPU.

Now that i got this figured out, i have a few follow up questions:

Why is there a second switch for the same option?

Why is the default selection for this option CPU?

Who thought this would be a good idea?


Cannot transform, scale or move (aka edit) vertices, faces or edges - X,Y,Z locked

It worked after I removed a shape key and turned on shape key edit mode.

I'm not sure why I wasn't able to edit the other shape key. Any input is welcome. See pic.


This can be achieved by using the Slow Parent option.
Set an appropriate offset, and the parented object (in this case it is your camera) will always have that much delay to reach its target position. This provides for smoother parents and a side view when turning more reliably than using the Camera actuator. When using the Camera actuator, It does not behave as expected when the object it is following moves in the direction of the camera (for example, when the character is backing up)
using this method, you can have one camera for driving forward, and one camera for backing up, and both will reliably look where they are meant to.


Convert any 3D Game mesh to OBJ for use in blender

Nevermind! I just found a program that lets you get the geometry of any 3D game.

It's called NinjaRipper made by blackninja. It simply takes all meshes that are currently loaded in the system memory or the graphics memory (I don't really know where the model files go when a game is loading) and saves them.

However, it doesn't output the meshes directly .obj files, but it comes with a Blender add-on (along with add-ons for other 3D modeling software) that lets you import the .rip files. It also takes the textures of the models and saves them as .dds files.

So far NinjaRipper is the only program that is capable of "snapshotting" meshes along with their textures in almost every game. I haven't found a competitive program on the entire internet yet that does the same. I hope that the development of this awesome program continues in the future.


Prevent ocean from behaving like a mirror

For large-scale water to look good, you'll need a few things:

An environment for the water to reflect. You already got this.
Waves. Water is almost never a perfectly flat mirror. You will need a lot of extra geometry to mimic the waves. It is a lot more common to use a displacement texture to 'fake' the effect.
A key property of water is fresnel reflection. That means depending on the angle of the surface is to the camera, it is either really dark or really reflective.

Combining all 3, this is what we end up:

The Blend file can be found here: https://www.dropbox.com/s/8pf88lwlobv3kf9/ocean.blend?dl=0


Add curvature to the edge of my UV Sphere that has a hole through it

We, people from forensic department ... we already know :)
But yes ... please  use more illustrative screenshot like - switch to edit mode to see wire (topology) of your mesh with probably more distance so we can get more context.

If I'm right ... just select top edge loop Alt+Shift
And Bevel Ctrl+B it (with Middle mouse add more loops.

Or use Bevel modifier as non destructive ... just create a Vertex group from top vertices.


How to properly create hollow text letter suitable for 3D print?

To create a hollow letter :

create a new project and remove the cube
Add a text object
press TAB to enter Edit mode
change the text to the letter your want
press TAB to exit Edit Mode
press ALT + C and select "Mesh from curve/meta/surf/text"
press TAB to enter Edit mode
press A to select all vertices
press E to extrude to the alf of the final letter depth
press Shift + S and select "Cursor to selected"
press X to delete faces
press TAB to exit edit mode
select menu "Object / Transform / Origin to 3D cursor"
add a solidify modifier
change the thickness
apply the solidify modifier
press TAB to enter edit mode
change the view to Front Ortho (5 1)
press Z to change to Wireframe display
press B and draw a border to select faces on the top of your letter

press X and select "Faces"
press Z to come back to Solid display
press TAB to exit Edit mode
add a mirror modifier
select the proper option X/Y/Z (unselect X and select Z)
apply the mirror modifier


replace empties with 2 bones armature in script

This can be achieved adding one line and changing another(variables changed so it makes sense):

import bpy
import bmesh

context = bpy.context
scene = context.scene
obj = context.edit_object
mesh = obj.data
bm = bmesh.from_edit_mesh(mesh)
armature =bpy.data.objects['Armature'] #added this line to get armature object
armatures = []
# selected verts
for v in [v for v in bm.verts if v.select]:
    bones = armature.copy() # changed this line to mke copies
    bones.parent = obj
    bones.parent_type = 'VERTEX'
    bones.parent_vertices = [v.index] * 3
    scene.objects.link(bones)
    bones.matrix_parent_inverse.identity()
    armatures.append((v.index, bones))


How can I transform one end of a cylindrical extrusion to create a cone or needle-like structure?

You are either in Object Mode or have the whole mesh selected.

Make sure that you are in Edit Mode (Tab). In the header of the 3D View:

Then press A repeatedly until nothing is selected. Then use border select (B) for example to select the right most vertices:

Then scale them down. It might be that you have to change your pivot point to Median Point.
Again in the 3D View header:

You also have to make sure that proportional editing is off (O) (header again).


It was this setting under object data parameters. "Normals->auto smooth" Which is somehow different from the other ways of doing it.


Generating a UV map from object generated texture coordinates

Spherical Coordinates

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

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

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

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

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

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

Texture Painting

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

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

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

First time texture painting.. but in the right spots

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


Weird shading transparent texture for grass

This could have something to do with your render settings. Try to increase the values under Light Paths -> Transparency.


How to properly hook up various maps types in Cycles?

First thing to have in mind is that you have some conflicting data, and some redundant maps that can't all be used at the same time because their functionality overlaps.

Second thing to have in mind is that Blender Cycles is a physically accurate renderer, that means the results tend to converge to a physically realistic solution. Some of the maps you have there are made as approximations of a real solution and as such are "incompatible" with the way Cycles works or at the very least not needed and will "worsen" the result.

Ambient Occlusion AO map is for example a map that is generally useful for real time rendering contexts, but usually not desirable in offline or realistic renders.
It can still be used in cycles to but the results will be "less realistic" and will partially ignore scene lighting.

As my default "base setup" I would recommend using the Diffuse D map on a Diffuse Shader color socket, the Specular S map as a mixing factor to mix it with a Glossy Shader (amount of shine or specularity)  and the Glossiness G map as input for the Glossy Shader Roughness socket (how clear or rough each reflection is):

Then the Height H map and the Normal N map are mostly self excluding, either use one or the other as far as I know. I am not very proficient with Norml maps but would go with the height map which is more versatile and easier to use but do as you please.

Either use the normal map with a Normal Map + Bump Map node connected to all used shaders,

Or use the Height H map as bump, as material displacement or ideally directly in a Displacement Modifier for actual geometry deformation

Bump

Material based displacement

True Displacement using the Displace Modifier with a Subsurf to give it extra geometry to apply the effect


can you have two brushes in dynamic painting?

Yes, you can.
... "any" number of mesh objects (set as Brush) should work for the same Canvas object.

Blender Manual for more info check Dynamic Paint
When you have any issue, it is always good way to open a new file and test it with maximum of default setups, if still issue "Load factory settings" and test again.
BTW answering given Q didn't move you forward and didn't solve your issue ... try to edit your Q with something more specific that we can solve for you :)


Problems after separation part of a mesh

It looks like a traditional normal issue, your faces are turned to the inside of the object.
It actually happens in both your objects, the 'shard' and the rest of the building.

Enter edit mode, select one of the darkened faces, press Shift + G to select grouped and choose Normal to select faces facing in the same direction (check the selection for unwanted non-darkened faces and deselect any that don't apply)

Then press Ctrl + N to make normals consistent across the surface.

Repeat for the red frames on the building too, they also seem to be facing inwards.


One solution is to Boolean your intersecting pieces together:


Smoke Generation "Unpaired" from Object / Broken Quick Effect Smoke

You have at least three choices when blender becomes stubborn in cleaning up its cache:

Go to the (Domain) folder with the particle cache and delete all the subfolders to clean up:

Coax a cache clear by changing a Domain parameter (like Resolution Divisions) and then change it back.

Change the simulation cache setting to Type = Modular, then it will be easier to "Bake", "Free", "Resume" (from an interrupted simulation if you hit ESCape

And yes, you have my sympathies that many things in blender can be a bit quirky and frustrating at times!


Fluid simulation render is distorted (video example included, Blender 2.75a)

I discovered in other forums that this is a limitation with the fluid simulation and motion blur effect while rendering. Blender can't render a fluid simulation with motion blur, otherwise you end up with issues like these. Disabling motion blur will result in fluid rendering fine.


So basically what you are facing is a shortage of appropriate shortcut options . You want to assign a shortcut which has R in it but you know that r is for rotating in all the modes , so you could've tried ctrl R but thats loop cut , alt R is clear rotation and shift r is repeat last action , so the final option is that you can go and add some other key like combinations of O for the shortcut because we are running out of shortcuts


Align one face to another face of object?

In Object Mode select the plane that you want to align (the one that you want to change).
Add the second plane to the selection so that it is the active object.
In the 3D View Properties panel right click on one of the Rotation values and select 'Copy to Selected from' the pop-up menu and they will have matching rotation values.

I think that there are several ways to do this depending on the situation. This method may not work for all scenarios but it will work for two planar objects.


Default color for objects is blue. How do i change that?

(This is assuming that the blue is not from an assigned  Material Base Color).

If your image is showing your model in edit mode then you can change the default face color in Preferences:

Edit > Preferences > Themes > 3D View > Face > play with color and Alpha values.

Edited to add:

Ok if its not modified in Preferences .........  in the 3D Viewport open the Viewport Shading panel  > Color and if its set to Random change to Material


Bending a chain without deforming the links?

Solved! I used DupliFrames. By selecting the chain links, I used parenting (selecting by Right click on the chain links, then selecting the curve and parenting it to the chain links with Ctrl+P and choosing Follow path). Then you can go to the Object tab. under Object, find the Duplication tab, open it and choose "Frames". Then play with the settings to get the best result. To get it to follow for example, a Bezier curve. Select the object you want to follow the curve and go to Object in the 3D view panel. Then in that menu, choose Clear > Origin (or simply select the object you want to follow the curve, and choose Alt+O).


OK, I am silly.... setattr(settings, "mass", 0.5) makes it......


How do I remove a render engine in Blender?

There are two good ways to do this:

1) Disabling renderer in the Blender Preferences. This does not fully remove the renderer from Blender, but just disables it so that it does not show.

To do it, go to Blender Preferences (File > Preferences).

Go to Addons, and search "Render", or the name of your renderer. The renderer should show up with the rest of the Blender renderers. Uncheck the blue check next to the Radeon Pro renderer box, or whatever it is called, not (cycles, Eevee, or workbench).

2) Remove it from Blender

If you want to do this then there are two ways. The easiest way I will describe.

To remove it, go to the renderer in Blender Preferences again, and open the tab that describes the addon. If the option is there, select remove. Then remove the renderer from Blender. This should remove it from all of the files, and not be able to be accessed again unless re-installed.

If it does not have a remove option, do this:

If in windows, go to the operating file containing Blender, then go to Blender > (blender version) i.e 2.81 > scripts > addons > and search for the addon. Manually delete the file, and none other. Now it should not show up in Blender anymore.


How can my process of modeling be Sped Up?

There is no magic bullet. The only real way to get faster, is to practice and learn about the different tools available to you (watch tutorials).

As you practice, you start to notice things that you do a lot, and eventually you might find a tool that can achieve a task faster. Tutorials help speed up the process, but they only show what the tools can do, not how you should use them.

You also might find that you work faster with a certain tool than other people. Essentially, some people work well one way (and that's what they'll teach), and others work better other ways.

Lot's of things can be taught in tutorials, but you can only learn to do those tasks quickly as you become comfortable with them. The only way to become comfortable with them is experience.


Is there any way I can create an edge across these two points?

You can do this with the knife tool.

Select the upper part of the object and hide it for now, so it's not blocking the cut.
Go in Orthographic top view Numpad 7
Activate the knife tool K select the vertex at the corner you marked with the 90 degree red angle.
Drag the cut line and press C to activate "angle constraint", making it easy to snap the cut to the y axis.
drag the cut over the last edge you want to cut an confirm the cut with LMB followed by Enter.

You should have something similar to this little oversimplified visual example:

Don't forget to unhide the previously hidden parts of the object afterwards


It's difficult to give advice without image references.

May be the problem binded with Filmic View which reduces contrast.

There is no "best render setting", different settings are suitable for different situations: architectural or interior visualization, character or product rendering.

To adjust final render you can:

Tune Color Management Look, Exposure, Gamma or Use Curves

The whole spectrum of Color nodes in Compositor:


How can I add a new socket to a node and then make that socket connected to a property

If I understand the question correctly, you want to set node inputs values.

Say you have added texture node so that it can be accessed like so, for instance:

node=bpy.data.textures['Texture'].node_tree.nodes['Texture']

Then input slots are already created and you don't need to create the slots.

You can for instance:

node.inputs[0].default_value = (0,0,0,1)
node.inputs[1].default_value = (1,1,1,1)

An easy way to identify Python accesses is to use the tooltips:

To connect texture node output for blend node first input:

import bpy

tree = bpy.data.textures['Texture'].node_tree

texture_node = tree.nodes['Texture']

blend_node = tree.nodes['Blend']

tree.links.new( texture_node.outputs[0], blend_node.inputs[0] )


Glossy with 0 roughness gives dark reflections

You have set too low values for clamping and amount of light bounces.

In Properties editor > Render tab > Sampling rollout set Clamp Indirect to 0 (you can set it to something around 2 or 3, but test those values while changing). This will turn off clamping the values and return back to default. With that much clamping there won't be almost any reflection and light of higher values than clamping maximum.

See more related:

Why does this mirror, made using a glossy material, not fully reflect all the incomming light?
Cycles: Emission Shader does not bring enough light
Why are lamps and mesh lights not illuminating anything?

In Properties editor > Render tab > Light Paths rollout set Diffuse Bounces back to 4 (default) or even higher. It will allow light bouncing from diffuse surface to be bounced more times and make diffuse surface a bit brighter.

With current settings the reflection and diffuse surface look quite dark:

With default settings for Clamp Indirect and Diffuse light paths:


Not only do normal maps increase performance in games, but they also increase the speed and performance of renders. Normal maps are only supposed to be used for small details such as small dents, scratches, marks, etc. For small details, you should probably use a normal map.
However, normal maps do not modify the actual geometry of the object. They only change the direction light hits the mesh in certain areas, known as a normal (hence the name). To modify the geometry of a mesh with a texture, use a displacement texture.
So, for 3D printing, do not use a normal map as they only affect the shading of an object and not its geometry (3D printing only uses geometry for slicing the model). Use a displacement texture with the Displacement Modifier instead and apply it.


When should i use GPU if im rendering on cycles?

Depends which device has better compute performance. Usually that's GPU in desktops and CPU in non-gaming laptops.

Also you can be baking simulations on CPU and render at the same time using GPU.

Latest 2.79 Blender builds offer rendering on both CPU and GPU at the same time.


A while back, I found this tutorial on YouTube. Perhaps you can do something similar.

Another thing you could consider is taking a picture of the desk and mapping it onto your shadow-receiving plane. Then try adding glossiness again. This should provide a nicer rendition.


You can pre-render only the particle effects, then add a frame of the animation using Add Images as Planes (enable the add-on).

Then parent the image plane to the backdrop and change the source from a still image to a video sequence.

You can separate them out into different layers and then composite them together in the Compositor.

If you render with alpha, use the Alpha Over node. If you render against a black background use a MixRGB node set to "add".

The Compositor will also allow you to add things like glow effects if you want by using a Blur node.

Probably worth testing your workflow on a small number of frames first to make sure everything's working before rendering the whole thing.


The closest I was able to personally achieve that resembles your setup is below. It isn't perfect - it changes the look of the glass a little, and requires some very bright, or very close (or both) lights to be properly visible. As you can see from the image, I had to put the area light close enough that the light is glaring off the surface of the glass. It also seems that as is usual, the smaller the light radius, the better for the shadow. Therefore, keep the size of the area light as small as possible, and even consider swapping the sun for something else maybe even a very bright point light). However, one thing that works well in your favor is that the shadow shows up best at a shallow angle (like the one in your photo) so you can probably get away with less bright lighting. Also, the change in appearance of the glass shouldn't be as noticeable because the glass you are using is very thin. Regardless, have a try and see if it works, or at least gets you closer.


Why does Blender inflate file size in comparison to STL?

Blender stores a lot more mesh information than an STL file.
An STL file is a basic «geometry only» file format suitable for 3D printing and fabrication processes, it saves little else beyond the geometry itself. There is no color, UV coordinates, normals or anything else saved in the file.

A blender file has  much more complex geometry system suited for a lot more than just fabrication processes.
It stores not only geometry, but also UV Coordinates, vertex colors, normal information, mesh selection state, vertex groups, among others, it also stores the geometry itself in a much more versatile format allowing complex geometries beyond triangles, like quad faces and NGons.

Besides that there may be other complexities involved like inefficiencies of the file format/application, file compression, or data caching.

Under the menu File > User Preferences > File > Save & Load you will find a Compress File option, which if ticked should have Blender store information in a much more compact way.


Smooth shading causes steep gradient line on a simple mesh

Like m.ardito said, it it an issue with smooth shading. Contrary to what he said though, it won't render correctly in many situations. That is how Blender calculates the normals...
To fix the problem, you could add a bevel modifier and potentially turn on auto-smooth in the mesh settings.
Here is what it looks like with this bevel modifier:

To understand what's going on, let's look at the default cube with smooth shading.

It too has rather hideous shading "problems" shown by the sharp gradient lines between the closest and furthest vertex on the top. As I understand it, smooth shading averages the normals from the vertices so that there isn't a sharp change at the face's edges. But unless you use a normal map, you must use some sort of math to set what the normals will be across the face. For flat shading, the normals are the same across the face, but have a hard cut at the edges. An easy way to fix this is to just add more geometry. This allows the smoothing to look much more like what you'd think. Here are a few examples of ways to introduce this geometry.
Bevel Modifier

Notice how the normals get better and better with the higher amounts of geometry.
Subsurf Modifier

Notice that the subsurf modifier is just subdividing the faces. It is not doing any smoothing itself because it is set to simple instead of Catmull-Clark.


How to automatically make Blender choose random colors for your render

While there's no way to have blender check and choose the best color for you, as that is quite subjective, it is possible to set the color to change every frame and to render an animation of those multiple different colored frames.
To do so, first head over to your material tab, and select the shader currently applied to your text object. Now press Shift+A and create a color ramp node, and a value node. Then plug the Value into the Fac of the color ramp. Then plug the color into your principled BSDF or wherever you need it to be. Then go to the first frame of your timeline, put your mouse over the value nodes number, and press I to keyframe it. Go to a different frame in your timeline set the value of the node to 1 and then press I on it again. Now when you play your animation the value node will change from 0 to 1 and control the color ramps output color.
Now just input the colors you want into your color ramp, go to the render tab, turn down the output resolution, and turn on render regions and make them scaled down to just cover the relevant parts of the scene. Render an image sequence to a folder, and then you can go through and see a ton of different color options to use.


Unfortunately, these features aren't finished yet.
SSS
GPU SSS is working, but still experimental.
To test it, you need to add one line in the kernel_types header file:
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 8d7adb2..1175c16 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -66,6 +66,7 @@ CCL_NAMESPACE_BEGIN
 #ifdef __KERNEL_CUDA__
 #define __KERNEL_SHADING__
 #define __KERNEL_ADV_SHADING__
+#define __SUBSURFACE__
 #define __BRANCHED_PATH__
 //#define __VOLUME__
 #endif

It seems the main reason that this isn't yet included as  an experimental feature is that it requires compiling kernels twice:

we cannot make it available just under experimental, we would need to compile all kernels 2x (for each architecture).

Update:
GPU SSS is enabled in master as of this commit. Now any new development build will have SSS on GPU. This will be in 2.72.
Volumetrics
Volume support for GPU was unofficially working shortly after its addition (see 2:22 of this video), however broke with the addition of scattering (see 2:50 of this video).
According to the same video, GPU volumetrics was supposed to be fixed for 2.70. Since that was not the case, I can only assume that development was delayed and it's still due to be fixed at some point.
update:
GPU volume support has been added to master as of this commit, but currently is in a very experimental state and smoke/fire renders are not supported yet. This will be in 2.72.


Why does the paintbrush keep freezing while texture painting?

For painting, you need to be aware of how big your image resolution is and how big your brush is in the view. Close up, your brush is dealing with fewer pixels and will have better response  - further away, it is covering a larger number of pixels to update and will 'freeze' til it calculates each pixel per face.

Freezing can also be due to too much going on to calculate the GLSL feedback , so sometimes it is best to switch to Multitexture in the N panel to focus on just one image texture at a time, clicking the texture Slot that you want active in the Slots tab.


Another way. You can animate one of the objects, make it parent for the second, the second parent of the third....in the Properties Editor (Object Tab) of each child, check the Slow Parent option in the Relation Extras panel and type number in "offset".
An example: slow parent

Full tutorial and more: other link