text:
Missing 'Generate' button in Rigify Buttons tab

I cannot find the Generate button to generate my rig, in the Blender Cookie Rigging Tutorial it should be found in the bottom right corner as another tab under the "Rigify Buttons" tab.
However I cannot see the Generate button under the Rigify Buttons tab. I can only see an add sample button.

You can see the Generate button in the bottom right corner of the screen clipping from the Youtube tutorial, but not on my screen.

The Generate Button is only available in Object Mode. The screenshot you posted shows that you're in Edit Mode Press Tab then the button should appear.


text:
How to bridge a string of edges?
I am trying to bridge the edges on a string of edges to another string of edges with faces. (See image)

How can I do this? When I use the F key, it does something strange because the height of the edges fluctuates. Also, bridge edge loops tells me to "Select at least two edge loops." What should I do?

Which edges are related to your question - marked in blue or not ? Could you post screenshot with only edges you're trying to bridge ? If Bridge Edge Loops gives that error probably you're trying to fill closed loop and another filling tool will suit you better. But it's hard to tell given this example.

The selected (blue) edges are what I am trying to bridge between. The selection are not loops.

Bridge Edge loops can handle this situation.
Make a selection on the top row of n contiguous vertices.
Also make a selection on the bottom row of n contiguous vertices.
Bridge Edge loops.

I was able to find my problem thanks to your answer: turned out that my selection was a single loop instead of two separate strands.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Can Blender be used online for viewing and editing my 3D model?
I want to use Blender for a sketch-up 3D image, but I want my 3D image online, on my webpage. I also want to be able to edit it online as well... Are there any available option for doing this?
Hope you all have something related to this my problem that can help me out.

The answer to your question is no, since blender its self doesn't run online, but I think it could be re-titled to be less specific: Blender compatible online model viewing solutions.

then what is the solution for my question??

there are multiple online model viewers as is given in the answer by sambler.

no I want editor online? then there is possible chance of doing this?

Why do you have the 3D printing tag? Do you want a physical print of your 3D model?

What kind of editing are you looking for?

Your question is a bit vague, what kind of viewing, what level of editing is needed?

I'm guessing that you're hoping that Blender is run on Java and you're looking for an online Java applet of it?

Java D, we can't answer unrelated questions (as you have asked in the comment you posted below. This site is about Blender, and we also expect reasonable questions that we can actually understand and answer (see the Help page).

Hmmm - I just found a new project started 10 days ago that allows sculpting in a web browser - any chance your just trolling for links and advertising?

For displaying a 3d model online checkout sketchfab or p3d
I don't expect much in the way of mesh editing online.
As you tagged your question as 3d-printing shapewright may be close to what you want - it is designed for customised 3d printing. The site uses an automated method that can join several pre-built models together to get a final model. I'd expect Dolf to be helpful if you wanted to make use of his scripts.

@sambler..okay then can you have idea about how to count cells which is in image?

Counting cells in an image sounds more like optical recognition and has nothing to do with blender. I'm wondering if you are asking about a 3d model or an image that has a 3d effect in it? I think you may be better off asking in a forum where you can give more detail, discuss options and respond to questions for more detail.

As an addition: SculptGL http://stephaneginier.com/sculptgl/ is a very new webGL application running in your browser that is capable of loading/saving and sculpting a mesh online.. maybe this is of help too for you!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
object renders and behaves different

This is the image using the EEVEE render mode. The render was fine and all and don't know what happened but after rendering sometime later the object has converted to this.
I closed the file and reopened it but didn't solve the problem.

Hello :). That's just viewport clipping distance issue. Your model isn't broken.

Does this answer your question? Where can the viewport clipping parameters be changed?

It does look like inverted normals, to be sure of this disable backface culling in material properties, if the issue is fixed then invert your normals.

@JachymMichal that is not right: clipping would look like somebody cut off the front or back of the model, not like it’s inside out.

@Yvain I agree, or alpha blend. That could also cause this. Turn alpha blend off and see if that fixes.

@Zargul This isn't a result of high clipping distance, but of high clipping range. The floating point accuracy has it's limits, which can cause this :).

Btw - the fastest way to solve this is usually switching to Orthographic mode (Numpad 5)

@JachymMichal not this kind of error. Look at that other question you linked. It looks like part of the face got chopped off on an even plane. That’s not what’s happening with this model.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Face reflect problem with perfume bottle

I try to make a perfume bottle. I did check every vertex from top and side perspective, everything was lined up straight in its place. Why the light reflects still come out like this?

could you please share your file? https://pasteall.org/blend/

It looks like you have a flipped normal. Select the whole mesh in edit mode, then select Mesh > Normals > Recalculate Outside

moonboots - Ok, here it is https://pasteall.org/blend/2a99090ed81f4a718fc4c17fa808e25b

Ok, It was flipped. Thank you Christopher Bennett and moonboots.

Ok, It was flipped. Thank you Christopher Bennett and moonboots.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Ho do i create edges like the one used on the corner of this object
I am very new to Blender and 3D and have watched lots of videos which never show how to create a corner like the one in this picture.
Could someone tell me the best way to re-create it?

You have to select the edge, press Ctrl + B , that way you bevel the edge.
If then you want to replicate the difference in length, as in the picture, you have to select the two vertices on one side and press G two times to Edge Slide.
The vertices should slide on adjacent edges getting closer or further from each other.

Thank you, That has worked a treat and i have managed to get the effect i want now but have noticed that when i rotate the object in the viewport the vertex that i have moved is now sliding back and forth and effectively altering the effect.  I have tried saving the object but the vertex is still moving when rotating the object.  How do i make it so that the vertex stops moving around?

I'm not sure what you mean, but in case you are in edit mode make sure you selected everything and then press R to rotate.

Hi Igor, I realised what was happening. When I performed the edge slide, I joined the vertices together but didn’t realise straight away that I hadn’t lined them up from all viewpoints. So, when I rotated the object I was seeing where it was not aligned yet from that particular viewing angle.  Newbie error I suppose. Thanks for your help

Nice David! You're welcome


text:
Do EEVEE samples have any effect when rendering?
Do EEVEE samples really matter when rendering?
Can't really see a difference except for render time

There are several things affected by EEVEE sampling, as you can see in this example scene, rendered at 1, 8 and 64 samples:

soft shadows are obtained by sampling large light sources using many small light sources. Low samples will "reveal" the point lights. This is generally the main downside of a low-sample rendering, therefore you should choose the number of samples based on how good your soft shadows look.
 top view:

the direction of refraction and reflection is also sampled because, especially around the corners, a sub-pixel change in the direction of the ray can make a difference between hitting an object, another object, or the sky. For low samples, this results in a strange pixelated blur

aliasing is what happens when a curved profile is drawn using pixels: it gets jagged if the pixels aren't "smoothed" (antialiased) adequately. More samples make the contours smoother.

[Added Sept 2020] the quality of Alpha Hashed transparency is also affected by the global sampling. Indeed, for each sample, a pixel will either be rendered as fully opaque or fully transparent: a fractional transparency is a result of averaging over multiple samples. With too few samples, tranparency appears patched/noisy:

[Added Sept 2020, suggested by Andrey Sokolov] the number of volumetric slices rendered depends on the EEVEE sampling: note how at 1 sample the dust cloud appears 2-dimensional.
PS There is another "Samples" count inside the Volumetric tab that controls the quality of each slice, and is independent of the global EEVEE sampling.

Thanks! That's great

Volumetric materials are also highly affected by render samples

@AndreySokolov yes, I mention that at the end of my answer. Volumetrics have their own sample count though.

Sorry, I've missed it. Anyway, render samples and volumetric samples affect each other. Volumetric samples determine how many volume slices will be drawn while render samples determine the quality of each one. And the same is with motion blur: motion blur steps (in 2.9) determine how many subframes will be rendered and mixed into a frame while render samples determines quality of each subframe (divided by subframes count).

Oh I see, I haven't explored the interplay between the two sample counts, but your explanation makes sense. I'll see if I can demo it easily and add to the answer. Thanks


text:
Adding a reinforcing rib to STL model with blender
I'm wondering about how to add a reinforcing rib to a stl model with Blender.
I have a shape like the one in the picture below and  I'd like to add a rib that perfectly match with the inner surface which is curve.
In a CAD modeler such as Inventor there is the possibility to extrude a sketch to a face, but no idea about how to do it in Blender.
I'm able to add a cube and resize it to the approximate shape of the rib, but how to make its border to match with the inner surface of the original stl?

Thanks in advance for help!

You can extrude faces in Blender but we will need more information about imported mesh. Wireframe would be minimal. Save it as blend file and upload to blend-exchange.giantcowfilms.com

Thanks, here's the link. I'm also interested to know the process to add this reinforcement or if there is a tutorial that can show me the way.

If your object is symetrical you might start by erasing half and using a mirror modifier so you only have to do half the work. Knife project may help make a cut you can then extrude. See my answer here about a similar question

You could add a cube, stretch it so it has the right with for the rib, use boolean operations to cut out the shape of the object and delete the parts that are sticking out on top and at the bottom.

In this particular case, I think it can also be done in this way:
put the original mesh in front view, wireframe shading,in edit mode,
then select just the central array of vertices,

then duplicate (shift-D) and separate (P => "selection") those vertices (to a new mesh)
as you see in side view, you now have a "section" object made of two "loops".

deleting the "inner" vertices from both loops, you can then make a single "face" joining the remaining vertices on their edges in pairs (upper and lower) using F then, after selecting all of them, make it a big "face" pressing F

now you can extrude this face on left and right (I would not bother using mirroring), obtaining a solid central shape that perfectly follows you original mesh curvature.

Then I would join both objects, and export to .stl again.


text:
Why does a plane with an image texture show as black in Cycles?
I created a plane and added a Diffuse Material with an image as the texture, and a single lamp above it, using all default settings otherwise. Strangely, the plane appears as black in Cycles. I can't figure out what I could have possibly done wrong.
Do I need to tweak something? (Or is it normal for Cycles to treat a Plane with an image as not being illuminated (if there are no other objects in the scene)?)

You must be doing something wrong elsewhere then as that node setup is correct..

Are you using the Import Images as Planes addon? yes, you definitely need some lights (planes with emitter material, with face normal pointing at the object to illuminate)

@zeffii no, I'm not.

@RolandiXor The Import Images as Planes addon, also created the UV data and makes a plane with the correct dimensions, it's worth using at least once so you know how easy it can be done.

Add some Texture Coordinates! Generated works out of the box, and UV is even better. All pretty standard stuff. :)

This is most likely the solution. The Image Texture node uses UV coordinates by default, so they must either be created, or Generated texture coordinates must be used.

That was the answer for me and the "Texture Coordinates" is in the "Input " Add Nodes menu, took me ages to find that.

I have had similar problems before when the lamp was in a different layer and in the my scene render layers the light's layer was not active.
So make sure that all the 3d layers that you want to see/contribute in the render are activated in the Render context Layers panel.

This might sound obvious, but make sure you plug it to the "surface" input of the output node. Sometimes when you are trying out materials it moves the noodle to the "volume" input, that doesn't really work by the time and will give you completely black objects.

Had the same Problem Turns out all I had to do was " DELETE " All the Suns,SpotLights,etc.. and presto image showed up!!

Solution 1 : Don't Use Black Image .
Solution 2 : Select your plane and press tab( edit mode) , Press U Select Unwrap .

You have to add a BSDF diffuse node between the nodes to tell blender the texture will be used for diffuse texture.


text:
Is it possible to convert Matcap colours to vertex or material colours?
What I would like to do is simply to apply a Matcap while editing, and then use its base colour as the colour of the object for test rendering etc. Is this possible?
To put it another way, if the Matcap is lime green, how can I make the object lime green (using vertex or material colours).

This is not possible, using blenders built-in matcaps.
However you could setup a material that uses a matcap image that uses normal mapping relative to a camera object, then bake this to vertex colors.

I'm not sure I understand you question perfectly, but other than opengl render, and the method in this post, it's not possible to render with matcaps.
However, I think the method in the post linked above is close to what you want.
(just basically texturing the object with normal mapping)

I don't want to render with Matcaps, I just want to use their colour for the vertex colours.


text:
How to Import a model with textures applied?
I have downloaded a model from this website.
It comes with all the textures as .tga files.
I want to import all the files into blender so it looks exactly as it does on the website, textures applied and everything.
I've searched around for how to do this with no results.
Can someone help or guide me through doing this?

I thought the textures were added automatically.. What formats did you try?

I go to Blender File > Import > modelname.obj  Try downloading it see if it works for you maybe.

The textures are imported for me, the only difference I can see is that some material settings are different (color, mirror, transparency, etc.)

You would need to enable the 3DS Import/Export Addon in the User Preferences (Menu: File / User Preferences)

Then Import the .3ds file (Menu: File / Import 3D Studio (.3ds)
some of the UVMaps don't match the textures you would need to reassign them.
Enable Transparency in the Material Settings for glas parts:

You would also need a few lamps in your scene, in Object Mode ALamp/Hemi and place them e.g. in front of the model, then you will also see the textures.

Hey, after Importing the .3ds model this is what is shown: http://novsstudio.com/pic.png   Is that the wasy it should be shown? If so, how do I get it to look like the picture, I don't believe any of my textures are being applied.

@novs12 You won't see any textures in solid view, try rendering or switching to textured view.

@novs12 You need to adjust some values, but editing the UV-mappings wouldn't be as trivial as you seem to expect, I added a rendered image.

I had some issues importing because the model was packaged in a separate directory to the textures. Not sure if 3ds even supports paths in filenames. Either way the texture filename character limit is pathetic. Moving to the same dir fixed it.

Using Blender 2.73a just go to
File > Import > Wavefront (.obj)
Browse from the extracted downloaded folder for file .obj extension (in my case it is DBR9.obj of size 2.8Mb.)
The whole beautiful complete frame of the car model should open right away in your editor.
I just played for Blender for an hour and it is fun to learn up.


text:
Stop rendering each time camera is moved or anything else is modified
For some reason I managed to make the camera render every time I move it to a new position, move an object, modeling or whatever. I want the camera to ONLY render when I hit F12. What have I done wrong?

I checked that first, but its solid and it renders every time an adjustment is made to the scene. For example, check this:
http://i59.tinypic.com/34hhra0.png
If I move this cube from position 1 to position 2, it will render after I moved it. Same goes with everything else. Moving stuff around in the scene makes it render each time.

Then it could be that  you enabled border rendering see: http://blender.stackexchange.com/questions/6341/how-do-i-clear-the-render-border

Well, it sounds like you have your 3DView set to display rendered

try changing it to one of the other settings and see if that fixes the issue.

The only other place I can think of to check is the 'autorender' button in the compositor.
try unchecking-that and see if it then only updates the render layer when you hit F12.

Burril, thanks! That is it! It works now :)
Since lack of information if anyone else stumbles upon the same problem, follow John Burril's advice and uncheck Autorender in the node setup window!

@Lars you can mark this answer as the solution by clicking the tick next to it.

The autorender button was already unchecked in the compositor; even then everything was getting rendered.  But changing viewport shading to solid fixed the issue for me! thks!!


text:
Can you link two mesh objects and keep the UV mapping each one has?
I am trying to link two mesh objects, each one has its own UV mapping, both are using the same texture, how can I link the two objects and keep the UV mapping of both objects? It only keeps the one atm. Or is there a way of copying the entire UV map of the one object and paste it when the objects are linked?

When you say link, do you mean "join"? If so, then as far as I know, this is not possible. When (or if) you clarify, I'll post an answer.

You can do this with a very simple python script
# make sure to be in Object mode
# make sure to have two objects selected
import bpy
import bmesh
from mathutils import Matrix
from contextlib import ExitStack

def work():
    C = bpy.context
    if C.mode != 'OBJECT':
        return
    if len(C.selected_objects) < 1:
        print("Must have at least one object selected")
        return
    # read into bmesh safely
    names = []
    with ExitStack() as stack:
        bm = bmesh.new()
        stack.callback(bm.free)
        for o in C.selected_objects:
            if o.type != 'MESH':
                continue
            m = o.matrix_world
            bm.transform(m.inverted())
            bm.from_mesh(o.data)
            bm.transform(m)
            names.append(o.name)
        # write to actual mesh
        mesh = bpy.data.meshes.new('Result')
        object = bpy.data.objects.new('Merge(%s)' % ', '.join(names), mesh)
        bm.to_mesh(mesh)
    C.scene.objects.link(object)
    C.scene.update()

work()

I hope this fulfills your needs, I figure you can easily adapt to even more objects but this script should do what you want. Just copy and paste in into the text editor, select your two objects and hit the "Run Script" button.
EDIT: the script can now handle indefinitly many objects.

@RayKoopa, I hope I fixed it with the exit. Tell me if not

@RayKoopa, what objects do you have selected? What Blender version are you running it in?

That are two normal meshes, with a textured material, in 2.75. =3 I tried it on new meshes, there it works... but not on mine. Well, don't worry, I got around this problem anyway =3

This is an amazing script that really helps. Any idea why it is not implemented and all saying that it is impossible ? @WorldSEnder

This isn't possible by definition, as UV maps are object data. By linking object data, you link the UV maps too.
This makes sense, as UVs depend on vertex order.
Instead you could use two UV maps, with different materials for each object.

Transfer UV maps

With one of your objects selected, create a new UV map by clicking the plus button and select it:

Select both objects so that the one with the other UV map is active, and press CtrlL> Transfer UV maps. This will copy the selected UV map from the active object into the selected UV map slot in the selected objects.

Now that you have both UV maps on one object, link the other object to the one with both UV maps (CtrlL> Link object data).
You can either use separate materials linked to the object instead of the object data, or you could use on material which mixes based on the object index.

Separate materials

Set the material link to Object for each object. This will make the specified material be used on that object, regardless of what data is linked.

Create a material with a UV map node to specify which UV map to use, and specify it as the material for one object.
Specify it for the other object and press the little number to make a copy of it:

Change the selected UV map in the UV map node. You should now have linked objects with separate materials, which use separate UV maps:

Example .blend


text:
What exports does blender have for 3d printers?
What exports, if any, does blender have for 3d printers?
It may be sort of a list question, but I feel it could be horribly useful.

do you mean what formats? STL is the common.

Anything that satisfies printing on a 3d-printer would be sufficient for an answer.  Formats usable by 3d printers or plug-ins that support a print button directly would be okay.

When considering 3d printing, you should be more concerned with your mesh topology than an actual output format. BlenderCookie has a tutorial on preparing a model for 3d printing. An application or company that does this will take anything from .ply to .obj as all these formats do is hold mesh data.
Here is also an extensive article on (recently new) official support for 3d printing in Blender.
So as for a definitive answer to this question. 3d printing giants Shapeways make mention of .STL in this tutorial

Finally, export to STL. When uploading the file, make sure to select
  "millimeters" for scale. If all went well, it'll upload, and you'll
  get notified that it's ready for printing.

and there is a set of tools called 3D Printing Toolbox available for Blender that assists with the overall process. Statistics/Cleanup/Export etc
You can enable the addon in Blender from the Mesh tab.

There is also a DVD on the Blender eShop on 3d printing. It is very modern and up to date.

It may not have a print button, yet, though it is possible with OctoPrint/OctoPi servers and I'm getting close, very close...
That stated the features that currently work are designed for those that wish to quickly export selected objects as STL  from Blender and then slice into GCode with either two different local slicers or one server based.

Narrated video guides are within a YouTube Playlist, side note; yeah I know the audio is way low but at least the auto close captioning gets most of the words correct.
Wiki is hosted on GitHub Pages and I'm also going through a bit at a time adding Doc strings to the source code too.

This is a third party addon for now, and under rapid development, but once available features & documentation are nearer to being complete it'll submitted to Blender for approval.


text:
Global Pose/Rotation of a bone
Is it possible to determine the pose/rotation of a bone depending on the parent bones (with Python), in the best case in euler angles.
For example, I have a model of a human and the arm is rotated in such a way that the body forms a T-shape. Then the hand is rotated that the palm points in the same direction as the face.
Now I would like to determine which rotation I would have to perform only on the hand to obtain the same direction without moving the arm.

I am not sure I understand your question in detail. You said the hand is  rotated the same direction as the face, and then you ask what rotation you would need to perform only on the hand.?  In any case, perhaps this question/answer helps: http://blender.stackexchange.com/questions/1283/how-to-get-world-space-matrix-of-any-pose-bone .

I meant, if I first rotate the upper arm, then the forearm and finally the hand, I have to perform a different rotation as if I would only rotate the hand to point in the same direction.

If I understand you right, the bone shall have the same rotation as its parent (in pose mode):

To achieve this by script, all you basically need is the rotation part of the parent. Construct a 4x4 transformation matrix from the parent rotation and the target bone's translation and scale. Assign it to the bone's matrix property.
import bpy
from mathutils import Matrix

pbone = bpy.context.active_pose_bone
pbone_parent = pbone.parent

loc = Matrix.Translation(pbone.matrix.to_translation())

# Rotation only (strip location and scale)
# TODO: make it work for parent bones with negative scale too
rot = pbone_parent.matrix.to_euler().to_matrix().to_4x4()

s = pbone.matrix.to_scale()
scale = Matrix()
scale[0][0] = s[0]
scale[1][1] = s[1]
scale[2][2] = s[2]

mat = loc * rot * scale

pbone.matrix = mat

# Force redraw, so transform properties are immediately visible
for area in bpy.context.screen.areas:
    if area.type == 'PROPERTIES':
        area.tag_redraw()

Note that the script has issues with negative scaled parent bones, couldn't figure out how to do it properly.


text:
Can we use just a script for a driver?
For example:

bpy.data.textures["mouth shapes"].image_user.frame_offset = bpy.data.objects["rigMeenuTeen"].pose.bones["eyes"].location

Can this kind of expression be a driver?

If the property doesn't allow for drivers, it cannot be driven with a driver.
It can be driven through app.handlers though:
import bpy

def my_handler(scene):
    # this code will be run on every frame change
    loc = bpy.data.objects["rigMeenuTeen"].pose.bones["eyes"].location
    bpy.data.textures["mouth shapes"].image_user.frame_offset = int(loc.x)

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

thanks. "frame_change_post" is not updating in 3D viewport. But "frame_change_pre" is updating and working fine.
Non-scripted drivers updating update even interactively (i mean when i move driver around with mouse it affects driven) is that possible in scripted way?

@ashwin Fixed the answer to '_pre' handler. Can you specify what you mean with the last question? Classic drivers cannot update (call) events, but PyDrivers could. I am not sure if that is what you were asking..

i mean when i add driver through right click and specify driver details in driver window. Then that driver affects the driven even when its moved with mouse. But this scripted driver only affects when we play the animation.
Or is ther "on_mouse_move"  handler available like "frame_change_pre" ?

@ashwin no, there isn't 'on_mouse_move' but there is 'scene_update' which basically runs all the time. Executing a function there might slow down blender a lot so if you really must the best is to setup a monitor for that property like this: http://blender.stackexchange.com/questions/19668/execute-a-python-function-whenever-the-user-interacts-with-the-program. Instead of a name you can watch a bone's position and update the frame_offset accordingly


text:
How to use normal maps with nodes in Blender Internal?
In the file attached I have created 2 cubes:

Cube A (with regular - non-node-based material with normal map)
and Cube B (which tries to use same normal map but with node set
up).

I want to achieve same normal effect in a node set up.
How can I do that?
Test file: Node based normal map.blend

This works just fine for me - http://i.imgur.com/edJokhj.jpg. However, I couldn't download your file because there's no access opened (so maybe I misunderstood something).

@Mr Zak please try downloading now. Sorry for the trouble

@ Mr Zak even in the example you shared the result of node set up will be different from result of non node based using the same normal map. http://i.imgur.com/IXheSLY.png

Well, the result in my first example would be rather similar if non-node based material would be used - https://i.sstatic.net/Quf3U.jpg (cube B on the right). Going further, I created a normal map from your image and got result like this - https://i.sstatic.net/jpuY3.jpg (cube B with node-based material on the right). Also, I think there's no really reason to use nodes in this case. You can look at this tutorial - http://thezedlab.com/quick-reference-using-normal-maps-in-bi-and-cycles/

@Mr Zak normal map i painted in blender was in grayscale. How did you convert it to RGB ? As you mention " I created a normal map from your image " can you explain this bit

In order to use normal map in BI in particular you should have appropriate image - normal map.
Black&White image won't work for this purpose, it will work as a bump map (which is one used on Cube A in your example). Normal map uses RGB values to convert into orientation of given point on the surface; black&white image doesn't provide that information.
Normal map is an image in blueish hues which tells a given 'face' which orientation should it have with respect to its position within the overall structure of the object, and here's an example of one (with respect to this case):

There are different ways to create normal map based on this image, see How do I make a normal/displacement map when all I have is a photo?.
You can create it in Blender using the same way as in normal maps baking from sculpting with the only difference that image will be used instead. This may be not the best way, although it works for fast and dirty results.
Once you have that image use it as a texture for material of the object:

For more details about using normal maps in Blender Internal and Cycles see:

http://thezedlab.com/quick-reference-using-normal-maps-in-bi-and-cycles/
http://www.katsbits.com/tutorials/blender/bake-normal-maps.php

In future, please use either the standard theme, or a clearer theme (just temporarily, for your screenshots). It's a bit hard to see what is going on in the first screenshot.

With 2.78 we can use normal/bump map with nodes, thanks to the support of multiple tangents (commit).
It is really simple to use, just make the connection as this image shows, using new "Normal Map" node.
EDIT: you have to change Normal Map color-space to Non-Color (not sRGB), it is necessary for Blender to read Normal data. You do it in Image Editor - Color Space.

Image from Blender 2.78 Release Notes - Viewport
As your question has some images that denotes you wanted to use a BW texture (bump map), you first need to convert it to Normal Map. You can use any bump2normal conversion tool.
EDIT: the following technique is actually not possible, because Blender takes the created image as sRGB (not for Normals).
2nd technique: using the Bump_to_normal (a node group), made by Binary (don't have link) and used in the Normal Map Painter, by pachupp (I created sharedBumpMap with bump texture inside, because Bump_to_normal uses it 4 times. Changing the texture inside the group, the Bump_to_normal is refreshed).

EDIT: again, this technique does not actually work because of its color-space. It would need a new nodes setup to achieve it.
You can download the file here or  (it's based on the Normal Map Painter file). In material nodes panel, the upper setup is for Bump, the lower is for Normal (yes, they look different, but it is just an example). Click on Output nodes to change the results.

The second technique is not possible because Blender takes the created normal texture (from Bump Map) as sRGB and it needs to be Non-Color. For the moment, this node setup is not working to create a Normal-Map.

Easiest way to use a black and white "normal map" (actually it's more like bump map or height map) with internal nodes is to make a material that has the BW image affecting normals and then use that material in the editor of the node material. You can even use a colorful image and HSV value will be used.

While this will work, bump map and normal map are different things. They often are used together for better results.

I WAS explaining that this is not actually normal map but a bump/height map. The confusion is with the author that asked the question, not with me,
If you want to control normals this way it's not as accurate but it's very quick to do. Also all "normal map generators" use this same method so there's no point first converting to normal map and then using the generated map for the same effect when you can just use the BW image straight in Blender to produce the same result.


text:
How can I transition between two shapes?
What would be the best way to animate a smooth transition between a mostly normal hand and a large blade? (The blade is part of the arm.) Something like clayface or prototype?

I tried editing this but it is still a bit localized. Try to be as specific as possible in your requests and keep posts limited to one topic/question. See http://blender.stackexchange.com/help/dont-ask

Could you clarify what exactly you mean by "a quick movement kind of like water"?

Would you mind moving the water question to a different post? That way, we can focus on that question by itself.

Concerning the water part, I do not think it is supposed to be a different question, I think he wants the 'transition' to act like water... Or something like that.

Including a picture or a drawing of what you are trying to do would probably help a lot.

I would recommend using shape keys. Shape keys will warp between one shape to another.
To use shape keys. Create the default mesh, then go to edit mode and scroll down to the shape keys section. Click the plus and model the blade(make sure to use the same vertices as the hand model). Exit edit mode, and drag the influence slider to change the shape.

would have been my first guess aswell. But what could you do if the hand is already modeled and you still need the blade? BTW here is a nice tut I used for that


text:
What does Dither do in Cycles?
What does Dither do in Cycles and what's the right value to set?

Dithering is a post-processing step that reduces the banding caused by insufficient bitdepth by adding some controlled noise to the image.
Dithering set to 0:

Dithering set to 1:

With Blender's internal renderer, I almost always set it to 1 to avoid banding, but with Cycles, it's less useful because Cycles introduces its own noise anyway.

Note, its possible to use Cycles in a way which avoids noise, so there may still be some use for dither, see: http://blenderartists.org/forum/showthread.php?332447-FAST-and-NOISE-FREE-CYCLES-renders-are-here!


text:
How do I make multiple Blender objects into one?
Situation
I have obtained some blender files & licences for 3d models of transit vans and some trucks. Currently, when I export these objects to .obj files they are rather large, take a while to render and look to have been built in segments.
Problem
These models need to be used on Android devices and they need to be observable through one .obj file. What is happening is when I open the .obj I am not seeing the same model as I do in Blender. The doors and wheels of the vans for instance don't appear.
End Product
I need to find a way of reducing these models to be just one single object. Items on the interior of the van don't matter, seats for example. The file would ideally also be around 200kb, and exportable in a single .obj file. Can anybody shed some light on how I would go about doing this?

Related: http://gamedev.stackexchange.com/questions/33843/how-to-merge-two-objects-in-blender

Please don't cross post questions. Post only on the site where the question fits best.

Remove the objects you no longer want in your model, like the interior objects. Then select all of your objects that you want in a single model and hit Ctrl + J then click Join selected meshes. The multiple objects will now be one model you can export.
For further reducing the complexity of the model for better performance, you'll need to either remove more objects before joining them or you need to remove details from the objects you want to keep.

To further aid anybody who stumbles across this. I found the decimator modifier very good for reducing the overall size of the exported .obj file.

For also future use... use the Select Linked command to select the individual meshes inside the object!

I use "B" for box-selecting, but I can not get Ctrl+J to join the meshes either.

At least in some cases, it appears to help if you clear parents of the objects being joined.

@TNTman20002: Select one vertex/edge/face from the group that you want to select then press Ctrl + L to select all connected.

FYI for this to work, the objects are to be visible.

In the current versions of Blender only pressing Ctrl+J is enough, objects will be joined right after that

In my case, it worked only in object mode.

after doing this and exporting as a gltf, there still seem to be 'children' objects with separate meshes and geometry, any idea if is there something else needed to be done in order to combine for gltf export and import too?

As you have stated that you want to also make the objects "lighter", I have a suggestion for you.
The models that are not optimized for games usually have a lot of unnecessary edge loops which add extra triangles. While they can be removed using the Decimator modifier, the more proper way to do it is to use the Limited Dissolve command.
After combining the objects into one, just TAB into edit mode, press A two times to select all faces and then press X and select Limited Dissolve.
This will combine all the planar connected faces into one face and thus reducing the number of triangles.

Thanks, this made the biggest difference for me.  After exporting MagicaVoxel  > .obj and joining meshes, the Limited Dissolve command reduced .obj filesize  80mb to 5mb.

If you want to join meshes through Blender's Python API:
item='MESH'
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_by_type(type=item)
bpy.ops.object.join()

where item can take any of the following values according to this documentation:
[‘MESH’, ‘CURVE’, ‘SURFACE’, ‘META’, ‘FONT’, ‘ARMATURE’, ‘LATTICE’, ‘EMPTY’, ‘CAMERA’, ‘LAMP’, ‘SPEAKER’]


text:
How to get Cycles viewport output in compositing
I'm rendering with Cycles in the viewport (not with F12) and would like to get that viewport output as an input node into the Compositor.
How can this be done?

I think the best you can do is take a screenshot and load that in.

This is not the expected workflow. Why are you not using the standard method of rendering?

Well there is a way but it really is a cart before the horse thing. If you really need the image you can only get it by a screenshot, which will be limited to an 8 bit depth and the size of your viewport, obviously.
When it is saved you can then use a file node to import it into the node editor.
As I said this is a nuts way to do it but it can be done.
Don't do it though use F12.

As far as I know you can't, the viewport rendering is just used as a preview as you develop shaders and lighting.
The way you get the output is from a full (F12) render, then in the compositor:

Shift+A
Input > Render Layers

That's bad luck, but thank you very much for the quick answers. I guess I'll have to stick with the screenshot advice, for it being much quicker.

@michael-kiss Don't really see how a screenshot could be quicker than a render as long as you render the same number of samples and at lower quality...

You can't, because the viewport render is only a preview. In fact, you shouldn't rely on the viewport for determining the final output, actually, because it doesn't represent an accurate view of what the final render will be and wasn't meant for that purpose.

At the moment it is no problem for me to do the compositing with a rough preview. For final production I surely will use F12 Render

@michael-kiss You can render "rough previews" with F12 just as well as with the viewport render. see this question and this thread on BA (it seems BA is currently down, so here is a cached version)


text:
Can I use a custom Splash screen?
The default Splash screens are cool, but I'd like to add some of my own work to remind me of how awesome I am (no, not really).

Is it possible to customize/change the splash screen?

You have to build this with Blender.
It is located at /blender/release/datafiles/splash.png — (old svn link) (new git link).
Just replace1 this file with a similar one.

1Here is a link to the entry on the wiki on how to correctly change it.
You can grab an old template here which should still work and size your image accordingly (src). The template is also in the same directory as splash_template.xcf
BlenderCookie has a tutorial on building Blender (download from archives) in which the author changes the splash screen. (He uses mac but the majority of process can be done pretty much the same way for other platforms)

This is cool! I have been wondering if you could do this.

@Nate_Sycro27 Yep and now that blender is super easy to build you can literally download some tools and type a few commands and that's it.

You can do that with a custom build of blender.
The image is located in the source at: /blender/blender/release/datafiles/splash.png
If you're interested here's a link on how to build blender from source: http://wiki.blender.org/index.php/Dev:Doc/Building_Blender
If your on Mac, CGCookie has a tutorial (archive) on how to build blender with custom splash screen.

It's also possible to use Application Templates with custom splash screen.
On Windows you would create a bl_app_templates_user folder in your preferences scripts folder - C:\Users\[username]\AppData\Roaming\Blender Foundation\Blender\4.0\scripts\startup\bl_app_templates_user\ This folder can contain a folder with your template with startup file, add-ons, themes, keymaps and other things and if you include a custom 1000x500px png image called splash.png, it's going to be the splash screen if you start Blender with --app-template your_template_name argument (template name is the name of the template folder in bl_app_templates_user\). You can see system templates in Blender's installation directory(something like C:\Program Files\Blender Foundation\Blender 4.0\4.0\scripts\startup\bl_app_templates_system) and could copy one to start creating your own from it). So after creating a template just make a Windows shortcut with a target like "C:\Program Files\Blender Foundation\Blender 4.0\blender.exe" --app-template my_template and use it to start Blender:


text:
How can the Blender API be used to access Blender from another application?
Take Openshot for example. It has some form of Blender integration and is written in Python.
I'm not sure if it directly accesses Blender's API or if it simply generates a .blend file and then launches Blender (as it seems to do with Inkscape for SVG titles).
What I would like to know is:

Can an application make use of the Blender API from outside of a running instance of Blender?
If yes, how?

Doesn't the OpenShot site say that it is built on Blender? Not that it's integrated.

I've used Openshot, and read the website, and I don't get that impression. As far as I understand it uses Blender to generate animated titles, but is not built on Blender.

After looking around a little bet here's what I found. You can render files outside of Blender(from the terminal), but as far as I can tell, you cannot do anything else.

Following the link in CharlesL's answer, I was able to find a Wiki entry that dashes my hopes. Apparently this is not possible in the way I had hoped.
http://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule

bpy-as-module is actually quite powerful. It's a very clean way to call the Blender API within a pure Python environment. You can use it to generate a .blend file without ever touching Blender.

You said the entry dashes your hopes. Just curious, how were you hoping to be able to use it? Were you looking for a way to 'remote control' blender from an external python process?

@greatwolf something like that.


text:
How to preserve Cycles material colours when exporting to .obj format?
When I export .obj files from scenes that use Cycles (and thus, materials with nodes etc), the material colours are not preserved in the .mtl file.
So, what can I do to avoid this?

Have you tried setting the veiwport color?

I can confirm that the viewport color in Materials > Settings > Viewport color does get exported as obj colors. (to make setting viewport colors easier, you can cut and paste colors by pressing Ctrl+C and Ctrl+V while hovering over color selectors.)

I never noticed that option! Weird...

As mentioned by Jebediah Kerman, the viewport color in Material > Settings is exported to the .mtl file:

If you only have a few simple materials, it can be quite trivial to copy the colors by using CtrlC and CtrlV while hovering over the color selection boxes.
If you have many materials, you could write a python script to take colors from the node tree and set the viewport color accordingly.
For example, here is a simple script that looks for diffuse shaders and sets the viewport color to the color of any diffuse shaders found:
import bpy

for mat in bpy.data.materials:
    if mat.use_nodes == True:
        tree = mat.node_tree
        for node in tree.nodes:
            if node.type == "BSDF_DIFFUSE":
                col = node.inputs["Color"].default_value
                mat.diffuse_color = (col[0],col[1],col[2])

Note that the Viewport color is actually diffuse_color.


text:
How do I convert materials from Blender Internal to Cycles?
I know this may be a tough or confusing question, but I have numerous existing materials I created and reuse for a project, which were all prepared for Blender Internal.
Now, I want to start the transition to Cycles, but I've hit a roadblock. How can I transition my materials without completely starting over? Or should I just forget it and start with fresh materials?

The Python script at https://blenderartists.org/forum/showthread.php?394600-Materials-Specials-amp-conversion will automatically convert all of your materials and textures over so that they are compatible with Cycles.
The script tries to make the Cycles materials look as much like the Blender-Internal materials as possible, but I imagine you'll still need some tweaking, because of the inherent differences between the two render engines.

Im having trouble converting Blender internal to cycles. The material does not convert the material to cyles. here is the result. http://pasteall.org/pic/9d2742f7f20ff05e71860d4333c3c1c9

At the given location there is no Python script (anymore), it's a dead link.

Link is Dead 2024

The new Blender 2.79 has an add-on that most people don't know about called "Materials Utils Specials" It is for converting Blender Render to Cycles.  The Wiki article with instructions can be found at https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Materials_Utils
I just used it for some low poly people.  I exported them from Daz as object files and imported them to Blender then changed the Blender materials to Cycles with one click. I did have some problems with the hair with some figures but not all. It did not take long to change the hair color.

Link is dead 2024


text:
My markers in the movie clip editor keep "moving" around - what gives?
I'm trying to add motion tracks to a video I've imported. Here is what I have done so far:

Open a clip in the movie clip editor.
Click "Add Marker" and Ctrl +  to place a marker.

Press Alt + → to track the selected marker forward one frame.
On occasion, the marker would need to be manually adjusted. I would do this by clicking in the little preview in the properties panel and dragging the background until it lined up properly with the correct location.

I completed this for the duration of the clip I wanted to use.

This is where things started acting up. I clicked the lock button for the track (the icon next to the eye in the screenshot above) and assumed that everything would stay as it was.
Unfortunately this is not the case. As soon as I jumped back to the beginning and began playing the clip, the marker wasn't in the correct location for each of the frames. Even though I had lined it up perfectly for each frame before, some of the frames had the marker in the wrong place.
How come it moved? What am I doing wrong?
Details

Blender 2.69 r60995
Windows 8.1 64-bit
AMD Radeon HD 7560D

Update:
Here is a screenshot of what happens when I push ← and → to toggle between frames 13 and 14:

Notice that the markers are moving. They aren't supposed to be moving. Something is clearly not working correctly here.

The most likely answer is that when you go back to the beginning, you're tracking forward instead of playing forward, and this recalculates your tracking points. Since you've chosen a poor point to track, Blender is having a hard time following it, so the recalculation doesn't line up with how you positioned it. Good tracking points are high contrast, and are very dissimilar from other parts of the image. The point (and remember, it's a POINT) where you've placed your marker in the center of the hub is low contrast, and the spokes are all similar. This is making Blender's job more difficult.

The issue might be caused by inconsistent decoding of your particular video codec by Blender, resulting in variation in the frame sequence you move through on the timeline. My suggestion would be that you convert the video to a discrete image format, like a PNG or JPEG sequence. A typical way to convert video to an image sequence:
ffmpeg -i "MyVideo.mov" -an -f image2 "MyVideo%06d.png"

I had the exact same problem as the OP, converting my footage to images from my MPEG movie solved this, thanks dude.

I finally got around to trying this and it did indeed solve the problem. Markers stay put now. Thanks!

Oh my goodness, I wish I would have known this sooner.  Thanks!

There are several thing that i think could be going wrong.
The reason it is skipping, is because the tracker is mistaking the colors
of pixels in the area; patterns as well.
Possible Solutions:

If you can sacrifice the tracking time, perhaps scale the tracking box to cover the whole wheel. The colors in the area are very similar. Low light, and low color diversity tracks are usually harder to track.
If you scale up the box and it still jumps around like that, you can always fix it manually. Go the frame that the box jumped away and use the G key to manually reposition the tracking box.

Further Notes:
The lock button simply prevents you from moving it accidentally manually. I don't think it will prevent the box from re-tracking if you start tracking forwards. Or backwards!
Remember NOT to confuse alt+A (Play) for the little "play-like" tracking buttons on the left panel. Play will just play everything already tracked, where the buttons that look like play buttons will track forward or backwards, overwriting any previous tracks.

I hope this was helpful, or at least gave you some ideas on where to go next.
-Ryan

As I understand it, the OP manually lined up the tracker on each frame.

Im having the same problem here, Blender 2.78 Windows 8.1 64bit.
I recorded my footage with a samsung S3 phone.
MP4 format imported into Blender.
Like one of the guys before said its something to do with the decoding of the mp4 video and not the fault of Blender.
I analysed the mp4 video I had and it appears my camera dropped a number of frames during the recording process. The video should have been 30 FPS but it averaged less 29.?? . So make sure your footage is perfect. may try splitting it into seperate images as suggested. Cheers.

authors: Слива Спелая


text:
Force Logs to appear in Info View when chaining operator calls
Use case : Attempting to create a Logger Utility Operator to allow logging to the Info View.
If I have an operator and call it via the UI, using the report() function, the output will appear in the Info View.
When I create another operator to call the first, the report() function doesn't output to the Info View.
Is there anyway to have this work with or an alternative method to report?
I have included sample code.
- A base operator that calls report() with a provided logging level and message.
- A Forwarding operator which calls the base operator.
- UI panel in the scene tab, allow execution of the the two operators.
'''Test Info reporting'''

import bpy
from bpy.props import StringProperty, IntProperty

class LoggingOperator(bpy.types.Operator):
    """Log a message to the Info View"""
    bl_idname = "info.log"
    bl_label = "Direct Log message -> Info View"
    bl_options = {'INTERNAL'}

    lookup = ['DEBUG', 'INFO', 'WARNING', 'ERROR']
    level = bpy.props.IntProperty(name="Level", default=1)
    message = bpy.props.StringProperty(name="Message", default="Reporting : Base message")

    def execute(self, context):
        print("Base operator called")
        log = {self.lookup[self.level]}
        self.report(log, self.message)
        return {'FINISHED'}

class ForwardLoggingOperator(bpy.types.Operator):
    """Call an operator that logs stuff"""
    bl_idname = "info.log_1"
    bl_label = "Indirect Log > Calls Operator"
    bl_options = {'INTERNAL'}

    def execute(self, context):
        print("Forwarding Operator called")
        bpy.ops.info.log(level=1, message="Forward : Redirected message")
        return {'FINISHED'}

class ScenePanel(bpy.types.Panel):
    bl_label = "Test Scene Panel"

    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    @classmethod
    def poll(cls, context):
        return True

    def draw(self, context):
        layout = self.layout
        row = layout.column()
        row.operator("info.log")
        row.operator("info.log_1")

bpy.utils.register_class(LoggingOperator)
bpy.utils.register_class(ForwardLoggingOperator)
bpy.utils.register_class(ScenePanel)

why you don't want to use self.report directly ?

@Chebhou - The context is that we currently have a large modularised plugin codebase which passes around the operator reference just to access the report functionality. Invoking an external operator would enable us to consolidate our logging functionality, (potentially then usable by our other plugins) and decouple a lot of the code.
An alternative approach is to store the operator reference globally such that can be invoked at any time during execution, but I didn't have much success there either. So....open to this alternate solutions.
Let me know if further clarification is req

You may want to fake the report banner by creating your own and appending it to the Info_header, while having a timer operator manage it ( show and hide, set the message ) as in the following example :
import bpy
from bpy.props import StringProperty, IntProperty

#properties to pass and store the message
bpy.types.Scene.message = bpy.props.StringProperty()
bpy.types.Scene.icon    = bpy.props.StringProperty()

#fake report banner
def report(self, context):
    self.layout.label(text=context.scene.message, icon=context.scene.icon, icon_value=0)

#timer modal operator
class LoggingOperator(bpy.types.Operator):
    """Log a message to the Info View"""
    bl_idname = "info.log"
    bl_label = "Direct Log message -> Info View"

    _timer = None
    lookup = ['DEBUG', 'INFO', 'WARNING', 'ERROR']
    level = bpy.props.IntProperty(name="Level", default=1)
    message = bpy.props.StringProperty(name="Message", default="Reporting : Base message")

    def modal(self, context, event):
        if event.type == 'TIMER':
            self.cancel(context)
            return {'FINISHED'}
        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(2, context.window)
        wm.modal_handler_add(self)

        context.scene.icon = self.lookup[self.level]
        context.scene.message = self.message
        bpy.types.INFO_HT_header.append(report)
        bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1) #force UI redraw
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)
        bpy.types.INFO_HT_header.remove(report)
        bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1) #force UI redraw

class ForwardLoggingOperator(bpy.types.Operator):
    """Call an operator that logs stuff"""
    bl_idname = "info.log_1"
    bl_label = "Indirect Log > Calls Operator"
    bl_options = {'INTERNAL'}

    def execute(self, context):
        print("Forwarding Operator called")
        bpy.ops.info.log(level=1, message="Forward : Redirected message")
        print(context.active_operator )
        return {'FINISHED'}

class ScenePanel(bpy.types.Panel):
    bl_label = "Test Scene Panel"

    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    @classmethod
    def poll(cls, context):
        return True

    def draw(self, context):
        layout = self.layout
        row = layout.column()
        layout.template_reports_banner()
        row.operator("info.log")
        row.operator("info.log_1")

bpy.utils.register_class(LoggingOperator)
bpy.utils.register_class(ForwardLoggingOperator)
bpy.utils.register_class(ScenePanel)

As far as I know, info is never shown on screen for report() commands that are not directly executed from the operator. If you try to include a command like bpy.ops.mesh.remove_doubles() that usually prints info, it won't show up if you wrap it in another operator. Supposedly this is to omit "unintended" prints from sub-operators that you access from your operator and give each operator the control over their info printing.
I'm not sure if this functionality can be overridden with some variables or changes to the source would be needed but it's probable you need to do all the report() from top level if you wish to use that part of UI to print info.

That is what the actual current implementation does in the real codebase. Due to the modular nature of the code, the operator ref is passed around the resulting in coupling and fragmeneted logging logic, which I want to undo.

Yes I understand but how essential is it to make it print in the UI, in the info row, since it is actually correctly logging everything in the command console nonetheless? As far as on-screen info is concerned, shouldn't you be aiming at one unique-ish report() per operator run ideally where top level report() would make sense?

Actually the intention is to log multiple messages to the report view, we already do this in the addon (scene io). The ability to do this would allow us to unify the logging system and enable us to addresses usability issues we currently have by having with a single location for standardised/prettified "user friendly" message. We also log in more verbose to the console as required.

Well what I did in similar case having first ruled out report() and blender command console as too unreadable and uncontrollable was to actually write my own dedicated logging to a certain text data in Blender and show that data in a text editor window if any text editor window was open. Not as usable but it made it possible to print multiline messages in longer wording, timestamps etc that altogether made it somewhat usable despite the shortcomings.

Yeah, usability is the main draw to keep with the Info View. If the above was possible then functionality like you mentioned to dump logs to text file could be easily implemented in the "Logging" module.

I wish they added support for custom area so we could make our own areas for this stuff that we could control. Blender's text window isn't too pretty even if all you do is print text.


text:
Why does my subdividsion surface looks weird?

I don't know how to rejust the edge or face to smoothy the shoulder(picture 2 is correct).When I add subdividsion surface on this model, he's shoulder always looks weird.

@John Eason: didn't work just like a broken bone.

Have you tried Right-click > Shade Smooth in Object mode?

@JohnEason didn't work, still have irregular surface on shoulder, just like a broken bone.

You must have flipped normals or overlapping vertices or inner faces, check these 3 things

@moonboots thanks, i will check it.❤

Could you attach your .blend file: https://blend-exchange.com

@YousufChaudhry thanks a lot, i solved it. Changing the surface's rotation value was useful.


text:
Applying a pose on a rig so that it will appear in object mode
I'm working on a scene with some rigs, with the intentions of setting them up just so I could hand paint them later (kind of like that wooden figurine thing). Anyway, there are multiple models I've downloaded form mixamo, and I want to set each one with a certain pose.
I edit the pose in Pose mode, but in order to switch between characters, I need to tab out back to object mode, and every time I do so, my model resets back to its original T-Pose.
I already created a pose library for each model (by the way, how do I apply changes to an already created pose?), so right now the only thing to do is just keep them all in place.
I'm not that new to blender but all I ever did was modeling and sculpting.

Have you checked whether the T-pose is actually a key-framed pose? Are there any key frames in the timeline or is there an action in the Action Editor?

Object mode should just display whatever you have in pose mode, so I would ask the same as @Blunder. It could be that you made a pose on already existing keyframes/animation without keyframing that pose, hence anytime you switch modes it goes back to what is actually keyframed.

Otherwise, please upload your file on Blend-Exchange and share the link here so that we can check what's going on.


text:
Can't Find IK in pose mode
Can't Find IK
I am in pose mode I can use ⇧ Shift + I but that does not give what I want

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

You need to look into Bone Constraints, not Object Constraints:

Thank you Very Much


text:
Return list of associated vertex index, weight values for a given vertex_group
I am currently porting some code from the 2.49 API to the 2.6 API and looking for a nice way to replace this function call
vert_list["bone"] = b_obj.data.getVertsFromGroup("bone", 1)

This function returned a list of vertex tuples (index, weight).
Edit: A nice side effect of this function was that it also threw an AttributeError if the had no associated vertices group. Empty VertGroups are not allowed by our exporter.
I coded up a working sample for what I think I need based on the 2.49 API to show how I intend to access these values. This has been simplified with hard coded values.
import bpy

b_obj = bpy.data.objects['Cube']
b_verts = b_obj.data.vertices
b_arm = bpy.data.objects['Armature']

b_vert_group = b_obj.vertex_groups['Bone']
b_group_index = b_vert_group.index
b_list = []

for b_vert in b_verts:
    for g in b_vert.groups:
        if g.group == b_group_index:
            b_list.append((b_vert.index, g.weight))

What I am wondering is if anyone has an alternative way of accessing these values or perhaps someone would give a more pythonic version.
Most of the samples I have encountered relating to vertex groups are geared towards assignment rather than access. Even if I don't get an answer it might help someone else down the road.

if that works, it looks readable to me.

@Zeffi - I reworked the solution to be more pythonic using list comprehension. The main goal I hoped was an alternative way to access the associated values. The new way storage method is inverse to 2.4, instead of groups pointing to verts, verts point to groups.

I rewrote it here for myself with a list comprehension and it became less readable :)

I looked through the fbx export script, found the BPyMesh_meshWeight2List func and it is simliar to the sample code.

hint - you can add a break after the append (last line).

Yeah I have that in the actual solution. Also check if there are groups. I will post the actual specific solution we are using for completeness

No, there are no built-in functions which do this in a more pythonic way, however, unless you only ever want to access a single bone, Id suggest collecting all vertex groups at once.
def mesh_to_weight_list(ob, me):
    """
    Takes a mesh and return its group names and a list of lists,
    one list per vertex.
    aligning the each vert list with the group names,
    each list contains float value for the weight.
    """

    # clear the vert group.
    group_names = [g.name for g in ob.vertex_groups]
    group_names_tot = len(group_names)

    if not group_names_tot:
        # no verts? return a vert aligned empty list
        return [[] for i in range(len(me.vertices))], []
    else:
        weight_ls = [[0.0] * group_names_tot for i in range(len(me.vertices))]

    for i, v in enumerate(me.vertices):
        for g in v.groups:
            # possible weights are out of range
            index = g.group
            if index < group_names_tot:
                weight_ls[i][index] = g.weight

    return group_names, weight_ls

Note, that this example could use pythons array module for greater effeciency but using lists since its an example.

GUess you wrote the fbx exporter, very similiar. The question was really geared towards data access, to potentially avoid iterating over the data repeatability to get the various attributes, vcol, uv, etc, Could do it once and cram all in one large mess of doing everything at once :P

I have accepted ideasman42's solution as the way to go for the example that I gave.
For completeness I am adding the solution that we are using for the exporter we am working on. This includes some additional complexity like replicating the AttributeError where a group did not map to one of our bones.
Additional constraint that was not mentioned in the original question:

All vertices must be weighted by at least one bone, select them to display to the user because we are nice people

vert_list = {}
vert_norm = {}
unassigned_verts = []

for bone_group in boneinfluences:
    b_list_weight = []
    b_vert_group = b_obj.vertex_groups[bone_group]

    for b_vert in b_obj.data.vertices:
       if len(b_vert.groups) == 0: #check vert has weight_groups
           unassigned_verts.append(b_vert)
           continue

       for g in b_vert.groups:
           if b_vert_group.name in boneinfluences:
               if g.group == b_vert_group.index:
                   b_list_weight.append((b_vert.index, g.weight))
                   break

       vert_list[bone_group] = b_list_weight

   #create normalisation groupings
   for v in vert_list[bone_group]:
       if v[0] in vert_norm:
           vert_norm[v[0]] += v[1]
       else:
           vert_norm[v[0]] = v[1]

   # vertices must be assigned at least one vertex group
   # lets be nice and display them for the user
   if len(unassigned_verts) > 0:
       for b_scene_obj in self.context.scene.objects:
           b_scene_obj.select = False

           self.context.scene.objects.active = b_obj
           b_obj.select = True

           # select unweighted vertices
           for v in mesh.vertices:
               v.select = False

           for b_vert in unassigned_verts:
               b_obj.data.vertices[b_vert.index].select = True

           # switch to edit mode and raise exception
           bpy.ops.object.mode_set(mode='EDIT',toggle=False)
           raise NifExportError(
               "Cannot export mesh with unweighted vertices."
               " The unweighted vertices have been selected"
               " in the mesh so they can easily be"
               " identified.")


text:
Finding controls/interface for addons
After I enable an addon to add objects (for instance a gear from Extra Objects addon) the interface shows up in the toolbar menu. Is there any way to get the interface back after it has disappeared?
Edit: Thanks. That was not the answer I was looking for but I suppose that I will have to live with it.
Stephen

I'd say F6, but if it disapperas, that's also not possible any more - it doesn't disappear without a reason. > duplicate.

Did you make a new file? If you enabled the addon in one file and didn't save it in your user preferences, it won't appear in new files.


text:
Why are materials linked to meshes by default?
Over the years I've discovered that I've had much more trouble with scenes where materials were linked to the Mesh Data. This is Blender's default. Then I'll go through the arduous task of re-linking the same material(s) to the Object Data instead. I know that I can set the default on my own machine/install to have materials link to Object Data. I'm curious what's the philosophy behind linking materials to Mesh Data? What are the perceived advantages? Does anyone else have this problem?

Although the question is understandable, I believe “mesh” refers to the object, and what you called “mesh” in the question is actually “object data” or “mesh data.”

Who knows what the original reasoning behind this was? This default was chosen maybe 15 years ago and there has not been a good reason to change it.
To me it makes some sense to share by default. When you have a particular object that you want to give a different material than the others sharing the same mesh, then you're there in the material tab editing things anyway and you can change the linking to object at the same time.
If linking to object was the default, you might make linked duplicate objects with AltD, placing the object in different places in the scene. But now if you want to change the material you have to go and change each individual object.

+1. I also think the same. With a material linked to ObjectData, we can make a copy (break the link) when needed. Its also space efficient to an extent.

I see what you're getting at, but variety is the spice of life. I think I gathered from this answer that the reason was so that managing duplicated content is less like spaghetti. That's fine. That's a good reason. I will personally choose to not do that because I want as much variation as I can get so that the viewer doesn't notice I'm duplicating things. :) Maybe I will notice a downside eventually and update this question. Thanks Brecht.

Edit: (in response to a comment below) A set reason was never given for this, this is merely a speculative answer based on what I know of this option. You can skip to the bottom for the conclusion.1
To understand this option properly, you need to understand how Blender works with Objects. Almost everything in Blender is organized in a hierarchy of Datablocks. A Datablock can be thought of as containers for certain pieces of information. For example, the Object Datablock contains information about the Object's location while the Object Data (ObData) datablock contains information about the mesh.
Linking a material to obData (to mesh specific data) is ideal when you want a mesh to always have the same material, while linking a material to an object is when you want to have different materials on objects that share the same mesh.
Short explanation: If connected to the object, you can have several instances of the same obData using different materials. If linked to mesh data, you can't.
Further reading..

1Sorry for the extended explanation but it was to clarify this point. In an answer to your question, I don't think there was ever a set stated reason as to why this is. Based on how it works however, I am assuming that it is linked to meshes by default as this might be more ideal for beginners or for quickly setting up a scene. It is much more customizable and intuitive than linking to object.

This does not answer the question “Why is it linked to ObData by default?” or “What is the perceived advantage of this default choice?”  You explained what the option means, but that is not the question being asked here.

@YuAsakusa there is no 'set' answer to this, See the separate summary. By default, one would want the latter I would assume. Or perhaps I am not understanding the question asked?

Thank you for editing.  Although I am not sure if linking materials to ObData by default is better for beginners, I do not have any better guess at why the default is like this.  Maybe because of a historical reason?

@YuAsakusa it is merely an assumption based on the actual options and what they do above. I could not find any stated reason as to why. I will ask around and see if I can learn anything more.

Please don't downvote without a reason, this a learning experience for everyone. If you think I am off or wrong, please say so. I have pretty much the same thing as the other answer.

@iKlsR I appreciated your original answer. It was far more educational and generally useful in my opinion, though (as others noted) it didn't make a overt statement of the conclusion the OP was looking for.

@Gwenn I act based on feedback, I assumed it might have been overkill for such a simple question. I will probably pull it if it gets any more downvotes, if people aren't finding it useful then it probably isn't. Thanks for the feedback. :)

I like this concise answer much better than the original answer (so thanks again).  The original answer would be useful as an answer to a separate question asking what this option means.

Your short answer: "If connected to the object, you can have several instances of the same obData using different materials. If linked to mesh data, you can't." is precisely what I am frustrated with. I feel like I am alone in changing that setting all the time because I recycle meshes all the time, want the improvements to show in all instances, but i also want to have variations of those instances via different materials. It just makes sense. ~ Also I agree about this being a learning experience. Thanks everyone for trying my question.

@WrayBowling you are probably a unique exception here ;). As there has been no set reason as to exactly why. It would be best to adjust this in the prefs window.

It would be interesting to somewhat get a survey on what most people in the blender community prefer. Linked to Object or Linked to Data by default.


text:
Writing a plugin: How do you stop a process running in another thread?
I started writing a plugin for Blender that accepts Open Sound Control messages for direct manipulation of data in realtime. I ran into a snag that made me uneasy about releasing it: when I close Blender, it crashes because the thread is still open and running. So I have to either force quit Blender or Ctrl-C from the command line to kill it.
How do I correctly catch Blender closing so I can cleanly run the command to stop the process running on another thread?
Here's a sample of the code:
def register():
    bpy.utils.register_class(OSCPanel)

    disp = dispatcher.Dispatcher()
    disp.map("/*", oscHandler)

    BpyOSCServer = osc_server.ThreadingOSCUDPServer(("0.0.0.0", 60004), disp)
    server_thread = threading.Thread(target=BpyOSCServer.serve_forever)
    server_thread.start()
    print('BpyOSC registered!')

def unregister():
    bpy.utils.unregister_class(OSCPanel)
    print('Stopping server')
    BpyOSCServer.shutdown()
    print('BpyOSC unregistered!')

I would try and share some code so others can see how you're doing things.

Maybe kill the thread using the methods outlined here http://blender.stackexchange.com/questions/39768/how-to-run-script-on-blender-quit/39771#39771

@batFINGER Oh, maybe I misunderstood that register an unregister execute when you start and quit blender respectively.

The start can be done with a load_post handler  https://www.blender.org/api/blender_python_api_2_77_0/bpy.app.handlers.html

Oh, just noticed your code, register and unregister methods are used to make the addon and its classes known to blender, and to clean up when unregistered.  IMO not the place to put in server code.  Are you familiar with the update callback on a say BoolProperty? giving an easy way to make a simple button to START server when True, and STOP when False?

I'm voting to close this question as off-topic because this is a programming question about threading, and it's not specific to Blender. This question is an EXCELLENT candidate for migration to StackOverflow

@batFINGER I'll look up BoolProperty as an option but Blender would still crash if you closed it without pressing the disarming button first. load_post looks more promising in that regard..

... in which case I suggest using the method outlined in http://blender.stackexchange.com/questions/39768/how-to-run-script-on-blender-quit/39771#39771

Simply create your thread with daemon=True and it will die when you exit Blender:
import threading

def runner():
    while True:
        print('Listening to port...')

thr = threading.Thread(target=runner, daemon=True)
thr.start()


text:
Image texture to partially mask part of material
Please forgive me if I used beginner terminology.
I would like to have a bottle in color "provided by the simple diffuse shader" (ie. with pure red). I would like to put a test texture (222222 on the screenshoot) only on part of bottle which was UV unwraped (only box with 22222 has been cover by unwrapped faces).
I know how to do this with image with transparency (alpha) as decals however the question is if there is any simple option just to put part of texture on object and leave the rest with pure shader without texture?
I've found on blender manual that if I set texture as "clip" it will set exterior pixels as "transparent black". No idea what transparent black means, but it is not transparent.
The mix node always mixes the rest of bottle with texture and does not give pure color (red). I tried to put an alpha texture node into mix factor to separate the texture part from rest (as manual states remaining pixels are transparent "black") but the result is well..bad.
I would appreciate your support. No idea where is my mistake.

TL;DR: Invert your mask image
"No idea what transparent black means, but it is not transparent."
It means that the area outside the image canvas will be considered transparent, as in Alpha value = 0, some image formats also have the ability to still save color for transparent areas, like PNG, and so will also paint that area black, besides making it transparent, in case you are not using the alpha map, or use it separately for other purposes.
In your particular image it is white all around the canvas borders, which generally means it opaque in terms of alpha channels, so it won't mix well with the remaining surrounding material.
Clipping in Blender will not work because as you already found out from the manual, the surrounding will be considered black which never matches your image border.
Don't use the Invert Cycles node in Blender, because it will invert the image color but also the black transparent area applied by the clipping effect, leading to surroundings that never match the current color of the image border.
You have to explicitly use an external application to invert the colors before using it in Blender.

Thank You for the answer however it may not be what i am looking for. The texture is simple black and white image which i would like to put on the part of object. There is no transparency implemented on the texture. I would like just part of black and white texture to be "cut" (covered with unwrapped part of object) and place on the object. I want the rest of object to have specified color (ie pure red)

That is what I achieved in my answer with the last step of the gif, I have not used any transparency or alpha maps in the image, simply inverted the colors in GIMP

If you use "Screen" instead of "Mix" in your Mix node, with a Fac of 1.0, the color should match the red perfectly.

However, it won't fix the white part outside the black area.  To fix that, the easiest thing would be to just color the whole background of the texture black.
If you can't change the texture for some reason, then you can adjust the UVs to hide the white part.

not sure why the downvote...part of the question was why it doesn't give pure red, which the "Screen" helps with.


text:
I am having difficulty rendering a complete png from an animation
I am trying to render an animation as PNG but it is not rendering a complete image.
Blend file

hello, please don't write in capitals

Okay i will remember that for next time @chris

You can still edit your text   ;)

You have a video sequence in your Video Editor, and the Sequencer option is enabled in the Output > Post Processing panel, so either remove the video or disable the option:

Okay , thank you so so much @moonboots

@tanyagarg, as much as I hate to see moonboots' reputation growing, please read What should I do when someone answers my question? and consider accepting their answer.

@ Marty Fouts, ah ah ^^


text:
How can I unlink a part of a mesh?
I duplicated a part of the mesh, since I want to use it for some other purpose, but it is still linked with the previous mesh. Is there a way to unlink them?

There are two ways to duplicate a mesh, Shift+D and Alt+D. one duplication keeps the meshes linked, the other doesn't. I just don't remember which one. I think it's Alt+D, but check it once

Alt+D duplicates linked and Shift+D duplicates without linking - in Object Mode. But apart from that, this comment does not help her to unlink objects... she made duplicates of mesh parts in Edit Mode so this doesn't apply here anyway. Barbod's answer is correct.

You'll need to go to Edit Mode, select the faces you want to separate, and press P, choose Selection.
What happened is that you duplicated the part of your mesh in edit mode :

which means that the duplicate that you created is still part of the previous object i.e. when you go back to object mode, it is still one object :

If you want it to be in a different object, go back to edit mode, select the part you want to separate, press P and chose, Selection :

And if you go back to object mode, you will have two separate objects :

Side notes :
In terms of terminology, one don't say that the meshes are still linked in that case, we say that the meshes are still part of the same object. In Blender, we say that the meshes are linked when they share the same mesh data-block this is why you misled @HrishavSaha in the comments.

thank you @BarbodM that helped


text:
Camera to match the current 3D viewport Without using Shortcut Ctrl + Alt + 0
To make the camera to match the current 3D viewport, all the answers/tutorials on the web are using this shortcut: Ctrl + Alt + Numpad 0
However, I do not have a Numpad and I'm using Mac and it doesn't seem like that shortcut combo is working.
Is there a way to do that without using the keyboard shortcut? I'm guessing there has to be a matching menu item in the editor.
I'm also simply looking for a menu item without having to 'emulate' the numpad.

https://blender.stackexchange.com/a/121926/1245. You can use search in Blender to find operators

You can try one of those ...

go to menu View > Align View > Align Active Camera to View or
earch for operator Align Active Camera to View or
add to Favourites by right click on operator > Add to Quick Favourites ...
and in viewport call by Q or

go to User Preferences > Keymap and assign new shortcut

Thank you! When I got to that menu item, it was greyed out which explains why the shortcut wasn't working, but that's a different issue altogether.


text:
Import function for custom file type - add button to import submenu
I wrote a Python script that is parsing a file of type that Blender does not support.
Now I want to add a new button to File -> Import.
After clicking on the button the file selector window needs to pop up, in a same way as if you would be importing .obj models, but I cannot figure out the code.
I checked various doc pages that seems to be relevant to Blender UI/menus but I'm unable to find anything relevant.
https://docs.blender.org/api/current/bpy.types.UILayout.html
https://docs.blender.org/api/current/bpy.types.WindowManager.html
https://docs.blender.org/api/current/bpy.types.Window.html

Have a look into Text Editor > Templates > Python > Operator File Import. Note that when you run the script, the menu_func_import function also adds to operator to the File > Import menu. Does this meet your requirements?

https://blender.stackexchange.com/questions/97230/how-to-write-an-import-script/97232#97232 https://blender.stackexchange.com/questions/106983/how-do-i-add-a-new-file-type-to-the-import-menu https://blender.stackexchange.com/questions/30678/bpy-file-browser-get-selected-file-names/30681#30681


text:
Editing different meshes together -- Bezier curve and Circle
I've had 100% success finding answers to questions on this site, though, I've finally become stalled on one problem in which I don't even know how to phrase into a search.
I can't seem to edit both meshes at the same time. The first mesh started from a 'CIRCLE' and the second mesh started from a 'BEZIER CURVE' which I converted to mesh via ALT+C --> Mesh from Curve.
I'm trying to knife the intersection and delete the inner faces but I cannot get both of the objects into edit mode (mesh) at the same time? I notice both are on different scenes - "BezierCurve" and "Circle", which I feel has something to do with the problem?
Here are two pictures showing the two different meshes in edit mode while the other one remains in object mode. Any feedback is greatly appreciated!

You can never enter edit mode in two objects at the same time, this is a fundamental part of Blenders design philosophy
If you want to edit two meshes at the same time join them together with Ctrl+J. Have in mind that this may have undesirable effects, and will mess with modifiers.
Knife project doesn't require entering edit mode in two objects at the same time, only the object to be cut. You may be confusing it object mode Boolean operations
Knife project will not work well for what you are trying to achieve. It only works when the "knife" object is a flat shape or fundamentally bi-dimentional

You may want to use the Boolean modifier or edit mode Boolean Operations instead. The former requires two objects, but no edit mode, the later requires you yo join both objects.
Have in mind that both Knife Project and Boolean operations are discourage modelling tools. Booleans are very prone to errors, and both will produce low quality meshes, with bad topology, duplicate geometry, artifacts, hard to texture and bad for animation.

Thank you, Duarte. I used Ctrl+J in Object Mode to join them and was able to edit the meshes together in Edit mode. I used Ctrl+F in Edit Mode --> 'Intersect (Knife)' to create the intersection points and then was able to delete the inner faces on both objects:


text:
Properties don't open up (Hotkey n)
When I press the hotkey  N, on the right hand side open up some property registers. But if I click on one of them, there doesn't appear a panel where I can make some changes. How do I fix that?
This is what I see in my current project.

This is what I want to see (another project).

Some malfunctioning add-on with a bug may do this if it was supposed to change that panel in some way. I would recommend going thorough all enabled add-ons in the preferences(F4 -> P) disabling them one by one to see if that's the case. Or even removing add-ons folder from the Blender preferences folder (backup first) and re-installing your add-ons one by one if removing the folder resolves the issue.
If it's only one project that is effected, maybe it has some Python scripts in it triggered by auto run when opening?..
... or maybe you just need to expand it :D

I just saw witnessed another tricky option to hide the properties - if you click on View, there unfolds a menu where you can check or uncheck the Sidebar:

Hello and welcome. Rather than take photos of your monitor post actual screenshots instead, see How to take a screenshot. Photos are harder to read because we have to look past external interferences (like reflections, smudges or Moiré patterns) and guess if we are looking at hardware issues such as a malfunctioning display or connections, a software level issue like driver malfunction or glitch, or actual artifacts or issues with the model itself.


text:
Can I use splines and bones together in the same rig?
I have model of an animal I'm building. It will have bones to animate the limbs, the neck, and the jaws. However, I want the tail to be less rigid. So, can I use a bezier curve and bones together?

There is nothing stopping you from doing both.  This situation comes up from time to time when rigging polygonal hair to a character: the hair usually has spline control, and the body is made of bones.  Just make sure your parenting hierarchy and weight paint makes sense.  For simplicity, you may want to make the tail and body two discreet objects with their own deform modifier.
Also, there is the spline IK modifier for bones, in which a spline controls a series of bones.  So it's kind of mixing both.

Thanks! Wasn't thinking about the latter part (To be honest I've not done a boat load of animation over the years).


text:
How could a single Python script run when Blender is started?
I would like to have a few globally available functions which should not not depend on a .blend file.
Is there a place (A setup.py, __init__.py or something like that) where I could put a few lines of code?

possible duplicate of Can I perform an action when a file is saved or loaded?

This video (https://www.youtube.com/watch?v=A-BOWF82Er4) explains how to easily create an addon but it ssems not to be working on the 2.92 version.

As documented in the manual, you can save your script in the scripts/startup/ directory with a .py extension and it will be automatically imported on startup.

If it's for all of your Blender sessions, then you might be best creating a simple add-on with the functions you need.
If it's per .blend file, then you can use Blender's Text Editor within that file, store your python commands there, and enable the Register checkbox in the Text Editor's header. The only caveat to this approach is that you'll need to start Blender with the -y flag so the embedded script will run on start.


text:
Is there a way to restart a modified addon?
I'm currently twiddling with an old addon and insert some print statements for debugging. Currently I'm restarting Blender each time to see the new messages. Is there a way to 'refresh' an already loaded Python script?
An API call would be preferred to disable/re-enable the addon in the User Preferences dialog.

If print is getting tiresome, you might be interest in this question about debugging.

You can go to the Main menu > Blender > System > Reload Scripts. As the name suggests, the operator reloads all addons and scripts, running addons, unregister and register functions.

Another way is hitting F3 and typing "Reload Scripts" in the Operator Search menu and execute the operator. In versions pre Blender 2.8x you can just hit F8 in order to reload.

Thanks this works, unfourtunatly it doesn't care about my opened sockets and complains that I tried to open the socket twice (OSError: [WinError 10048]).  Is there a 'harder' reload. This should probably another question. I will upvote later (run out of upvotes for today).

@stacker, you could handle any resources (sockets, open files etc), in the addons unregister function. This should allow you to support cleaning up before reloading

It is worth noting that this will only reload the __init__.py portion of the addon.  Any changes in imported sub-modules will not be registered unless Blender is re-opened or code is included in accordance with this answer https://blender.stackexchange.com/a/28505/3292

In Blender 2.8 F8 doesn't work out of the box anymore. Search with F3 for reload scripts or remap it yourself (answer from: https://devtalk.blender.org/t/reload-button-in-2-8/1708)

The place to add the shortcut, as seen in the image in the above link, can be found: Preferences -> Keymap -> Screen -> Screen (Global) -> Add New -> collapse, then enter script.reload with your desired shortcut.

To reload a Blender Addon at the console type:
>>> bpy.ops.wm.addon_enable(module='your_module_name')

Note: under-the-hood Blender uses Python's imp.reload to reload modules.
One of its caveats is that the module dictionary will not be replaced.  Since that is where module globals are stored, this can lead to surprises (if expecting a pristine module state after reload).
As such, restarting Blender semi-frequently is still a good idea even when using console reloading during development.
Note that the imp.reload behavior can also be used (with care) as a debug-enabling tool; for example, to "persist" a network socket across Addon reloads:
try:
    socket_that_survives_reloads
except NameError:
    socket_that_survives_reloads = None

if not socket_that_survives_reloads:
    print("creating new socket connection")
    socket_that_survives_reloads = however_you_connect()
else:
    print("re-using existing socket connection")

I have compiled Blender as a Python3 module so I don't have access to the GUI. I am installing an addon and enable it using the function you pointed. I then save the user preferences using bpy.ops.wm.save_userpref() and exit Python.Next time that I do import bpy I don't see the addon API being added to the bpy module.Do you know how I can fix that?If I run the same exact script in Blender terminal (when using the GUI) everything works.(You may answer here)

In Blender 2.80 the correct code shortcut to reload ALL add-ons is: bpy.ops.script.reload() (https://developer.blender.org/T66924). bpy.ops.wm.addon_enable(module='your_module_name') won't work for multi-file add-ons, as there is a check, which only looks at whether __init__.py has changed.

To enable and disable via the API use bpy.ops.wm.addon_enable, and bpy.ops.wm.addon_disable respectively.

Not the recommended way for Blender 2.8 according to a Blender developer Sybren: https://developer.blender.org/T66924 . Instead use bpy.ops.script.reload()


text:
Trouble with the Bprojection addon
I've installed my first addon, Bprojection.
When I tried testing it out on a copy of my original work it only had the option of add Bprojection plane?
I have a UV mesh of the object ready but I do not have a Multires Bake Displacement map because I do not have a multires modifier. How do I get a displacement map and how do I get Bprojection to work like this?
~the BProjection thing is at the bottom of the tool section in the bottom right corner:

judging by lack of response here, it seems those of us who've read this question haven't used the addon. Perhaps you might read through the support thread for the addon at BlenderArtists, where the addon author frequents. On the last page of that thread @craig_jones  mentions that the addon is now slightly redundant and why.

Please explain "what you want to accomplish" rather than "how you want to accomplish it". (As zeffii hinted towards) BProjection is dead, due to the inclusion of  stencil mapping.

Well, what I want to accomplish is making a skin texture, that can carry onto cycles. What I mean by skin texture is, get very detailed parts of the skin like freckles and red areas around the nose and eyes, and a perhaps a blue hue near the eye bags.

This question appears to be off-topic because it is about an addon that is no longer actively developed, and for which the author recommends that you use the built in Stencil Mapper.

The addon should probably be removed from scripts lists too.