text:
Blender sverchok lofting with array of boxes
I found this threat "How do you loft between curves?" and i used that specific combination of nodes to achieve lofting between curves.
But instead of simply plate, I would like to use array of thin boxes (like wooden planks). How can I archive that?
Edit 5.2.2017:

Here is an example. So the selected curves presents the control curves and the grid presents the interpolation between them. And this interpolation should define the path and the curvature of those arrayed boxes. All dimensions (X,Y,Z) should be usable.

Does the solution have to depend specifically on the Sverchok add-on? And should the outer contour of the boxes follow the outside contour of the loft (i.e. similar to lattice) or should it stay “rectangular” (e.g. like shrinkwrap)?

Yes, outer contour of the boxes should follow the outside contour of the loft. Shrink Wrap is option as long as curves doesn't turn around it's own axes. Because Shrink Warp is always projection from one axis (from x for example).
Thanks for your time!

I would approach this differently,

First create the curved surface by lofting,
Use modulo to make a masklist to discard the faces that represent the space in-between the planks
Then finally extrude the faces using the Solidify node (via the Normal to turn the faces into "plank" geometry.

use the SV Import / Export panel to import this gist:
https://gist.github.com/2bda764a9f6aa7e9a6aca69d7181bdaa

here the usage of Solidy Node and Delete Loose (the "rest" verts that aren't used)

as a gist: https://gist.github.com/0216592fedb22856d4f3778e4187cec0

By the way, what is the best way of updating the node tree?
I have to always drop and get curves again to see update.

@Daniel, it should update automatically if you have the timeline playing, or simply change frame. There's also an option hidden away in Sverchok's preferences to show a "Live Update" toggle in Sverchok's 3dview tab. Might be worth a new question if this wasn't enough detail.

please, use sverchok join vertices from interpolation to matrix viewer draw (or bmesh viewer or mesh instancer nodes) and to data - your object to multiply
this is gits to import to sverchok:
https://gist.github.com/3d3d6211602be78e1d82b36492a90372
copy number 3d3d6211602be78e1d82b36492a90372
and import from clipboard (no need paste)

The answer is hard to understand in its current state. Please edit the question and make what you are saying clearer and easier to understand.

Thanks Zeriffi for your answer! Your idea is clever and I will use it!
I found another option by using StripesMULT node (put StripesMULT's Attractor values high enough to avoid differences between planks).
But this method causes some odd stretching and planks won´t remain straight.


text:
Edit a driver for shape keys
I created a driver for shape keys of a lattice.

Now i want to edit them, but i cant find them in the graph editor. I switched from F-Curve to Driver-editing, selected the object (even switched off the option to only show drivers of the currently selected object) and no driver appears in the graph editor. There must be something like right-click on the property and "edit driver", i just cant't find it
(Maybe important: The Lattice is parented to a mesh, but that shouldn't be a problem)

source: Stack Exchange

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

sort: votes


text:
Cannot build blender from source on ubuntu 16.04 (Error at CMake Compile)
I'm asking the same question at https://blenderartists.org/t/cannot-build-blender-from-source-on-ubuntu-16-04-error-at-cmake-compile/1111985
What I tried to do
I'm trying to build blender for the first time and ran into some errors during compiling. I use ubuntu 16.04.
Following the manual, I've ran:
mkdir /media/allosteric/Data/PF/BlenderBuild
cd /media/allosteric/Data//-git
git clone https://git.blender.org/blender.git
cd blender
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master
make update
sudo apt-get update; sudo apt-get install git build-essential
cd ..
./blender/build_files/build_environment/install_deps.sh
cd blender
make

However, this raises errors. Logs are described below. (I ran make clean;make for the second and later runs.)
Logs
Every time the log started with:
Configuring Blender in "/media/allosteric/Data/PF/BlenderBuild/build_linux" ...
-- Could NOT find Spacenav (missing:  SPACENAV_LIBRARY SPACENAV_INCLUDE_DIR)
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   filesystem
--   regex
--   thread
--   date_time
--   locale
--   system
--   chrono
--   atomic
-- Unsupported CFLAG: -Wrestrict
-- Unsupported CXXFLAG: -Wrestrict
-- Blender Skipping: (bf_alembic;bf_collada;bf_intern_ctr;bf_intern_opencl;bf_intern_utfconv;extern_sdlew)
-- Disabling Cycles tests because tests folder does not exist

after so, the compile halts raising errors with some varieties. The followings are some examples.
[ 42%] Building C object source/blender/blenkernel/CMakeFiles/bf_blenkernel.dir/intern/navmesh_conversion.c.o
[ 42%] Linking C static library ../../../lib/libbf_blenkernel.a
[ 42%] Built target bf_blenkernel
Makefile:160: recipe for target 'all' failed
make[1]: *** [all] Error 2
GNUmakefile:128: recipe for target 'all' failed
make: *** [all] Error 2

or
[ 35%] Building C object source/blender/windowmanager/CMakeFiles/bf_windowmanager.dir/intern/wm_stereo.c.o
[ 35%] Linking C static library ../../../lib/libbf_windowmanager.a
[ 35%] Built target bf_windowmanager
Makefile:160: recipe for target 'all' failed
make[1]: *** [all] Error 2

or
[ 35%] Building C object source/blender/windowmanager/CMakeFiles/bf_windowmanager.dir/intern/wm_stereo.c.o
[ 35%] Linking C static library ../../../lib/libbf_windowmanager.a
[ 35%] Built target bf_windowmanager
Makefile:160: recipe for target 'all' failed
make[1]: *** [all] Error 2
GNUmakefile:128: recipe for target 'all' failed
make: *** [all] Error 2

and others that I haven't kept track of.
About my PC
The OS I currently use is ubuntu 16.04 LTS. However, this is a dual-boot with a Windows 10.
The /media/allosteric/Data/PF/BlenderBuild, which is the directory I'm currently tring to build blender, is a mount of a Data Driver originally for the Windows.
My CPU is an Intel® Core™ i5-4210H CPU @ 2.90GHz × 4, which is 64-bit and GPU is GeForce GTX 950M.
Thanks.

I'm voting to close this question as off-topic because, unfortunately, due to their complex and unique nature, it was deemed too difficult to successfully answer questions about building Blender. See: https://blender.meta.stackexchange.com/questions/399/can-we-please-reconsider-allowing-qa-regarding-blender-build-problems

@RayMairlot Got it. Should I simply delete this? Or should I vote for close?

For both ubuntu 14.10 and 18.04 ("bionic beaver") I have found the install_deps script has thrown some errors.  Look into the script for options on disabling troublesome deps.  I also find cmake_gui handy to generate the makefiles.  Unfortunately my old nvidia could be of the variety that doesn't support 3.3 although its driver does,  2.8 builds Ok. but crashes at startup.

I ran sudo apt install libpng16-dev and sudo apt install libjpeg9-dev and blend was successfully compiled.

If you are trying to compile the new blender 2.8, you will encounter errors compiling and/or running if your GPU didn't support >=OpenGL3.3. Other causes of errors usually occur if you have a missing library or hadn't installed them. You can see the requirements at the GitHub page or from the official download site.  Try running "blender/build_files/build_environment/install_deps.sh" after cloning the repo.

Thanks for the reply. As for the GPU I use GeForce GTX 950M which supports OpenGL4.5. As for the install._deps.sh, I already tried that several times and still didn't work.

I can see you were missing a couple of libraries

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


text:
Controlling Anisotropy with Textures
My Aim in Short
I would like to controll my Anistropic material with an image input.
What I Have Tried
I made a mockup to show what I would like to achieve.

This is a single plane with an anistropic material as simple as the following.

The trick here is to distort the UV map (and add multiple lamps).

By the method explained above, I managed to make an wood like anisotropic material. However, ...
My Problem
Here I have 2 problems.

I do not have an intuitive controll over the pattern. (I prefer an image input)
I use an excessive number of vertecies.

Please help me with the problems above.

Will the material be used on complex geometry or just a plane like in your example?

The plan is to have it only on a simple geometry. Well, of course, I would like to know a way that applies to both.

This is math heavy.
So in this case, the only thing that varies, texel by texel, is the tangent.  The tangent is a vector that points in the direction of delta UV (well, either U or V, I can't remember.)  In order to represent this on a texture, you code how much the tangent has been rotated from a "base" UV map.
So start by making an additional, "straight" UV map.  Now you need to know the difference in the tangents between the two UV maps.  To do this you can use the arc cosine (math node) of the dot product (vector math node) of the tangent vector of each UV map (tangent node).  This will give you a value ranging from 0 to pi that represents the amount of rotation, but not the direction (clockwise or counter).
In order to determine the direction of rotation of the tangents, you need to create another vector.  Start by taking the cross product (vector math) of your two tangents, then take the cross product of the cross product vector and one of your tangents (probably the undistorted tangent).  The first cross product is a vector orthogonal to both tangents, while the second forms an orthogonal 3D basis with the undistorted tangent and the first cross product.  Now you can use the dot product (vector math) of this second cross product with your other tangent (from the distorted UV map) and evaluate whether it's positive or negative to determine the direction of rotation.  Putting this together, you can generate a value ranging from -pi to pi:
(dot(cross(tangent1, cross(tangent1,tangent2)), tangent2) > 0) * arccos(dot(tangent1, tangent2) - (dot(cross(tangent1, cross(tangent1,tangent2)), tangent2) < 0) * arccos(dot(tangent1, tangent2)
(What if any dot products are 0?  Or what if any cross products are 0 vectors?  Then that means that tangent1 = tangent2, and there is no rotation; it is equal to zero.)
If you remap this to the 0,1 range (add pi, then divide by 2*pi, math nodes), you can bake it to a texture on your undistorted UV map and you have an image map of the rotation of your tangents.
How do you use this texture to regenerate your anisotropy?  Load as non-color data from your undistorted UV.  Now rather than feeding this into tangent, you can use it directly as a rotation input for your anisotropic shader, which accepts input in the 0-1 range anyways.  Don't forget to use your undistorted UV map to generate the tangent vector.
Order of operations on cross product matters, and rather than getting into details regarding that, just be aware that you may have to invert your rotation depending on how you do it (rotation = 1 - rotation, subtract math node).
Once you do this, you can safely delete the distorted UV map.  Your rotation is coded on a texture, and you can access it with only 4 vertices.

While your explanation is very thorough, a picture is worth a thousand words. Could you please post a picture of the NodeTree and the result?

Thanks for the answer. I would set this as the best answer as soon as I tried it myself (a little too busy) In the mean time, would you provide me an image of the node and texture? I think I can manage it without them but it would be helpful for me and others

@ScottMilner This problem isn't actually worth solving.  If you want to play with texture anisotropy, just make a grayscale texture, plug it into rotation, and start playing.  Baking from a distorted UV map is not worth it.  The only reason for this answer is because the math is worth understanding for other, future problems, and pictures of node setups aren't going to help anyone understand the math.  It's fine with me if this isn't the best answer, and if somebody wants to spend some time making pictures for the same solution, then yeah, you should mark them the best answer.

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


text:
Thumbnail preview image default to Viewpoint instead of Camera
Is there a way to save a .blend file und generate the thumbnail from the image of the current viewport?

Deleting the camera will default to the viewport preview image.
This fixed the problem of not showing vertex colors in the preview image, too.


text:
Copy keyframe data of vertex to extruded vertices
I animated a sinewave onto my mesh path with keyframes.

After extruding the verts, the animation data doesn't get copied to the extruded mesh.

Only the originals verts before extruding are animated.
Is there a way to keep or relink the animation data on the extruded verts?
Here is the .blend file with the animated sinewave.

can u tell us how you animated your mesh? or provide your blend file?

Keyframes are set in python using the accepted answer here: https://blender.stackexchange.com/questions/36902/how-to-keyframe-mesh-vertices-in-python Instead of also setting the keyframes for the extruded verts with python I want the flexibility of doing it in the GUI with existing operators.


text:
Custom scene properties mysteriously resetting
I'm writing a script, where an operator is registered in the Add->Mesh menu. Clicking this menu displays a panel, where the user can enter certain parameters and then invoke another operator using a button in the panel.
I'm using custom scene properties for the parameters, as shown in this code snippet.
The text property is set to an empty string whenever I edit it. It starts out with the default value "Lorem ipsum". Whenever I change the value in the panel text box, and then click away, the text box loses its value.
Here's my stripped down code, which still doesn't work:
def initSceneProperties(scene):
    bpy.types.Scene.photoPath = StringProperty(
            name="Path to photos",
            description="Path to the folder containing the JPG photos")
    scene["photoPath"] = "Lorem ipsum"
    return

initSceneProperties(bpy.context.scene)
# ==============================================================
class add_mesh_point_cloud(bpy.types.Operator):
    bl_idname = "mesh.point_cloud_add"
    bl_label = "Add Point Cloud"
    bl_options = {'REGISTER', 'UNDO'}
    bl_description = "Generate a point cloud from photographs"

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

    def invoke(self, context, event):
        return {'FINISHED'}

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

What's happening? How can I fix it?

If you use the operator panel in the toolbar with register, changing a value in the panel will undo the changes made by the last call of the operator's execute method (including the change made to the scene's custom property which causes the update procedure and then gets reset to its previous value when the undo is performed) and run the method again with the new parameters given.
You could simply use another string property for the operator and assign it's value to scene.photoPath in the operator's execute method.
import bpy

class add_mesh_point_cloud(bpy.types.Operator):
    bl_idname = "mesh.point_cloud_add"
    bl_label = "Add Point Cloud"
    bl_options = {'REGISTER', 'UNDO'}
    bl_description = "Generate a point cloud from photographs"

    photoPath = bpy.props.StringProperty(
                    name="Path to photos",
                    description="Path to the folder containing the JPG photos"
                    )

    def execute(self, context):
        context.scene.photoPath = self.photoPath
        return {'FINISHED'}

    def invoke(self, context, event):
        self.photoPath = context.scene.photoPath
        return self.execute(context)

    def draw(self, context):
        layout = self.layout
        layout.prop(self, "photoPath")

if __name__ == "__main__":
    bpy.utils.register_class(add_mesh_point_cloud)
    bpy.types.Scene.photoPath = bpy.props.StringProperty(
                                    default = "LoremIpsum"
                                    )

That worked like a charm. Thanks for the concise explanation and corrected code.
One clarification for future readers: I had to declare the photoPath variable in the scene using bpy.types.Scene.photoPath = StringProperty(...) (not shown in the answer).

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


text:
How to give particles systems a moving target (key)?
Goal
I'm trying to 'morph' one moving mesh into another moving mesh using particles. The 'morph' is working well when the meshes don't move, but moving causes trouble.
What I've done
Here's my .blend file:

In the gif below, a sphere is breaking into particles, and those particles are moving to different meshes in a water molecule. The particles doing the "morphing" belong to a separate 'controller' object (not in view). The controller object has several particle systems with keyed physics, each of which has the sphere as its first key target and a part of the water molecule as its second key target.
As you can see from the gif, the particle systems in the water molecules (the targets) stay put while the molecule itself keeps rotating. What I want is for them to rotate along with the molecule. The current (undesired) result is that the particles morph to where the molecule used to be, and then the actual molecule mesh appears rotated ahead of the particles.
I've also tweaked a few things for the sake of the gif.

The molecule usually doesn't show until the particles arrive. For the gif, I show it the whole time so you can see where it emits the particles.
The 'target' particle systems usually don't show either, but I'm showing them in the gif.
I've enlarged some of the 'controller' object's particles to make the morphing easier to see.

Question
How can I give particle systems a moving target?
I've tried setting the parent of the target particle systems, which did cause the systems to move, but particle systems don't have the matrix_parent_inverse property, so the scale and rotation were offset anyway. Also, despite seeing the target systems move, the keyed "morphing" particle systems seemed to still be aiming at a single spot. (Hopefully that made sense, but if not, suffice it to say that I can't get parenting to work with particle systems.)
I'm doing this with python, so I'm considering manipulating the individual particle positions based on the movement of the emitter, but it seems like there must be a better way than re-implementing parenting myself.
Finally, I have to morph with particles rather than shape keys, unless someone can tell me an algorithm/feature that can make the topology of two meshes equivalent while keeping the same resulting shape. :)

Once a particle has been emitted, force fields have an influence on them. Adding a force field to the molecule should get it to follow it to some degree, the destinations would also need a force that is stronger than the emitter. Have a look at force, magnetic, harmonic and charge force field types. Another thought is using keyed particles to control them over time.

I hadn't tried boids. I just played around with them a bit, and they seem interesting, but I don't see how to use them for the morph. (Setting a Goal rule sends the particles the to center of the Goal object, from what I can tell.)

Simple solution
Setting the physics type to 'No' causes the particles to stick to their emitter, even if it moves. This can be used to make moving targets for other particle systems.
Before, I was using the "Newtonian" physics type, which caused the particles to stand still in the absence of any forces or initial velocity. I assumed 'No' physics would also result in stationary particles, but they actually stay stationary in the emitter reference frame. So yeah. That's it.
More complicated solution
Before realizing the simple solution exists. I did it by creating a 'middle' layer of keyed particle systems, which move and serve as targets for the rendered particle systems.
This is more complicated and taxes a computer significantly more, but leaving it here since it seems like it could be used to add field effects to the targets, which isn't possible with the 'No' physics setting from the simple solution.

The initial and final objects in the morph each have three, rather than one particle system.

The first particle system emits stationary particles at the beginning frame of the morph.
The second particle system emits stationary particles at the ending frame of the morph.
The third particle system has keyed physics and uses the first and second systems as targets. This causes it to move, tracing the motion of the emitter object (or at least going in a straight line between toward a destination, which is good enough to create the illusion).

This third, moving system (one in each mesh) is part of the 'middle' layer mentioned above in that it's used as a target for one of the rendered particle systems.
Here are the layers of particle systems:

Bottom layer: Stationary particle systems emitted by each mesh at the beginning and end of the morph.
Middle layer: For each mesh, one keyed particle system. For targets, this system uses the two stationary systems for its mesh (beginning and end). The particle systems in this middle layer are the moving targets the initial question is asking for.
Top layer: These are the rendered particle systems. Each of these systems is keyed and has two targets from the middle layer, one each for the pre- and post-morph meshes.

The resulting .blend file:

It has some additional complexity because each pre-morph mesh morphs to every post-morph mesh. Also, each morph has two rendered particle systems, one each for the pre- and post-morph mesh materials. In total, there are 96 particle systems! (Though this isn't the minimum necessary since the "bottom layer" systems are duplicated.)


text:
How can I Z-combine multiple render layers
I have a problem while compositing my render layers. There is a butterfly that goes through a jungle (images as plane). It appears on the foreground, and goes to the background followed by a camera.
So I created a render layer for the butterfly alone, and other render layers for the jungle in order to color grade elements separately.
The problem is that my butterfly moves in depth. I don't know what is the best way to composite my render layers ( I am new to compositing in blender).
I tried to do that with the Z-combine node but it gives me strange result, see the images below:

It may be the wrong method? What about masking the butterfly with the alpha channel of foreground render-layers? I don't know how to do that.

I think that I found out the solution. I thought that the order you plug render layers didn't matter, but I was wrong.
Here are two screenshots : one in the right order (foreground render to background render-layers)

Another in the wrong order (butterfly still plugged first, but followed by background render-layers and and at last foreground render layers).

Amateur question, but how did you get all the layers to render at the same time??

I moved my objects to a specific layer, and then assigned those layers to render layers(or ciew layers?) which are then assembled with the composite node. This is the old way though, as blender introduced collection with the 2.8 series. You may want google it( or duckduckgo it ;) ): « blender collection render layers composite » for exemple.


text:
Masking object to plane
New to Blender, experience in Adobe products.
I have 3 planes filling the camera viewport - they slide in left-to-right overlaying each other. That part was simple enough.
Next I added our logo and did the same thing, left to right slide in. However, I'm trying to get part of our logo (composed of 2 SVGs) to reveal at a different time. The entire logo should slide in with additional slide to reveal the last part.
I would generally accomplish this in After Effects by creating a shape, animating it, and then clipping the layer I want revealed to the animated box. But I'm struggling to do this in Blender. Currently what I've done is create a plane and animate it to reveal the logo as I'd expect and attempted masking it by setting Layer 2 to Mask (And moving the plane to Layer 2) but this is masking all the large scale color planes in the background as well, not just the logo
Additionally, it seems Blender brought our logo SVG in backwards, I had to rotate it along z by 180 and x by 90 but when I apply a material color it doesn't show, when I hit F12 to see the render it's showing the logo but filled with black.

You could use another plane as a mask object, just edit the material to hold out other objects on the same layer.

Have you solved this one yet?

I did not. I ended up jumping over to After Effects for this particular project. Blender seems super powerful but I was on time constraints. I'll continue tinkering with Blender though.


text:
Blender animation glitching in Unity
I have created a gorilla and its animations in Blender, exported the file as an FBX file and then imported it in Unity. The animations works fine in Blender, the loop is perfect for the walking animation. When I play the animations in Unity (in the animation preview and in game) it glitches at the moment where it loops, the arms make a really strange quick move. Is there anything special to do to export Blender animations ?
Tell me if you need more informations.
EDIT: Here is the link to my blender file, if you want to try exporting it and import it in Unity.

Are you looping the end frame with frame 0 or frame 1?

Frame 0, is it important ?

The animation in the blend file you uploaded set to end at frame 79, whereas the animation continues to frame 119. I would try double checking the length of the animation as well as the start and end frame when it is exported. When I opened your file and played the animation without doing anything it was 'glitchy' when it looped, but changing the end frame fixed it. Your final animation should start at frame 1 and end at frame 119.

The end frame is just to visualize the current animation right ? So it wouldn't affect how the file is exported if I am correct. And why should it start at frame 1 ? I already cut the frame 120 to make a smooth loop out of it.

My mistake then. Staring at frame 0 and ending at 120 should work fine. Usually it is most common to stop one frame before the last pose, and start on the same frame as the first pose so that two frames never have the same pose in a row.

I would go back and recheck all the animation lengths if you haven't done so already and make sure everything is in order there. I'm not a Unity user so I can't say if it's possible it's an issue with Unity or not, but it sounds possible.


text:
Fast way to convert <BMVertSeq> to list of bmesh.types.BMVert
I'm using bmesh.ops.bisect_plane() to slice a geometry to get planar cross sections.
bisect_plane() requires a list of bm.verts, bm.edges and bm.faces as arguments.
Converting them to a list with list() takes longer than the bisect_plane operator itself.
Is there a faster way? Doesn't bm.from_mesh() already load such lists?
import bpy
import bmesh
import time
then = time.time()

obj = bpy.context.active_object

layer_height = 0.8
obj_height =  bpy.context.active_object.dimensions[2]
slices = int(obj_height/layer_height)

for i in range(slices):
    bm = bmesh.new()
    bm.from_mesh(obj.data)

    geom = list(bm.verts)+ list(bm.edges) + list(bm.faces)

    bmesh.ops.bisect_plane(bm,
                              dist=0.0001,
                              geom=geom,
                              plane_co=(0, 0, layer_height*i),
                              plane_no=(0, 0, 1),
                              clear_inner=True,
                              clear_outer=True)

    layer_mesh = bpy.data.meshes.new(str(i))
    layer_obj = bpy.data.objects.new(str(i), layer_mesh)
    bpy.data.collections['Collection'].objects.link(layer_obj)

    bm.to_mesh(layer_mesh)
    obj.data.update()

print(time.time()-then)

I'm trying to run you script locally, and it's giving me a "NameError, 'mesh' is not defined" from line 32. Is that supposed to be 'layer_mesh.update()'? I just tried fiddling around with it to get it to run, changed it to that and now the script runs with no errors in .0008 seconds, which idk, doesn't seem terrible in terms of performance. Maybe I'm missing something.

Ans: https://blender.stackexchange.com/questions/195516/bisect-plane-not-clearing-in-python-api

@Jakemoyo Fixed, speed depends on number of slices and faces in base mesh. @X Y I read most of that before, but realize now that my expectations might have been naive. Just wondered why geom couldn't be the whole bmesh.


text:
Sort objects in order as they appear in the outliner
I have a collection of objects named 'test0', 'test2'...'test999'.
When copying these objects between different Blender scenes/windows sometimes the internal collection order gets messed up and bpy.data.objects[0].name yields 'test11' (only an example, not sure of the pattern) instead of 'test0'.
But visual order in the outliner stays the same.
Am I missing an easy way to get the order of the collection in the outliner? The info seems to be there.
Sorting alphabetically doesn't work either and outputs 'test1', 'test10'...

As far as I know, there is no reliable way to ensure the order in which objects are stored in bpy.data.objects. In my experience, saving / loading and using the undo system can mess up the order.
You should never, ever rely on accessing objects by index in bpy.data.objects, unless you have a very specific workflow and even then I think you should use a workaround like custom properties, etc.
Objects are uniquely defined by their name in bpy.data.objects, and that's the only built-in way you can uniquely identify them with the API. The container acts like a dictionary AND a list since objects can be accessed by name and by index but I wouldn't ever use the latter if I want a reliable system.
Objects are (by default) ordered alphabetically in the outliner, that's why they stay ordered when copy/pasting.
You can get the objects ordered alphabetically with :
objects = sorted(bpy.data.objects[:], key=lambda obj: obj.name)

Bummer. Tried obj.name with sorted(), but order is like this then 'test0', 'test1', 'test10'. Alphabetically in outliner is different.

Could you add a screenshot of your outliner to your question ?

Objects are sorted using BLI_strcasecmp_natrual but I don't know if you can call it from Python. Also see outliner_tree.cc.

Interesting. Surely someone somewhere has translated it to python. :)

I used objs.sort(key=lambda x: x.name_full.lower()) to sort the objects like in the outliner :)
It still doesn't sort test1 and test10 correctly unfortunately


text:
How to make CUDA work in Ubuntu so as to enable GPU rendering in Blender?
I have installed Blender 2.78c and I would like to make Cycles and LuxRender render with GPU on my GeForce GTX 760M. In Windows it works perfectly, but in Ubuntu 16.04 and 17.04 it doesn't allow me to select GPU rendering for Cycles on "user preferences > system" and LuxRender shows me the following error message in the log tab when I select any LuxCore rendering mode:
OpenCL ERROR: clGetPlatformIDs(-1001)

I have already installed NVIDIA drivers, nvidia-cuda-toolkit and nvidia-modprobe from the official repositories, as suggested in other topics, tried to run Blender as root, but nothing changes. From the list of installed packages, I get:

nvidia-375/zesty-updates,zesty-security,now 375.66-0ubuntu0.17.04.1 amd64  [installiert]
nvidia-cuda-dev/zesty,now 8.0.44-3 amd64  [Installiert,automatisch]
nvidia-cuda-doc/zesty,zesty,now 8.0.44-3 all  [Installiert,automatisch]
nvidia-cuda-gdb/zesty,now 8.0.44-3 amd64  [Installiert,automatisch]
nvidia-cuda-toolkit/zesty,now 8.0.44-3 amd64  [installiert]
nvidia-modprobe/zesty,now 375.26-1 amd64  [installiert]
nvidia-opencl-dev/zesty,now 8.0.44-3 amd64  [Installiert,automatisch]
nvidia-opencl-icd-375/zesty-updates,zesty-security,now 375.66-0ubuntu0.17.04.1 amd64  [Installiert,automatisch]
nvidia-prime/zesty,now 0.8.4 amd64  [Installiert,automatisch]
nvidia-profiler/zesty,now 8.0.44-3 amd64  [Installiert,automatisch]
nvidia-settings/zesty,now 381.22-0ubuntu0~gpu17.04.1 amd64  [Installiert,automatisch]
nvidia-visual-profiler/zesty,now 8.0.44-3 amd64  [Installiert,automatisch]

What should I do? Why does it work in the Windows installation and not in Ubuntu?

I have the same problem but with OpenCL (I have an AMD GPU). Even if I DRI_PRIME=1 and run Blender, or right click blender in GNOME 3 and choose Use Dedicated Graphics Card it still doesn't appear in preferences>system

After long trying I could solve this problem
I found out that my NVIDIA card was not being recognized by the NVIDIA driver I had installed. So NVIDIA X server settings was "empty" like in this thread: https://ubuntuforums.org/showthread.php?t=2342538 but it was recognized by Ubuntu, what I could see by entering the command lspci -nn | grep '\[03' in terminal and getting PCI info about the "3D Controller".
But if I ran prime-select query in terminal I was getting unknown. My Laptop has a NVIDIA and an Intel card and I thought NVIDIA was working because I had graphical acceleration, but I think it was the whole time using the Intel controller. Tried to change the output by typing sudo prime-select nvidia and then I got nvidia by checking prime-select again. But if I restarted the system it was again unknown and nvidia-settings remained empty. I followed all helps I found in forums or stackexchange posts and my problem wasn't solved.
The solution that worked for me was uninstalling NVIDIA drives completely (did this several times) and installing nvidia drivers in a specific order:
First Ctrl+Alt+F1 to enter the tty and then:
sudo service lightdm stop # to kill the user interface process
sudo apt purge nvidia-* # to remove all nvidia packages
sudo dpkg --get-selections | grep nvidia # check that no nvidia packages remain
sudo add-apt-repository ppa:graphics-drivers/ppa # if you still didn't add it
sudo apt update
sudo apt install nvidia-375 # installed the NVIDIA drivers v.375.66
sudo apt install nvidia-prime nvidia-settings # Probably already installed
sudo apt install nvidia-cuda-toolkit # if you want to use CUDA
sudo apt install nvidia-modprobe

when restarting I disabled IEFI secure boot in the secure boot blue screen. After doing everything the NVIDIA card was not recognized yet. So I went to the tab "additional drivers" on the software-properties-gtk (just type this in terminal to open) and selected the driver Nvidia version 340.102 (proprietary) and clicked apply changes. After rebooting the machine again the card was recognized by NVIDIA X server settings (or nvidia-settings) and everything worked fine, Blender recognized CUDA and so on. I just don't understand why NVIDIA put my GeForce GTX 760M in the list of supported cards for the drivers version 340, 375 and so on, but actually just one (or some) of them works, in my case this (older?) version nvidia-340. I had already tried to install nvidia-340 directly from the repository and also select it in additional drivers without previous installation. It should have worked, but it hasn't.
Conclusions: the nvidia drivers for Linux are there, but it's a huge mess! Ubuntu does its job fine by recognizing it with the command List PCI lspci, but the nvidia support is messy and unclear with this several versions. So, if you still have problems on making your card work, try to install different propietary driver versions or select them from the additional drivers list. Maybe the driver you tried to use is actually not the one that works with your graphics card. Let's see if NVIDIA decides to make that better and start to opensource their drivers!

This was in the right track for me but packages were still installed so I removed them manually using  sudo dpkg --force-all -P  like here: https://devtalk.nvidia.com/default/topic/1031351/cannot-purge-and-install-nvidia-driver/

I found the same problems a few days ago, in my case the solution was to install the nvidia-cuda-toolkit pakage.
sudo apt-get install nvidia-cuda-toolkit

For CUDA to work, add the blender user(s) to the 'video' group through:
sudo adduser  video
It is may also be useful to install the nvidia-modprobe package (which is not a dependency because it depends on your hardware).
link : https://launchpad.net/~thomas-schiex/+archive/ubuntu/blender

wow great repo for ubuntu blender ! with this everything is working now !
Another great repo https://lambdalabs.com/lambda-stack-deep-learning-software
it install cuda cudnn and nvida drivers in 2 clicks

"The nvidia drivers for Linux are there, but it's a huge mess!"
I wholeheartedly agree :P
Your solution was very technical. For my mere needs I've managed to reproduce a good method for having GPU always available for Blender in Ubuntu and Ubuntu-based distros. I wrote an article about it here:
Installing NVIDIA Drivers in Linux

For blender newbies running into this problem, the issue might be that you haven't enabled CUDA in the settings. It is disabled by default.
Edit > Preferences > System > Cycles render devices and choose CUDA.
Then, in the view port, switch out eevee for cycles.
That did it for me.
If you're on linux, test if the command nvidia-smi outputs your current GPU details and usage statistics. If nvidia-smi does not work, nothing CUDA related will.


text:
Can't edit particle fluid or boid physics settings through python
I'm getting an error when I try to edit particle fluid physics through python. Using Blender 2.79.
Here's some test code that fails when run from the Blender text editor (or from the script runner addon).
import bpy

bpy.ops.mesh.primitive_plane_add()
emitter = bpy.context.object

mod = emitter.modifiers.new("ParticleSystem", type = 'PARTICLE_SYSTEM')
stngs = mod.particle_system.settings

stngs.physics_type = 'FLUID'
stngs.fluid.solver = 'CLASSICAL'    #This line results in the error
stngs.fluid.fluid_radius = 0.05     #So does this one if I skip the one above

The error is: AttributeError: 'NoneType' object has no attribute 'solver', and if I print stngs.fluid before the offending line, it indeed prints None. The same thing happens for boid physics.
Strangely, if I type the lines one at a time into the Blender python console, stngs.fluid is not None, and everything works as desired.
I thought there might be a race condition with some process that makes stngs.fluid not None, but time.sleep(10) before the offending line didn't help.
I've also tried updating the scene with bpy.context.scene.update(), which also didn't work. Is there something analogous to the scene that I could update?
Edit: Solved
Updating the scene actually does make the test script work. Thanks to J. Bakker for pointing this out. In the main script I'm working on, the emitter object wasn't linked to the scene at the time of the scene update, so it didn't work.
So, to edit fluid- or boid-specific settings for particle system physics via python, you need to make sure the emitter is linked and then update the scene after switching the physics type to 'FLUID' or 'BOID'. Interestingly, settings for other physics types can be edited before the emitter object is linked to a scene, which I suppose has something to do with the .fluid and .boid properties being type None by default, and therefore not having the other properties at all. I'm not sure why setting the physics type doesn't change .fluid or .boid without a scene update. If anyone has insights, I'm curious!

Not clear to me why adding bpy.context.scene.update() did not work for you. Perhaps you can post the code that did not work for you and that might help others

Thanks for the clear question. I just added the bpy.types.Scene.update call and in Blender 2.79a it works.
import bpy

bpy.ops.mesh.primitive_plane_add()
emitter = bpy.context.object

mod = emitter.modifiers.new("ParticleSystem", type = 'PARTICLE_SYSTEM')
stngs = mod.particle_system.settings

stngs.physics_type = 'FLUID'
bpy.context.scene.update()
stngs.fluid.solver = 'CLASSICAL'    #This line results in the error
stngs.fluid.fluid_radius = 0.05     #So does this one if I skip the one above

Sleep
sleep will never work in Blender as blender will halt mostlyduring the running of a script. Blender will just wait until the script has finished completely and then run the internal variant of bpy.types.Scene.update.

Thanks. With your nudge, I figured it out and edited the question to explain what my issue was. Apologies for apparently not actually trying the scene update in my test script.
Also, thanks for the tip on sleep.


text:
How to display progress notifications from an Operator?
The Goal
I'm writing a Blender add-on that extracts a point cloud from multiple photos. This operation is implemented as an Operator that is invoked from a Panel button. This Operator, once started takes a lot of time to finish.
I would like to inform the user about the progress of the operation, via some kind of status text. What is the best way to script this?
What I've Tried Already
Currently, I have a status message label in the Panel which invokes the "Start SFM" Operator. This displays the text stored in a Scene Property called currentStatus.

In my Operator's Execute method, I do this:
def execute(self, context):
    thr = threading.Thread(target=self.foo, args=(context,))
    thr.start()
    return {'FINISHED'}

And in the time-consuming method foo, I update currentStatus:
def foo(self, context):
    context.scene.currentStatus = "Starting..."
    # Time consuming operation 1
    context.scene.currentStatus = "Operation 1 Completed"
    # Time consuming operation 2
    context.scene.currentStatus = "Operation 2 Completed"
    ...

The problem with this is that the label only updates when it is moused over or if the user clicks on the scene. It does not redraw automatically. I have failed at several attempts to  force a redraw through python. I have tried polling, but it behaves similarly.
Am I missing something, or is this a completely wrong way to approach the problem?

Related: http://blender.stackexchange.com/q/3219/599

I tried the progress cursor method. The cursor doesn't update without moving it. So basically the user has to wave around the cursor just to get notified of progress. Not really satisfactory in my case because my operation can take a while.

That's odd.. It was working okay for me. Anyway, I agree the cursor method is not the best. :/

This is a hack, at best. So, when an image in blender is rendered, it provides a convenient status bar at the top of the window.  The problem is a script has to be a renderEngine to take advantage of this.  The solution? Make your script a custom renderEngine, then have your button invoke the render function.
Here's a very basic example of updating the status bar, and adding a status string to the render window. You would put the code you want run in the myCode function.
import bpy
import time

class CustomRenderEngine(bpy.types.RenderEngine):
    # These three members are used by blender to set up the
    # RenderEngine; define its internal name, visible name and capabilities.
    bl_idname = 'custom_renderer2'
    bl_label = 'Progress Bar Example2'
    bl_use_preview = True
    # This is an example function, put your code here
    def myCode(engine):
        engine.update_stats("Starting","")        #update the stats in render window
        time.sleep(1)
        engine.update_stats("Running","halfway")
        engine.update_progress(0.5)               #update the progress bar
        time.sleep(1)

    # This is the method called by blender
    def render(self, scene):
        self.myCode()

# Register the RenderEngine
bpy.utils.register_class(CustomRenderEngine)

Then select your new renderEngine. From the top of the blender window click "Blender Render" and select "Progress Bar Example."  Now you can run your script by pressing F12.  One other method that might be useful is test_break, which checks to see if the render(or script, in this case) has been cancelled.
One last thing to note, directly executing a script (eg. with altP) doesn't display the progress bar, however when the render function (byp.render.render) is bound to a panel it displays correctly.
See these for more information:
Blender artists, setting progress bar values
Blender Python Api, RenderEngine

Thank you for the answer. I wanted text-based progress updates instead of a progress bar, but that seems to be surprisingly difficult, and impossible without any hacks. I'll mark this as the answer at give the bounty after six more days, if there's no text-based notification answer till then.

@ApoorvaJ, I'm not sure how I missed that in your question.  I've added a couple lines to show how a text status can be shown in the render window using update_stats.

It's a hack, but it's the closest implementation to my requirements. Thanks!

Here's a minimal working example that displays a progress bar filling in the UI. I used a modal operator and a timer but it can be driven by any property. You'll need Version 4.0 and  bpy.types.UILayout.progress. You're kind of obligated to use a modal operator since a regular operator's execution will block updating the UI until it finishes. Note autosave is disabled while a modal operator runs.

import bpy

class ModalTimerOperator(bpy.types.Operator):
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None

    def modal(self, context, event):
        [a.tag_redraw() for a in context.screen.areas]
        if self._timer.time_duration > 3:
            context.window_manager.progress = 1
            return {'FINISHED'}
        context.window_manager.progress = self._timer.time_duration / 3
        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(0.1, window=context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

def progress_bar(self, context):
    row = self.layout.row()
    row.progress(
        factor=context.window_manager.progress,
        type="BAR",
        text="Operation in progress..." if context.window_manager.progress < 1 else "Operation Finished !"
    )
    row.scale_x = 2

def register():
    bpy.types.WindowManager.progress = bpy.props.FloatProperty()
    bpy.utils.register_class(ModalTimerOperator)
    bpy.types.TEXT_HT_header.append(progress_bar)

if __name__ == "__main__":
    register()
    bpy.ops.wm.modal_timer_operator()


text:
First move object with rigid body physics, then animate manually
I'm trying to make an animation in which my object first drops on a surface by using rigid body physics but later rotates towards the camera driven with manual keyframe animation.
I know there is a "animation" button in the rigid body settings. However activating it seemed to completely remove the earlier physics-driven animation from my object.
Is there a way to first animate with rigid body and the continue the animation manually via keyframes?

The Animated setting has been covered in What is the difference between an Active animated rigid body and a Passive rigid body?

You can use the Rigid Body Tools panel available from the toolshelf. Just setup your objects as normal, select the one you want to manually animate after the simulation and hit Bake To Keyframes.
(In this example, I have a cube as the active object with its mass set to brick and the plane as a passive object)

A dialog will popup, select the start and end frames and optionally the frame step and hit OK.

Once this is done you should see the rigid body simulation keyframes for the object appear in the timeline from the start and end frame you specified. You can then select the object and manually animate from thereon and even tweak the baked keyframes if you want.

In the Properties window, under the Physics tab, animate the Dynamic setting in the Rigid Body panel. This setting controls if the "Rigid Body actively participates to the simulation".


text:
Blender Render suddenly makes everything black
I have been working on a building lately and I recently discovered the environment lighting which is awesome because it's useful when working on a project.
However, recently reloading the .blend file, everything gets rendered black. I never used a light source in the first place, so I don't know what's going on. I thought I might have touched some setting without noticing it, but everything seems in order. Also changing the settings doesn't yield any visible different result.
I'm using Blender Render (2.71 rc2), Ambient Occlusion of 0.30, and Environment Lighting of 1 (white). This is the difference between what it used to be and what it renders now:

Could you post your .blend?

@gabrign Please check my self-answer below, the problem has been solved. :)

I managed to solve it thanks to Richard on Blenderartits.org, basically I had to check Shadows under Shading in the Render Tab:

I'm having the similar problem, but I can't find this shading menu , where exactly is it?

@ideorium Sorry, I seem to have never seen your message. Did you check under the Render Tab as mentioned in the answer?


text:
Can we render a sky layer with transparent layers?
I am using a transparent alpha in the shading menu, while rendering my layers, so I can later composite them together.

Question is, is there something like a sky layer that would go on the bottom?

Possible fork of this question - 2. is there another way of compositing two layers on top of each other? Can I pull an alpha from a layer with the transparent option off?

The easiest solution to this is to do a third render without any visible objects and Alpha set to Sky in the shading properties in the render menu. Once that's done, alpha over your sky background just like you have done already between the two scenes.

This is funny. I didn't previously know I could render multiple scenes and combine them. Your answer opened my eyes. Thanks.

You could load in a background image(with the image node) from a separate file to mix in.

You can also use the alpha over node to put the image behind(you then have a little more control over premultiply):

Yes, problem is the perspective wouldn't probably match - more so if it was an animation.

@Dwelle that's true, but if you have a landscape and you just want a skymap(on the horizon), this works.

In that case it would indeed be an option.


text:
Game animation from other video file into blender animation (adding to the existing video file)
I made tablet model in Blender. I also made animation where object is moving but I want to add some game animation (from other video file) on tablet display but I don't know how. If you have any link with tutorial where it is shown please send me it.
I want obtain such an effect video

This is possible by assigning to your tablet model "screen" surface (probably a rectangle) a "image or movie" texture (obviously choosing your movie). Of course you need to learn how to correctly assign the texture to your mesh. You could do this either by UV mapping or using a separate material for the "screen" surface...
To add the video after the tablet animation is done, you can use video tracking to map your video to the screen area, but you will need to have  some good tracking feature in the animated screen, to get a good result (you need to be able to set good markers)

There is no other option? I have rendered animation and I don't want to render it one more time, just add extra video to file connected with display's material.

I suppose the video shown in the screen needs to follow the tablet, and so be animated, too... I feel you can't avoid that, unfortunately. no wait, you're right, I edit my answer.


text:
Rounding off a single corner of a cube
There's many guides and approaches to rounding off edges or multiple vertexes of a cube. But I have not found a resource showing how to take a single corner of a cube and beveling it.
The closest I have come to reaching my goal is shown here.
I want the top side of the cube to have one rounded corner while the opposite face remains square.
The second image is taking from the cubes bottom side. It have become rounded at one corner, while I wanted it to remain square.
The remaining sides of the cube must be rounded off accordingly too. Providing a nice rounded corner, that can be placed upon another cube and have all their edges touch.
I'm still learning Blender so forgive me if I have missed the obvious.
Edit: To try and illustrate what I am aiming consider the two red blocks. The bottom side of the blocks are squares. They have however been rounded on each left and the back side. The nearest corner of the cubes seem to have been smoothed out.

Have you tried intersecting two quarter-cylinders?

Yes. If I interpret your question correctly I tried, however that didn't leave me with a square bottom side.

I think that the "smooth" look of the corner is just a matter of shading (and shaders).
I suggest to simply model it as a cloister vault's corner. Any distortion of the profiles in my opinion would lead to a worse result.

If your boundary profiles are round, you can use the Bevel operator on the two top edge (shortcut Ctrl+B). Then add two (flattened) loopcuts near the corner and Remove Doubles.

Then control the shading (set it to smooth) by marking sharp edges  and adding an Edge split modifier as you can see in the first picture.

"cloister vault" is a broken link.

This is solves my problem. Thank you very, very much.

First, select the three edges that point from the vertex you want to bevel:

Select the cube, tab into edit mode. Hit Ctrl+tab then 2 to select edges. Right click the three edges.
After that, start bevel with Ctrl+b. Drag mouse to change size of bevel. Roll mousewheel to change number of segments of bevel.
If you click and finish the bevel, you can still affect it to the lower left. See image here:

It doesn't quite cut it because the bottom side of the cube needs to remain square. In your suggestion the bottom side of the cube has a rounded corner.
I've added an example of a mesh I'm trying to recreate in the original question.

I get that same result as Carlo if I bevel only two edges. But I think the shading is very wrong if it looks smooth. It is a 90 deg angle. :-)

You can get some result either using beveling or subsurface modifier, at least.
I'm just in doubt of what you mean with "The remaining sides of the cube must be rounded off accordingly too". Have you seen anywhere an example of what you want to achieve?
I tried something here, and can explain but I guess you could have a different idea:

authors: Немања Цветковић


text:
Shader vs. Vector Node - not producing any shadows for displaced geometry
TL;DR: Why are shadows showing when rendering displaced geometry with Shader-Nodes but not with Vector-Nodes?
I have created a super simple shader via node setup. I'm using Cycles, and the material has heavy displacement via surface subdivision.
So far, I came up with two ways of doing this:

Create a diffuse BSDF and set the color accordingly. Note: the last add-shader operation has a green output connector, a "closure".
Create a RGB color node and directly use it as input for the material surface. Note: for the future, I will have to use a vector here, which also holds 3 RGB values, so it has a purple output connector.

Now, with approach 1, the shadows are rendered correctly. With approach 2, however, there are no shadows and the entire material is colored in the set RGB color. This is no surprise, as the RGB color directly is applied to the material surface.
I know that I could simply put the RGB color as input for the diffuse BSDF and get a colored image with shadows. BUT: this is just a sample MWE, later I will need to do advanced shading calculations and use the resulting vectors as color values. So I was hoping that there is some way to actually make the displaced geometry create shadows?
Alternatively: How can I convert the vector output to a shader output, i.e., vector -> closure, without any additional shading calculations? In short: is there an "identity shader", that takes a color as input, and outputs a color image with shadows? Any help is greatly appreciated!

I have attached an image and the MWE blend file:

Images would be useful for users who may answer when asking material questions. Please [edit] your question and add images of the shader nodes you are using, as well as the results to help demonstrate the problem you are having.

Thanks @Timaroberts, I have edited the question accordingly.


text:
Armature Animation not rendering (Blender 2.92)
The armature retains the pose from the first keyframe for the whole animation instead of well, actually animating (i'm rendering the animation image by image so its higher quality).
The file: https://drive.google.com/file/d/1cgeS1PT1RBATIqh087n6P07D2391EITP/view?usp=sharing

It's pretty hard for us to understand your issue without some more details.  Could you please include a screenshot of what you're working with?

Yes. Please include screenshots. And share your file. https://blend-exchange.com

Sharing a screenshot would be useless, so i'll just share my file https://drive.google.com/file/d/1cgeS1PT1RBATIqh087n6P07D2391EITP/view?usp=sharing


text:
Edit Mode: Does a "reset phong-shading" function (or add-on) exist?
After doing a lot of vertex welding & knife cuts on my geometry to get the shape I want, the "Smooth Shading" isn't so smooth anymore. Anyone know of a way to reset the shading on the faces en masse, so they appear as newly created faces?
I mean, without having to first delete all the faces & then rebuilding them, vertex by vertex? This solution is quite time consuming on anything but a very simple object.
I'm assuming the phong-shading gets confused after I've heavily modified the inital vertex constellations, but I'm no programmer so I wouldn't know for sure.
Auto-rebuilding the topology isn't an option, since parts of the mesh are quite exact, for animation purposes...

Edit:
Solved. Mr. Broady's answer made me focus in on normals as the issue & didn't take long to find that Blender's got it covered from the "Mesh" menu:

You can use data transfer modifier to copy normals from a high poly version of the mesh, but it's typically used for hard surface modelling - for characters you probably want to keep a quad-based topology (and for this exact reason, correct smooth shading).

Aah, it was quad topology all along! I missed that.


text:
Show unselected vertices in UV/Image editor?
Is there a way to show all vertices (even if they're unselected in the 3D view) in the UV editor?

I don't think so, but it's not like selecting everything is very laborious, you just press a in the 3D view (if you have something selected already press a twice).

It's because I want to be able to see the entire map while selecting only a few faces in the 3D view so I can see what's what.

Disable Sync Selection in the header toolbar of the UV/Image Editor.
Version 2.79:

Version 2.8+:

This stops the UVs only being visible if their corresponding vertices are selected. Now, even if no vertices are selected in the 3D view the UV image editor will still show them. If you do then select some vertices in the 3D view, the equivalent UVs will be selected in the image editor.
Geometry hidden in the view-port will be hidden in the UV editor too.

What if I don't want to see any wires or vertices in 3d view because I just want to see how end result looks like? I only managed to do that by switching to render display mode but it's updating too slow... Is there a way to edit UVs without entering edit mode at all? Or hide verts/edges?

Here is how to make a shortcut for this action: a) Press "Add New" button in User Preferences->Input "Image/UV Editor" (scroll down) and write "wm.context_toggle" instead of the word "none". b) Write "tool_settings.use_uv_select_sync" in the newly appeared "Context Attributes" field. c) Set ur shortcut in the respective field.

For Blender 2.8 : https://blender.stackexchange.com/questions/3254/selecting-faces-on-object-from-uv-editor-window


text:
Is it possible to delete folders in Blender's file view?
It's possible with files (right-click, x key, click "Delete" to confirm), but I haven't gotten it to work with directories yet. In case it changes anything, I'm using Blender 2.67b on Debian 7.0.

Could somebody please add the tags 'directory' (or 'folder') and 'delete'? (I don't have enough rep).

no need for those tags.

All right then.

It is not possible to to delete directories in Blender's file browser, unfortunately.

Because it's not implemented yet... ? :)

@ForestKa i wouldn't assume that, probably because it might do more harm than good or security reasons etc.

Yes, that's true. I can't think of any security reasons (other than deleting important folders). Maybe when you're naming a new folder and hit "Escape" it should cancel instead of creating a folder named "New Folder".


text:
Disable mipmaps for BGE?
Is there a way to reliably disable mipmapping in the file itself, so that blenderplayer will respect the setting and not interpolate textures?
And no, I'm not making a Minecraft clone.

Mipmaps is a system setting, it would be set by the users startup blend file. Not sure that anyone would recommend overriding a users choice.
To change it you would use python to set bpy.context.user_preferences.system.use_mipmaps

The root reason is that I want to disable texture interpolation. Is there a way to do that in the BGE?

Actually interpolation is an option for textures in blender render but it is disabled when the game engine is selected. You could try setting use_interpolation for a texture but it may be ignored in the game engine.

This is related to mipmap settings, you can change in user preferences > systems > mipmap
But this only work inside blender.
In game (standalone) you need a script.
from bge import render
render.setMipmapping(0)

related: Python API


text:
HDRI rendering onto parts of a model
Hello everyone and thanks in advance. The resource of already answered questions has really helped me to learn blender after 17 years in Vectorworks.
This is a weird one and I've seen it twice now. Once on geometry I build and now on an imported model. the HDRI is actually rendering ONTO parts of the model and nothing I do seems to change this. Deleting the HDRI leaves an untextured surface and this surface will not take a texture at all despite one being applied.
Note that:
It looks fine in texture mode
Yes, it's unwrapped
I've tried replicating the texture, changes nothing but I can see that the original texture shows pink in the texture dialogue indicating that it thinks something is missing.
Another thing to note in the last two screenshots:
When I select a normally textured object you can see in the path there is object and then material but if I click on the wrongly textured object it just shows the material. somehow the object itself is not in the path.
Here is an extrude with the problem (coloured) set into a new file with a simple cube and plane and a random HDRI background. You can see that the problem object is basically invisible.

BTW is
Help! :)
Adam

Not a reflection, actually rendered to the surface. Yes I can show the node tree. Give me ten.

I'm sure it's not in the node tree.

Afteer doing that last test I can see that light from the object is reflecting onto the cube, suggesting the object is set to a mode other than solid...

Can you upload the blend file with the 3 objects and hdri? There could be a number of things going on that would be easier to solve if we can see the file.

Thanks. I managed to find the issue. See below :)

The object was set as Shadow Catcher in Cycles settings.
Disabling that solved the problem.


text:
Create a terrain to accomodate a mesh
I have a mesh of a track like the one attache I would like to create a terrain like the one below   that will accomodate the track following the altitude differences and shape of it. Do you have a best procedure to follow?
Thanks

You can try the Shrink Wrap modifier, though it might introduce some distortion to your road

yeah, it will deform the track, needs something to deform the terrain


text:
Creating nodes with dynamic number of input sockets?
Is it possible in any way to create one's own node type in one of the node editors (let's just say the Compositor for example) that can have a dynamic number of inputs?  Not a group node, just a regular node?
For my use case, I would like to be able to do one of two things:

Have multiple inputs come into a single socket of a given type (I know this is not possible and probably never will be).
Dynamically add another input socket of a particular type if an input is attached to a socket of that type.  The output file node has that functionality implemented in C here, but similar functionality for adding sockets dynamically to a node does not seem to be present for any other node type or accessible via the python API.

Is what I am requesting simply not possible in Blender at present?

I would think that creating a node group to do what you want would be the easiest way to go about adding a custom node (I know you want to avoid this, but I don't see why). What kind if node are you trying to add?

Essentially, I'm investigating whether blender's node editor can fulfill some requirements for porting a custom (in-house) visual programming environment that couples some image processing concepts with some scientific computing concepts.  The existing environment essentially allows the equivalent of multiple noodles to connect at a single socket (case 1 above), but could be emulated most easily by dynamically adding sockets of a given type as in case 2 above.  Forcing our users to construct group nodes to emulate existing behavior adds too many manual steps to keep the workflow user-friendly.


text:
Extracting data from nodes?
Similar to a question asked a few years ago about debugging math nodes, I was curious if there is anyway to dump the numerical data output from a math node to any external location that would allow one to see the actual numbers?  Say possibly a CSV file, a numpy array, a SQLite or pandas table, or something within the blender UI itself?  If not, what might be the most promising route to implement such a feature?

why not using the small osl code from the second answer to the linked question?

So I was able to use that script to write a single value to the system console. When the value being inspected is vector or matrix and is printed for each pixel, the debugging experience in the system console window is slightly painful.  I'll look into what it might take to write an OSL shader that could output values to one of the formats listed above.  That might be just as painful to develop, but would definitely be useful.

For the math node in the shader system, if the input is not a scalar value, it is practically impossible to view its value. That is because it is not represented in a discrete form and rely on the general scene settings, even discrete data like images are interpolated to be continuous. So the only way to view the data is to discretize it, that is, render the scene and view the values of its pixels.

@ABG, the problem is that for any call of the shader will result in a different output... you can render with less samples which will print less values. I normally prefer to keep track of the limits for any input.


text:
How to use Curve modifier with existing several edges as curve object?
How to use Curve modifier with existing several edges as curve object?
Sorry guys I edited and added screenshots.
This is the upper part of target cloth.

I selected existing edges and added some by knife and created one object then convert it to curve object by pressing Alt + C.
Now the object acts like a curve.

The purpose of the line(curve) is applying curve modifier to the cloth to make wrinkles. However, when I tried to apply curve modifier to the blue cloth, there is no selectable curve object on the property of curve modifier. I selected manually then error message appeared and can't proceed.

Is there any ways to use Curve Modifier with converted curve object?
Or, if bezier Curve is necessary to Curve modifier, then how to (re)shape bezier curve object as same as the existing line(several number of edges)?
Thanks for reading!!

Can you post a picture to help us understand what you are asking?

What object did you add Curve modifier to? Curve modifier should be added to mesh object you want to be curved and in its settings curve object as target should be choosed.

The blue cloth is the one to apply curve modifier and hoped the curved object (converted from several edges) will be appear as a candidate for 'Object:' but won't. I manually selected but error msg appeared...

What kind of curve is it? Can you make a small sample file replicating the situation?

Sure. This is the sample .blend file.  http://www.mediafire.com/file/zub28qv15lu5byu/curve-issue-sample.blend


text:
How to use the paint tool on a Collada (.dae) file?
Is there a way to use the paint tool on a .dae file. I am trying to do a custom camouflage on a plane, but the model doesn't let me texture paint on it? Please help.

once it's imported, it's a blender model... please describe (or show) what you do to paint texture on your model, so to spot what is wrong.

If the model doesn't let you texture paint on it, ask him nicely, maybe he will change his mind.

@Mzidare This comment helps no one and is rude. Please read the "Be nice" policy https://blender.stackexchange.com/help/be-nice

@Reaper for the record I did not find that comment rude, or anything in the Be nice policy that comment violates. The policy even says "bring your sense of humor."

If you have the engine set to Blender Render, then you should be able to select the object and switch to Texture Paint mode. In the Slots tab in the tool bar, do you see an available slot to paint on? If not, can you show us a screen shot of what you do see, including the material and texture settings in the Properties editor?

@Reaper I did read the "Be nice" policy, and didn't find anything in my comment, that would violate it.

@Mzidare I agree, but also your comment was just humor, no (real) suggestion or asking for more info... to a new user, it could seem like if you were joking about him...

@m.ardito so how about actually helping the guy instead changing this comments panel into chat with me?

@Mzidare The first comment above is mine... I tried to help him... still waiting more details from him...

@CraigDJones I uploaded the screenshot. The bottom area that says "Object Mode" doesn't have the texture paint option. Sorry, I'm really new to the program.

@CalebLee the screen shot looks like something is selected, but not the object you are trying to paint - try selecting a single part of the airplane and see if that highlights, and then look for the option to change to texture paint mode.

@CraigDJones As seen in the second screenshot, I believe I have done what you said. But when I enter Texture Paint mode, it doesn't actually edit the color of the plane.

There are a couple of steps that can be taken to find the problem, as well as make the painting work easier.

Ensure you have the mesh you want to paint on selected. From the screenshots above it appears the plane is made of a number of different objects. You will need to have only the main fuselage/wind object selected to be able to paint on it. In the second screenshot, you have all of the objects selected. Texture paint will only apply to the active object (the last selected one) so you can't paint on a group of objects at the same time. It will also be helpful to isolate the object you are painting on in the view (although this may be personal preference) which you can do with the / key on the numberpad or with Shift+H. This will make it easier to see what you are painting, as well as lighten the load on the viewport in the case of slow painting.
Make sure the object has a UV map. It looks like you tried to add UVs to your object, but since they are all selected, you may want to ensure that the main mesh has a UV map suitable for painting. If you open the UV image editor with the main object selected and in edit mode, you will be able to tell if the plane has been unwrapped properly.
It appears that the plane already has a texture applied, so it would probably be best to add another paint slot or another texture so that you don't permanently damage the textures that are there already.

As mentioned above in the comments, once a file is imported it becomes the same as any other blender object/file. Therefore all standard blender procedures will work with your object.


text:
Mapping out sculpted details from a high-poly
I need to bake a map in order to separate different colors and materials on the low poly model.
The padding part is easy because it is a separate object. But the scratches are sculpted and I don't know of anyway to create a uv map of those details(alone from the rest of the object). Is there a way for me to do this without painstakingly painting every small detail manually?
EDIT FOR CLARITY
I need to generate a map from sculpted detail (from the Highpoly) in order to have different material proprieties on the same object (the lowpoly).

I think what you want to do is bake a normal map, then apply it to a low-poly model.  Decimate modifier may help with that step.  Look up "Blender bake normals" on YouTube, and you should find what you need.

No, I need a grey-scale map to differentiate the scratches and scrapes from the rest of the surface of the same object.

"Normal maps can be referred to as a newer, better type of bump map."  https://www.pluralsight.com/blog/film-games/bump-normal-and-displacement-maps

I don't need a normal map. I don't know how else I can explain this.

Bake a normal map.  Open it in Gimp, discard the red and green channels.  Convert the blue channel to greyscale, because that's the channel that contains the Z-axis.  https://en.wikipedia.org/wiki/Normal_mapping

The blue channel has little or zero of the detail in question. And I've already tried fiddling with colors/thresholds/levels on a normal map.

For something like this you generate a curvature map. but I haven't found a solution for this in Blender. Normally I bake curavture maps with substance designer[$] or with XNormal[Windows]. or maybe render a ambient occlusion map. But in my opinion it is not possible to change settings of the ambient occlusion rendering. But somebody, enlighten me !

I dare to post this answer, because the following tool is free and in my opinion everyone should know this great piece of software. Please forgive me! :-)
After some testing the best working solution I found so far can be archived by creating a heightmap in XNormals. Therefore I hope that you are on a windows system, because XNormals is a pure windows tool.

Export your highpoly and your lowpoly  and a cage as seperate Fbx scenes.

Import them to XNormal (just drag the highpoly and the lowpoly into the list).

for the cage, a checkbox in the lowpoly object has to be enabled and you have to select it by clicking with RMB in the sceen and select "Browse external cage file"

In the baking option select your texture size you want to export, your export location, and check heightmap as renderer.

To render, press the Generate Maps button and after some calculating something like this should appear:

After adjusting your heightmap, close the window  and it will export it to your predefined export location.

This is the type of thing I've been looking for. However, in my bake, the topology is clearly visible and it's drowning out the detail. In blender I could just set the shading to smooth but I'm not sure how to fix this with xNormals. https://i.imgur.com/tEvf5UN.png

Hm that’s bad. Maybe you can try to give your lowpoly only for the baking process a subdivision surface modifier.


text:
Strange result from baking normal map
I can't seem to figure out what is happening here. A bug possibly?
I went from a normal bake result to this. The only thing that changed between the two bakes was the use of a mirror modifier on the cage. However the vert/face/tri count/structure remained the same for both the cage and low-poly. I'm 100% sure that this is caused by the cage and possibly the mirror function.
This has happened to me before >same issue.  In this instance, I used the symmetry function in edit mode.
The fix was to simply remake the cage from copy/pasting the low-poly. Yet this is hardly a fix because it requires scraping a finely tuned cage.
I'm still troubleshooting to see what exactly the issue is but I was hoping someone could give some insight into this problem.
EDIT:
I believe I found what causes this issue. I did a test where I edited a section of the low-poly, duplicated the edited section, separated the section, then joined the section to the cage mesh and merged the correct vertices. After baking I get the strange result in the picture. I found a workaround by duplicating the low-poly into its own object, then using a shrinkwrap modifier to match the "malfunctioning cage" in order to preserve the changes I made. Although the topology is exactly the same between the two cages, only the latter yeilds correct results. The only difference specifically being different object data. This leads me to believe it is a bug.

Do you have multiple uv maps?

yes, (15characterminum)

have you selected the correct one?

As far I know, yes. I was unaware that you could select the wrong UV map. I had the assumption that the one you have selected is the "correct one"

I've made that mistake a couple of times but I think this can be worked around by using the correct uv mapping in your node setup ( I think ). But if you already have selected the correct one, have you tried applying the mirror modifier? Im not too sure how blender works with loose parts for cages tho. Also make sure that there is no overlapping UV's. The baker does not know how to deal with overlaps.

I'm still trying to find a consistent method to recreate the problem but I'm confidant the uv maps are not related.


text:
Is Blender right for me? - A photographer creating 3d renderings
I am looking to replace photography with Photo realistic 3d Renderings.
In almost the same way and reason Ikea did. (http://www.pixatecreative.com/ikea-3d-rendering/).
They use 3DStudio Max and V-Ray to create their 3D renders. Would Blender be the cost effective equivalent? Scenes are not important, a simple product shot that would normally be taken in my photography studio. I want results to be equivalent to the image below.

I have time to learn and am quick at picking up new software, but DStudio Max and V-Ray are more problematic - in my head. I would like to learn the basics before I tell the boss I am overhauling all our images and replacing them with these, and this is where cost makes it easier to pitch and blender is a fair bit cheaper.

Son, blender is always the right choice.

At Blender Conference 2015 Piotr Zgodziński gave a talk about this very topic: From photographer to 3d artist, a personal journey - Piotr Zgodziński. worth the 30 minutes.

I will try to answer the question where it can be done so objectively, but a simple yes / no is unrealistic. If you are going to get into 3d modelling and rendering, then it's a matter of learning a few different skills which are often specialized in industry. Whether you have time to learn the important subtleties of each will decide if it's a cost effective venture, because it will be judged by the end result.
It will take approximately the same amount of time regardless of what software package you finally decide to use. At the minimum you'll want a combination of these skills:

Modelling
Texturing / Materials
Lighting / Rendering

You probably intend to specialize on non animated objects and scenes (a chair with lights is a scene) and that means there's a lot that you don't need to learn to get stuff done. There's also a lot you can re-use between scenes that you only need to set up once (like a good virtual lighting stage, or materials) and then tweak depending on the project.
All these things can be outsourced and it's worth considering.
Modelling
Blender has superb modeling tools, definitely adequate for creating models for product rendering like furniture, fixtures, anything you might find in a home improvement store catalog. At its heart Blender is an Artistic package, not a CAD tool with ultra high precision needed for Civil engineering (and you won't need that for rendering anyway).
Texturing / Materials

Texturing: The core of this is UV unwrapping, which conceptually works the same over all 3d software, it's not traditionally an automated process. Making a UV map of your object is what lets you define (using seams) which surfaces are distinct from others.
Materials: The core here is the Node system, a modular approach to defining materials and how surfaces respond to light. It's similar for all node based software; you get a collection of nodes with a few parameters and you combine them into larger complex organizations. Just like + - / * % can be combined to describe just about any mathematical concept.

Lighting / Rendering
As a photographer you have an advantage here regarding the so called physically based render engines. Blender's own Cycles render engine is an option, but it's not the only one. We compiled a list of external renderers to choose from. You mentioned Chaos Group's V-Ray renderer, it's on that list too.
At a certain level of proficiency people (consumers) can't really tell if a product is rendered at all, or even if they can then only few people would have an easy time betting on which render engine was used.

Some packages have comprehensive specialized training, Blender is no exception: Search and you will find Free or Paid training.
See our resources page for links intended to help learn Blender.

The short answer is Yes. With Cycles, Blender is fully capable of photorealistic renderings. You will need to get comfortable with the node system, but it is very powerful. I have personally found that my photography knowledge directly translated into Cycles. You can even get configurations to duplicate most common lenses.
The main place Blender can be weak is in creating very advanced, multi-map textures. This will generally require another outside program like photoshop/GIMP, Substance, etc. But this same is true for Maya, Max, and VRAY so it's not really any different.
Someone else may be able to provide more of a breakdown of Blender with Cycles vs Max/Maya with VRAY.


text:
Set up tracking scene makes my environment texture go black. Wha?
I set up my scene with an exr. But then I import a movie, track a ton of points, solve then hit the "set up tracking scene" button and my background turns black. The exr is still displaying in my world tab, but my scene just renders a black background. What could I be missing? Thanks to anyone who can help.

I added a screenshot. It's just the basic set-up when you add an Environment texture. Before I hit the Setup Tracking Scene the image is visible in rendered mode. After, it all turns black.


text:
Material pass and DoF don’t match
I’m doing an enormous render for a poster and I have an image with pretty shallow depth of field. I’m trying to make a material pass so I can play with colors when compositing, but I can’t get the DoF of the Materials pass to match the DoF of the main image.
Without the defocus node the blurry section is just black or white dithered pixels. Once I add the defocus node, it just blurs everything, even the sharp areas.
Should I be just doing the depth of field for both the main mage and the material pass in the compositor? Right now I have the DoF of the main image done in the Camera tab.

Are you creating the DoF in the compositor with the Defocus node? Or using the camera settings? You need to stick to one system and use the same for both the material pass and the main color pass.   Can you show us the node setup?

I’m using the camera settings but the extra camera passes don’t have smooth ramps from black to white. It just has black and white dots, so I tried to add the deficus node, but it just adds the defocus on top of the dithered image. Is there a way to get a smooth grayscale ramp on the camera passes when using the DoF in the camera settings. I’ll upload some screenshots when I get a chance.

ID passes by design are binary (a pixel can only belong to one object): https://developer.blender.org/T51121
Defocus node should do what you need it to do, please share your blender file or at least a compositing node setup. I suspect you are using defocus wrong.

I added a screenshot of a sample render. Top is the main image. It's got a DoF on it (left side is a little blurrier) via the camera tab. Below is the materials pass. The defocus node is muted. When I unmute the defocus node it just blurs that. I basically just need the chrome masked out from the background and I can't get the pass to match the DoF. I assume I'm doing something wrong or missing something.

For defocus to work correctly it needs to access the depth data. So you need to plug the 'Depth' output into the 'Z' input for the defocus node to correctly blur the image.

Pasting the correct answer here for visibility.
All ID passes (materials and object ID) by design are binary (a pixel can only belong to one object): developer.blender.org/T51121  This means you cannot use the ID passes when motionblur, depth of field, or transparency is involved.  In your case, you can use the dofocus node on the material pass to create the DoF as a postprocessing step, which CAN create a blurry mask for you to use.
For defocus to work correctly it needs to access the depth data. So you need to plug the 'Depth' output into the 'Z' input for the defocus node to correctly blur the image.


text:
How do I get into edit mode as shown in this video?
I'm trying to follow along with this tutorial, but I seem to have a different version of Blender than is being used in the video, and some parts of the UI react very differently.  At timestamp 9:57, the presenter selects an object with modifiers applied, then presses Tab to enter Edit mode, where he gets a graph of all the vertices and edges overlaid upon the object.
When I press it, I get a completely different view:

I'm using Blender 2.90.  No idea what the tutorial is using, but it's a year and a half old and I can only assume they changed the UI around sometime since this was posted.  I have some minimal experience in Blender, but not enough to figure out what I need to do here to continue to follow the tutorial.  Can anyone explain how to get to the view shown in the video on modern Blender?

Since you haven't actually said which tutorial you're trying to follow or given a link to it, it's impossible to help!

@JohnEason Gah!  My mistake.  Fixed now.

You have added the modifiers, but you have not applied them yet. That's why it looks different. The transparent cube on your screenshot is the unmodified mesh. The sphere is the result of the Subdivision Surface modifier. The Displacement modifier is disabled in Edit Mode (see icons of the modifiers).
In Blender 2.9x the apply button of modifiers has been removed. It's now hidden in a drop down menu. Apply the modifiers and it should look like in the video.

Thanks, that fixed it.  I figured it was something like that, but I had no idea where to find the "apply modifiers" command.  I kept looking for it in the context menus in the hierarchy pane!

That tutorial was done in Blender version 2.79. A lot changed when 2.8 was released including the use of the outliner (top right). In your case it looks as if the object was duplicated at some stage and one object had the modifiers applied. You can see this in the outliner. The object with the modifiers applied is MeteorTut01.001 and the one with them unapplied is MeteorTut01. In 2.79 you used Layers clicking in the box on the bottom toolbar and you can see the object hilight change in the outliner when he clicks on a layer. In 2.8 that system is replaced by Collections in the outliner.


text:
How to add linked groups symmetrically around an object
So I've been learning lots and getting better at blender. Today I learned about linked objects, and after much research managed to get them to behave as desired using groups.
I'm working on creating a model for the engine for a light cycle, based off this image: http://www.filmedge.net/Tron/hello/SP_lightcycle_engine.jpg
I created two .blend files, one for the basic shape, and the second for the "fins" (the repeated angled blue bits that go from left to right). As you can see this one object is repeated lots, so using linked objects / groups makes sense. By my reckoning there should be 12 of these around the central cylinder. Which means they should be placed at 30 degree angles around the outside.
Googling suggests that you can use the spin dup tool, however that needs to be in edit mode, and because I'm using linked groups, I can't get into edit mode for that. I also read about the mirror modifier, but you can't apply modifies to linked groups either.
Is there a way to do this automatically?
Thanks
EDIT: I've been reading about pivot points, which would at least let me duplicate the group and manually rotate around the correct centre. Except you can't set the pivot point of a linked group.

I would suggest Array modifier. You need to turn off the two checkboxes for constant and relative displacement, and place an empty on top of the object you want to duplicate. Then, you change the center of rotation to the 3D cursor, then set the empty as the object in the Array modifier, and move the 3D cursor to the center of your model. Increase the number of array iterations by however many objects you want on the outside, then divide 360 by the number of iterations to find out how much you need to rotate the empty. It's a slightly convoluted way of using the array modifier, but it works for me.
Sometimes there will be a freaky scaling problem when you turn on the array modifier, but it can be fixed by pressing ctrl A --> apply scale.

Hi Sanix25, thanks for the reply. Unfortunately you're going to have to clarify some things for me. How do you add an empty on top of a linked group? I tried setting the fin's parent to the empty and vice versa, but I couldn't apply a modifier to either of them after that. I tried adding the modifier to the central cylinder, but that duplicates the cylinder around the fin. I tested using a new cube, which I can use the array modifier on, but I couldn't get it to place them symmetrically around the cylinder, only in a line.

A linked group? I would join all of the objects in the group that you want to  duplicate and join them into a single object by selecting them and pressing ctrl+J. Then, create an array modifier and turn off the two checkboxes for relative and constant displacement. There should be a little text box with a tan object in it down near the bottom of the modifier menu. If you click that and select the empty (which you should spawn at the median of the object you want to duplicate), then it should work.

But make sure to set the 3d cursor as the center of rotation. Down near the bottom of the 3D view screen and above the timeline there should be a little box with different settings for the center of rotation. There should be a selection for 3D cursor. Select that, then place the actual 3D cursor (using the transform menu) at the exact center of the place you want to duplicate them around. Then, rotate the empty a little bit and it should work. If you apply the modifier you won't be able to have one change affect all the others, but you'll be able to delete the empty.

To set the array modifier to use another object, look at the space under the constant and relative sections. There should be a little greyed-out box under the word "Object". Just click the check box next to the word object, then use the text box that appears to select the empty.

If you want to apply the array modifier without joining the objects into a single object, then you're going to need to create an empty and a modifier for each one and it'll be a huge mess. I suppose you could shift-select all the objects and apply a modifier to all of them at the same time then just use a single empty. There might be a simpler way to do it but whatever it is, I haven't found it.

Thanks for getting back to me, however let me clarify a little.

I have two files: engine_fin.blend and engine.blend. In engine_fin.blend I have a single object constructed out of multiple objects using boolean modifiers. I took this single object and turned it into a group (this is so when I import it into engine.blend, I can move, rotate and scale it etc..)

Now in engine.bled I have a cylinder and I want to create 12 fins that go around the cylinder at 30 degree increments. However because the fin object is linked, I can't apply a modifier, meaning no array modifiers. I could do this in engine_fin.blend, but I want it so that if I change one fin, all of the others in engine.blend change too.

I've worked around this by changing the origin of the fin in engine_fin.blend, so that when I import it into engine.blend I can rotate around the correct point. However If I were to want to change the fin, I'd need to make sure the origin is in the correct place, or engine.blend would get messed up. So this isn't ideal.

Can you upload the .blend through this website so I can look at it? http://blend-exchange.giantcowfilms.com

I have them in my github repo: engine.blend: https://github.com/andrewparlane/TronLightCycle/blob/master/models/blender/engine.blend  and engine_fin.blend https://github.com/andrewparlane/TronLightCycle/blob/master/models/blender/engine_fin.blend  you can download them using the "raw" button.


text:
Weight painting two unconnected meshes
.blend file
I have two different meshes, one for the leg and one for the foot. They are joined but unconnected. They are both connected with a shin bone.
However, if I rotate that bone then the two meshes are not "synchronized" even though both meshes are red.

Can somebody help me to localize the problem?

Your screenshot is showing the weights relative to the shin bone only. Every vertex is affected by all weights assigned relative to all others bones (probably foot, in example): if you want all the vertices of the bottom ring of the leg to move exactly as the upper ring of the foot, all thoose vertices must be weighted in the exact same way relatively to all the bones in which you have some weight.
See this answer for more infos:
How can my animation animate if there is no vertex weights?

You were right, the bone "thigh" influenced the mesh at lower part of the shin, thats why this happened. Thank you!


text:
Rigging - Why is my bone blue?
I selected a bone and then tried to add another bone to the selection. But instead of the other bone getting selected, the first bone gets blue. I had to click another time on the second bone so I could actually select it.
What does the blue color indicate?
I made three clicks, I will post an image for each click, the red X indicates the bone where I clicked at.
First click

Now its blue... and the second bone is not selected

Last Click (why I had to click twice on that bone to select it?)
The second bone is a duplicate btw, there are two exact bones at the same place.

The second bone is a duplicate. That means that your second click is actually selecting the duplicate bone. Your first bone turns a darker shade of blue indicating that it is selected, but not the active bone. The active selected bone is hidden beneath the one you want to select. When you click a third time you finally select the bone you want but will have selected three bones including the hidden duplicate. You can see the bones selected in the outliner window. You can select from there or hide the duplicate bone (select and hit "h")

In Pose mode. the lighter blue color indicates the active bone, while the darker blue indicates a selected bone.


text:
Diffuse baking - extremly weird result (cycles)
I try to bake the diffuse map of my box model in cycles render engine, but I get extremly weird results:
I made a short video:
https://youtu.be/bwoLJ8psZ2E

This is my model:

it is a model which consists of multiple smaller models which I have joined at the end, thus it has multiple materials:

First I created a new UV-Map and choosed Smart UV-Layout.

Then I created a new texture in the UV-Panel

Next I hit bake:

This is the result:

...and if I select the original UV-Map then it looks like this now:

I am not sure why this does not bake as expected.

If I do the same method with another model which has only one material, then it works without problems.

What happens if you uncheck clear in the bake settings?

@cegaton, Im not sure, I did all the steps precisley like you see here or in the video.

@Brenticus, clear is creating an alpha mask on every part which is not painted.

On the step 2 try removing empty material slot

I tried it. The resulting texture looks different, but the problem itself was not solved with this method. But I already solved it, see my answer below.

Related https://blender.stackexchange.com/questions/90096/how-can-i-convert-a-node-made-material-into-an-image-texture and https://blender.stackexchange.com/questions/13508/how-do-i-bake-a-texture-using-cycles-bake. Cycles bakes into image texture node currently selected so material must have it. Empty material slot is something better to be deleted regardless.

I was reading the cycles baking chapter in the official documentation but there was no word about it.

I solved it, I had to add the texture bakeResult0001 created at step #4 to each material as none connected image texture node, I also had to only check "color" in the bake settings, otherwise weird black spots were baked onto the texture.

I created a video: https://youtu.be/nOvtGUgWCA0