I have PyQt5 working from within Blender on Windows 10. There are likely multiple setup scenarios that are possible and you didn't provide any information on exactly what errors you are running in to, so I'll describe the setup that is working for me::

blender-2.76b-windows64.msi
PyQt5-5.5.1-gpl-Py3.4-Qt5.5.1-x64.exe
python-3.4.4.amd64.msi  (probably not required)

In my case, I had already installed PyQt5 in to an existing python-3.4.4 installation. The PyQt5 installer does not support installing to multiple locations, but I suspect I could uninstall and then reinstall it into the {blender-install}/python directory.  What I did instead was create a text file named qt.conf inside of my {blender-install} directory with this content:

[Paths]
Prefix = C:/Dev/python-3.4/Lib/site-packages/PyQt5
Binaries = C:/Dev/python-3.4/Lib/site-packages/PyQt5

The PyQt5 installer usually puts a qt.conf file in the python-install folder for you with relative paths. (My python install folder was C:/Dev/python-3.4).

One technique I found useful for troubleshooting things was to run the blender.exe from a DOS command prompt.  At first when I tried launching a QApplication, blender and everything would immediately crash and there would be no error message. By running from the DOS command prompt, I was able to see the errors. (This is different from the console window within Blender which does not have the chance to show errors when Qt crashes Blender itself.)

With the above done, I was able to run your script above. However, because you called app.exec(), once the Qt window was shown Blender became completely unresponsive. Closing the Qt window then immediately exited blender.

It doesn't seem to be necessary to call app.exec(). I also thought it would be necessary to somehow start the Qt event loop, but that doesn't seem to be the case. This answer on StackOverflow might explain why: https://stackoverflow.com/questions/28060218/where-is-pyqt-event-loop-running

For my own test, I used this simple script:

import sys
sys.path.append('C:\\Dev\\python-3.4\\Lib\\site-packages')
import bpy

from PyQt5.QtCore import Qt
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QLabel, QLineEdit, QWidget, QPushButton

class TestWindow(QWidget):
    def __init__(self, parent=None):
        super(TestWindow, self).__init__(parent)

        mainLayout = QGridLayout()

        test1Label = QLabel("Test 1:")
        test1Line = QLineEdit()
        mainLayout.addWidget(test1Label, 0, 0)
        mainLayout.addWidget(test1Line, 0, 1)

        test2Label = QLabel("Test 2:")
        test2Line = QLineEdit()
        mainLayout.addWidget(test2Label, 1, 0, Qt.AlignTop)
        mainLayout.addWidget(test2Line, 1, 1)

        button = QPushButton('Close', self)
        button.clicked.connect(self.handleButton)
        mainLayout.addWidget(button, 2, 0)

        self.setLayout(mainLayout)
        self.setWindowTitle("Simple Qt Test in Blender")

    def handleButton(self):
        print("close clicked")
        app.beep()
        window.hide()
        # note that at this point, I think the Qt app
        # is technically still 'running'

try:
    app = QtWidgets.QApplication(sys.argv)
    window = TestWindow()
    window.show()

    # I was surprised to see that it wasn't necessary to
    # somehow start the Qt event loop.  Normally something like
    # app.exec() would need to be called, but that of course
    # would hang blender. I found some info on why
    # event loop likely works from within blender without
    # additional setup here:
    # https://stackoverflow.com/questions/28060218/where-is-pyqt-event-loop-running

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

If the above does not help, consider posting more information about exactly what errors or response you are seeing.


How can I create a material that has different levels of transparency on the front and back face in Cycles?

For a face without thickness, you could just use the Backfacing output of a Geometry node to make a switch between values:

(If you don't want unrealistic 1-sided refraction, set the marked IOR field to 1.. you could also use the switch to control, say, Alpha,which may work better for you.. or any other property in the material)
These are simple planes: the faces differ only in their normals-to-camera:


Brush looks blocky/low resolution when painting textures (Pic included)

in texture paint mode go to your left panel and go to options and deselect occlude in project paint


Locomotive Bogie U shape bracket modelling

You could do it with some bevels:

Create the profile (use a Mirror modifier as it is symmetetrical):

Begin to bevel the vertices (ShiftCtrlB to bevel vertices, or CtrlB and click the Vertices option in the Operator box):

Do the same with all the vertices (keep the same amount of segments):

Fill the faces (it's fast if you fill the first face then only keep one edge selected and press F several times):

Extrude, bevel the edges, etc...


The Grab brush (Shortcut "G") is great for getting the right shape for your curve.

What I'd use here would be the Fill/Deepen brush (shortcut "5") and the Flatten brush (shortcut "6"). Then I'd gently smooth the flat surfaces until close to the hard edge (shortcut "Shift").

If there's any edge that I was completely happy with, the pinch brush (Shortcut "P") is great for getting a sharper edge to finish it off.

Just play around with strength and keep undoing things if you make mistakes.

Sculpting these harder surfaces takes a bit of practise but it's generally the fastest way.

OR

If you don't feel comfortable with this, perhaps you could try retopologising it using a shrink wrap modifier and a vertex group. This way you can remove certain vertices from the shrinkwrap vertex group and play with a specific vertex until you're happy. With your retopologised mesh, you can play with the Mean Crease in properties panel ("N") underneath the transform data to get those edges nice a crisp when applying a subdivision surface.


Is there a good tutorial for creating an animation where different meshes replace each other?

Figured out you can keyframe the visibility of the object in the render.  So I can turn off the visibilty of everything but the first one, then in the second frame turn off the visibility of everything but the second, etc...Like this link: https://imgur.com/gallery/kKajgqw


Faces shading looks strangely segmented after extrusions

The issue is that you extruded faces which edges were marked as sharp (hence the light blue lines), so the extruded geometry kept those properties.

To fix that, select the concerned edges in Edit Mode, hit Ctrl E and use Clear Sharp function:


Move origin of all objects to same Y value

Just copy this script into your scripting window and press "Run Script"

import bpy

for obj in bpy.data.objects:
    obj.location.y = 0

Good night.


1 - About the mirror: you have to apply the Rotation of your object (crtl A > Apply Rotation)

2 - About the mesh of your shoe: you have too much useless edge loops, come back to an earlier version and don't apply the Subsurface and Solidify modifiers.

If impossible, Decimate won't give a good topology, so you can either:

Simplify with the method described in this video (ring selection, checker deselect, select edge loops, delete): https://www.youtube.com/watch?v=Yptda_yKQIU
Or rebuild a new shoe with retopology (create a new object and use snap to stick the vertices to the original shoe)


View camera boundaries in user perspective?

Another option is to simply scale up the camera object. It doesn't effect the FOV at all. Select the camera, go to the properties panel and Camera > Display > Size.

Scale it up until the frustrum covers your painting area. You can see it from any angle. Alternatively you could parent a lamp with a square cone to match the camera frustrum.

Add a spot lamp and constrain it to the camera and copy the camera's Field Of View to lamp Size. You will have to scale the lamp's Y axis to fit aspect ratio.


Use vertex bevel in edit mode.
To do that:

Press Tab to enter edit mode.

Right click the top vertex to select it.

Use vertex bevel (ShiftCtrlB) and use your mouse to adjust the bevel amount:

Press Tab to exit edit mode.


Can I create Walk throughs from external designs

You may try to press shift+f in the viewport, and then tab to turn on gravity, this let's you walk around scene using WSAD and space for jump. Additionally, you have "height" and "jump height" settings in bottom left part of preferences/input tab pref_pan http://www.pasteall.org/pic/show.php?id=86222


How can I reset the Rotation of a Meta-Rig Control?

After reseting the rotation Alt-R while the finger control was selected (as suggested by iKlsR) I had to enable the Tweak Layer (highlighted in the image) after that the finger could be repostioned by the circle shaped controls.


How do I add Floor mouldings with Archipack Pro in Blender 2.8?

You were nearly there.

For automatic flooring and molding etc. you need to click on the Archipack tab and then on the wrench. All that with your walls selected of course.

More generally speaking Stephen hangs out on BlenderArtist if you have questions. I agree that the documentation and the tutorials are lacking in general principles.


Try black environment ...

Also there is nothing wrong to use Principle BSDF node :)

blender 2.8.1

blender 2.8.3 - 9.x (Mantaflow solver)


Rendered video pulses to lower quality and back to high quality

The problem may be caused by some sort of glitch in the encoder included in Blender. The poor quality can be avoided by using lossless output. In v2.71 this is done by choosing H.264 format under Encoding, and ticking the Lossless Output box.

Here is a detailed video explaining lossless rendering in Blender.


What's an easy way to round out this castle wall?

You don´t need to do that. Just use a cylinder for the tower. Select the upper face and extruded out to extend it a little and then extrude it up to give heigh.Make two loop cuts one outside and one inside the extruded faces to create a division for the up and down wall ( i don´t know the exact name of that part) Then jus select the faces you need to make the upper part of the tower and erase them. After that select the edges of the adjacent face and click on keyboard F to fill it with a face.


The custom property is not accessed as an attribute with the ., but through the name of the property.

bpy.data.objects["Armature"]["prop"]

Therefore the correct way of adding the property is:

layout.prop(bpy.data.objects["Armature"], '["prop"]')

You can add your custom property like this:

import bpy

class MyPanel(bpy.types.Panel):
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_label = "MyPanel"
    bl_category = "MyPanel"

    def draw(self, context):
        layout = self.layout
        layout.prop(bpy.data.objects["Armature"], '["prop"]')

classes = (MyPanel,)

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

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

if __name__ == "__main__":
    register()


After doing some research I discovered that the Blender builds don't have a install file but instead they just have the Blender symbol which is called "Application" with just a click a person can open Blender. I was used to running a set up install file which would load in the program. I just downloaded Blender 2.79 and after extracting the download just clicked on the Blender Icon and the program starts up the application.


How do i convert this equation into the node editor?

Labelled  'Layout > Reroute' nodelets not necessary, but often helpful.

Alternatively, if you have complex expressions to convert, you might consider using @Rich Sedman's Node-Expressions add-on, which could generate a group like this:

It's best to be quite explicit with your bracketing.. In this example, when I didn't bracket the unary minus on x, the negative was applied to the whole expression, rather than binding to the variable. This is expected Python.. but maybe not obvious.


while rendering animation the mirrored part by mirror modifier is not showing in the output(to MPEG)...help?

Could it be you accidentally turned the modifier off for rendering?


Offset on driver via scripted expression

Use self and a custom property

Offsets L to R, -pi / 2, -pi / 4, 0, pi / 4, pi / 2

Using a simple example with 5 cubes as feet and another as the wheel.

Add a custom property to foot, if you are driving a pose bone add a custom property to the bone.

Helper script to add a custom property named "offset" (edit to suit) to all selected pose bones.

import bpy
from bpy import context

propname = "offset"

for pb in context.selected_pose_bones:
    pb[propname] = 0.0 # set a float proprty

Drivers have a use self option. When on self in an expression refers to the object being driven.  The custom property on the object can be added to an expression as self["prop"] Pick a better name than prop.

'rot' is a variable set up as usual getting the local rotation of the spinning cube.  We offset that rotation by adding the value of the property to it.

abs(sin(rot + self["prop"]))


Firstly, blender tends to use the term remove instead of delete. Secondly, the armature doesn't directly store the bones, they are stored in a collection called edit_bones (at least, they are when you are in Edit Mode, which is what you script does. bones is for Pose Mode/Object Mode, but bones can't be deleted from there).

So, you firstly need to loop over the edit_bones instead of bones and then use remove instead of delete.

for bone in armature.edit_bones:
    if fnmatch.fnmatchcase(bone.name, "something"):
        armature.edit_bones.remove(bone)

You can easily explore the properties available on the armature using blender's Python Console, typing in your code there and pressing Ctrl+Space to autocomplete:

>>> bpy.data.objects['Armature'].data.
                                      animation_data
                                      animation_data_clear(
                                      animation_data_create(
                                      as_pointer(
                                      bl_rna
                                      bones
                                      copy(
                                      deform_method
                                      draw_type
                                      driver_add(
                                      driver_remove(
                                      edit_bones
                                      get(
                                      ghost_frame_end
                                      ghost_frame_start
                                      ghost_size
                                      ghost_step
                                      ghost_type
                                      id_data
                                      is_editmode
                                      is_library_indirect
                                      is_property_hidden(
                                      is_property_readonly(
                                      is_property_set(
                                      is_updated
                                      is_updated_data
                                      items(
                                      keyframe_delete(
                                      keyframe_insert(
                                      keys(
                                      etc....
                                      etc...
                                      etc..
                                      etc.

Using this, you would be able to see there is no delete method.


Check that your computer has memory. Rendering something the computer needs some memory of the computer, I think. See at the top where it says Frame 1 Time: 00.05.35 etc? There you can see Mem.8.68M  - stands for memory (I think).


You have to change the color of both Volume Scatter AND Volume Absorption.
Also, you might obtain better'n'nicer control of your coloring by using a color ramp + the density attribute plugged in :


Why doesn't this script extrude the cone base in edit mode?

A Command, select_face_by_sides, can be used.
However, this does not work when the bottom face is a triangle.

import bpy

bpy.ops.mesh.primitive_cone_add(location=(0,0,0))
bpy.ops.transform.translate(value=(0, 0, 1.94102), constraint_axis=(False, False, True), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True)
bpy.ops.object.editmode_toggle()

bpy.ops.mesh.select_face_by_sides(
        number=3,
        type='GREATER',
        extend=False
    )

bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(-1.97143e-009, 3.68831e-009, 0.447236), "constraint_axis":(False, False, True), "constraint_orientation":'NORMAL', "mirror":False, "proportional":'DISABLED', "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False})


How to avoid duplicating assigned materials when duplicating a mesh?

You can adjust it in the Preferences>Editing>Duplicate Data. In factory settings it's unchecked and it doesn't duplicate the material for me.


Select the same number of vertices from both sides, press W and choose Bridge Edge Loops.


As impresso says, you need to convert your curve to mesh: Select your object in Object mode and go into the Object menu > Convert to > Mesh from Curve.


How to light a scene with a skybox as background and have a HDRi or sun in the world environment?

If you are using a mesh for the "skybox", all you need to do is make the material visible to camera, but transparent for all other rays. A light path node is used as mix factor in a mix shader node for this.
Then use a normal environment texture in the world.

If you have a real skybox texture then use it on the world as enviroment along with another texture to light the scene, and use a light path node to control the visibility. The camera will see one background, but the scene will be lit by the other.


Is there a way to make the DPI always sync depending on which screen I am using?

While an addon can create an operator that can change the DPI setting, it cannot access or change the current setting while blender is registering the addon.

Once the addon has been registered the operator can change the DPI for you. An operator can be assigned to a button or a keyboard shortcut for you to use. My thought is adding a button to the top left of the info header will always be visible and will let you quickly toggle between two specific DPI settings.

Save the following to a text file and use Install from File in your preferences. You can then enable the addon and Save User Settings so that is always available. The two dpi settings can be adjusted to taste.

bl_info = {
    "name": "Set DPI",
    "author": "sambler",
    "version": (1, 0),
    "blender": (2, 75, 0),
    "location": "Info header",
    "description": "Toggle between two DPI settings",
    "category": "System",
    }

import bpy

low_res_dpi = 72
hi_res_dpi = 120

class SetDPI(bpy.types.Operator):
    bl_idname = 'wm.set_dpi'
    bl_label = 'Toggle dpi setting'

    def execute(self, context):
        syspref = context.user_preferences.system
        if syspref.dpi <= low_res_dpi:
            syspref.dpi = hi_res_dpi
        else:
            syspref.dpi = low_res_dpi
        return {'FINISHED'}

def SetDPI_menu(self, context):
    if context.user_preferences.system.dpi <= low_res_dpi:
        i = 'FULLSCREEN_ENTER'
    else:
        i = 'FULLSCREEN_EXIT'
    self.layout.operator( SetDPI.bl_idname, text="", icon=i )

def register():
    bpy.utils.register_class(SetDPI)
    bpy.types.INFO_HT_header.prepend(SetDPI_menu)

def unregister():
    bpy.utils.unregister_class(SetDPI)
    bpy.types.INFO_HT_header.remove(SetDPI_menu)

if __name__ == "__main__":
    register()


Geometry Nodes: Rotate positions about a point?

Interesting question!

The blend file above contains a moving weight modifier and two rotating pivot points. The mesh is rotated around the pivot points influenced by the weight value by geometry nodes.

Add the weighted_rotation node network to your target, provide it a object as pivot point and you're done. The weight group is optional; if it's not available the modifier just rotates around the pivot point.
Enjoy!


There is no single command that lest you do exactly what you want, but if you select them all in order (individually from left to right or right to left) you can join them with J. The reason there is no single command that allows you to select them all in one go and then fill them is because Blender wouldn't know in which order to join them. It would be like trying to complete a connect the dots with no numbers. Selecting them all in a specific order tells Blender the path to fill.

EDIT: You could also extrude all of the vertices up (or any direction that ensures the resulting edges dont overlap) so that you have a series of vertical edges. Then the Bridge Edge Loops tool (found in the W or CtrlE menus) will fill all the faces in. Then select the extruded vertices with Alt select and delete them leaving just the connected original vertices.


Is there a way to create a seamless image in the compositor?

The question depends on the nature of the source image. In the Fireworks example the edge is already seamless (black). So you can use the compositor. Otherwise you would prepare the edges as the other answer suggests with a blending mask.

Import image
Add a Translate node, turn on "Wrap Both Axes"
Alter X and Y offset
You can add the original image back over the top with an "Add" mix
node.


Automating Blender workflow with opening OBJs and rendering them with options

You will get the API calls for free by pulling down the Info Header as shown here:

Just perform the scene setup manually, select all lines A and copy'n paste the commands into a python file. You  might want to add the snippet from the comment by iKlsR.

bpy.ops.view3d.snap_cursor_to_center()
bpy.ops.mesh.primitive_plane_add(radius=1, view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.transform.resize(value=(6.39051, 6.39051, 6.39051), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.object.lamp_add(type='HEMI', view_align=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.transform.translate(value=(0, 0, 6.98471), constraint_axis=(False, False, True), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.ops.transform.translate(value=(0, -6.91949, 0), constraint_axis=(False, True, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=True)
bpy.ops.transform.rotate(value=-0.645382, axis=(-0.818828, 0.361665, -0.445779), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.context.space_data.context = 'RENDER'


It is mirror. In tool settings deactivate this option by pressing button X:

If you haven't this toolbar, enable it in menu View -> Tool Settings


There are two parts to the render layers settings. First is each render layer that you create, each of these results in a new rendered image that can be added into blenders compositor. Second is the passes that are used to make up the render layer, these are available as sockets in blender's compositor.

When you save the render result you will normally save the combined result as a 2d image, most image formats will only support this one flat output. However if you save the render result as OpenEXR multilayer, then you will get each render layer and associated passes in the one file. Depending on the level of OpenEXR support in your other application you should get access to each of these outside of blender.

Another option is to setup a File Output for each pass, this will let you save each chosen pass or layer as a separate image that can be used by any application. To do this you connect each desired socket to a File Output node in the compositor, use the properties panel N to access all settings for the file output node.


Cycles: Is there a way to find the angle between incidence and reflection rays?

The angle between incidence and reflection ray depends on the surface:

If the surface is glossy with roughness 0 (perfect mirror), this angle is double the angle between incidence and surface normal:

If the surface is anything else, the reflected rays scatter based on probability - based on BSDF function (rough surface, diffuse surface,..). You would have to look inside Cycles code to trace these rays individually. The best help you will get directly from devs on IRC channels or through mail-list, look here who owns the code: Module owners.


How to make the top of candy mountain from Kirby super star

I thought it would be easy, but as this object is both smooth and sharp, it is not. Maybe there's a easiest way to dot it, anyway here is mine:

Create a plane and subdivide it vertically (for example 7 times).
Give it an Array modifier and, in Count, choose the number of duplications (i.e. the number of spikes you'll need), for example 12. Enable the Merge and First/Last options.
Create an Empty at the origin point of your plane.
Give your plane a SimpleDeform modifier with the Bend option enabled and choose the Empty as Axis, Origin.
In the same modifier, choose 360° as Deform Angle . Now your shape is a ring.
Give your plane a Subdivision Surface modifier, and Smooth it in the T panel.
In Edit mode begin to move up and down your vertices so that it creates spikes. Move some vertices along their edges to sharpen the top and bottom of those spikes. Now you have a kind of crown.
Keep a copy of this object + Empty.
Apply the Array modifier, then apply the SimpleDeform modifier. Keep the Subsurf.
You need to make some corrections to join the first and the last object of the Array (maybe the gap is avoidable, I don't know), use alt M to merge vertices.
Now you can begin to extrude and scale the top, then close it with a alt M.
You can give your object a Solidify modifier if you want to give it thickness


What is the best way to change edge weights on a mesh?

You could use a skin modifier to create the outline. You can adjust the thickness of the skinning with ⎈ CtrlA in edit mode. The properties region N can also be used to adjust the radius.

Make a duplicate of your mesh to use for the outline, in the duplicate delete all the faces and the edges that cross over the pathways so you only have edges where you want the outline to be. Add the skin modifier to this mesh. For each disconnected piece of mesh you will need to mark a vertex as root (use the button in the modifier), otherwise that section of mesh will not be skinned.

Instead of the skin modifier, another option is to convert the outline mesh to a curve object and use the curves bevel depth to adjust the outline thickness.


Is it possible to render outlines in BI/Cycles using this technique for the BGE?

Yes, this is quite easy to do in cycles:

Duplicate and scale the object as shown in the video you linked.

Add a node setup using the Backfacing output of the Geometry node to mix a black diffuse shader with a transparent shader. This will go on the scaled duplicate (outline) object to provide the backface culling effect.

Disable the Ray visibility on the outline object for everything except Camera and Glossy, Transmission if you want to see the outline in reflections and refractions. This will allow light through the outline object, illuminating the main object inside.

To see the effect in the viewport:
Enable Backface Culling in 3D view > Properties panel (N) > Shading, and set the viewport color of the outline material to black:

Outlines without extra objects
Also, if you find having an extra object for the outlines rather awkward, you can generate the outline mesh procedurally using a Solidify modifier:

Add the outline material in another material slot:

Add a solidify modifier to the object you want to outline, enable Flip Normals and set the Material Index Offset to the slot where your outline material is (where the first slot is slot 0, the second is slot 1, etc.). So in this case, 1.

Now the outline will even update in real time while you are modeling:


How can I position bones in a model easily and precisely?

Quick and Precise Bone Placement using Snap To

Positioning bones in a model can be quickly and easily achieved using two of Blender's Snap To commands:

Snap Selection to Cursor: this moves/snaps the selected object to the 3D Cursor (  )
SHIFTS -> Snap Selected to Cursor
Snap Cursor to Selected: this snaps the 3D Cursor to the selected object
SHIFTS -> Snap Cursor to Selected

For this method of bone placement, you will also want to enable two Interface preferences:

Zoom to Mouse Position: When enabled, the mouse pointer position becomes the focus point of zooming, instead of the 2D window center.
Rotate Around Selection: When enabled, the selected object becomes the rotation center of the viewport.

One other option that is very important is to make sure you can see your rig's bones even when they are inside the mesh. This is done by enabling X-Ray for your rig:

With these preferences enabled, you can now very easily examine your figure's mesh and begin to position the bones.

Positioning the Bones

There are 3 parts of a bone:

the Head (or Root)
the Body
the Tail (or Tip)

The key to this technique is to:

Find and select 2 vertices on opposite sides of your mesh's surface where you want to position the bone's tail:

NOTE: In order to see through the mesh, make sure "Limit Selection to Visible" is disabled:

Now, with those 2 points selected, use Snap 3D Cursor to Selected
SHIFTS -> Snap Cursor to Selected

This positions the 3D Cursor directly between the two selected vertices, exactly where we want to put the bone tail.
Now select the bone tail and snap it to the 3D Cursor:

Now we want to position the head of the bone at the tip of the finger. To do this, we select one vertex on the fingertip and snap the cursor to it:

Next, we snap the bone head to the 3D cursor:

The bone is now perfectly positioned.


Python: find faces with incorrect normals to flip and flip them

This script finds the average normal from the selected faces, then finds normals that are very different by calculating the dot product between the average and each face normal.

Any face that has a negative dot product will be flipped. This fixes the normals on the faces in your blendfile, although your selection doesn't include all the flipped faces (if selected, they will be fixed).

The script assumes you are in edit mode with all the faces of interest selected.

import bpy, bmesh
from mathutils import Vector

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

# Reference selected face indices
bm.faces.ensure_lookup_table()
selFaces = [ f.index for f in bm.faces if f.select ]

# Calculate the average normal vector
avgNormal = Vector()
for i in selFaces: avgNormal += bm.faces[i].normal
avgNormal = avgNormal / len( selFaces )

# Calculate the dot products between the average an each face normal
dots = [ avgNormal.dot( bm.faces[i].normal ) for i in selFaces ]

# Reversed faces have a negative dot product value
reversedFaces = [ i for i, dot in zip( selFaces, dots ) if dot < 0 ]

# Deselect all faces and (later) only select flipped faces as indication of change
for f in bm.faces: f.select = False
bm.select_flush( False )

for i in reversedFaces:
    bm.faces[i].select = True
    bm.faces[i].normal_flip()  # Flip normal

bm.select_flush( True )


how to adjust rigidbody settings for lots of objects

Well it was easier then i thought it would be.
I created one example object and named it LikeMe, there i set all rigid body options. Then since all target objects have similair names (alls starting width Icosphere added a * at the end and did a select pattern, finalized width a copy of rigid body settings

import bpy
scene = bpy.context.scene
scene.objects.active = bpy.data.objects["LikeMe"]
bpy.ops.object.select_pattern(pattern="Icosphere*", case_sensitive=True)
bpy.ops.rigidbody.object_settings_copy()


How to project a 3D Bone POSE Matrix to 2D (XZ) Plane?

Since nobody else posted an answer yet, i had a try which might help you.

Note

This works only with the following options enabled

Inherit Rotation
Inherit Scale

Also drivers/constraints don't work.

import bpy
from mathutils import Vector, Matrix

obj = bpy.data.objects['Armature']
pb  = obj.pose.bones['Bone.001']

# constant
VEC_Y = Vector((0.0, 1.0, 0.0))

# components
loc, rot, scale = pb.matrix.decompose()

# projection
y_world = rot * VEC_Y
y_proj = y_world.copy()
y_proj.y = 0.0
factor = y_proj.magnitude
y_proj.normalize()

x_proj = VEC_Y.copy()
z_proj = x_proj.cross(y_proj)

# new world matrix
mat_rot_new = Matrix((x_proj, y_proj, z_proj))
mat_rot_new.transpose()

mat_scale = Matrix.Identity(3)
for i in range(3):
    # uncomment to uniformly scale the bone
    # to match the length of the projected bone
    mat_scale[i][i] = scale[i] # * factor

mat_world_new = mat_rot_new * mat_scale
mat_world_new.resize_4x4()
mat_world_new.translation = loc.copy()

# new local matrix
mat_world_old_inv = pb.matrix.inverted()
mat_basis_new = pb.matrix_basis * mat_world_old_inv * mat_world_new
# pb.matrix_basis = mat_basis_new

def get_mat_offset(pose_bone):
    """ calculate the (local) rest matrix of the bone """
    bone = pose_bone.bone
    mat_offset = bone.matrix.to_4x4()
    mat_offset.translation = bone.head.copy()
    mat_offset.translation.y += bone.parent.length
    return mat_offset

# ================================ Debug =====================================
# visualize source and target transformation with an empty for easy testing

def get_empty(name):
    empty = bpy.data.objects.get(name)
    if empty is None:
        empty = bpy.data.objects.new(name, None)
        empty.show_x_ray = True
        empty.empty_draw_type = "ARROWS"
        bpy.context.scene.objects.link(empty)
    return empty

mat_parent = pb.parent.matrix
mat_offset = get_mat_offset(pb)

get_empty("Source").matrix_world = mat_parent * mat_offset * pb.matrix_basis
get_empty("Target").matrix_world = mat_parent * mat_offset * mat_basis_new

for child in pb.children:
    # adjust the children bones so their world matrix remains unchanged
    mat_offset = get_mat_offset(child)
    mat_offset_inv = mat_offset.inverted()
    mat_basis_new_inv = mat_basis_new.inverted()

    mat_basis_child = (mat_offset_inv *
                       mat_basis_new_inv *
                       pb.matrix_basis *
                       mat_offset *
                       child.matrix_basis)

    if child.bone.use_connect == True:
        mat_basis_child.translation = 0.0, 0.0, 0.0

    get_empty("PB_" + child.name).matrix_world = mat_world_new * mat_offset * mat_basis_child

# =============================================================================


There are a lot of faces overlapping, or vertices that seem to be part of a face but actually are not, etc, you didn't model it the right way. Also, as pointed out by Lemon, you use a Mirror modifier but your mesh go beyond the center of the mirroring. Maybe re-do it from scratch, and maybe follow some basic tutorials about modeling.
If I just take one example: If I select this vertex...

... and then move it...

... we can see that it was not part of the face.


Blender 2.8 is still under development and until the official release is made there are many things that will not work correctly.

Information about reporting bugs in Blender can be found here:
https://wiki.blender.org/index.php/Dev:Doc/Process/Bug_Reports


I'm not an expert in AN, but I believe you need to put the Object instancer out side of the loop; this instancer is used to crerate the list of objects; you use the loop to iterate through the list of objects.


Smooth or merge the hand and the forearm

Since user hawkenfox suggested it, I will post my comment as an answer:

You need to Tab into Edit Mode, RClick to select a vertex on the hand, press Ctrl L to select all the connected (Linked) geometry, then H to Hide the hand geometry. This will let you see what's going on with the arm underneath and you can select then delete the faces of the arm stump. Then Alt H to un-Hide. Repeat this for the arm and delete the faces on the wrist of the hand geometry. Then you can use Merge (Alt M) or Fill (F) to connect the hand to the forearm. Whether modeling in Blender or Sculptris, it's better if you can sculpt all as one piece in the future and avoid this extra work.


Load the background image in the image editor

Set the editor in mask mode

On on the image click while pressing the Ctrl key and draw a mask for the area you want to use as foreground.

Then in the compositor use that mask to combine the foreground and background elements.


Conveyor belt object fall through problem

It's probably your margin settings that are causing this problem. Increase it until you get it right.


How can I select an object in the viewport in 2.8(1)?

Hmm ... that's a lot of empties in the outliner ... let's hide them, uncheck empties

Also make sure that objects are selectable, enable Selectable in the restriction toggles - the one that looks like a paper airplane.

If you have checked that the objects are selectable then you need to check the View Object Types Menu has Mesh selection enabled:


Is there a way to tell blender which images do not differ within an animation to render them just once?

This is not a straightforward process, but there is a recently released addon to do just this. The auther describes the details and provides a download on the link.
The gist of it is that it renders a tiny version of each frame and compares it with the others to determine duplicates before rendering full size versions.

http://creativityhacker.ca/2017/08/08/dopplerender-a-turbo-boost-for-blender-animation-rendering/


View extents (scale to fit render window)

dimensions is a property of object so you access it with object.dimensions not as a call to an operator. As a list of 3 values you can get the largest one with max(object.dimensions), or you can look at each value with object.dimensions.x

import bpy

obj = bpy.context.active_object

maxDimension = 5.0

scaleFactor = maxDimension / max(obj.dimensions)

obj.scale = (scaleFactor,scaleFactor,scaleFactor)

This assumes you are starting with a scale of 1.0. If not then you may want to use bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) before starting.


Paint With Image Projection in Texture Paint Mode

While using a Brush Texture you are painting with the source texture-color color-multiplyed by the Brush color (purple in the case below).

Just set it to Full White (RGB=1,1,1), raise the strenght to 1 and you'll be able to paint the exact colors stored in the texture.

If you need mix the colours of the texture with other textures, you can use the node editor:


How do I merge smoothing shaders seemlessly without joining objects?

Remove the smoothing shader > merge those 2 objects using CTLR+J > smooth that one (merged) object > apply the modifier > once you're done and you're not going to edit the model anymore, in edit mode select one edge that between your head and body and press P.


This issue is that you are accessing UV's by the vertex index,

ob.data.uv_layers.active.data[vert].uv

This is incorrect, you need to iterate over the face loops and access UV's by the loop index.

This is how you could access loops.

            for face in ob.data.polygons:
                for vert, loop in zip(face.vertices, face.loop_indices):
                    for item in ob.data.vertices[vert].normal:  # normal
                        fid.write(struct.pack("f",item))
                    for item in ob.data.vertices[vert].co:  # vertex
                        fid.write(struct.pack("f",item))
                    for item in (ob.data.uv_layers.active.data[loop].uv if ob.data.uv_layers.active is not None else (0.0, 0.0)):  # uv
                        fid.write(struct.pack("f",item))

Note that ob.data.uv_layers.active is not None should probably be moved outside of the loop as assigned a var has_uv for eg, its quite inefficient to check this all the time.


I managed to fix this, so in case anyone runs in this question, here is what I did:
I used an image (in my case an image of scales) as the texture of the Clay brush in Sculpt Mode.
For more information and further understanding of the process, here is the tutorial video that helped me.


You need to switch the render engine you are using:

The nodes are very different between Cycles and Blender Intrenal materials, so you will notice a lot of incompatibilities if you are in the wrong one.


How to add a displacement modifier and source image with blender python

The code is

heightTex = bpy.data.textures.new('Texture name', type = 'IMAGE')
heightTex.image = bpy.data.images['Myimage.jpg']
dispMod = ob.modifiers.new("Displace", type='DISPLACE')
dispMod.texture = heightTex


How can I make a dark and scratched metal material?

I have finaly done it with nodes and a hard night :P
Thx for all


How to model a simple semi-organic form like this effectively?


Maybe you don't say enough about what your object looks like. Also, retopology is not the same as simplifying a mesh with deleting edge loops etc. But if you're talking about retopology, here is the basic way to begin in my opinion:

Create a plane over the high-poly object you are supposed to retopologize. This plane will be your low-poly version.

If your high-poly is symmetrical, give your low-poly a Mirror modifier. Enable the Clipping option.

On the horizontal menu bar, disable the Limit Selection to Visible option, enable the Snap, choose the Face mode, enable all the snap options.

Begin to move the vertices of your plane, you'll see that they will stick to the high-poly surface. Extrude edges, try to follow the main shapes and angles of the high-poly. About good topology and topology tricks, you can find some good advices here, it would take too long to summarize everything here.


How to chang matcaps light direction in blender 2.8

A matcap will never respond to lighting -  it's a 'fake' ... a self-lit reflection map of an spherical environment that isn't there. In fact, in effect, it's a 'reflection' of half a sphere (infinitely large), directly behind the camera. So if you shade a sphere with a matcap, it will always look exactly like the matcap texture, wherever you look at it from.

In Blender 2.8, you could render the matcap texture you like on a sphere, and in any image-editing application, rotate the texture in 2D. Then, as shown in this video, put the edited image in a 'matcap' folder on the right path. Using it would  have the effect of spinning the 'light source' in the plane of the screen, but would never allow you to bring the 'light' further to the front or back of the 'lit' object.

Perhaps a more fruitful approach would be to create your own matcap - using this kind of setup:

..which is lifted directly from Cédric Lepiller's video on how to create matcaps.. it's not too hard.. no baking, just rendering a sphere. Then at least, you could adjust the 2D rotation in the mapping node, and not have to go to an outside application to do that.

However. Having said all this, it would be much better to create your own toon shader tree. (Another question.) Then you could arrange your own lights, and do all sorts of useful things for painting like adjusting the tonal ranges covered by the bands of shade on the surface of your model.


Proxy feature is designed for that purpose, make it easier to edit heavy video sequences. Generate 25% proxies of your strips, use those for editing (by choosing them as Proxy render size option of the View Settings panel), and you are done. Original files will be used automatically for final render.

See the manual for more details.


Particles don't "bend" with displacement

Several things might come into account. The main two I can think of are:

Wrong modifier order

If you pout your displace modifier after the particles modifier, then it means that the particles are added when the mesh is flat, and only then the mesh is displaced. The right thing to do is first displace, then put the particles on it. Modifiers order matters.

Use Modifier Stack

If you use a subdivision modifier, you might check that in the particle's emission pannel.


How can I reduce the radius of this distance calculation?

You can set the variables that scale the radius by hand. Currently the script uses:

maxDist = max( vert_distances )
minDist = min( vert_distances )

But you can use any other value and experiment with what works for your case, like:

maxDist = 5
minDist = 1


Programmatically assigning EnumProperty items in a CollectionProperty

In case someone still need this, here is a minimal working example for blender 2.8:

import bpy

def add_items_from_collection_callback(self, context):
    items = []
    scene = context.scene
    for item in scene.my_items.values():
        items.append((item.some_str, item.some_str, ""))
    return items

class MyEnumItems(bpy.types.PropertyGroup):
    @classmethod
    def register(cls):
        bpy.types.Scene.my_enum_items = bpy.props.PointerProperty(type=MyEnumItems)

    @classmethod
    def unregister(cls):
        del bpy.types.Scene.my_enum_items

    asdf : bpy.props.EnumProperty(
        name="asdf",
        description="asdf",
        # items argument required to initialize, just filled with empty values
        items = add_items_from_collection_callback,
    )

class MyItem(bpy.types.PropertyGroup):
    @classmethod
    def register(cls):
        bpy.types.Scene.my_items = bpy.props.CollectionProperty(type=MyItem)

    @classmethod
    def unregister(cls):
        del bpy.types.Scene.my_items

    some_str : bpy.props.StringProperty(
        name = "asdf",
        default = ""
    )

class MY_OT_add_item(bpy.types.Operator):
    ''' add item to bpy.context.scene.my_items '''
    bl_label = "add item"
    bl_idname = "my.add_item"

    def execute(self, context):
        # create a new item, assign its properties
        item = bpy.context.scene.my_items.add()
        item.some_str = "asdf" + str(len(bpy.context.scene.my_items))
        return {'FINISHED'}

class MY_PT_simple_panel(bpy.types.Panel):
    bl_label = "Simple Panel"
    bl_idname = "MY_PT_simple_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "simple panel"
    bl_context = "objectmode"

    def draw(self, context):
        layout = self.layout
        layout.operator("my.add_item")
        layout.prop(context.scene.my_enum_items, "asdf")

classes = (MyEnumItems, MyItem, MY_OT_add_item, MY_PT_simple_panel)
register, unregister = bpy.utils.register_classes_factory(classes)

if __name__ == "__main__":
    register()

in 3D View > Side bar > Simple Panel, click add item to add a new enum item for asdf


Blender 2.8 Beta: No compatible GPUs found on iMac (2018)

There is no OpenCL support for Blender 2.80 BETA on macOS and it likely won't come back in 2.80 RC or Final.

  Hi,

  There was a growing payload of bugs in Cycles related on OpenCL on macOS
  platform, and those issues were caused by a compiler bug, which we have no
  control over.

  Surely, it is sometimes possible to work compiler bugs around from a
  source, but we are facing some of the issues which are not solvable in this
  way. Also, such solutions are usually short-living,. since adding more
  features are often kicking compiler to provide buggy binary again.

  In this case compiler will not get fixed since Apple decided to discontinue
  OpenCL on its platform.

  So the decision was made to drop support of OpenCL, keep official features
  of Blender stable and predictable, and focus on things we have control over.

  P.S. Older Blender releases are always available. Surely, this sounds like
  using an ancient software without neat features. But we can't push Cycles
  OpenCL on macOS measurably beyond that anyway.

  --
  With best regards, Sergey Sharybin

Apple is known for doing everything to make software development - especially 3D stuff - a living hell. They are doing their own stuff called Metal, instead of using a complete OpenGL/OpenCL compatible instruction set. With every new release functions are getting removed or are simply broken.

If you want to use Blender with an OpenCL render device consistently in the future, you might need to switch over to Linux or Windows.


python scripting - how to stop my modal operator code from getting the old data?

Look at context.active_operator

As long as there is a registered operator bpy.ops.mesh.extrude_region_move != None will always be true. bpy.ops.mesh.extrude_region_move
is a callable method, which will never be None

Could check the value of the active operator.  Script below prints to console if the extrude and move operator is the last operator called. It will keep printing (modally) until another operator is called.  Would need to add some logic, a class property perhaps, to make it notify only once.

import bpy

class ModalOperator(bpy.types.Operator):
    bl_idname = "object.modal_operator"
    bl_label = "Simple Modal Operator"
    #save_op = None

    def execute(self, context):
        print("This is the modal operator")
        return {'FINISHED'}

    def modal(self, context, event):
        active_op = context.active_operator
        idname = getattr(active_op, "bl_idname")
        if idname == "MESH_OT_extrude_region_move":
            print("extruded")
            # set some var here to run once and check equality
            # self.save_op = active_op

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        print("This is the invoker")

        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

bpy.utils.register_class(ModalOperator)

bpy.ops.object.modal_operator('INVOKE_DEFAULT')

could look at the index in window manager operators collection.
(py console code)

>>> [o.bl_idname for o in C.window_manager.operators]
['OBJECT_OT_editmode_toggle', 'MESH_OT_extrude_region_move']

Get the transform constraint axis

>>> op = C.window_manager.operators['MESH_OT_extrude_region_move']
>>> op.macros['TRANSFORM_OT_translate'].properties['constraint_axis'].to_list()
[0, 0, 1]


Since you don't need an animation (the word "rotate" misleaded me), you could do in this way:

create a mesh "triangular" segment (33 vertices in my example), and add a sphere

parent the sphere to the segment, clear its origin

enable vertex duplication: any segment vertex gets a copy of the parented object

then convert dupli to real, and delete or hide original object

This only works on mesh segments (vertices), and is very simple: let's see if this is enough.

Here is the workflow applied to your file:

To work on paths (curves) you need to use another approach, more like in the answer I suggested in comments above. It's more complicated, but gives a similar result for any shape you give to a curve (even straight lines or "triangular"). And, can be animated.


OK, so my approach would be to first set up your scene as you want it,

Then select your armature and press Space and search for Bake Action, trim the timeline to roughly fit your current take before doing so.

This might take a while depending on legth, don't worry that's normal.

After it's done you'll have something like this:

Once you are there, delete the last key that's generated at the end of the timeline, unless you trimmed to perfectly fit.

then convert this to an action:

I'm driving the motion with a childOf on the bunny that follows an empty with a followPath constrain.

So you'll have to sync their length and pauses once:

Then just input the same number in the repeat box, as many times as you want to do so:

If you wanted you could instead drive the actions by F-Curves, or maybe make all strips Meta-Strips of the same length and then instance those. But I feel this method is the most scalable to a bigger set of layers being mixed.

You can and should keep a copy of the original actions in case you want to tweak the animation later.

Note that this will make longer animations quite heavy, as it bakes every n-th frame, using 1 is a bit extreme in this case, toy around with a 2 to 8 frame step, and you can do cleanup afterwards if you want.

Here's the blend file:


Rig moves when switching action in action editor

Alright so I tried fixing this issue by myself and found a work around, I had to delete all other actions from the file and now on export there was not this weird influence on the first frame. Not the most convenient fix, but a fix nonetheless :P.


not sure if this will help. However when baking is giving me issues I reset the unwrap with: U then select reset while in edit mode. delete doubles with: w remove doubles in edit mode. Press control N to recalculate normal's in edit mode.Then finally re unwrap using smart project. then bake, it usually fixes any issues I have.


Your topology is not good, for example when you cross two parallelepipeds you don't just duplicate one and rotate it 90°, you need to create edge loops, extrude or bridge, etc... so that faces don't overlap. Also try to work with quads.

Note that in some cases it's ok to just intersect meshes (for example if the pieces don't need to appear welded).


Those are the result of unconnected geometry forming the mesh.

Once you sculpt, those will reveal themselves because geometry is not connected and one edge will be moved more than another. However these aren't double vertices so you won't be able to fix this by deleting duplicating geometry as vertices do not share the same place.

To quickly fix it use Remesh modidifer.


How to highlight as object in the 3d View/Outliner?

This is what the object panel looks like on the right, in the display section you'll find the option i'm talking about


Unexpected behaviour on soft body collisions

The problem is not with the soft body simulation but it with the collision between the two - as the collision is only effectively 'one way'.
Consider the following simulation where the Cube is animated and the two spheres are separate soft body simulations (ie, where each object is a separate mesh, each with its own Soft Body modifier).

The Collision modifier on each of the objects tells Blender how the soft body simulation should interact with that surface - but it does not tell that surface how to interact with the soft body. This means when the cube collides with the soft body, the cube is not actually aware of the soft body but the soft body finds itself squashed against the approaching cube. This does provide a seemingly correct collision between the cube and the first sphere.
However, when the first sphere then moves across to the second sphere, from the first sphere's point of view it is colliding with a static surface - so it bounces off. From the point of view of the second sphere, however, it barely notices the presence of the first sphere (even though that first sphere also has collision enabled) since at any point in time, it is never any closer to the first sphere's surface than that surface came to it - and most likely bounced off that surface. So the second sphere does not react appropriately as it is effectively a completely separate simulation, seeing the first sphere as a non-moving surface that is close but never 'too close' to it. This results in the one-sided interaction where only the moving object seems to react properly.
The solution (providing you want the same soft body settings for all interactions) is to join (Shift+J) the two soft body objects together so that there is only a single soft body simulation in the scene. This means that the two soft bodies can interact and react with each other (since they are part of the same simulation) - instead of seeing each other as a stationary surface. This produces a much more realistic interaction :

Note that the above solution only works where it is acceptable for both bodies to have the same Soft Body settings - it is not possible to give each their own distinct soft body settings (for this we would either need to be able to properly link simulations (not possible with the Collision modifier at present) or we would need to be able to set different soft body properties for different parts of the mesh - perhaps by way of vertex weights).


Your node tree almost worked, it just required a different approach at the end. Let me show you a working example here:

for clarity's sake I have added value nodes to give the inputs a caption. There is the Test Value, which is basically the number you input, and a Tolerance, which circumvents the problem that there is no real a == b node. So if the value you feed is inbetween +Tolerance and -Tolerance, the node tree outputs 0.

Besides that, the only change is the Multiply and Add node at the end of the tree. Why that? Let's walk through a few sample values:

TestValue = 5.333
GreatherThan will be +1
LessThan will be 0
-> Multiply will be 0 too
-> Add will do 1 + 0 = 1, which is what you want

Let's change TestValue to something negative:

TestValue = -2
GreatherThan will be 0
LessThan will be +1
-> Multiply will be -1, as 1 * -1 = -1
-> Add will do 0 + -1 = -1, which is what you want

And finally, something lower than Tolerance:

TestValue = 0.000001
GreatherThan will be 0
LessThan will be 0
-> Multiply will be 0 too
-> Add will do 0 + 0 = 0, which is what you want

To make this a bit more visible, I have added this node setup at the end of the tree:

The Add and `Multiply basically bring the -1 to +1 range to a 0 to 1 range. The Color Ramp has three slots, if the input value is 0, the output is red, if input is 0.5, output is green, and if input is 1, output is blue. See it in action here:

Here is the file for testing:


To see if it's a hardware problem, you can always create a 'Quick Effect'. If that doesn't work, then your PC hardware is having trouble rendering the smoke (but that's unlikely). If it does work, then you now have a working setup as a reference.

To create a Quick Smoke, start with a new Blender file, then select
the default cube.
Call up the search box with Spacebarand type in 'Quick Smoke'.
Press Alt+A to see the effect.


Preview pose mode when making change to armature in edit mode

Unfortunately there is no way to view the same object in two different modes at the same time. I've never really had a problem with how blender handles this though, as tabbing between modes is quite quick. If you have to adjust your viewport every time you switch modes you could try having two viewports open with two different angles. Being able to view an animation while also being able to edit the skeleton would definitely be handy though.


Texturing deformation through a sequence of meshes

I solved the problem.  I did not use shape keys at all.

This can be done by copying the UV-mapping from the source mesh onto the target mesh (c.f. https://docs.blender.org/manual/en/2.79/editors/uv_image/uv/layout_management.html).

Since both objects have the same topology, this is straightforward.


How can I duplicate the vertices of an edge to move it without affecting surrounding edges?

I don't know if there is a one step solution, but aside from just manually doing everything I think the new extend edge tool (⎇ AltV) is about the closest to a one-step as anything I can think of:

Note that the selection is extended towards the initial position of the mouse when ⎇ AltV is pressed, which can be confusing before you get used to it.

That said, I think in your particular situation I would do something more like this:


Is there a way to copy the drivers of the active object

The answer is Ctrl + L then choose Animation Data, as "Serge L" mentioned in his comment, however there are limitations in my specific case, or whenever Distance is used as a factor.
The limitation is, when you duplicate an object that has drivers, Blender is smart enough to know, if the object itself is a factor in the distance, that the name of the duplicate object is to be used as a factor, this, unfortunately, doesn't happen when you copy Animation Data from one object to another, check the images below for explanation on what I mean.
While when copying Animation Data, it doesn't amend the object in distance factor in the driver

So in the case where a distance between two objects is the factor in the driver, there don't seem to be a solution, but in other cases where a simple location factor is used, copying animation data is the answer.
Aside from that, in order to find a solution for my case, I discarded the use of drivers, I coded a script instead to do that, here it is :

import bpy
###Parameters
#Change these parameters
#the following target_name variable
#will target all objects in scene that
#have "Cube" in there name
#factor is devision factor based on distance from active object "controller"
#when you run the script, register should be checked here in text editor
#and the controller should be the active object
#the script will run on each frame change

target_name = "Cube"
factor = 20

###End parameters

starting_frame = bpy.context.scene.frame_current
target_list =[]
act = bpy.context.object

#Populate a list of targets based on name
for t in bpy.context.scene.objects:
    if target_name in t.name:
        target_list.append(t)

def run_script(scene):
    global starting_frame
    print("-------------------------")
    run_frame = bpy.context.scene.frame_current
    print(run_frame)
    for target in target_list:
        distance_v = act.location-target.location
        distance = pithag(act.location,target.location)
        print(distance)
        if run_frame != starting_frame:
            target.scale.x = distance/factor
            target.scale.y = distance/factor
            target.scale.z = distance/factor
    starting_frame = run_frame
    print(starting_frame)

#Calcualte linear distance between target an controller "active object"
#Both arguments should be 3D vector
def pithag(vec1, vec2):
    dist = ((vec1[0]-vec2[0])**2) + ((vec1[1]-vec2[1])**2) + ((vec1[2]-vec2[2])**2)
    return dist

#Script will run on frame change
bpy.app.handlers.frame_change_pre.append(run_script)

And here's a GIF of the result, the diference is, here I can edit the variables in the script, and it'll apply to all targeted objects

NOTE: In order to stop the targets from getting very large when the distance is great, I added Limit Scale constraint to the targets.


How can I customize which Tabs show in the Tool shelf/panel?

Afaik the only way is to remove the tab in the python file of the UI toolbar. You can find this file in your blender folder. For me it is:

C:\Program Files\Blender Foundation\Blender\2.XX\scripts\startup\bl_ui

The name of the file is : space_view3d_toolbar.py

For removing a tab you have to open this file with for example Notepad++.

Then you have to find the tab that you want to remove. If you want to remove the Relations tab for the object mode, you can follow below example.

First you have to find the section of the code for the object-mode. You can find it with this header in comment:

# ********** default tools for object-mode ****************

Next you have to find the right tab. The name of the tab is in the bl_category, so for our example we have to find this:

bl_category = "Relations"

Now we can get rid of our tab, by either deleting the class of the tab, or by just making it a comment block like this:

You just have to put three quotes like this: """, before and after the class that you want to comment out. I prefer to put the class in comment, so that you can recover it if you do something wrong.

Now you can save your file and restart Blender.


Unwanted glowing line where particles intersect with the particle emitter

Just adding a plane under the ground to block the light from the hdri worked to fix it. But why did this happen in the first place? Light shouldnt be able to pass through intersecting objects.


Make sure the bone you are trying to select is selectable.

In the below EYE_CTL cannot be selected:


Makehuman 1.0.2 Blender tools issues in Blender 2.72b

Problem solved!
The Makehuman sub-folders 'makeclothes', 'makewalk', 'maketarget' must be removed from the folder named Blender Tools before placing them inside Users/user name/Library/Application support/Blender/2.72/scripts/addons.
Any folder inside Blender's Addon folder must have a file named init.py; if it doesn't, Python will ignore the folder.

See this question for details of how Python uses init.py


How to move selected keyframes to current frame or a specified frame number

Hovering on the action editor or dopesheet you can select the keyframes you want to move, set the time cursor to the desired frame and press S,X,0,Enter.


Are you using "Soft body self collision" in the physics tab of your tail object?

I tried to emulate your work. Here is an example of how the simulation looks with and withouth self collision:

Without self collision

With self collision

To simply explain this, self collision adds balls to every vertex of your object. This allows the vertexes to not collide with themselves and keep a structure.

Here is the old documentation, here the new one.

Also, a really important option is stiffness. A high stiffness will make your vertexes more resistant to deformation, while a low stiffness will make your object deform more.

Here is the file with self collisions ON. Remember to change the settings of the balls on your file, as I did it in some seconds, and the balls would not be accurate with your setup. Just try and try again to change the size of the balls, until you get the result you want.


As it's been said, your setup lacks a source of white light.

You can add such a source with a trick: an emissive and shadeless plane that is only visible through transparent objects, and completely transparent otherwise.

Add a plane big enough to fill your Camera view, place it in the background and parent it to the camera

Give it a material like the one in the figure below. The value in the Mix Shader to the left determines the maximum transparency that your objects will have in the rendered png (since this is a residual opacity of the plane itself).

The only rays we are interested in are the ones pointed towards the camera, so uncheck all the other rays from the Object > Cycles settings panel

The result

You can unveil the plane's trick by looking at its boundaries


Linking value to another anywhere in blender 2.8

1) add driver (ctrl d) to first value

2) copy driver (sorry im wrong do this at the end !!!!!)

3) paste driver to other value (sorry do this at the end !!!!!))

4) open a driver panel editor type, select the correct object otherwise the driver will not apear, also select the last step in the T panel on the left

5) go to n tab then driver tab

6) set a to scripted expression

7) the expression need to have the same name as the tab below "add input variable", so by default, "var"

8) next to "var" is a little symbol, click on it, set it to single proprety

9) create a custom proprety, in the propreties tab, you can create one in the scene tab, material tab, and object tab, and this custom proprety will appear on the N panel in the 3d viewport when the concerned object is selected, if you want the custom proprety to be not selection depentend then i advise you to create the proprety in the scene tab, or even world tab

10) we go back in the driver editor,in the n panel, and in our variable "prop" we choose the correct cathegory of where the custom proprety is

11) we need a path to the correct custom proprety we just created, so find him, right click on him, and "copy data path", then paste it in the "path" on the driver editor

12) we are done, tweak the custom proprety and the calue will change according to it, you may need to change the calue of the custom proprety in "edit" for it to correspond of the max and min value you want to tweak

JUST COPY AND PASTE DRIVER AT THE END ! i did it at the beginning this may be wrong

------------------------------------

in the case above its linking value for every single value possible in blender (from 0 to 1 at least)

but if you want to link value only trough the node, just use a nodegroup with an input value in it and paste it trough the materials.
in the future with everything node this will be really handy

------------------------------------


Why do different render engines generate different z pass?

When rendering a Z pass you are essentially creating a depth map from the camera point of view. The issue here is there is potentially infinite range of distances to represent by colors and only 256 shades of gray available to map them to, in a traditional 8 bit image you have .

It can go from zero close to the camera (unlikely there is something this close) to whichever visible object is most most distant. But there may also be a sky or "background" at a theoretical infinite distance.

There are several possible ways to map these shades of grey to the distance progression each with its own advantages.

It can be a linear mapping where detail is distributed evenly across all image, but here may also be logarithmic mappings, emphasizing detail at certain parts of the picture.

You may want more detail at close range where image focus is likely to reside.
The scene may require more detail at large distances if you are rendering a landscape or distant view
You may want to use it for a mist pass requiring details at a medium range.

As far as I know  would expect both Cycles and Blender Render to use the same "true distance to sensor", not a virtual orthographic plane passing through the sensor, but I may be wrong.

If that is indeed the case or you require a specific color progression or custom mapping of values you may construct your own "an artificial Z pass".

You can do so by making a basic emission shader with a circular black to white gradient mapped to the camera object.

Moving the camera should update the position. You can scale the gradient as desired to accommodate your desired distance range, and drive it through a Color Ramp for a non linear progression.


Blender 2.9 Python GPU Module, drawing lines in the wrong position

The problem seems to arise only when using uniform_float(). Instead I put the position/color information inside the batch_for_shader()-function and update it whenever necessary. It now works like a charm.


Snap > Increment with ✓ Absolute Grid Snap seems to work fine.
To have more precision

switch to Ortho view (View > Perspective/Orthographic, Numpad 5)
use a top/side/view (View > Viewpoint > Top,  ~ )


How to set fire render colors to be the same as the fire viewport preview?

Flames look better on a dark background.  But it seems that in your color ramp the first color has no alpha channel, so hard edges are visible.


How to convert image sequence to video using the VSE?

In video sequence editor choose "Image".

Use B to select your frames quickly.

In properties> Render> Output, choose an output location.

Directly below, in properties> Render> Encoding, choose a video format (here I've chosen "H.264"). Select "RGB" right next to it, and hit "Animation" at the top.


How to use linked objects with an Array modifier?

A method would be to use linked-duplicated bricks (AltD).
If you use an Array modifier, it has the advantage of being non-destructive and light as long as you don't apply the modifier, but it will give a bit repetitive result. But you can use a Displacement modifier to solve the problem:

Create a 2 brick object, subdivide them a bit.

Give it an Array modifier on the X axis. Then a second on the Z axis.

Give it a Subdivision Surface and smooth it. Then give it a Displace modifier with a Cloud texture, it will allow you to break the wall uniformity.

For the brick you show, you can do it this way:

Create a plane, subdivide it, bevel the new edges.

Drag the central edge to create the slots, give your object a Subdivision Surface to check the shape, give it an Array on X and Z axis. Put the Subdivision Surface modifier below the Array modifiers.


How to Make Extruded/Drawn Vertices part of Face it Was Drawn On?

I'd recommend using the knife tool, shortcut K, this allows you to cut the face any way you want.


What is the order of transformations when exporting to Collada?

Object and bone transformation in Blender are applied in the order of scale, rotation, translation. As a matrix this would be written like this:

object_matrix = translation_matrix * rotation_matrix * scale_matrix

Note that this order ensures there is no shearing, which happens when you do scaling after rotation.

If parenting is included in the matrix, multiple such object or bone matrices might be multiplied together, which means there is no longer a clear correct way to decompose the matrix into scale, rotation and translation.


mesh doesn't follow armature correctly - bones outside the mesh

I think the problem is that your weights, give influence to the movement of that part of the mesh (an arm of the creature) to two different bones:

So, afaik, the end of the arm, being influenced by two different bones, is a "compromise" (or more properly a "blend") of the position of the two involved bones.

I roughly tried to correct the weights of the first image:

and you see the mesh now behaves better, hopefully?

(btw the other arm of your model already has a similar setup and the mesh moves like expected)


There are two ways for you to handle this.

The first is through the length unit settings in the scene tab of the properties panel (bottom right in the image below). You can simply set the scene units to millimeters instead of meters (which is the default), and the 3D printing toolbox tests will update accordingly.

The other one is by changing the thickness threshold in the 3D printing toolbox thickness tests to whichever is the limit you're aiming for (which corresponds to your 3D printing tools and materials).


VSE: How can I cache 3d scenes for faster editing?

I just setup a simple scene in Blender 2.82.7 and addet it in a new scene to the VSE. After one playback Blender seems to automaticly cache Frames ant the playback is realtime. Blender Docks

Ther is an option to prefetch frames .. but this semse to be brocken as of right now (2.82.7) https://developer.blender.org/T70612

Nevertheless caching seems to work.

Create animation

Create new Scene.001 and add the Scene with animated cube to Sequencer.

Start Playback and wait for all frames to get rendered once. Blender will skip Frames trying to keep realtime playback up as best as possible, but eventualy all frames will be cached. (probably untill no more frames fit into RAM)

Otherwise the goto way to work in the VSE is to render out your animation scenes in image Sequences and compose them in the VSE afterwards to render your final encodet video file. This way you have them on disk no matter wat happens and can rerender frames you need to change.

For indepth information see Video Editing Workflow: Use a separate scene for VSE?
and
Movie editing : VSE or compositor?


Edge Slide and loop cuts go by a “factor”, not a distance. So the snapping constrains that factor--in my quick test, to multiples of 0.1.

In your case you can select all the points and type in the exact value for the Z-coordinate that you want. This might be the easiest way.


Did you read the comments? Often people write problmes + solutions in the comments.
So next questions:
Did you use Cycles?
Did you bake?
Did you see that comment here:
NOTE TO NOOBS LIKE ME AND ANYBODY ATTEMPTING THE TUTORIAL - when Olav says the word "flame" is important, he actually is referring to how it's typed, not just what is typed.
DONT USE CAPS! Took me forever to realize it's like an input term, not a name, and effects the results it must be written as "flame" or it won't be recognized as the intended value. I had F capitalized.  The attribute flame won't work right if typed in any other way.

...and...what i made wrong often: every little step in the tutorial, do it exactly how the teacher does it, else everything can happen. I often did thing slightly different which looked the same in that moment, but weren't the same. E.g. if you move your cube in object mode with G, it is something totally different to move your cube in edit mode!!! Because the origin point changes! Took me quite a while to understand this "little" differeence...


Is it possible to extrude a curve in two directions?

Not supported in Blender, curve vertex must always belong to a maximum of two segments.

Either use a mesh object with a Skin modifier instead, if you require true 'branching' and a continuous mesh surface.

Or if you prefer curve objects duplicate a vertex in place, leave it overlapping the original one, and then extrude the new one; if you don't mind the discontinuity in the mesh.

You can just directly select any middle vertex and extrude it twice with E, the first extrude will duplicate the vertex automatically Right-Click to cancel and the second extrude will start a new branch.


Will my Blender installation work after updating to windows 10?

You can save your files in a save place, uninstall blender, update to windows 10, and install the last version of blender (2.77a when writing this) so you have a clean version.

As you can see in blender.org the last version is "Compatible with Windows 10 | 8 | 7 | Vista" so you won't have any* problem.

Or at least not more problems than with windows 7.


You can create a grid primitive and remove the faces:
import bpy
import bmesh

sce = bpy.context.scene

me = bpy.data.meshes.new("Grid")
bm = bmesh.new()
bmesh.ops.create_grid(bm, x_segments=32, y_segments=32, size=50)
bmesh.ops.delete(bm, geom=bm.faces, context=3)
bm.to_mesh(me)

ob = bpy.data.objects.new("Grid", me)
sce.objects.link(ob)
sce.update()

This will give you a grid at origin, dimension x/y 100 and with 1024 vertices.

from_pydata():

it creates primitives from verts+faces, not verts+edges

You can either pass two sequences for verts and faces, or you give it verts and edges - it should work the same.


How can I delete overlapping faces when the faces are in multiple objects?

One way would be to add Solidify modifier to the blue mesh and direct thickness outwards. The other way would be to add Boolean modifier to the grey mesh, duplicate the blue mesh, set one of the blue meshes as Object in the modifier and choose Operation Difference. The boolean modifier must be first before edge split modifier.


First, you can un-bake them:
(Install this as an add-on)

#########################################
# resamples baked f-curves to a new     #
# action + f-curve or a 3d bezier curve #
#########################################

bl_info = {
    "name": "unbake f-curve",
    "author": "liero",
    "version": (0, 4),
    "blender": (2, 6, 0),
    "location": "View3D > Properties Panel",
    "description": "Resample baked f-curve to a new Action / f-curve",
    "category": "Animation"}

import bpy

bpy.types.WindowManager.RGB = bpy.props.BoolProperty(name='Use RGB colors', default=True, description='Use RGB colors for f-curves')
bpy.types.WindowManager.scaleX = bpy.props.FloatProperty(name='X scale', min=.01, max=5, default=.1, description='X scale for 3d curve')
bpy.types.WindowManager.scaleY = bpy.props.FloatProperty(name='Y scale', min=.001, max=5, default=1, description='Z scale for 3d curve')
bpy.types.WindowManager.use_radius = bpy.props.BoolProperty(name='Use Radius', default=False, description='Use Radius / Height to visualize')

class Boton(bpy.types.Panel):
    bl_label = 'unBake selected fcurves'
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        wm = context.window_manager
        layout = self.layout
        box = layout.box()
        box.operator('curve.unbake_action')
        box.prop(wm, "RGB")
        box = layout.box()
        box.operator('curve.unbake_bezier')
        column = box.column(align=True)
        column.prop(wm, 'scaleX')
        column.prop(wm, 'scaleY')
        box.prop(wm, 'use_radius')

class UnBakeA(bpy.types.Operator):
    bl_idname = 'curve.unbake_action'
    bl_label = 'unBake to Action'
    bl_description = 'Resample baked f-curve to a new Action / f-curve'
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        return (context.object and context.object.animation_data)

    def execute(self, context):
        obj = bpy.context.object
        wm = bpy.context.window_manager
        pts = [(c.sampled_points, c.data_path, c.array_index) for c in obj.animation_data.action.fcurves if c.sampled_points and c.select]
        if pts:
            keys = bpy.data.actions.new(name='KEYS')
            for sam, dat, ind in pts:
                fcu = keys.fcurves.new(data_path=dat, index=ind)
                if wm.RGB: fcu.color_mode = 'AUTO_RGB'
                fcu.keyframe_points.add(len(sam))
                for i in range(len(sam)):
                    w = fcu.keyframe_points[i]
                    w.co = w.handle_left = w.handle_right = sam[i].co
            obj.animation_data.action = keys
        return{'FINISHED'}

class UnBakeB(bpy.types.Operator):
    bl_idname = 'curve.unbake_bezier'
    bl_label = 'unBake to 3D'
    bl_description = 'Resample baked f-curve to a 3d Bezier curve'
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        return (context.object and context.object.animation_data)

    def execute(self, context):
        obj = bpy.context.object
        wm = bpy.context.window_manager
        for c in obj.animation_data.action.fcurves:
            if c.sampled_points and c.select:
                sam = c.sampled_points
                cu = bpy.data.curves.new('path','CURVE')
                cu.dimensions = '3D'
                if wm.use_radius:
                    cu.fill_mode = 'FULL'
                    cu.bevel_resolution = 6
                    cu.resolution_u = 1
                    cu.bevel_depth = 1
                spline = cu.splines.new('BEZIER')
                spline.bezier_points.add(len(sam)-1)
                curva = bpy.data.objects.new('curve',cu)
                bpy.context.scene.objects.link(curva)
                for i in range(len(sam)):
                    w = spline.bezier_points[i]
                    y = wm.scaleY*sam[i].co[1]
                    if wm.use_radius:
                        w.radius = y
                        y = 0
                    coords = (wm.scaleX*sam[i].co[0],y,0)
                    w.co = w.handle_left = w.handle_right = coords

        return{'FINISHED'}

def register():
    bpy.utils.register_class(Boton)
    bpy.utils.register_class(UnBakeA)
    bpy.utils.register_class(UnBakeB)

def unregister():
    bpy.utils.unregister_class(Boton)
    bpy.utils.unregister_class(UnBakeA)
    bpy.utils.unregister_class(UnBakeB)

if __name__ == '__main__':
    register()

Script by liero (http://blenderartists.org/forum/showthread.php?221387-resample-baked-f-curve)

Select them all and hit Alt - 0. You may need to use it multiple times to get the desired effect. This is non-procedural, and any change you make are not easily undone (You have to use Undo).

Finally, if you wan't to, you can re-bake them.


It's the polygon (face) index.

It works like object/closest point on mesh . Not like kdtree, that gives vertex (vectors, points) relation


Blender Internal - colorless render (no materials)

Check your Render Layers settings - this includes an option to override the material for all objects in the scene :

If set, Blender will render all meshes with the specified material.

EDIT:

Newer versions of blender don't use layers, but "collections" so the override function is in the scene>View Layer section.

Additional info:

Where is the Layers panel in Blender 2.8?

2.8 - Is it possible to assign (override) a material to a whole collection?


Is there a way to set the radius of the new circle select tool by python script

What you are trying to do is change the current context. Instead, you should just be overriding the context.

First step for that would be finding the context that you want to use, that would be our VIEW3D REGION for this case, so we can just cycle through all the context screens available till we find VIEW_3D

for area in bpy.context.screen.areas:
    if area.type == "VIEW_3D":
        #Do stuff

Now just the area itself is not enough as there are different regions inside an area. For our use case we will be needing the window region.

for region in area.regions:
            if region.type == "WINDOW":
                #Do stuff

Now we the required components to define a new context.
What we can do is clone our current context and replace its area and region with the ones we just found.

for area in bpy.context.screen.areas:        #Cycle through all the avaliable areas
    if area.type == "VIEW_3D":               #if area is called VIEW_3D
        for region in area.regions:          #Cycle through all the regions in that area
            if region.type == "WINDOW":      #if the region is WINDOW
                view3dArea = area            #save the area and region in variables
                view3dRegion = region
                break                        #exit the loops

override = bpy.context.copy()                #Make a copy of current context
override['area'] = view3dArea                #Change area to the one we just found
override['region'] = view3dRegion            #Same with the region

Now that we have the right context we just need to pass it into the function.
Simply done by passing it as the first argument as its positional argument.

bpy.ops.view3d.select_circle(override, Other stuff)

You can make a simple function out of this so you can call it whenever you want.

import bpy
def select(x,y,rad):
    for area in bpy.context.screen.areas:
    if area.type == "VIEW_3D":
        for region in area.regions:
            if region.type == "WINDOW":
                view3dArea = area
                view3dRegion = region
                break
    override = bpy.context.copy()
    override['area'] = view3dArea
    override['region'] = view3dRegion
    bpy.ops.view3d.select_circle(override,x=x, y=x, radius=rad, mode='SET')

Simply call that function with the desired radius and coordinates.

select (300,200,50)

Or you can change the radius and get a bigger selection

select (300,200,100)


How to split/slice a polygon without subdivide?

You could use the knife tool. Press K and then click where you want to make cuts. Press ⏎ Enter or Space to confirm:

Or you could use the join tool. Select the vertices you want to connect with an edge and press J:


Okay, if anyone else is wondering about this, I found an answer on Twitter of all places...there's an Options section of the Materials tab that contains a Blend Mode drop down with an Alpha Blend option (among others.)

Weird that this isn't accessible through the Node Editor somehow (but maybe I'm missing it.)


When I try to duplicate an object with shift + d it doesn't work cause the controls change inmediately to the timeline

If you want to manipulate objects in 3D-view, your cursor has to stay inside that area for shortcuts to work .
The only standard explanation I know would be that you are not in the right area. Blender uses a concept called implicit focus. It means that the active area is the one below your mouse cursor. That saves you a lot of clicking but it can also mean that keyboard shortcuts won't work or do different things if your cursor is misplaced by accident.


Mapping node doesn't work with normal map

The problem is with what you've left off-screen: there is no input going into your mapping node.  Here's how I fixed it:

Mapping nodes can be used for all sorts of vectors, so they don't make any assumptions about what should go into them if you don't specify.  Texture nodes, on the other hand, try to take a best guess.

Additionally, notice that I specified a UV map for your tangent-space normal map node.

Finally, using mapping nodes with tiling normal maps in Blender is not ideal, because for whatever reason, no one has ever seen fit to provide a tangent input to the Normal Map node.  Appropriate tangents should go through the same mapping process as the UV coords reading the normal map.  For doing things like this, I would recommend using bump maps instead, which Blender handles more cleanly, or to create and edit an extra UV map instead of using a mapping node for the normal map.  http://cpetry.github.io/NormalMap-Online/ is a free tool that does a reasonable job of converting normal maps to height (displacement, bump) maps.


How do I change animated values for multiple keyframes?

I don't know exactly how much it will help you, but you might want to try looking into the addon AnimAide: https://github.com/aresdevo/animaide

In the graph editor it has the "Anim Transform" tool which "freezes time, so any transformation you do to an animated object or armature affects the entire animation equally".


Problem texturing a complex model like the interlaced leaves of a palm tree

Maybe you can try this neat selection trick : just click on the ending vertex of a leaf, and do "CTRL +" repeatedly to increment your selection. "CTRL -" to deselect.

Another trick that you can also try is to hover over a leaf, and hit L on the keyboard. This will select the actual object as a whole (provided it is a separate mesh). You can hide it by pressing H, and reactivate it with ALT+H.

Hope it helped, and welcome aboard !


How do i remove images that are dragged onto an object?

Don't worry guys i found it, if anyone has the same issue just go over to the textures tab and delete the dragged image!


How can I use the BI Noise Texture in Cycles?

The short answer is "you can't." There is not a 1:1 correlation between Blender Internal materials and Cycles materials. The Clouds material is similar to the Noise node in Cycles, but not quite the same.

The longer answer is that you can make just about any kind of material you need to in either renderer, but you'll have to use different techniques from one to the other. You should start with the Noise node in Cycles, and then tweak it until you get something that looks like what you want. You'll have to play with the settings on the Noise node itself, but you'll almost certainly need to add a Ramp node to control the hardness of the noise.

Anything beyond that is really outside the scope of this site. Please keep in mind that it's not a forum. This is a Q&A site. We love to help, but this site works differently than most people expect. It's not designed to handle conversations, rather it's designed to handle discreet questions with clear answers.

Hope that helps!


Before even jumping into the node editor, identify the different components you will need for your shader. The first thing to notice is that the surface is completely diffuse. There are no subsurface or glossy components visible. The color consists of a bright yellow and a darker reddish/orangy color. The parts that are facing upwards are paler, weathered by rain and sun. You can get this gradient by using the Dot output of a Normal node. Adjust the contrast of the output with a ColorRamp and use it to mix between the base color and the secondary color.

The dirt that settles in the crevices can be achieved using the Pointiness output with very high contrast. Use this to multiply the color with black to darken the crevices.

In order to randomize the color in hue, value and saturation, you will need a Noise Texture. In this case, I split it up into R, G, and B to work with different patterns without using multiple noise textures. The combined RGB of the noise is also fed into a Bump node to give the surface more roughness.

This would be the base for your shader, the work isn't done here! Now you can start to bring in realism by combining many different noise patterns, by varying the bump and by introducing more inaccuracies in color and roughness using the same simple steps as shown above.


Merge wont work because you are selecting only one vertex, that shows up as two because of the mirror modifier, and if you try to merge it it will merge itself = nothing will happen. To join them properly just select one of the vertices and move it toward the center using the red arrow(x axis).

The blue/dark shading in your object is probably because of inverted normals, to fix it select all the vertices, press space and type "flip normals" then hit enter


Change from Cycles to Blender Render to enable the displacement baking.


Instead of adding a layout.operator you would add a layout.prop, which would look like this:

self.layout.prop(context.scene.tool_settings, "use_mesh_automerge")

The first parameter in the parentheses is where the property is stored and the second is the name of the property you wish to access.

This results in this menu, with a property that can be toggled on and off:


Exporting multiple materials to a single diffuse/specular map

Shaders can be made to use several different types of masks but the types of passes available for baking are currently limited but this can be overcome with a bit of extra setup.

Cycles works well for doing this but the masks are not necessarily all going to translate over to other rendering engines perfectly calibrated.  Some fine-tuning is likely to be necessary whether you use Cycles or Blender Internal for creating masks for other renderers since everyone uses slightly different(or very different) math for their shaders.

The following is an example of how you can bake an Exponent mask(Roughness) using Cycles.

This first image shows 1 object that has 2 materials.  Each material is a Glossy node and they both have different values for Roughness.

Now you can bake these values to a texture by using Emission Nodes with the strength value set to the same Roughness used for the Glossy shaders.  This will bake a black and white mask that has the values for Roughness baked in.

The sphere on the left is using only one material now instead of 2 and uses the baked texture to control the roughness for both surfaces.  The sphere on the right is still using 2 different shaders to control both surfaces.

Here is a diagram that attempts to show the part of the shader formula which is making use of the Exponent mask that was just baked.

You can also bake what people are calling a 'metalness' mask using the same technique shown above using Emission shaders for the exponent mask values.

Here's a turntable animation the shows several different masks in use to control only one GLSL shader for the armor.  Notice how the specular bright-spot's radius changes as the light plays across the bronze color to the plastic parts and then across the Blender Logo.  It's a specular exponent mask that controls the highlight's radius.  The shader also uses a masks to control the different paths the GLSL shader code will take since it's programmed for more than one type of effect.(sort of like a mini uber-shader)

https://vimeo.com/109779858

Extra reading: If you have a look at the following diagram for Valves DOTA2 modding documentation, you will see that there are several types of masks used to control various aspects of their shaders and since many of them are greyscale, 4 different masks can be stacked into just 1 texture.

Here's the Title and link for the Valve PDF
DOTA 2 - Character Shader Masks Guide

http://media.steampowered.com/apps/dota2/workshop/Dota2ShaderMaskGuide.pdf


Disable Hidden Wires

You may accidentally enabled the Hidden Wires Option in the Shading section of the the Property bar.

Because the mesh is composed by a single N-gon, there are no other wires to display than the boundary edges.

The option is available since 2.69 version and is usually helpful while retopologizing. You can find more info in the release notes.


In this answer I shall demonstrate what the Attack and Release values represents. Though, I will update the answer with more concepts and practical implementation as soon as I get the time.

Attack And Release

In music production, there is a concept called ADSR or Attack Decay Sustain Release. When we define an ADSR envelope of some sound, we are basically describing how its intensity changes over time by defining four values, that is, Attack, Decay, Sustain and Release. The Attack value is the time period it takes the sound to reach its maximum intensity when played, so if piano notes have low attack time, upon pressing a note, the sould will reach its maximum intensity almost instantly, on the other hand, if piano notes have high attack time, upon pressing a note, the sound intensity starts to increase smoothly till it reaches its maximum intensity after some time defined as the attack value. The same goes for the release time, release time is the time period it takes the sound to vanishes. So if a piano has a low release time, upon releasing the note, the sound vanishes instantly and if it has a high release time, the sound takes sometime to gradually decrease till vanishes. A typical ADSR envelope is shown below:

Where A is the attack time and R is the release time. Decay and Sustain are not essential to understand for us. So what does the attack and release values mean for us in Animation Nodes? Well, it means that for low values of attack and release, the intensity changes rapidly and for high values, they are more even and slow. Below, the sound intensity controls the bars height, the right bar has low values while the left one has high value:

So if you want your music visualizer to have rapid changing intensities, choose low values and if you want otherwise, choose high values.