How can I get a list of the installed addons using the API?

Blender has a module it uses for addon management called addon_utils, this isn't in the API docs and is only for internal usage. But its a fairly straightforward module.

This script prints all addon versions or (-1, -1, -1) if there is no version.

import addon_utils
for mod in addon_utils.modules():
    print(mod.bl_info.get('version', (-1, -1, -1)))

Note, that the modules may be fake, that is to say, a module object that only contains bl_info, this is done to avoid importing the module just to display it in the preferences (before its enabled).

Other functions of interest are...

addon_utils.enable(module_name, default_set=True, persistent=False, handle_error=None)
addon_utils.disable(module_name, default_set=True, handle_error=None)

# (reloads from disk)
addon_utils.modules_refresh(module_cache=addons_fake_modules)
# returns all modules
addon_utils.modules(module_cache=addons_fake_modules, refresh=True)

Suggest reading addon_utils.py, if you need more info.

Note, if you just want to access enabled addons, this is a lot more simple...

what about:

import bpy
print(bpy.context.user_preferences.addons.keys())

that returns something like:

['io_scene_3ds', 'io_scene_fbx', 'io_anim_bvh', 'io_mesh_ply', 'io_scene_obj', 'io_scene_x3d',
'io_mesh_stl', 'io_mesh_uv_layout', 'io_curve_svg', 'cycles', 'sire_o', 'space_view3d_move_orig
in']

So to get the modules you can do...

import bpy
import sys

context = bpy.context

for mod_name in context.user_preferences.addons.keys():
    mod = sys.modules[mod_name]
    print(mod.bl_info.get('version', (-1, -1, -1)))

@zeffii noted this in his answer which has since been deleted so including here.


difference between dimension and scale in blender

Scale is a factor applied to an object non-destructively, on top of its true real
world dimensions. It doesn't really modify in underlying geometry or mesh data unless applied.
A 2 units cube with a scale of 2 will result in a total size of 4 units; a scale factor of 0.5 will result in a final size 1 unit. Scaling doesn't change the actual objects size, so if you enter Edit Mode on a cube with a scale factor of 2 its edges will still show dimensions with a perceived factor of 0.5 in relation to Object Mode because that is their true size.
Also see related Why do the measurements of this object seem erroneous?
Since scale is applied per object, several objects can share the same objectdata (shape defining geometry) but appear to have different sizes because each instance has a different scale factor, despite its geometry being the same and thus having the same true dimensions in Edit Mode.
Object dimensions are the result of the scale factor multiplied by the actual geometry size, and are measured relative to the size of its bounding box. If you change one edge size in Edit Mode it will change the cube's bounding box size, and hence its dimensions.


How to move an object over a deformed surface and make in follow the surface?

Create a plane with enough subdivisions, and give it a shrinkwrap modifier with target ocean. Add a vertex group with all vertices to the plane.
Then use copylocation constraint on z-axis to your boat and the vertex group. Hide your plane.


The thing you are doing wrong is that you are not baking the animation first, no matter how powerful your computer is it will take time to bake and currently you are baking it while playback that's why you are not able to get high fps, bake the animation first and you'll be able to have a smooth playback.


While looking around I found this answer that talks about splitting an edge with Subdivide and thought I'd try it with two opposite edges of a face selected. Turns out it works!

First, click on Edge select:

Then, select the top and bottom edges, since we want to split the face horizontally. If you want to split the face vertically, select the left and right edges instead.

Right click somewhere in the scene (don't think it matters where) and select Subdivide from the menu:

Ta-da! It's split perfectly in two.

Now you can select each face:

I'd be interested if anyone has a better way of doing this, as it seems like a very common task.


How to render an orthographic image with an alpha mask in cycles?

Set the camera to Orthographic view.

Then render it as a PNG with RGBA.
Under the Film tab check the check mark for transparent.

Now if you need separate black and white image for the alpha mask.
Go to the compositer. Plug the Alpha from the render layer in to the Image socket of the Composite node.


Generally speaking you will use File> Link to bring a mesh into another blend file. You then navigate to the .blend file, which will open up like a directory in the file browser. If the rig is well-designed, there will be a Group directory inside. Go into the group directory and select the group.

If there is no Group folder, navigate to the Object folder and Shift + LMB the objects that you want.

Linking provides several advantages. Not the least of which is that you can edit your rig without requiring any changes in your asset file. Invaluable when working with other people who are your modelers. However you could also Append which makes it so it points to the file, instead of copying it. This is useful working with other people, or when you what to change the asset directly.


Is there a way to copy/paste keyframes to a extrapolation cycle?

This can be done with F-Curve cycles modifier. The F-Curve modifier panel is located in the Properties region in the Graph Editor.

To add a modifier, select the curve you want to add cycles to, select Modifiers tab in the properties region, click on Add Modifier and select Cycles.


Help with separating fingers on model, absolute beginner

This looks like a job for the Knife tool! (Default shortcut K).
Before you start though you may wish to convert to quads, which are typically easier to work with - select the whole mesh in edit mode (shortcut is A for select-all, usually) and still in edit mode use ctrl-j by default - although just typing quad in the command search function will return Tris to Quads as the second option.  Command search is very useful for when you don't know where to find a command.  F3 should bring it up, though I usually pick the interface mode where it's bound to Space, as I use it often.)
When in edit mode, press K, click where you want the cut to start (it will snap to edges and vertices, and you should probably start from an edge but don't necessarily need to be at any particular spot on that edge) then click at each new point you want.
It will cut new vertices into the mesh to form that geometry.  If you've pressed Z along the way it will cut all the way through, otherwise it just works on the visible side you're looking at.
Anyway, make some cuts up the length of the fingers, and you can start cleaning up all the other edges while keeping your new edges.  You will need to make new faces (possibly assigning textures) and probably even move some fingers around a bit to get it ready to rig.
Another useful tool is the Rip command (shortcut V in edit mode), which essentially takes one vertex (or set of vertices/edges/whatever) and rips it into multiple, with the ripped side depending on where your cursor is when you invoke it.  Have a play around with it, see if you need it.
Together those would be the main two things I would use to split up that mesh.  After that, using F (make face) or alt-F (fill a bunch of faces - sometimes not always reliable but much faster when it works) to fill in the holes you've just made so that the fingers have actual side-faces where they used to be joined, and you should be most of the way there.


How can i get my characters feet to lie flat?

Select the group of vertices that represent the shoe sole and press Shift+S-->Cursor to Selected.

Scale it along the Z axis (S,Z) and press 0.

Add a loopcut to sharpen the edge. Press Ctrl+R, confirm the cut with Left Mouse Click and place the loopcut at the bottom of the sole.

Here's the result.


Final & Overview:

  This is partial answer. It's solves question but not other possibilities.

You can Add or Mix Diffuse shader with Transparent shader. Diffuse should be color you want to have after mix and Transparent is a base color. Text has just Diffuse shader.

Why partial?

Well, it will work only with few colors (yellow + red = orange is working too). I don't know why, and I can't find a proper answer, but if you'll want to mix for example red with blue to get magenta it will fail.

Another con of this method is that you'll need to know how colors are mixing and set it manually.

I hope that someone could elaborate about this issue more. It's pretty interesting.


capturing a frame simulation of cloth, particle as initial state

Ah, how-to-extract-a-particular-frame-of-cloth-simulation seems to answer this question.
Apply as Shape at whatever frame you want to extract, then at the initial frame dial up the shape.


Are there any simple way to animate other than by key frames

without keyframes. Can be used Scripted Expression. More depends on what you want to do.
https://docs.blender.org/manual/en/latest/animation/drivers/workflow_examples.html


A recent feature somewhere in 2.6x offered up called 'sewing springs'
http://s6.postimg.org/s0xtlxxkx/sew_Spring0.gif

System depends upon edges to act as pull string, here's how.

Setup pinned vertex group to act as final 'pull' position and anchor. Have it be attached to cloth via extruded 'edges only'.

Followed by a group of edges to bridge distance by pulling.

Enable sewing springs and attach group.

Add collision detection, bake, rinse and repeat.


How can I normalize weights to a limited subset of weights on a model with shapekeys?

Okay, it was easy.  It turns out that you can apply a data transfer modifier to a mesh even if it has shapekeys, which I didn't realize.  So I could make a copy of the mesh, delete deforming groups from the copy, normalize all the copy, then data transfer the groups back onto the main mesh.  Good to know.


This feature is now included.

Select the shadowcatcher object, go to the object properties and check Shadow Catcher under Cycles Settings.

It will render a shadow but mask the object behind it.


Boolean difference makes all geometry disappear on a scaled, solidified half-cylinder

That intersection is indeed the issue.

There isn't much way to fix this without doing it manually, but the clamp option can help at least clear things up a bit:


Character Motion in BGE: Hold Two keys at the same time

Solution

All you literally need to do to fix this is Click this button. (on all of your Motion Actuators)

Reason

When the Ad button is not clicked, each Actuator is setting the location, and is is overriding any other Actuators activated previously, regardless of whether or not they are still running. Enabling the Ad button makes each Actuator add to the change in location, enabling multiple Actuators to be executing at the same time.


Settings like velocity are grayed out for particles

Hair particles can either be dynamically generated by the particle system or can be cut and placed using the Particle edit. You can't have both.

If you have a close look there aren't that many values that get disabled after you edit particles, and they are all related to the initial generation, like the number of hairs and length. By using particle edit you are saying I want to control the placement of hair particles so don't replace my work with generated hair.


Creating many primitive objects quickly with Python

Instead of using the operator to create the mesh each time you can use a copy and link it to the scene. Try and avoid high amounts of operator calls Python performance with Blender operators .  They have the tendency to bloat out because of the undo stack, for one thing.

The operator is called once to create the primitive, then a copy is used for each iteration.

Created a list of 10 random materials.  Each object mesh will have one randomly selected material from the list.

import bpy, random
from random import randint

context = bpy.context
scene = context.scene

def base_object():
    #Creates base cylinder
    bpy.ops.mesh.primitive_cylinder_add()
    return

def clear_scene(scene):
    #Clears the current scene
    for obj in scene.objects:
        scene.objects.unlink(obj)
        bpy.data.objects.remove(obj)
    return

def object_creation(scene, clouds):
    base_object()
    obj = scene.objects.active
    mesh = obj.data
    nummats = 10
    random_mats = create_material_list(nummats) # create 10 random materials
    for attempts in range(clouds):
        x = round(random.uniform(-4.0, 4.0), 10)
        y = round(random.uniform(-4.0, 4.0), 10)
        z = round(random.uniform(-4.0, 4.0), 10)
        obj.location = (x, y, z)
        obj.scale = 0.1 * obj.location

        red = random.uniform(0.0, 1.0)    #Used for random color scale, need to adjust later for color mapping
        green = random.uniform(0.0, 1.0)
        blue = random.uniform(0.0, 1.0)
        obj.show_transparent = True
        obj.active_material = random_mats[random.randint(0, nummats-1)] # random pick of random mats

        obj.color = (red, green, blue, 1)  #Changes objects color(RGB Opacity)

        # copy the next one
        obj = obj.copy()
        obj.data = mesh.copy() # a new mesh for each object.
        scene.objects.link(obj) # link it to the scene
    return

def create_material_list(len):
    #for attempts in range(scale):
    mats = []
    for i in range(len):
        material = bpy.data.materials.new("Material")    #Material properties
        material.alpha = round(random.uniform(0.1, 1.0), 10)    #Opacity
        material.use_transparency = True
        material.use_object_color = True
        mats.append(material)

    return mats

clear_scene(scene)
object_creation(scene, 1000)

A similar question answer How can I create many objects quickly?

Might also want to check this out https://blender.stackexchange.com/a/42232/15543

If you stick with CamelCase for class names you will get better formatting.


The volumetrics panel is collapsed in the Render Properties panel.

Expand it to reveal the check boxes ...


Rendered Image not showing up in compositing tab

Add a viewer node or if your Node Wranglar is enable controll + shift left click on the Render layes


How can I scale an object with Python without it moving?

Your pivot center point is the only point that is unchanged when scaling. By default this pivot center point is the object origin. In order for your human object to not move, the center point must be either at the foot or at the barycenter of it (it depends on what you mean by "remain at its original location")

To do that you can use the 3d cursor as the pivot point and set its location to the point unchanged point (foot or barycenter)

bpy.context.area.spaces[1].pivot_point='CURSOR'
bpy.context.scene.cursor_location = pos #where pos is the unaltered point


How can I make a glowing iris (eye) material similar to these pictures?

Here is a file and a screen shot - I extruded my circle and then applied scale and transformation (ctrl-A) before unwrapping the mesh and choosing Follow Active Quads and Even so that they would align liek you see in the lower left.
Then I made up a material to use a texture to stencil between the shaders to get emission area showing.

https://drive.google.com/file/d/1m-ZLTv5bUzeDT5XOHaVbgBRGhAtu8maB/view?usp=sharing


Try going in the Properties Tab>Particle system>Render and make sure the "Show emitter is turned on"


How to copy keyframes from one armature to another

When an animation is created, Blender creates an object data called "action", that can be appended or linked to another object (in your case the object will be the rig).
So you have to import in the new file the action from the old file.
you can reach and rename your actions through the dopesheet, changing in the header of the window from "dopesheet" to "actions".
Of course - to work properly -  both rigs should have the same bones, same names, etc..
Check manuals about "actions" for more infos.


Exporting all shader node with object to import into another scene

You should not use the import/export tools when copying stuff from one scene to another. Use the Append tool in your big scene (File->Append) and choose the bread .blend file. Then navigate to the "Objects" folder in the .blend file and select all objects belonging to your loaf of bread. This will import it with all materials applied.

The alternative is to first open the bread .blend, select the bread and press Ctrl + C and then paste it into an other file opened with Ctrl + v


Render points only if visible from another camera

All you need - projection mapping. Just put additional UV layer on objects which you want to control, add UV project modifier, and add new logic to material. Second camera projects normalized UV coordinates [0;1][0;1], but we can calculate if some point is outside and apply different material to it. Emissive like on first screenshot, or Transparent like on second one.

OK, lets get really freaky!

Of course, you have to render Z-channel to some EXR file (or sequence if you have an animation). Then add more to material: drivers to get camera position, math nodes to calculate distance for sampling point, and little more to avoid another reincarnation of z-fighting problem.

Just one fix to previous: that UV projecting produces "square", so you have to correct aspect (based on projecting camera render), it was 1080/1920=0.5625 to ScaleY.

I love Cycles magic!


How to fix the weird surface in fluid object

The issue is caused by insufficient domain voxel resolution. If you don't want to do high resolution such that these artifacts are not visible, you can:

smooth it with sculpting manually, but this is only viable for still images, this will be very time consuming for an animation.
design the fluid in such a way it will fully intersect with the inner surface of the glass. Then you can create a special mesh that represents the glasses inner volume and do a boolean intersection with the fluid. The problem is that a fluid simulation can lead to some non-manifold meshes (water droplets joined in single vertex where the voxels meet) and the boolean operation in Blender will fail for some frames. You can apply some smooth to the fluid with modifiers before the boolean one - this should further mitigate the problem of failing boolean, but it does not solve it completely. You can correct the failed frames manually, or use another software that has more robust boolean algorithms to do non-manifold booleans (CGAL, Houdini, ..).


One way to do this is to get used to scaling using the obj.matrix_world and obj.matrix_local. Where obj is a reference to your Object. That way you can reset to the original scale using the identity matrix. You can even chain various kinds of matrix manipulations (Rotate, Scale, Location).

I hope to have time to give examples. The documentation shows how to do things, but it assumes you know Matrices and Vectors well enough to understand the terms:

docs: mathutils.Matrix

Ideasman points out that object.scale can be used. This is a convenient way if all you need is to rescale, it lets you scale directly using a vector (or tuple.. or list..as long as there's 3 elements).

obj = bpy.data.objects['Cube']
obj.scale = (0.5, 0.3, 1.2)

# will return all dimensions to their original value
obj.scale = (1, 1, 1)

You mention in your Question about rotation. Another convenient way to rotate an Object can be found in the set of attributes starting with .rotation_*:  see Docs for a description of:

obj.rotation_axis_angle
obj.rotation_euler
obj.rotation_mode
obj.rotation_quaternion

# ---- needed imports to use euler and math module
import math
from mathutils import Euler

obj.rotation_euler = Euler((0, 0, math.radians(45)), 'XYZ')


Can I move Blender between drives without breaking the installation?

The installation folder of Blender can be moved anywhere on your computer at any time.
The only folder that must be taken care of is the user folder.
That's where are stocked your personal data like preferences and addons. You need to copy that folder if you want to copy your Blender on another computer or have a USB installation that cna be run anywhere.


Make character and plane interact in pose mode?

In pose mode you manually position a bone at a certain position at a specific frame. With physics simulations like rigid body, the simulation positions items over time.

You cannot use physics to control a bone while you are manually positioning it in pose mode. You need to visually position the bones while creating keyframes, this is often best done from the camera view to ensure the desired visual result.

You can bake a physics simulation into keyframes and then manually adjust some of the generated keyframes.

You cannot mix keyframe animation and simulations at the same time, you use one or the other. Some physics can be turned on and off at specific keyframes allowing you to use both at different times during the animation. This is commonly used to animate an initial velocity of an item at the time the physics begins.


The texture and lighting on the second image make it seem smoother since it's harder to distinguish between the faces, even though it has very similar geometry.
To fix this issue, you can select the mesh, go to the Object menu at the top of the viewport, and click on shade smooth. This will make the object appear smooth even though it has fairly simple geometry. However, this approach can cause some issues with shading and lighting not appearing realistic.
If shading smooth doesn't fix the appearance well enough, try using a subdivision surface modifier to add more faces to the mesh and give it a rounder appearance. You can use this modifier and the shade smooth option for the best results.


Assigning Different names to a text box?

As both items refer to the property my_string_prop they will show the same data. The name of the property used has to exist, if you change the name and it doesn't exist it will not draw the textbox.

To add new properties to the scene object you should add the property in your register function.

bpy.types.Scene.my_string_prop2 = bpy.props.StringProperty(name="String2")

To get a list of items you can use prop_search

row.prop_search(context.scene, "my_string_prop2", bpy.data, "objects")

That will show a list of object names to choose from.


Is there a way to integrate other software in a Blender pipeline?

I used to be the supervisor of a studio where we are using Blender.
First, I implanted blender for modeling/UV, you can then export the mesh in obj or FBX and used them in any CG software (Maya, Max, etc ...)

Then we started to animate in Blender and render in 3DS Max with Vray, so all Modeling, Setup, Animation were done in Blender, then you export the all scene in Alembic, that keep animation data and you can load it in Max or Maya to make the render.

As for Compositing software, of course you can use any Blender render (use pass render in EXR) in Nuke, Fusion or After Effect.

So yes, Blender can be implented, in my humble opinion, in any pipe, and more easely if you are starting your own bussiness.

Hope it helps you


The problem turned out to be a bit more tricky then I expected. The model I'm importing contains several duplicate vertices, but as a result also duplicate faces. Depending on the order the faces are defined in, in the OBJ file, the resulting material that is visible differs. So I ended up writing a bit of Python code to pre-process the obj file: remove all double vertices, remove double face definition ensuring that the remaining face has the correct material defined.


How to move only the position of the parent object

There is a different ways to do this.

In Armature there is an option to make bone don't inherit Rotation:

Animators like to use this option on head

In objects you can use Copy location instead of relationships. Copy location is a constraint, you can add it using Ctrl+Shift+C, or on constraint tab:


Problems with Transparency when rendering with Volumetric shaders

As stated in one of the comments is this a problem of blenders internal way of handling unoccluding emissions. See the comment from @susu for details.


Thanks to the comments left on the question, I was able to solve this issue by increasing the resolution divisions on the domain.
Originally I was running it at +/-128, but had to bring it up to 256, 320, and even 512 until I started seeing the results I was hoping for.


So after looking for hours at the forums, I found a solution, just add more parents to the bald spots (well, they are not bald, but for some reason the hair grows inside of the mesh). It doesn't fixes the growing inside problem but, well, there are no balds spots now.
I used the Add tool in the particle edit mode.


Control the amount of gloss and reflection separately in a glossy BSDF material?

At the moment, the reflection and the specular highlight are a part of the same ray (reflection rays) and thus there is no way to separate them, or control attributes for either of them separately.

As someonewithpc pointed out in the comments, it is sort of planned to be implemented at some point:

  Glossy BSDF's are unified for direct and indirect light, as in the
  real world. An option should be added to control the amount of
  indirect light a closure contributes, so that glossy shaders can be
  used without being a glossy mirror.

From http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/ReducingNoise

If you would like your entire scene to only show specular highlights and no reflections (i.e. only direct reflections of light sources), simply turn the glossy bounces down in the light paths panel:


With the sharp edges/splits, it looks like the problem is that you are using an edge split modifier, and it is above your armature modifier in the modifier stack. Try using the up/down arrow buttons in the top right corner of the modifier to move the edge split modifier below the armature modifier.

As for the hand bones, I don't know enough about the export process here (are you using fbx or some other format?), but the bones may exist on a different bone layer in the armature. You could try looking through each layer under the armature tab of the object properties (the tab with the symbol that looks like a little man) by clicking on layers to toggle their visibility.

The other alternative is that the bones may have been hidden using ctrl-h or similar. You can unhide everything in a particular mode (armature edit mode in this case) by using alt-h.


How to achieve accurate rotation of fingers at the point they meet the palm?

You could consider to insert in your rig a driven shape key, to ensure that you get the exact deformed mesh you desire. The shape key can be triggered only when a certain amount of rotation is reached.


My mesh is a black wireframe but only on layout mode

The donut is in wireframe view, so to make it the default "grey" again, select the sphere in the top right corner of the interface that resembles a filled circle. This will set the object to a "solid" view.


This effect is produced by having faces unwrapped as lines in the UV coordinates. Meaning, your long rectangles are represented as long lines in the UV layout, without any width to them. So the pixels of the texture are correctly represented only in 1 dimension (ALONG the rectangle), but not in the other.


Auto baking the indirect lighting of irradiance volumes with animation?

According to Blender at
https://docs.blender.org/manual/en/latest/render/eevee/render_settings/indirect_lighting.html in paragraph 3:

  As of now the light cache is static and needs to be computed before rendering. It cannot be updated per frame (unless via scripting). This limitation is being worked on and will be removed in future versions.


Making updates to an environment that I've camera projected

Sounds like you're on the right track! Depending on how much detail you need to fix, Blender's UV Texture Paint can save some time between Blender and Photoshop. This tutorial goes in-depth about projecting and fixing parts of an image and provides a decent workflow.


You need to correct the IK Pole Angle value of your forearm:

First, select your armature and in the Properties panel > Data > Colors go back to Default Colors so that you can see where are the constraints. You can see that your forearms have an IK constraints (green bones).
In Pose mode, select its right forearm (the one on our left) and go in the Properties panel > Bone Constraints. Now play with the Pole Angle value to correct the rotation. You often needs to do this after giving an IK constraint so that Blender knows how the bone is supposed to be oriented.


How do I cut off excess overlap of two objects?

A practical way to do this is:

Go into an orthogonal view looking down the edge of your plane roof
In Edit Mode, Put (CtrlR) 2 edge loops around your log
Slide (GG) each of your edge loops until they coincide with the slope, top and bottom.
With the knife tool, cut through (KZ) from the top vertex of the left loop to the bottom vertex of the right loop.
Rip (V)the newly created sloping edge loop.
Select linked (hover L) on the left side of the new loop, and delete faces.
Dissolve your guide loop, if you like.

But you're still in trouble: If your roof is a simple plane, either the logs will show through, or there will be a gap on the outside, or you will have coincident geometry, which will cause artifacts. So really, your roof should have some thickness, and the ends of the logs should be concealed inside it.


Set all panels to be closed by default or remember settings by file?

Open blender.

Set the screens the way you want them.

Save your new layout as default by saving the startup file.
In the top menu use File > **Save Startup file.

(For older versions 2.7x) Press Ctrl U to save the current file as the startup file.

From then on, every time you open blender you'll be presented with the layout you've customized.
Setings are always saved so that when you reopen a file it will open with the windows in the same way they where when the file was saved.
If you want to override this behavior unclick the Load UI in when opening a file:

To go reload blender's original settings you can always go to the top menu and use File->Load Factory Settings


A polygon uses the same vertex twice error in animation nodes

I fixed it by connecting the math add node to index instead of iterations and added the edges of polygons node.


Camera not visible after changing units to mm in Blender

Select the camera object in the object list in the top right corner. Then press the forward slash key "/" to isolate the camera. This will hide everything but the camera and zoom in/center the viewport onto the camera.

From there, I'm sure you can figure out how to rescale and reposition the camera to fit the scene.

Changing the units and unit scale should not affect any of your models...I'm curious as to why that happened.


Mirror modifier can not be used in edit mode

The person who made the video is simply saying 'apply' instead of 'add'. They do not 'apply' a mirror modifier, they just 'add' one. At no point, at least around the time you mentioned, do they actually press the 'apply' button on the modifier.

If you were to apply the mirror modifier you would no longer have a mirroring effect on edits you make to the object. You only get mirroring for as long as the modifier is added to the object and not applied. When you are finished you can press 'apply' and the mirrored side of the mesh will now be editable like any other piece of geometry. Seeing as at that time in the video he hadn't made much geometry it wouldn't have made sense to apply it.

So, to summarise, to use the mirror modifier you just have to add it to the object by choosing it from the list of modifiers.


Not created again already exists material

A material never is True.
Use if mat: which is boolean true if not None  Using if mat is True:  for a material will never be true.
Since you are setting use nodes later can also do this
mat = materials.get("Foo") or materials.new("Foo")

To drill this in here is a simple example
import bpy

context = bpy.context

def main(context):
    mat = bpy.data.materials.get("Foo")
    if mat:
        print("Material Foo exists, skipping")
        return
    else:
        mat = bpy.data.materials.new("Foo")
        print("Created Material Foo")
        # do something with new material

    return

# test calls

main(context)
main(context)
main(context)

Output from default file no material "Foo"
Created Material Foo
Material Foo exists, skipping
Material Foo exists, skipping


If the interface is still responsive, Blender hasn't crashed (yet). But in this case is engaged on some heavy computing.

In this case the issue is that you are trying to render using an insane number of samples!

You've set up 1000 samples but have the square samples box enabled, that will make the number 1,000,000 (1000 samples x 1000).

A million samples will require massive computing power!

Uncheck the square samples box and bring the number of samples to a reasonable number...


Get screen space coordinate for node position

There are two utility functions for regions to convert 2D spaces:

Region.view2d.region_to_view()
Region.view2d.view_to_region()

-- API Docs

You might not even need it, try 'POST_VIEW' for your draw callback:

bpy.types.SpaceNodeEditor.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_VIEW')

This set, you can draw in the node space in your callback function, unlike 'POST_PIXEL', which will always give you the screen space.


If it doesn't need to be physically accurate, you can cheat a little by using a small, low-res, invisible collider about the target region. This should work since only a small region of your plane needs to test against collisions, and from the viewing distance, the slight mis-match between the lower-resolution collider and the actual geometry should be imperceptible.


How do I export my model with some light (in .gltf)?

There's an "Include: Punctual Lights" option in the exporter that will include point, spot, and directional lights in your exports. However, note that (by default) Blender also displays "Scene World" lighting, and you can't just export that. You'd typically need to enable it in whatever viewer or 3D engine you are using to view the model, and that depends on the engine. A typical term for this would be "IBL" or "environment maps" in some engines. Metallic materials, in particular, require this type of lighting to look correct.


How to hide the object emitting particles in a render in Blender 2.80?

There are two settings Show emitter:

in the Render section works only for the final render
in the Viewport Display section for the current view port

However when you un-check the Show emitter in the Viewport Display section both emitter and particles may disappear. You need to re-select Dispaly As as Rendered and then only the particles will show.

To hide the original object or collection used for particle instances just hide them in Scene collection window.


As Rich has pointed out, the file you are trying to open does not reside at the location Blender starts up from.

By running os.getcwd() you can see, that you are working in the folder where you installed Blender to.

To open the file (which I guess is residing in your homefolder), you can use the os.path module:

os.path.expanduser('~')

This will give you your homefolder, which you can then combine with other directories using

os.path.join(direc1, direc2, file)

Another option is to use os.chdir(directory) to move to a new working directory first, before opening the file (e.g. you can use os.chdir(os.path.dirname(__file__)) to move to the folder where your python file sits)

Happy coding, Mr. Anderson!

Hint: When using different operation systems, make sure you always use the os.path module, as it can handle the differences in path separators ('\ for Windows, / for Linux and so on). E.g. os.path.abspath(filepath) to get a proper absolute path for the provided filepath.


To get "Z" to toggle wireframe again, turn Object > Display > Maximum Draw Type to Texture or Solid if it is currently set to Wire

Or for the animated version from user Timaroberts

Sources:Can't get my model out of wireframe mode, GIF from Have I toggled wireframe?


The assign material button only works when there is more then one material.

When there is only one material the material is always on the entire model. To be able to use the assign button, just add another material.


How come my object doesn't show up after rendering?

I want to tell you the answer is easy when I look at the image you posted. Your camera is facing the background and not the character. When you hit render you render what the camera sees and not the current view in the viewport. That's why you don't see anything. Select camera and press Numpad 0. Your view will be moved to the camera view. Now you'll see that character is not visible. Go to the bottom panel of 3D view and press View -> Navigation -> Walk Navigation. Now use the keys WASDto move your camera around until it looks at your character, and then press LMB(and not RMB otherwise your camera will reset position). Now you can press F12 to render and your character will be there.
If you still don't see it, then you need to add a lamp to your scene.


The idea is to isolate areas of topology where the interpolation of normals (used by smooth shading) might screw the illusion of a smooth surface from parts of the model where it matters - from places where curvature has to be kept even.

Either:

I inset the flat top region, and
CtrlR cut a loop around the neck and slide it
up towards the rim

Or:

CtrlB Bevel the rim with (e.g.) 2 Segments and
a Profile of 1,which has the same effect.

Now the thin triangular faces are in a flat area, all have the same normals, so no interpolation

Or....

... you could do the bevel with a Bevel modifier, targeted by angle .. or edge Bevel Weight, so you can adjust the bevel later.. you could split the normals for shading alone without adding any geometry or subdivision, by going to the Data tab and checking 'Autosmooth' .. or..


Hard surface modeling - topology problem

The problem is that your normal directions have become mixed up. To solve, (in edit mode) select all, then pick  Mesh > Normals > Recalculate outside.


Problem with the Specular Glossiness node and Metallic Roughness

I guess that facebook's 3d viewer does not support real time reflections. Cycles uses raytracing to calculate the reflections while most online viewers use rasterization like game engines. In order to get reflections in these engines you would have to create reflection probes or screen space reflections (which does not seem to be supported by facebook yet).


combine targetless IK chain with copy rotation constraints

What you are trying to do is to have FK control and IK control on the same bone chain.

As you stated there are dependency issues, and this cannot ever work.

What you need to do is to make 2 separate chains - FK and IK, and a 3rd deform chain that blends between them.

Another thing you can do is to have main IK chain for the general shape, and then FK chain that copies the main one and is there only for fine minor tweaks - but this will break the endpoint location.


Problem with the Rigging of legs, and it's doing stranger things!

The weight is bad, for example if I select this left leg bone, you can see that it affects the right leg, so you need to correct that:


How do I use dyntopo and mirror together?

You cannot effectively use the mirror modifier with dynamic typology (or sculpting in general, for that matter).

Remove the modifier and then under the Dyntopo settings in a sculpt mode, ensure the "Direction" setting is correct and click "Symmetrize". You may get some pinching down the mirror axis, but this can be smoothed out manually.

After that, go to "Symmetry/Lock" in the same panel and select the correct mirror axis.


Selecting vertices in reference to a plane, ex: Select all vertices to the right of the origin

Select one vertex in the middle of your model, then press Menu > Select > Side of Active and choose the axis and axis mode in the redo panel:


How to remove aliasing from two images displayed on top of each other in the video sequence editor?

This seems to be a precision problem, when you check Convert to float in the filter tab of your image strips, the issue disappears.


Why do the measurements of this object seem erroneous?

The discrepancy in measurements happens when your object has been scaled in object mode, but the transformation has not been applied.
As an example, look at this perfectly regular cube (2mx2mx2m) in edit mode:

What is wrong with it?
Look at the scale section on the panel in object mode:

If you select your object in object mode and press Ctrl A and select Apply Scale

The scale of the object will reset to 1,1,1

And the measurements in edit mode will reflect the real measurements of the object.

Without applying transformations, you can also choose to display local or global measurements:

The measurements in Local units are Relative to the Scale, and show that the cube is 2x2x2, whereas the Global units show the Absolute measurements, revealing that the cube is no longer a cube, but a cuboid that is 4m tall and 2 meters wide.

Why should you care for local or global measurements?
There are many operations that use the scale and rotation of the object and not its absolute dimensions
Quote from the blender manual

Applying transform values essentially resets the values of object’s location, rotation or scale, while visually keeping the object data in-place.
The object origin point is moved to the global origin, to rotation is cleared and scale values are set to 1.
For simple cases you won't notice any difference the 3D View or rendered output, however modifiers and constraints may depend on object transformation.

Beveling, UV unwrapping, physics simulations, booleans, and many other functions will use the objects relative dimensions and will give unexpected results if the transformations have not been applied.
Please read: Why is it important to apply transformation to an objects data?


texture paint changed my image to be black

I've just found the fix for this. I realize that it happened when i use 16bit TIFF file as texture map. So everytime i do a texture painting and save the image, it will save only my stroke, while the original image become black. Then i fix this by using 8bit, so i convert that 16bit into 8bit TIFF then reload that texture map and it solves my problem. I currently use 2.79 , so maybe this is a bug.

Thanks.


How to Delete Camera "Track To" Constraint, But Keep Transformation Settings?

There is an Influence parameter in camera Track To constraint.
You can use a copy location constraing as explained in this post Camera follow object and then stop in place


Add a circle.
Add a subdivision surface modifier.
With all vertices selected, perform the Checker Deselect operation to select every 2nd vertex.
Scale the selected vertices inwards.
Select all and extrude them.
Select the resulting rings with Alt clicks and scale them accordingly.


How to engrave an image on an another texture

You can make a bump map out of stretched noise texture for brushed effect with a black and white mask of the logo also using it for any differences in material properties of the engraved part.

Edit: Sorry, I made a mess there. With bump darker is deeper, lighter sticks out, so the texture should be inverted - white is outside and black is inside. Then it can be mixed with the stretched noise and since we want the noise inside, the mix factor should be black(0) outside, white(1) inside and if we multiply it by a value, that value becomes the factor -1(white) multiplied by the value becomes the value. So it's possible to control the amount of stretched noise mixed in. You can also only mix the property values of one shader instead of mixing two shaders.


Tip: Start from a pitch-black scene:

Set all World colors (Horizon, Zenith, Ambient) to Black (hex 000000)
Turn off all other forms of Lighting (ambient, environment, sky, indirect)
Turn off all lamps (or move them to another 3d-viewport) layer

So that your scene now becomes totally blacked out.

Then start adding various light sources from the TOP -> Down:

Global lighting first:

World (sky, horizon, zenith)
Ambient occlusion
Environment lighting
Indirect lighting

then add Local light sources:

Lamps (sun, area, hemi, spot, point)
Turn on any material emission (which bring light into the scene)

En voila... now you know and understand which light source effects what in kind of lighting effect inside your lovely scene.


Well I assume you are already familiar with how cycles and Eevee rendering works. Like you said Eevee uses fake/cheat method. What you are asking for is achieve Cycles like AO which is physically accurate (depends on the values on a given scene). Currently there's no proven working method that achieves that, I can suggest you to bake the AO in Eevee like we bake in light from Cycles.


Here's what I used, the following two lines of code did the job:

arm = bpy.data.objects['Armature']
arm.data.edit_bones['boneName'].parent = arm.data.edit_bones['parentBone']


Particle Collision Object for some particles but not others?

Yes, you can place particle system and collider objects on multiple and separate layers, and they will only respond to the layer(s) that they are in.

Example blend file:

Note: The blend file didn't require the objects to be on multiple layers to achieve the requested effect , but just to be complete, to place objects on more than one layer, select the object, press m, then press Shift and Left Mouse click on additional layers.

Can also be done in the Properties Area > Object tab > Relations panel.


Problem with Material drivers for nodes properties

This is how I solved it in my addon. I made a property on materials specifying if I want to update that one live.

from bpy.app.handlers import persistent

@persistent
def live_update_materials(dummy):
    for mat in bpy.data.materials:
        if mat.wow_m2_material.LiveUpdate:
            mat.invert_z = mat.invert_z

bpy.app.handlers.frame_change_pre.append(live_update_materials)

This will reduce the animation playback FPS in the viewport, since the shader will be recompiled on every frame change. But it lets you preview the changes live and is not decreasing the FPS hard to on good hardware.


I am going to risk some down votes and be harsh but honest with you. But this is how I would answer this to a friend. I think the mistake is that you are rushing too much. I would recommend taking it slower. MakeHuman is a great tool, but it is not magic, you cannot skip learning the basics of 3d before using it. My honest recommendation would be to forget about this for now and to spend a bit more time learning more about modelling, UV mapping, textures and materials, functions and workflows of the software. Maybe try modeling a simple face without too much detail from scratch, learn to UV unwrap it and make a basic texture and material for it yourself. It doesn't need to be perfect, but you will get a better understanding on what you can and cannot do with the software during this experience. Do not be afraid to do and redo and redo and redo the same things again and again until you get them right. Recognize when it is frustrating and know that frustration can be a part of this process and is OK. It usually means that you are learning.

At the moment the problem would be hard to fix for an experienced 3d artist. This is the point where one should start from the beginning and concentrate on doing it right from the start instead of trying to fix it. I am not trying to be rude here - everything is fine with the situation, it happens, not a big deal.


I can't seem to figure out how to make these windows efficiently

Create a cube, subdivide it (smooth), cut it in half, select its middle edge, bevel it, select the bottom half, drag it down.


(Solved) Trying to Bake Texture from multiple materials - Blender baking UV texture problem

add an image texture node to all the materials, select the mesh in edit mode, then bake it


Unable to remove unwanted edges after fill

There is no way to clean all edges in your object. Since blender cant handle holes inside n-gon by one face. You can make nicer topology by manual reconecting some of the edges (or try to search for Beautiful Fill function), but you will need always at least two faces (two edges connected to a hole).

In some cases would be better simply select object and Convert to Curve type 2D. No more additional edges, just outlines.


Subdividing causes details to "lift" off object

You can add detail using creases, loop cuts and extrusion without a problem.

The subdivision surface modifier does not work (well) with triangular faces or ngons. It works best with quads (faces with four vertices).

Subdiving can cause triangles to appear, be aware that you may have to alter your geometry.

Try joining the triangular faces to merge into quads by selecting all A and pressing ⎇ AltJ. The triangles to quads operation can also be found under Mesh > Faces > Tris to Quad.

Or do the convex hull operation. In edit mode under Mesh > Vertices > Convex Hull.

In your case there are two bad edge loop. Select them with ⎇ Alt RMB. Then delete them with X > Edges.
Then select all Aand press ⎇ AltJ to convert tris to quads.

Now you can crease the edge loops.

The topology still has a problematic edge, delete the two edges as shown in the following image. Subdivide the center edge, with W > S. Then fill in the missing four faces with F.

The vertical edge crease will work now. Read up on proper topology and edge loop flow.


You can use a Normal map for the condensation.
That way you don't need to mix anything, just plug it into normal input.

Example of a normal map.
You can download this one for free from Poliigon.

Connect the normal map like this.
Use different Mapping nodes and perhaps UV maps for better control.


Generate thumbnail image in addition to main image? (command line render)

Here's a second option, which I now believe is the best solution, as it is the most elegant and versatile that I've found so far.

The solution is essentially an extension of the Compositing nodes Scale and FileOutput option. However the critical difference is the addition of an Image node being mixed with the scaled Render Output image before being piped into the FileOutput node. The image node uses a dummy UV image created at the required Thumbnail output dimensions. When mixed with this dummy image, the FileOutput node will output the new dimensions without having to change the Scene Render Dimensions.

This option is better than my original solution because it is simpler to implement, shorter code, as well as not needing to rely on external file paths.

Command line usage (last argument pipes in thumbnail width):

blender -b "file.blend" -o "//out/" -P thumbnail.py -- 500

and the script thumbnail.py:

import bpy
import sys

class Thumbnail:

    tWidthArg = int(sys.argv[9])

    scn = bpy.context.scene
    resX = scn.render.resolution_x
    resY = scn.render.resolution_y
    thumbWidth = 400

    if tWidthArg > 0:
        thumbWidth = tWidthArg

    thumbHeight = ((thumbWidth/resX)*resY)

    #create new internal dummy image the size we want for thumbnail
    bpy.ops.image.new(name="ThumbNailDummyImage", width=thumbWidth, height=thumbHeight, color=(0.0, 0.0, 0.0, 0.0), alpha=False, generated_type='BLANK', float=False)

    #set up compositing nodes
    nTree = scn.node_tree
    Src = nTree.nodes["Render Layers"]
    Dst = nTree.nodes["Composite"]

    #image input node - use dummy uv image
    imageNode = nTree.nodes.new('CompositorNodeImage')
    imageNode.name = "INPUTIMAGE"
    imageNode.image = bpy.data.images['ThumbNailDummyImage']
    imageNode.location = (Src.location.x+300, Src.location.y-600)

    #scale node to resize thumbnail to correct size
    scaleNode = nTree.nodes.new('CompositorNodeScale')
    scaleNode.space = "ABSOLUTE"
    scaleNode.location = (imageNode.location.x, imageNode.location.y+200)
    scaleNode.inputs['X'].default_value = thumbWidth
    scaleNode.inputs['Y'].default_value = thumbHeight

    #mix the scale render output with the dummy uv image to force new output size
    mixNode = nTree.nodes.new('CompositorNodeMixRGB')
    mixNode.location = (imageNode.location.x+300, imageNode.location.y)

    #setup output filenode
    fileOutNode  = nTree.nodes.new('CompositorNodeOutputFile')
    fileOutNode.location = (mixNode.location.x+300, mixNode.location.y)
    fileOutNode.layer_slots[0].name='Thumb'
    fileOutNode.file_slots[0].path='Thumb'
    fileOutNode.format.file_format= 'JPEG'
    fileOutNode.format.color_mode = 'RGB'
    fileOutNode.base_path = '//out/'

    #connect nodes
    nTree.links.new(scaleNode.inputs[0], Src.outputs[0])
    nTree.links.new(mixNode.inputs[2], scaleNode.outputs[0])
    nTree.links.new(mixNode.inputs[1], imageNode.outputs[0])
    nTree.links.new(fileOutNode.inputs[0], mixNode.outputs[0])


How do I turn off environment/world lighting in Blender Cycles?

You can set the background to use nodes and then remove the link.


Why do objects following a path have a random drastic rotation?

check your tilt rotation (in your curve) in vertices that you find weird rotation of your object

in curve edit mode:
Alt + t
to clean

Ctrl + t
to "play" with your tilt rotation

you can even do this with all vertices selected or part of them


Actually, this can be many things:

First try to change the merge limit value, and have a render.

If it doesn't work :

in Edit mode, while zooming at maximum, make the twins vertices (of the top of your object, for example) -one for each side or your mirrored object - the closest as possible, overlapping themselves.
Try a Render, it should solve the pb.

If not :

if you don't plan to have further modification on your shape, once it's finished, in Edit mode, you can apply the mirror modifier, then press A (it will select all the vertices), then W, then remove doubles, it will merge the overlapped vertices
And try a render :)


How can I setup a looping animation in blender game engine?

you can use the action actuator set to ping pong. It plays the animation once through properly, and then plays it backwards. The tricky thing here is the correlation from frames to logic ticks. If you left the default settings, there will be 60 logic ticks per second, and 20 frames per second. 120 logic ticks is exactly 2 seconds worth, so we need 40 frames to be 2 seconds worth of frames. make an animation of your object that is 40 frames long.

On the action actuator, set the start frame to frame 0, and the end frame to frame 40. Now, your animation will play through from frame 0 to 40, then will play it backwards from frame 40 to frame 0, looping endlessly.


Your mesh has some n-gons and the Subdivision Modifier doesn't like it. :)
Make your mesh only from quads and it will subdivide properly.

Other little issues:

Messed up scale - Solve through Object > Apply > Scale (and check normals afterwards)
Non-manifold faces - some faces are going through another. This has to be repaired manually. Either merge the vertices, or move the faces farther away.

Quads vs. N-gons with Subdivision Modifier

Apply your object's scale to avoid problems in the future.

Here is your .blend back, repaired so you can compare :).


snap object by using its vertex as reference

In object mode, add an empty at the same location as the origin of the object:

Select the object, Snap Cursor to Selected
Add Empty (will be at cursor location)

Snap the mesh to the Empty

Edit the Object and select all
Set Snapping to Vertex (with Closest option selected)
Grab the mesh and drag it to the Empty so that it snaps to it

[Edit]
If you need another vertex to be snapped to the empty you could instead set the Active option in the Snapping menu and have that vertex selected last. Or simply drag the mesh to a point where that vertex is the closest, release it and then snap it.


Info view print order / displaying debug information

This could be used, but i'm sure i'll receive some heat for suggesting this. Run this from text editor, and it will print 'wooot' in the first available blender Python Console.

import bpy

# doesn't support passing the context
# from console_python import add_scrollback

def add_scrollback2(ctx, text, text_type):
    for l in text.split("\n"):
        bpy.ops.console.scrollback_append(ctx, text=l.replace("\t", "    "),
                                          type=text_type)

for area in bpy.context.screen.areas:
    if area.type == 'CONSOLE':

        ctx = bpy.context.copy()
        ctx['area'] = area
        add_scrollback2(ctx, "whooot", 'INFO')
        break

A few caveats, this isn't recommended at all, and especially not for printing out large chunks of data rapidly. That's what logging is for, you can write output to text files on disk, much much faster than your machine can print messages to the screen (printing to screen slows down your code significantly if it happens in tight loops). The benefit of writing to disk is you have virtually no limit regarding the amount of lines you can record, unlike most terminals/consoles which have a finite scroll-back buffer.

In the long run most of us conclude that it's more convenient to have a  console/terminal open in addition to blender, be it landscape or portrait. This means starting Blender from a console, or creating a start-up shortcut that first spawns a console and then from that console an instance of blender.

If you do use regular terminal / console then be selective about what information you print, and avoid print statements that might be triggered in tight loops.


Use Multiple Image Editors in Compositor

You’re doing everything right.
This is just the way Blender works.

Here’s how you can make it work:
1) In one image editor choose Render Result from the top-down menu. This will show output from the Compositor Node.
2) In the other one choose Viewer Node to see output from selected Viewer Node.

As you noticed, Viewer Node only shows the last selected one. It’s a limitation of Blender.
However, you can use Split Viewer Node node to get side-by-side comparison.

How to make it work

Note:
Blender Compositor has some slight limitations, but hey, it’s free :).


Most likely, you forgot to keyframe those two individual bones. Make sure they are selected, then add the keyframe when they are in the position you want them in.

If they are already keyframed earlier in the timeline, in a different position, when you move your timeline cursor they will jump back to the position they were in at the earlier keyframe.

Make sure you are on the frame in which you would like to place the key, then do the bone movement, then place a key before changing frames.

Perhaps you would rather remove the original keyframe instead. This will avoid the jumping, and the bones will stay in the position you left them.

Another possibility is that you accidentally added a keyframe later in the animation, causing this problem. Maybe there is one on the frame next to the one you are on?

I'm sorry if this doesn't answer your question, but I do not have any other reasons why this problem is occurring from your post.


Sliding an edge while keeping connected 90 faces in same orientation?

Those are two different cases... In the first screenshot it's impossible to slide edge without affecting surrounding faces because of triangulated mesh. And as for the second one it's also impossible as you can only slide one edge (well, effectively).

If you haven't applied Rotation to the object you can simply change Transform Orientation to Local and move along selected axis:

But if you have it applied there are two methods to do this - regarding second case (quad based):

Snap selection to Edge Loop.

Create additional Edge Loop and place it where you want to 'slide' your selection.
Turn on Snapping: Vertex.
Move selection to created Edge Loop.
Remove Doubles and Dissolve remaining unnecessary edge.

Mesh Align Plus add-on.

Grab add-on from here: Mesh Align Plus and install it.

Go to Mesh Align Plus tab in Tool Shelf and select Quick Directional Slide section.
Uncheck Auto Grab Source from selected Vertices.
Grab Normal Coordinates.
Enter Multiplier value - it's small in my case.
Check Enable Experimental Mesh Ops.
Move selection by clicking Mesh Piece.


The menu that shows up when a new mesh is added disappears when I click on it

Adjust Last Operation panel can be used just after some operation is performed. It does not disappear if you click on it, however it will disappear when you click somewhere else.

It is possible to bring it back by going to Edit-> Adjust Last Operation or with F9, however this is only until you perform some other operation. When you do, it becomes the new last performed operation, the previous operation then becomes completely finished and you cannot change its parameters any more.


How to create a procedural/parametric n-sided star with cycles nodes?

I've started with the idea that we can have 5 parameters to do it.

The amount of stars to display: a scale effect along the surface.
The orientation of the star: turning it around its center.
The amount of branches.
The branch length.
The base width: how thin the branch is.

Globally, I think the main thing to consider to draw on a rendered surface (for Eevee or Cycles) is that the engine drives each raycast and so we can only "rearrange" the coordinates we receive so that it fits to our need. And "fit to our need" means driving this coordinate to a wanted color, texture or shader.

For instance, if we want to scale the figure, the idea is to multiply the given coordinates by a value (this is node by VectorMultiply node group in the blend file below, which simply multiplies X, Y and Z by a given value).

From that and more directly about the star subject, the idea is to test if a given point corresponds to a given triangle which is the half of a branch:

And if we know that our coordinates are positives, a point P(x,y) is inside the triangle if x + y < 1, or more precisely if the triangle we want is of dimensions A, B, then P is inside if (x/A) + (y/B) < 1.

From that, all the trick is to make any point the render engine gives to us come back in this quadrant appropriately.

First step, we have scaled the coordinates. That mean we no more have something between 0 and 1 (as the UV map coordinates are), but something between 0 and the scale. To have back something between 0 and 1, we can take the modulo 1 of the point coordinates. For example if the scale is twenty, will obtain a sequence of twenty intervals [0, 1[ when the render engine casts along the surface.

This is done by VectorModulo node group in the blend file (which simply takes the modulo of each coordinate of the vector).

Next to have a final quadrant (the rectangle image above) between 0 and 1, we recenter our current coordinates to a center at 0.5 and scale it by 2. This is done by the VectorRecenter node group. This last calculation gives something between -1 and 1, but will finally take only the positive quadrant below.

At this step, our point is somewhere around the center we defined above with a value between -1 and 1 and we want to know the angle it has from the X axis.

This is done by Vector2ToPolar node group which only take into accound X and Y and calculates the angle with arctan2( y, x ) because this arctangent give the good sign of the angle (and the other arctangent vector math node does not).

From this angle its easy to add a rotation so that we can turn the stars (just add a value to the previous angle).

Now we want an amount N of star branches. Each branch corresponds to an angle of a = 2pi / n.

And we want to know that our point is somewhere around 1 x a or 2 x a or (n - 1) x a. So we divide the current angle by a, round the obtained value and multiply it by a again. Relatively to that, our point angle become the point angle minus this previous rounded result. This is done inside the 'RoundAngleDelta' node group.

We now have two information (this last angle and the vector length) we go back to vector coordinates using the 'PolarToVector2' node group.

The point we now have fits to the half branch rectangle above, except that y could be negative. So we take the absolute value of it.

Finally we consider the last two parameters BranchLength and BaseLength so that we can apply the formula (x/BranchLength) + (y/BaseLength) < 1 (indicated (x/A) + (y/B) < 1 above).

Here are the variations for these last parameters:

Edit: mapping enhancement

The previous setup works well with UV maps. But it does not for "generated" or "object" coordinates inputs.

So, I've added some nodes to pre-process normal orientation so that the stars can be drawn on any orientations.

This solution is taken from this answer written by Rich Sedman

The setting in few words (as it described in the link above): given a normal input, we want to choose which pair of coordinates (X, Y or Z) will take the role of (X, Y) we need to draw the stars, so that they are drawn on every faces whatever their orientation is.

Here is the updated blend file:


It looks like your plane has multiple materials on it but out of sight :

Your changes on this material are not visible because it's not assigned to your object (plane).
Remove the other materials or affect this one to your geometry :
1. Select your plane, Tab to go in edit mode, then A to select All
2. Select the checker material from the material list
3. Click the Assign button


How to avoid multiple running instances of same handler function when running it from editor?

In simple cases when you're not having to deal with other handlers, you can clear all handlers before adding new ones:

bpy.app.handlers.frame_change_post.clear()

However for projects which are already using handlers, you may not want to remove everyone elses handlers, and instead replace only a handlers the script added.

Currently we don't have a convenient way to handle this, or at least Python doesn't make it so easy to reference a function defined in a previous execution.

This example script shows how the functions name and module can be used, append_function_unique is a function to append and remove previous instances.

import bpy

def append_function_unique(fn_list, fn):
    """ Appending 'fn' to 'fn_list',
        Remove any functions from with a matching name & module.
    """
    fn_name = fn.__name__
    fn_module = fn.__module__
    for i in range(len(fn_list) - 1, -1, -1):
        if fn_list[i].__name__ == fn_name and fn_list[i].__module__ == fn_module:
            del fn_list[i]
    fn_list.append(fn)

def my_function(scene):
    print(scene)

def register():
    append_function_unique(bpy.app.handlers.frame_change_post, my_function)

if __name__ == "__main__":
    register()

Note: This is isn't such a problem for modules (add-ons or scripts you import). However scripts you run directly will use a module name of __main__. This means if you run multiple scripts directly, there may be function naming collisions - which is why this solution isn't ideal.


Animating gears is usually done using the Copy Rotation  constraint, in your case you want to copy the rotation from another axis therefore you might want to use the Transformation constraint to copy and scale the rotation from one axis to another:

Video Tutorial:
Gear rigging tutorial constraints

Note: This is only to do an animation, I'm not sure whether Blender is suitable for simulation of mechanical parts from an engineering point of view.


Which particle system is best for trees in a forest?

I've always used Emitter to populate a large number of static objects. I don't think hair is needed here.

In the particles panel:

Set the start and end value to -1, and the lifetime to some high value that's longer than your total animation. This avoids any popping in and out.
Turn off particles newtonian physics completely.
Use object instancing or group instancing to replace each particle with a tree
Play with other settings (variable size, initial rotation, etc)

Cycles is surprisingly good at rendering large number of instanced geometry. So unless performance is really important, rending actual geometry shouldn't be too bad. And lastly, this tutorial might help.


If you want accuracy you should track the scene, solve the camera and reconstruct the camera moves and 3d environment. Watch the "match track blend" series of videos by Sebastian Keoenig to understand the process https://www.youtube.com/watch?v=U7AjIL_fDtU

Then there is fspy (https://fspy.io/), a piece of software and a blender addon to estimate camera placement and lens based on the vanising points in an image. worth trying that too.

Manually placing the camera is not only tedious, but very hard to do accurately just "by-eye', as it involves matching field of view, distortion, camera rotation and placement on top of estimating the scale and distance to the 3d objects. The camera placement, rotation and field of view is only valid for a single point in space and not others. That is a highly complex task.

If you still want to painfully guesstimate it yourself use the camera background image feature.

It will display an image (or video frames) as background in the camera view only.

To match it with your scene lock the camera to view as explained in the following post:

https://blender.stackexchange.com/a/135150/97988


In the Wavefront file-format, the second number for every element for a face is the texture-coordinate

The quick way to get it running:
Select your object, go into edit-mode, press U and select Unwrap.

When exporting, make sure you have Include UVs selected.

Outcome (only faces):

f 2/1/1 3/2/1 4/3/1
f 8/1/2 7/2/2 6/3/2
f 5/1/3 6/2/3 2/3/3
f 6/1/4 7/2/4 3/3/4
f 3/4/5 7/1/5 8/2/5
f 1/1/6 4/2/6 8/3/6
f 1/4/1 2/1/1 4/3/1
f 5/4/2 8/1/2 6/3/2
f 1/4/3 5/1/3 2/3/3
f 2/4/4 6/1/4 3/3/4
f 4/3/5 3/4/5 8/2/5
f 5/4/6 1/1/6 8/3/6


I assume that you use cycles render in blender.
If you used the quick smoke effect by adding Object/quick effects/ quick smoke you can try to set the color of the flame by:

selecting the Smoke Domain of the fire emitting object
open the node editor
change the color of the flame in the ColorRamp settings.

Using more than one Smoke Domain means that you can have several color settings and combine then in your scene.


how to use displacement maps on Eevee Blender 2.8

It's working as usual, like this:

I have a subdivided plane here, then i went into the modifiers tab, added a displace modifier, then you click new texture, after this, go to the texture tab:

In here you can either choose an existing image to displace your mesh or a noise texture already available:

Then, when you leave edit mode, you should have your mesh with the displacement that you chose:

In this case, Voronoi. You should always download the latest version of blender 2.8 in the experimental tab on the blender.org website, maybe the version that you're using didn't have the displacement availabe :)


Dark gray section in the viewport that can't be changed?

It's called the clipping Border and gets created or disabled with ALTB.


How do I hide the domain of a smoke sim?

For a smoke simulation to work you don't want to hide the smoke domain, quite the opposite, you need to show it. The domain is where the smoke will be created.
What you probably are missing are the volume scatter and volume absorption shaders that are connected to the volume of the smoke domain. Or the settings for volume scatter are using high values making the domain look like a solid.


What's the meaning of tangent in the velocity panel in the particle settings?

Strictly, 'tangent' means a vector that touches the surface at precisely one point. Not the surface itself. So in the particle setting context:

tangent controls the starting force that is applied to the particle parallel to the emitter surface.

Normal controls the force that is applied to the particle perpendicular to the emitter surface.

To put it another way,

tangent = 1, normal = 0 will make the particle emit 'sideways'.

tangent = 0, normal = 1 will make the particle emit 'out'.

tangent = 1, normal = 1 will make the particle emit at 45degrees to the surface.


Another solution using RigidBodies, Zero gravity and a Texture Field:

Note that all the balloons here are single user object instances all with RigidBodies.

turn RigidBodies World Gravity to 0.0
Add a texture field which uses RGB values of the texture to determine the force (using a Color Ramp). R or G or B values of 0.5 correspond respectively to 0.0 force in the X, Y or Z axis. 0.0 R, G or B values correspond to +1.0 force and 1.0 R, G, B values correspond to -1.0 X,Y or Z force. Its means that a downward Z axis force of -1.0 corresponds to R=0.5,R=0.5,B=1.0, and an upward Z axis force or 1.0 is R=0.5,G=0.5,B=0.0. Thus the blueish/yellowish texture below. See https://docs.blender.org/manual/en/latest/physics/forces/force_fields/types/texture.html for details

Also note that I am using a Clouds texture here which is 3-dimensional which explains why the balloons are sometimes switching direction, when they pass through a 3D space where the 3D texture is changing color. May be using an image texture or tweaking how the texture is build would prevent that.


Apply material color to target orbject when this object is touching ( or under) an other object

you could do something with dynamic painting. at the physics property is a tap called dynamic paint, you can set the cube as a brush and the drones as the canvas. Then make the setting so they give an output for vertex colors, make sure that the canvas drys fast and then use the wet map. you can find the vertex colors in your material nodes and then use it as a mix map or whatever you want. the only problem is that you have to update the drones once in a while.
hope this helps


How to use an opacity mask in a material in Blender Cycles?

there are some wrong inputs in your image
basic mask setup in blender:


Particles render in viewport, but not in final

This is because the particle emitter is hidden in the render:

Particles inherit the object level properties of the emitter, so hiding the emitter object will hide the particles.

To exclude the emitter from the render without hiding the particles, disable Emitter in Particle settings > Render:

This is already disabled in your file.

To hide the emitter in the viewport without hiding particles, see Is it possible to hide particle emitters in the viewport without hiding particles?.


How do I make material like emission but not bloom?

Is this what you're looking for?

I think Bloom is a post-render, whole-frame effect, and some kind of layering would be required to have some objects bloom, and others not, at the same intensity.

As an expansion on the above, BSDFs are closures, meaning they're programs waiting to be run later, which can be modified with various node operators but not read from in your material shader. (It helps us stay renderer-agnostic in our materials.) Bloom is a sort of post-processing effect, and involves ray tracing the light from surrounding geometry; but if you're looking for straight-up color and don't care about lighting, just hand it the color (or texture) directly and it will bypass light calculations entirely.


Legacy file in BI: Background image does not change as camera pans

There is mapping option in the world texture setting change it from View to what suits your needs :


Selecting the nearest of overlapping faces

Unless I'm missing something isn't this just because you are in wireframe view mode?

Press Z to go into solid view then make sure Limit Selection to Visible is enabled in the 3D view header as shown below:

Now your model will appear solid and you will be able to select whichever face is directly visible to you in the view i.e. you won't be able to select faces that are behind other faces.


How to see data-path if it was shortened in tooltip?

Either right click on the property and choose the option Copy Data Path, or if that doesn't work try gratuitously changing a value even if for the same setting.

Then check the Info window history for the full name, you can copy it from there by selecting the line and pressing Ctrl + C


How to clear the weights on the vertices from a group of bones?

Select All vertexes you wnat to edit, edit weight settings in side bar, click "Copy" and your edit settings distribute on all selected vertexes.


Welp, I didn't determine the exact issue for all situations, but it seemed some meshes had doubles issues, faces issues, normals issues, etc.  You could do things like select a vertex around a bad area and hit Ctrl+ to select similar ones, but the bad one wouldn't get selected.

To fix, I ended up selecting whole areas that were at issue and deleting them.  I then either rebuilt them or duplicated other similar areas and placing them there.

I hate not knowing the exact issue, but at least I'm up and running.

Thanks to those who took the time!


Duplicate objects randomly in a delimited zone

See this question for details on how to setup a particle system for distributing objects inside a shape.

Once you've done that, you can convert a particle system to real objects with ⎈ Ctrl⇧ ShiftA or the convert button in the modifiers panel:

Note that this won't remove the particle system, so remember to delete it if you are done with it.


disappearing skin_vertices after assigning new mesh to object

When scripting updates to obj.data there currently (Jan 2016) does not seem to be a way to refresh data.skin_vertices without removing and adding the modifier.

For example if the "SKIN" modifier is named "sv_skin"

    # if modifier present, remove
    if 'sv_skin' in obj.modifiers:
        sk = obj.modifiers['sv_skin']
        obj.modifiers.remove(sk)

    # make new modifier and get reference to it.
    a = obj.modifiers.new(type='SKIN', name='sv_skin')

If you have a few other items on that object's modifier stack then there's a bit more bookkeeping to do.

Here's an example of a working scripted update to generate a lattice mesh with a skin modifier in Sverchok.

The code: https://gist.github.com/zeffii/e556ebcb33737a3fd58b

  <-- includes the script, but does require Sverchok.


Animate a mesh using bones rotations instead of shape keys

You can drive those shapekeys with bones, this is actually the preferred way of doing facial animations. This video explains in a detail how to setup the drivers and hook the bones to the shapekeys. In the first part he creates all the face-expression shapekeys and in this second one he drives them with bones.


Can you use a character for animation and 3d printing?

There should be no problem using a rigged character for 3D printing, assuming the character's mesh is suitable for printing (no holes, no non-manifold geometry, consistent normals pointing in the right direction, correct scale, etc).

To make sure all is prepared, you can make a copy of each pose to a new duplicate model, apply the Armature Modifier and delete the armature object (to clean up the scene), run printability tests via the 3D Printing Toolbox addon or an external program (Netfabb, Meshmixer, etc) and export your STL.


That wouldn't happen on an even topology (image 2).

Yes it would.

Sculpted surface has a larger area than the flat one, stretching is inevitable.

What you wanna do is to sculpt the surface first, then texture it with Clone Texture brush and bake the texture. That way it won't be stretched on the model but instead as a result it will be stretched/squashed in UV editor (which is fine).


Disable object automatic dragging after duplication

As per the wiki when you duplicate an object in Blender..

  ..this will create a visually identical copy of the selected object(s).
  The copy is created at the same position as the original object and
  you are automatically placed in Grab mode..

I don't think this is possible out of the box with Blender the way you are asking. At most, you can hit Esc after you duplicate an object or right click to cancel the grab.

If you insist however, it is possible to write a small script and add this to the 3D View's header and register shortcuts etc.

Looking at the API reference, I found a function bpy.ops.object.duplicate() that says Duplicate selected objects. You can put this into a small script and register some shortcuts for ease of use. (it's not perfect code but it works)

import bpy

class Duplicate(bpy.types.Operator):
    bl_idname = "object.duplicate_no_drag"
    bl_label = "Duplicate"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        scene = context.scene
        obj = scene.objects.active
        bpy.ops.object.duplicate()
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(Duplicate.bl_idname)

addon_kmaps = []

def register():
    bpy.utils.register_class(Duplicate)
    bpy.types.VIEW3D_MT_object.append(menu_func)

    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    kmi = km.keymap_items.new(Duplicate.bl_idname, 'D', 'PRESS', ctrl=True, shift=True)
    addon_kmaps.append(km)

def unregister():
    bpy.utils.unregister_class(Duplicate)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

    wm = bpy.context.window_manager
    for km in addon_kmaps:
        wm.keyconfigs.addon.kmaps.remove(km)
    del addon_kmaps[:]

if __name__ == "__main__":
    register()

If you run this, you should get a new menu item.

Additionally, you can call it with ShiftCtrl + D and you should now be able to duplicate objects and not enter grab mode.

Also, while writing this script, it's worth noting that if you use the console or the text editor and run the command that is behind the default 'duplicate objects' command..

bpy.ops.object.duplicate_move()

it duplicates the selected object and doesn't enter grab mode. This is because of the context that's given to the operator to run in. In the 3D View it is run in the context 'INVOKE_DEFAULT' if you run it from a script or from the console it gets run in the context 'EXEC_DEFAULT'. Look at the API reference for more info about this. Thanks to jasperge for the explanation.


I think the problem stems from the .fbx importer not by default treating the eye's image texture as having a transparency channel (an Alpha channel, in addition to the RGB color channels), although I am not sure why this would happen on some but not other models downloaded from the same site and created by the same modeler. Still, this seems to be the cause in the particular case of the Dragonite model you downloaded.

By default, this situation results in an import that renders like (note that this is in Eevee; the problem exhibits distinct visual problems in Cycles, but presumably the fix would be similar there, accounting for the somewhat different handling of Transparency in Cycles):

If we open a Shader Editor window, and select the eye material (an image texture that is mostly transparent, except for a small section in which the eye is painted; note that this is likely to be the last of four Materials on the Dragonite model, for you), we see something like:

There are two issues here:

The material's "blend mode" is set to Opaque, which does not use the Alpha Channel, and so ignores transparency.
The Color rather than Alpha output from the Image Texture has been connected on fbx-import to the Principled BSDF Shader Node's Alpha input channel, so Black-White is being interpreted as Alpha. If we fix these problems (see squared areas in this image), the problem appears to be fixed:


Python: display a string from childprocess in blender interface

Inter process communication solutions between Blender 's window manager and event system and another process are tricky at best: not impossible, quite possible, but requires extra effort.

ideasman42 has an excellent solution presented at blender.stackexchange.com/q/45731/228


Why hairs not growing in the vertex area

Your hairs are growing but they are apparently combed down inside the mesh. You can use the puff-brush in the particle edit tools to get them back out. Seems like you are growing your hair with a global down direction, I'd rather recommend growing them normally and then grooming your model with the particle edit toolset.


Render Layers Without Displaying Them In 3D Viewport

Yes, this is possible, however there might be better ways of handling this.

Disable Lock layers to scene in the 3D view > Header.

Now you can set the Scene layers in Properties > Renderlayers to the layers you want to render (in this case, 1, 2, and 3)

Note that only layer 1 is visible in the viewport.


images as sequence in image texture node doesn't work

Check if you have auto update enabled in the image sequence node. If it's disabled it won't update the frame in the viewport when you play or scrub the timeline. But even it's disabled it should play correctly when rendering.
If you want the texture to loop, also enable "cyclic" or the texture will pause on the last frame. And for good measure check if the 'Frames' number is correct (this number should be the number of frames in your image sequence).


How to make soft-body sphere stay inside concave object?

The physics solver tries to minimise the work it does by making approximations. You can increase the number of steps the solver will calculate and the number of iterations attempted to improve the detail of collisions.

On the Scene tab under Rigid body settings there is "Steps per second" and "Solver iterations"

But be wary, increasing them too much will slow the simulation time significantly.


Does Blender have a way to reduce texture size?

Create a separate project, import the textures into the VSE as an image sequence, lower the dimesion values to 64 px by 64 px, and render them all out as .pngs or your preferred image filetype.

Though as NoviceInDisguise, Timaroberts and Galih Bagaskara have already said, this is probably best handled by GIMP or some other dedicated graphic editor. Using the method I described, every texture will lose its individual name once rendered, which may or may not be important to you.


Missing Keyboard Shortcuts on Tooltips in Blender 2.8 RC

If the Spacebar action is set to 'Search', there is no shortcut for the toolbar and so also none is displayed in the tooltip (Source)


Modelling a twist like this procedurally

As you suggested, you can use Simple Deform modifier for this

One modifier set to Twist for the spiral
Angle around 1080° for three twists, and use limits to move it up/down
Second modifier set to Taper, and adjust to your needs.


Blender Eevee. I can´t properly see the smoke

Ah yes, smoke and Eevee. It's tough, that's for sure. It's hard to tell exactly what the issue because you need to show the shaders, and the smoke domain settings. You also need to make sure that the smoke is lit. Sometimes you need to use a fair bit of light. You can make the smoke emit but not directly through the principled volume shader. My recommendation would be to watch Iridisium tutorial on making a simple explosion in Blender.
You also need to check your render settings for volumetrics. Having a clipping distance to far or too close can prevent you from seeing your smoke. Finally, you might need to play around with density, the emitter, and the division value. Too high a setting can make for wispy smoke if you don't change other settings.
Good luck. I have found the smoke simulator very tough to use. There are some great tutorials out there though.


How to display the current frame number as part of the open GL render?

Enable the Metadata stamping in the render output properties. It also works for OpenGL renders.

Here is a 720p output example of what it looks like with a bigger font and the default options enabled:

Here's how to find the option in Cycles Render (first image) and in Blender Render/"Internal" (second image):


Why do my particles in particle system fall down instead of evaporating to create smoke?

Make sure you have your particle system and your smoke flow on the same flow object.
Make sure your flow object Flow Source is set to particle system and not mesh.

Make sure you do not add this to your domain object both the particle system and the smoke flow should be assigned to the same object. Also make sure that object fits inside your domain object.


How to keep origin point/cursor on object

this one for blender 2.8 and above
Apart from the answer I found on this forum, this one worked for me.
I was facing this problem where pivot was offset to object

In this you press F3 and type set origin
this will appear

Then I just selected geometry to origin
and the problem was solved,
pivot moved to the center of object.


Inserting UI elements in between existing properties is not supported at the moment. Also editing python files that come with blender is bad practice.

You can use append() or prepend() in order to add elements to the user interface of existing Panels, Headers and Menus:

import bpy

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

    # display properties and values
    col = layout.column(align=True)
    col.label("My Values:")
    col.prop(scene.render, "fps", text="FPS")
    col.prop(scene, "frame_start", text="Frame Start")

def register():
    # lets add the menu to the Mesh Display panel via append or prepend
    bpy.types.VIEW3D_PT_view3d_meshdisplay.prepend(draw_my_properties)

def unregister():
    # remove the menu
    bpy.types.VIEW3D_PT_view3d_meshdisplay.remove(draw_my_properties)

if __name__ == "__main__":
    register()

More information and Addon code: https://blender.stackexchange.com/a/34490/3710

However, here is some kind of hack based on this answer. Following Add-on code injects UI elements into the associated python file on the fly (space_view3d.py in this case). It's also equipped with a prepend() fallback if the specified line cannot be found:

bl_info = {
    "name": "UI Elments In-Between",
    "version": (0, 0, 1),
    "blender": (2, 75, 0),
    "location": "Edit Mode Property Panel (N) > Mesh Display",
    "description": "",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"}

import bpy

def draw_item(self, context):
    layout = self.layout
    scene = context.scene
    layout.prop(scene.render, "fps", text="FPS")

class DrawFuncStore:
    bpy_type = "VIEW3D_PT_view3d_meshdisplay"
    bpy_type_class = getattr(bpy.types, bpy_type)
    draw = None

def insert_menu():
    insert_after = 'col.label(text="Normals:")'
    insert_code  = '    col = layout.column(align=True)\n'\
                   '    col.label(text="My Values:")\n'\
                   '    col.prop(scene.render, "fps", text="Fps")\n'\
                   '    col.prop(scene, "frame_start", text="Frame Start")\n'

    DrawFuncStore.draw = DrawFuncStore.bpy_type_class.draw
    #module = bpy_type_class.__module__

    filepath = DrawFuncStore.bpy_type_class.draw.__code__.co_filename
    #print ("filepath: ", filepath )
    if filepath == "<string>":
        return
    try:
        file = open(filepath, "r")
        lines = file.readlines()
    except:
        append_menu()
        return

    line_start = DrawFuncStore.bpy_type_class.draw.__code__.co_firstlineno - 1

    for i in range(line_start, len(lines)):
        line = lines[i]
        if not line[0].isspace() and line.lstrip()[0] not in ("#", "\n", "\r"):
            break

    line_end = i

    # Unindent draw func by one level, since it won't sit inside a class
    lines = [l[4:] for l in lines[line_start:line_end]]

    # line offset
    offset = -4

    for i, line in enumerate(lines, 1):
        if insert_after in line:
            print("FOUND INSERT LINE")
            lines.insert(i+offset, insert_code)
            break
    else:
        append_menu()
        return

    # import bpy - hacky!
    lines.insert(1, '    import bpy\n    from bpy.app.translations import contexts as i18n_contexts\n')

    # Debug output
    #f = open("/home/poor/Desktop/c.txt", "w").writelines(lines)
    l = {}

    exec("".join(lines), {}, l)

    #bpy_type_class.draw.__code__ = code_object # Doesn't work, since a single func is not a module
    DrawFuncStore.bpy_type_class.draw = l['draw'] # exec defined our custom draw() func!

def append_menu():
    bpy.types.VIEW3D_PT_view3d_meshdisplay.prepend(draw_item)

def remove_menu():
    if DrawFuncStore.draw is not None:
        DrawFuncStore.bpy_type_class.draw = DrawFuncStore.draw
        DrawFuncStore.draw = None

    else:
        bpy.types.VIEW3D_PT_view3d_meshdisplay.remove(draw_item)

def register():
    insert_menu()

def unregister():
    remove_menu()

if __name__ == "__main__":
    register()

Note as @CoDEmanX mentioned:

  This method only works as long as there's just one addon replacing the code object of a certain bpy type.


Normal Map Baking Artefacts on Complex Model

In order to get rid of the artefacts on the wings and the feet I had to make my low poly mesh (more) similar to my high poly mesh in the areas that had normal baking problems. For the artefacts in the mouth, under the legs, and under the horns I had to adjust my cage manually to make sure there was no overlap. Sometimes the normal map did not display properly; changing the color space on my image texture "refreshed" the node making the normal map display properly. The normal map has come out fine, and I have not changed any of my bake settings except putting the Margin to 32px instead of the default 16px.


How do I in object mode, cull back faces?

In 3D view > Properties Region (N) > Shading > Backface Culling:


Shader

A shader is a piece of code that is run when shading a mesh. It can be anything, including a texture, but the term is often used to refer to a shader that runs a BSDF or group of BSDFs, or something of that nature, such as emission. Blender's UI follows this convention, the BSDF nodes are in a submenu called "shaders". (but in some sense, all the nodes are shaders).

Texture

Textures add detail at the shader level. They do this by either loading an image file, or creating a procedural pattern of some kind, such as noise, bricks, or gradients. There are also a number of things that aren't quite textures that fall under the vague heading of "utility shaders". These perform some conversion function (examples in Cycles would be the Math node, or the Blackbody node), or provide access to variables (such as the Geometry or Texture Coordinates nodes)

Material

A material is a collection of shader(s) that you apply to a model to define how it is shaded. A material might consist of a single BSDF, or it might contain a vast array of textures, utilities, and multiple BSDFs. You can think of it as a container or wrapper

Finally, remember that many people are not always consistent about using these terms according to the definitions here. "material" and "shader" especially are often used interchangeably.


Will audio render in sync, like when previewing in textured or solid mode?

It will not render it at the slower speed. However, there is a way you could be able to get around this.

Just look in the upper left corner of the 3D view while the animation is playing, and get its approximate frame rate. (average the values it changes to). [this number is the framerate the animation is playing at due to lag]

Now choose a "custom" as the framerate and set the FPS to that average.

Alternatively you can use time remapping to adjust the "speed" while still sticking to the target framerate.

This is not the optimal way to do things, and it will not work perfectly, but it is the only way (that I know of) to do what you are asking. Also note that to render it how it looks in the viewport (but at the proper frame rate) use open GL render.

Unfortunately, this framerate lag is natural, and there isn't much of a way to fix it. If your computer is not fast enough and can not handle processing the info for each frame that fast, it will have to slow down. Here is a picture of my quadcore's (8 thread) workload while running a 1,000,000 particle simulation. The FPS lagged down to 7.

The arrow is where I stopped the simulation before starting it again. The only way to fix this is to simplify your scene to make it run faster, or use compensations that will help speed things up, like viewing in solid view-port mode. If you move objects that are not necessary while animating to other layers, and have those layers hidden, this will also help. You can also simply hide objects.

There is a good way to avoid this in the future though!

Us the A/V sync feature (audio/video sync)

In the timline, open the "sync" menu.
Change it to "AV Sync"


Not enough connectors in Render Layers node

You need to enable Denoising Data under Scene Tab > Passes.
Then your compositor will include all needed denoising passes.
Keep in mind, Denoising data are enabled for each render layer separately.


Assuming you mean by seam an edge loop like the one selected in this image (along the y-axis).

Once you have applied the mirror modifier you could:

Select the edge loop Ctrl-RMB
Delete edge loop X

I wouldn't recommend to apply the modifier since you couldn't apply symetrical changes as easy as before. IMHO it's not worth to sacrifice editability for saving a few faces.


Incorrect Reflection of Glossy Over Glossy

Based on your comments, you actually don't have a problem, it just looks like you do.

In 3d worlds, that is quite common to see, because they are so perfect that we don't see the little variations or issues that happen in real life that make things look right. Also, when you have any curved surfaces, things can get flipped around or upside down very easily.

It looks to me like the reflection of the jug is just flipped upside down. It's a bit hard to see in the image you posted, but it looks like it's reflecting off some curved glass objects, and you'll have refraction too, so there are plenty of ways that the light can bounce and bend, which gives the results you see.

It's like looking into the concave side of a spoon, or a reflection of a shiny pot that curves inward. Things just start to look a little weird when you have reflections and refraction with curved surfaces. Combine that with how 3d worlds look too perfect and you're bound to see cases where things don't look quite right, even though they physically are.


Try to mix two Glass Shaders- one with a white color and the other with a blueish color. Set the mix factor to a low value to make glass look more blueish and transparent at the same time. With a good lighting setup you'll achieve the effect you want.