CUDA error: out of mem aloc result line 855. Does anyone experience the same issue? Hey guys i recently bought a razer laptop with rtx 2080 to improve my renders. But everytime i start rendering i get this error. CUDA error: out of mem aloc result line 855. Does anyone experience the same issue ?

Try rendering using CPU.. because I guess the 8GBs of GPU memory can't handle 13GBs of your scene memory. I've faced with with 4GBs of card and now I only use GPU for testing the scene in realtime live preview and always render with CPU.

when using GPU, Blender push the whole scene to GPU's memory and then CUDAs start rendering the image. while using CPU, the core starts rendering using CPU's core and threads.

Edited

Secondly you should try to lower down the memory load on GPU... 8GB is good memory for an average scene. There are many ways to reduce the momory in scene i.e.

if you are using HDRI.. user a step lower in size i.e (if you are using HDRI of 8K, try to use 4k or 2k and see what effects.
If you are using large textures, try to lower down their resolutions too.

You can also try with out all of the textures and see if it renders so quick then start enabling a few and then a few and then a few and each time render the scene with GPU.

And Last but not lease... try rendering the scene in lower resolution like.. instead of 4k of resolution try rendering in 50% or 25% in scale percentage.

If you are still unable to render this.. then as blender says..

https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html


How to obtain the parent of a collection using Python The Blender 2.8 Python API allows me to retrieve all child collections of a collection using its children property. Given the following collection hierarchy

+------------------+
| Scene Collection |
+------------------+
  |
  |  +---+
  +--| a |
     +---+
       |
       |  +---+
       +--| b |
       |  +---+
       |    |
       |    |
       |    |  +---+
       |    +--| c |
       |    |  +---+
       |    |
       |    |  +---+
       |    +--| d |
       |       +---+
       |
       |  +---+
       +--| e |
          +---+

I can access the children of collection b (i.e. collections c and d) using the following code:

collection_b = bpy.data.collections['b']
children = collection_b.children

That way I can navigate down the collection tree. My question is how I can navigate upwards, i.e. how can I get the parent collection of say collection b?

I didn't find a property allowing me to retrieve the parent collection(s).

Essentially I'm interested in recursively making my way up all to the root (Scene Collection), e.g

d -> b -> a -> Scene Collection

The best I could come up with so far is a recursion that searches for the parent collection. Note that this is not a particularly efficient solution but at least it solves my problem. The code looks as follows:

import bpy

def get_parent_collection_names(collection, parent_names):
  for parent_collection in bpy.data.collections:
    if collection.name in parent_collection.children.keys():
      parent_names.append(parent_collection.name)
      get_parent_collection_names(parent_collection, parent_names)
      return

def turn_collection_hierarchy_into_path(obj):
  parent_collection = obj.users_collection[0]
  parent_names      = []
  parent_names.append(parent_collection.name)
  get_parent_collection_names(parent_collection, parent_names)
  parent_names.reverse()
  return '\\'.join(parent_names)

obj = bpy.context.view_layer.objects.active
print(turn_collection_hierarchy_into_path(obj))

This code will print out the collection hierarchy of the selected object as a Windows style path (backslash as separator).

Note that objects can be part of multiple collections which means you can actually create a graph, not just a tree. The above code will simply ignore that fact and just pick the first collection that the object is part of.


How to make the grid infinite in User Ortho Views? If you go to the Top Ortho View and try to roll it from there (Numpad 4 or 6) to reach 90 degrees, the grid sort of becomes no longer infinite.

I don't believe there's an option to do this specifically for orthographic mode, however if you go to the property panel (press N to make visible), under "display" you can set the number of lines to show on the grid. By setting it to its max value of 1024, this will achieve a similar effect to what you are looking for.


Texture not displaying properly in any mode except Texture Paint I am very new to blender so apologies if there's an obvious solution I haven't tried yet.
The two images I have attached are of my current project: attempting to turn my minecraft skin into a 3D model. I was using this tutorial (which is 3 years old and outdated but I've been using google to find how to do the things) https://www.youtube.com/watch?v=3VYWQgRvhQ4
The texture of my model is perfect in texture paint mode. Exactly how it should be. It's messed up in every other mode though for some reason and I'm unable to figure out why. I've even looked at the texture itself and it's fine, I'm not sure why it's not displaying properly in almost every mode.
Please help.

EDIT:
Here's the blender file of my project.

Fjoersteller's comment:

Actually I think there is no need to re-upload. : ) Go to the Settings in the Material Properties tab of you material and. Under Settings you should set both Blend Mode and Shadow Mode  to Opaque. This should fix you problem.

Thanks Fjoersteller, that actually fixed it! I had Blend Mode on Alpha Blend, but turning it to Opaque fixed the texture completely!!!


After importing model from a different file I cannot change it I created a model in an alternate file and I am unable to edit anything (modes and materials) if I change modes it says:

This applies for any mode. I went to edit> lock object modes OFF and that didn't help. Further more the materials are locked.

How can I go about fixing this

To fix this I found that you can select the object hit the object button in the top left corner>Relations>Make Local>All this separates the link and works!


Cycles shadows different in live render and final render I'm a beginner in blender and i can't figure out why the shadows in my scene are different in live render and final render. The shadows seem to be less pronounced in the final render. That makes it really time consuming to fine tune the lamp size and strength values. I'm using a shadow catcher and a background image with one lamp (sun) and a world background with the strength of 1.0.

Color management settings: Color Space & Display Device: sRGB, View: default, Exposure: 0, Gamma: 1, Look: none, Use curves: off

Live render:

Final render:

Composition nodes:

EDIT:

When changing the world background strength to 0.0 the images become more similar but still not the same and i need the background for reflections.

EDIT:

I reproduced the problem in a new file. Download for blender 2.79.

The shadow in the preview is clearly darken than in the final render:

This probably not a bug, but differences in settings between viewport/preview and the final render.

Checklist:

Check that all objects that appear in the preview also appear in the final render, especially lamps. See: https://blender.stackexchange.com/a/1114/245

Check that the sampling settings are the same for preview and final render. See https://blender.stackexchange.com/a/111591/245 for reference.
For completeness but probably not relevant: Check the modifiers for any difference between preview and final render.

Given your description there seems to be a problem in the rendering section so you might also use this answer for tracking down your problem.

I specifically think that the amount of bounces is lower in the preview then in the final render. The increased diffuse lighting makes the shadow lighter.

EDIT:

The problem seems to be in the node setup:

The problem is, that the shadow has a strange mix between alpha and color:

The diameter of the shadow changes with the threshhold on the alpha channel!

Maybe you could try to use a shadowcatcher material/setup as described here.

Investigating further, I think that you set up everything the right way, but this might be indeed a shortcoming of blender as discussed in the developemnt group here.


Objects gray when rendered I cant seem to figure out coloring through this tutorial I'm using https://www.youtube.com/watch?v=1-iKFazCaeQ
I follow what this person does and mine stays gray.

Anyone got any tips or a better way to do this?

It looks to me like you have two materials on that object. I'm guessing the second material (the one you edited to have some color) is not assigned to the mesh anywhere.

In edit mode select the whole object A A. Now click on the material in the list (yours is called "Material.002") and press the Assign button.

Now if you are not using the first material for anything you can simply remove it. Go to Object mode (you can not remove material slots in edit mode), with the first material selected click on the minus button on the right.


Altering the height/width of an face loop/ring How do I alter the height of the face loop in such way that it does not alter dimensions of the other faces, simple the overall height of the object? In other words, it just pushes the other faces away.

Set the Pivot point to Individual Origins. Then if you Select > Inverse and use Push/Pull it will pull apart the 2 now selected halves, increasing the height of the mesh and stretching the initial face loop.
This might be difficult to do on meshes with complex topologies, though.


Round corners of plane wing I want to round the edges of my wing, so it will fit the blueprint. I have tried the Bevel tool, but it does not work in this situation.

Is there any easy way to do this?

In edit mode, select only the central vertex and enable proportional editing, sphere falloff, adjust the effect with central mouse wheel and grab (in my example along the X axis).


display face normal direction in blender 2.8 how to know if the normals of an object is flipped or not. cause 2.8 has only the same colors of normals and i cant identify if its a flipped normal. unlike the previous versions that there are to colors of the faces white is a real object while light purple is a flipped normal

Go into edit mode

Select the overlays drop down and click on the button shown in the picture below

You will see blue lines in the direction the faces are facing


Which particle system is best for trees in a forest? In using the particle system to render trees in a forest, is there any advantage in using the Emitter system over the Hair system given that the render will be done in Cycles?

I have played with both using tree images with alpha on planes as well as 3D geometry and can get similar results with either system in my small tests.

I believe that:

Cycles does not support billboards which could otherwise be used in
the Emitter system.  So a track to constraint system is needed in
either case.
If using the Emitter system, I have to make sure the
trees are not dynamically popping in and out during animation.
The Hair system has a special panel for Cycles.  If one is duplicating
objects instead of strands, does it matter?

Hair seems to be the logical choice for grass but is it the best system for trees?  I have seen tutorials for both but perhaps the ones using Emitter are older.

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

In the particles panel:

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

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


Scripting setup to save all Cycle render passes to a single EXR image The answer here Save all render passes to a single EXR image to setup a node diagram to save all cycle render passes to a single EXR file is very useful. I am wondering if there is a programmable way to do the same with Python script?

The article here provides quite similar solution to my problem. The sample code goes like the followings for this diagram

#---------------------------------------------------
# File nodes.py
#---------------------------------------------------
import bpy

# switch on nodes
bpy.context.scene.use_nodes = True
tree = bpy.context.scene.node_tree
links = tree.links

# clear default nodes
for n in tree.nodes:
    tree.nodes.remove(n)

# create input render layer  node
rl = tree.nodes.new('CompositorNodeRLayers')
rl.location = 0, 200

# create SEP_RGBA node
sep = tree.nodes.new('CompositorNodeSepRGBA')
sep.name = "Split"
sep.location = 200, 200
links.new(rl.outputs[0], sep.inputs[0])  # image-image

# create VIEWER node
viewer = tree.nodes.new('CompositorNodeViewer')
viewer.label = "Alpha"
viewer.location = 400, 400
links.new(sep.outputs[3], viewer.inputs[0])  # A-image

# create COMBRGBA node
comb = tree.nodes.new('CompositorNodeCombRGBA')
comb.label = "Cyan"
comb.location = 400, 200
links.new(sep.outputs[1], comb.inputs[2])  # G - B
links.new(sep.outputs[2], comb.inputs[1])  # B - G

# create HUE_SAT node
hs = tree.nodes.new('CompositorNodeHueSat')
hs.label = "Violet"
hs.location = 600, 200
hs.color_hue = 0.75
hs.color_saturation = 1.5
links.new(comb.outputs[0], hs.inputs[1])  # image-image

# create output node
comp = tree.nodes.new('CompositorNodeComposite')
comp.location = 600, 400
links.new(hs.outputs[0], comp.inputs[0])  # image-image


Model the tied end of a nylon/plastic bag I was searching over but can't find the topic similar. I wan't to make a plastic/nylon bag like this, anyone know the method ?

Modeling

Go to a new scene and delete the default cube. Shift + Add a Cylinder mesh. Tab into Edit Mode. Key Numpad 1 and then Numpad 5 to enter Front Orthographic View. Key Z to enter Wireframe View and Box deselect the top verticies (drag to create the box with the middle-mouse button). Key S then .2 to scale the bottom vertices. Your mesh should presently look like this:

Change into Edge Select Mode, key A once or twice to deselect everything, and Box select all lateral edges (the ones along the side going from top to bottom). At the bottom of the 3D Viewport, go to Select > Checker Deselect. Your mesh should have these edges selected:

Key S, then Shift + Z, then .9. Enter Face Select Mode. Select the top and bottom faces (bases) of the mesh. Key X and select Faces. Your mesh should now look like this:

Reenter Vertex Select Mode. Select two vertices opposite each other on the larger side of the mesh. Key O to turn on Proportional editing. Set the Falloff type to Random. Key S to Scale and move the mouse's scroll wheel one way or another until the white circle covers the whole mesh. Scale inwards.

Tab into Object Mode. Go to the Object modifiers tab in the Properties panel. Add a Subdivision Surface modifier. Set both the View: and Render: values to 2. In the 3D Viewport's Tools panel, select Shading: Smooth.

Texturing

Go to the Materials tab in the Properties panel. + New to add a new material. Select Add Shader from the shader drop down menu. In the top slot under the Add Shader, select Translucent BSDF. In the bottom slot under the Add Shader, select Refraction BSDF. If you go into the Node Editor, you may find something like this:

Finished .blend file:


How to view vertical zoom in Sequencer with Python? I know with ctrl + middle mouse button I can view vertical zoom , but how do I do this in python?

This will zoom in on the y:

layout.operator_context = "EXEC_REGION_WIN"
zoom = layout.operator("view2d.zoom", text="Zoom Y")
zoom.deltay=1


Can we use the shape of an object that is instanced to particles with dynamic paint So the general setup here is to use an animated particle emitter set as dynamic paint brush, which will cause deformations on another object set as dynamic paint canvas. The latter object has its surface type set to Displace under the heading Dynamic Paint Advanced.  Using this basic setup, when the particles make contact with the surface, the deformation in the canvas is a sphere shape which reflects a point with a radius.

Now when another object is instanced to replace the particles using the setting Object which is found in the particle settings' Render area, the particles now show up as the object that is attached here. However, the surface deformation that takes place on the brush canvas is still sphere-shaped.

So this brings me to the question, can we make the deformations that take place on the canvas reflect the shape of the object that is replacing the particles?

Dynamic Paint isn't necessary for this to be done.

Gleb Alexandrov recently posted a video showing how to use a cloth simulation to achieve damage on an object which matches the shape of the object that is colliding with it as shown here in his video Blender Tutorial: 9 Ways to Destroy Things  https://www.youtube.com/watch?v=wJFE2pb0Ri4

Fist step: add a cloth simulation to the object that you want to have a worn-down damaged look.  To have the object become squashed without bouncing around or flattening out, just set 'Bending' to 0.0

Then you add a collision simulation to the object that will be causing the damage.  I used default settings for this.

Now use the Timeline to animate the damage-causing object to overlap with the cloth simulation object that is to receive the damage.


Why does the color output change? The png's are rendered well. The size, color, everything fits well. But when i convert the imagestrip into a MP4 file, the color output of the Video has changed.
The black isnt black anymore its kinda red- and grey- toned. All colors are slightly brightened..

But why? While im watching Tutorials on Youtube theres no trouble at all with this...

My feelin says its something about the colorpreferences on my system or in Blendersystem.. ?

Last week i changed the colors on my monitor.. i boost the black level and the saturation of colors. But i would never understand any connection to this mentioned problem.. precisely because the png's look perfect!

Does anyone know whats going on there?
(I tried a lot of codecs.. they do not change any colorvalues, also i tried RGB and BW in the rendersettings)

did you try to render a still image? If there is no problem with that I would suggest to always render animations just using still images, that has different advantages.

First, you can pause the render and continue at any point.
Second there are just less possible problems, in my opinion.
Third and most importantly, if something goes horribly wrong, for example your PC crashes, you do not have to start the render all over.

The most preffered format for many is png, since it has a good balance between data size and quality loss, due to compression.

Please comment, if this method is helpful, or not. :)


I cannot see my background image This has really bugged me, I am trying to follow a tutorial on modelling but I cannot see my background image. I have gone through many youtube videos but everything they suggest, I have already done. I am in orthographic mode, I am in front mode (I set it to appear in all views) and I've set the opacity to 0.5.

Here's a screenshot of my screen.

As Lemon mentioned in the comments,

You dont seem to have a color space.

Its weird it even let you have a blank one.
Maybe try choosing the drop down, if that doesnt work try restarting Blender.

Just choose sRGB if you dont have Filmic.


Executing Python commands in a blender subprocess I launched Blender in a Subprocess using

blenderPath = "C:/Program Files/..."
subprocess.Popen([blenderPath, "-r", "Subprocess.blend"])

and want to execute a Blender python script now in this subprocess.
Example:

bpy.ops.mesh.primitive_cube_add()
print("spam")

How can i import execute this script?

Invoke blender with the --help option to get all available options.

In your case you might simply use the --python option to load a script.
Note: The order of the arguments are given in is important.

.\blender.exe Subprocess.blend --python your_script.py

or

subprocess.Popen([blenderPath, , "Subprocess.blend", "--python", "your_script.py"])

This way the blended is loaded first and then the python script is executed.

Blender 2.78 (sub 0)
Usage: blender [args ...] [file] [args ...]

-P or --python
    Run the given Python script file

--python-text
    Run the given Python script text block

--python-expr
    Run the given expression as a Python script

Argument Parsing:
    Arguments must be separated by white space, eg:
    # blender -ba test.blend
    ...will ignore the 'a'
    # blender -b test.blend -f8
    ...will ignore '8' because there is no space between the '-f' and the frame value

Argument Order:
    Arguments are executed in the order they are given. eg:
    # blender --background test.blend --render-frame 1 --render-output '/tmp'
    ...will not render to '/tmp' because '--render-frame 1' renders before the output path is set
    # blender --background --render-output /tmp test.blend --render-frame 1
    ...will not render to '/tmp' because loading the blend-file overwrites the render output that was set
    # blender --background test.blend --render-output /tmp --render-frame 1
    ...works as expected.

By the way, I think you don't need the -r option.

-r
    Silently register blend-file extension, then exit (Windows only)


Is it possible to stay in Face Mode when making loop cuts? It appears that Loop Cut (Ctrl+R) automatically switches you to Edge Mode.

Is there a way to remain in Face Mode after doing a Loop Cut? I've looked through the hot key references that I could find but no luck.

You can in a way.. In the 3d view header, hold Shift and click on the Edge and Face icons.  The only drawback to this is that you will be in both Edge and Face selection mode.

Also, the quickest way to switch selection modes in Blender is to use CtrlTab, (you can also hold Shift while selecting here too to get multiple selection modes, to leave a mode, do the same thing).


Blender 2.8 Beta: No compatible GPUs found on iMac (2018) I have a iMac 27" 5K 2018 with an AMD Radeon Pro 580 GPU.

Blender 2.8 cannot find a compatible GPU for Cycles render engine.

In Blender 2.79 my GPU worked.

What do I need to do so that my graphic card is defined correctly and works GPU?

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

  Hi,

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

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

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

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

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

  --
  With best regards, Sergey Sharybin

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

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


Bounding box coordinates taking into consideration (but not applying) rotation I am trying to make a script that will determine the exact coordinates of an object's bounding box in the render. (I later want to limit the rendered space to that area.)

So far I managed to get the coordinates from the object's bound_box And I managed to take the scale and location into account but I failed with the rotation.

My problem is that I have the coordinates of my bounding box but I don't know how to make them follow the rotation, like the bounding box in the viewport does. When I run the script with a cube it works fine, but when the cube is being rotated the coordinates that are being printed out do not change.

import bpy
import bpy_extras
import mathutils

scene = bpy.context.scene
obj = bpy.context.object
co = bpy.context.scene.cursor_location

scale = bpy.data.objects['cube'].scale

bounding_box_vertices = []
for i in range(8):
    bounding_box_vertices.append(i)
    bounding_box_vertices[i]=[1, 2, 3]

#the Coordinates from bound_box are saved to bounding_box_vertices[[],[]]
for i in range(8):
    for j in range(3):
        bounding_box_vertices[i][j]=bpy.data.objects['cube'].bound_box[i][j]*bpy.data.objects['cube'].scale[0] + bpy.data.objects['cube'].location[j]

def rendered_coords(x):
    co = mathutils.Vector((bounding_box_vertices[x][0], bounding_box_vertices[x][1], bounding_box_vertices[x][2]))
    co_2d = bpy_extras.object_utils.world_to_camera_view(scene, obj, co)

    render_scale = scene.render.resolution_percentage / 100
    render_size = (int(scene.render.resolution_x * render_scale), int(scene.render.resolution_y * render_scale))
    #print("Pixel Coords:", (
    return([round(co_2d.x * render_size[0]), round(co_2d.y * render_size[1])])
     # ))

#prints ou the 8 X and Y coordinates that the bounding box would have on the render (even though its invisible of course)
for i in range(8):
    final_coords = rendered_coords(i)
    print(final_coords[0])
    print(final_coords[1])

The bounding box coordinates of obj.bound_box are in local space. To convert them to world space – assuming you're interested in the world space coordinates and don't just want to consider rotation – you'll have to multiply the world matrix with the coordinates as mentioned in this answer by CoDEmanX.

import bpy
from mathutils import Vector

obj = bpy.context.object  # or bpy.data.objects['cube']
bb_vertices = [Vector(v) for v in obj.bound_box]
mat = obj.matrix_world
world_bb_vertices = [mat * v for v in bb_vertices]

From there you can continue with world_to_camera_view. From your code it's not clear what your obj is, but just to clarify: This function takes the Camera object and not the object with the bounding box. The bounding box coordinates are only considered for the third parameter. Similarly, you will need the mat world matrix of the object with the bounding box.

import bpy
from bpy_extras.object_utils import world_to_camera_view
from mathutils import Vector

scene = bpy.context.scene
obj = bpy.context.object  # or bpy.data.objects['cube']
bb_vertices = [Vector(v) for v in obj.bound_box]
mat = obj.matrix_world
world_bb_vertices = [mat * v for v in bb_vertices]

co_2d = [world_to_camera_view(scene, scene.camera, v) for v in world_bb_vertices]  # from 0 to 1

render_scale = scene.render.resolution_percentage / 100
render_size = list(int(res) * render_scale for res in [scene.render.resolution_x, scene.render.resolution_y])
pixel_coords = [(c.x * render_size[0], c.y * render_size[1]) for c in co_2d]  # in pixels

for p in pixel_coords:
    print('{p[0]:.0f}, {p[1]:.0f}'.format(p=p))


What is this noisy shadow overlay that stays with the camera? I created a scene in which the camera goes towards a cylinder with a rock texture on the inside. But from whatever angle I play it, there is this weird noise, but unlike regular noise, it stays the exact same and follows the camera.

It is like there is a picture on the camera that has an Overlay like blending mode and just shows between the camera and the texture. Does anybody have an Idea where this texture may be coming from? Here is sample of it on youtube.

That looks to me like "regular noise" (I assume by regular noise you mean noise caused by an insufficient number of samples in cycles).

By default cycles uses a consistent pattern for sampling, and so the pattern of noise will stay the same, producing an effect like this:

On the dark side the noise is more chaotic, but on the illuminated side of Suzanne's face you should see that the noise pattern remains mostly the same across frames.

To fix this, change the Seed of the noise pattern so that it's different every frame (or every few frames), and/or increase then number of samples. To do this, type #frame into the Seed setting in Render settings > Sampling:

This will create a driver which will set the Seed based on the expression typed into the field, where #frame is equal to the frame number.

Note that you may have to allow the driver and reload your .blend (save before reloading!) in order for the driver to work. See After updating to Blender 2.68 Driver Scripts are no longer automatically excecuted for details.

Optionally add some math to the expression, e.g. #frame/10 to change the seed only on every tenth frame.

This will break up this noise and make all the noise chaotic, which makes the noise less likely to be preserved by lossily compressed video formats.

Click the image above to see a compressed video version.

On more recent versions of blender there is a button to change the Seed automatically:

The small clock icon highlighted in yellow here, when pressed will automatically adjust the seed each frame.


Remesh a selected surface Is there any modifier that allows me to remesh let's say a one selected surface (triangulation)? I'm working on complex boolean objects. The problem when I apply boolean operations the mesh gets nasty at some point and I need to remesh only parts of the resulted boolean. Later, I will use this mesh as an input to another software so I need a clean stl mesh that works for Finite Element. It could help if someone tells me a trick even around it. I would really appreciate your help.

Remesh modifier does not have a function affecting only a specific group of vertices.

A: I don't think it is possible to Remesh only specific object faces.

Quite hard imagine how this "remeshed" part of model (vertex group) would be merged with original. I think it would result with much more artefact on surface - since it will mix two different topologies.


Quixel exported textures not behaving like they should I have the exported Quixel textures for the material "shiny brushed steel" but basically everything it does is make my materials follow the albedo only and they are dark, even with some fine HDRI images as environment light. I'd like someone with lighting/texturing skills to take a look at my scene and tell me what am I doing wrong.
Of course, removing the albedo helped a bit, but then I lost imformation and the material didn't do what it was supposed to.

EDIT: If I saw it well, the textures didn't upload along the file. I include the scene in a zip via google drive if that's fine by the answerer.
the scene .zip

Did you use Quixels material setup? They created a node group in which you only plug in your textures. Here's the link:
http://www.quixel.se/content/blender/QuixelShader.zip


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

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

Also, there is the spline IK modifier for bones, in which a spline controls a series of bones.  So it's kind of mixing both.


Multiple array modifiers and object offset rotation I have this hexagonal column that I made with an array modifier (with a rotated empty offset), since all 6 sides of it are the same. I need that column (the result of the first array) to be duplicated in a circle as well. When using empties as the offset, you need to position the object's origin where the empty is. The problem I face now is that I cannot use a second array modifier with an object offset on top of the first one, because I would have to move the object's origin (which is already positioned to make the first array work, and moving it will change the first array's result). Obviously I cannot have 2 origins for the same object. I know I can APPLY the first array and then move my origin for the second array but the whole point is to try to avoid this in case I need to modify the column itself. Any way I can make this work?

Add a second array modifier to your column.
Crate a second empty at the same location of origin of the column and assign it in the second array modifier.
Set the 3D Cursor where the center of the array should be.
Set Pivot Point to 3D Cursor
Select the second empty and rotate it on Z axis (360/count number in second array modifier)


Align vertex with edge or rather the imagine line between two verticies Next question from a total beginner..

Here is two images of the same thing seen from two angles.

How to i align the two sharp edges to the imaginary point between the two verticies (marked with a face/edge in white)

Is the only option to grab them manyally and drag them in place, or is there a smarter way?

Your goal is not fully specified by the imaginary line.. the sharp edges could be flattened to any plane that contains it.. (they could be twisted at any angle around the line)

If there is a plane you want to flatten to:

In the Pivot Center menu in the header, select 'Active Element'
Select three vertices which define the plane (possibly including the ones at the ends of your imaginary line)
Hit Ctrl Alt Space to create a Custom Orientation from them, checking 'Use after Creation'
Select the edges you want to flatten, and then, in vertex mode, one of the vertices that defined the plane
Hit  S Z Z 0 to scale the edges onto the plane.


How to fix my project to be correctly opened by Blender versions newer than 2.82a? I had some issues with my project created in Blender 2.82a, which is not being correctly opened by newer versions.
I created a ticket (https://developer.blender.org/T78960)  and there it was told be that "the problem is actually that your Cantos collection has an empty instancing that collection, this creates a very bad infinite loop." (https://developer.blender.org/T78960#989403).
However I don't know how to fix this error, so I always have to use 2.82a to open these projects.
Could anyone download the project (it's in the original ticket above) and show me what I have to do to fix it to be correctly opened by newer Blender versions?

The problem has to do with an empty that is in a collection attached to your Cantos object that cannot be opened to alter the contents (presumably because the empty is instancing it's own parent collection - there's your infinite loop). The solution, then, is to delete it, as I cannot see what function it serves other than causing problems (although you may have a different reason for needing it). However, the collection also contains a mesh that is the counterpart to the one on the other side. We'll deal with that in a minute.
First start by finding and deleting the offending collection:

You will see that this removes the clamp, and also forces the collection to dump it's contents, which in this case is the offending empty. Isolate and delete this too.

To put the clamp back (either in object mode, or edit mode - depending on what you want), I found duplicating and moving by -4.75 units on the X axis puts it right back in place.
Here's a picture from the file open in 2.83.

I'll also post the blend in case you need it quick.
File is here -


how to know what has been imported after alembic import I am importing an abc file like so:

bpy.ops.wm.alembic_import(filepath="myabc.abc")

But I want to then get what I have imported and do stuff with it.
I dont know whats in the file in advance - how can I find out what nodes I have just imported?

Right after you perform the import alembic operation, all the objects that are imported are selected in the viewport. So you can use the following code to get access to them

bpy.context.selected_objects

Then you can perform operations such as grouping them logically as below

bpy.ops.group.create(name='test1')

Additionally, you also have access to cache files

bpy.data.cache_files.items()

Assuming you have loaded an alembic file (test2.abc) containing a cube and sphere, you can get to their object paths using

cache_file = bpy.data.cache_files['test2.abc']

Now we can get access to all the objects paths loaded

cache_file.object_paths.keys()


Bump Maps are missing after exporting as glTF 2.0 My goal is to export my entire FBX model into GLTF 2.0 format with all bump maps using Blender, and upload it online using Three.js

I've uploaded my FBX model to Sketchfab https://skfb.ly/YOGv and it shows that my FBX model has the bump maps, however when I convert it to gltf using Blender, it doesn't show all the pieces of this model with the bump maps, I see it only on the bottom of my model, here's the site I'm displaying the gltf model using Three.js [http://virtualvizcaya.org/pages/1916barge_blender.html].

Please help! I'm also new to blender, but I'm open to other approaches to reach my goal. Thanks!

The glTF format uses normal maps, not bump maps1. If you can bake your bump map into a normal map it should export correctly and appear the same. Sketchfab also allows you to download your model as glTF, so it may be worth trying that.

1The term "bump map" can mean different things, so I'm generalizing here... For a more precise answer I might need to see your material setup in Blender.


How can I delete polygons with negative y coordinates? I'd like to delete the polygons which normals have negative y coordinates. With this script I can have the vector representing polygon's normal displayed:

import bpy

current_obj = bpy.context.active_object

print("="*40) # printing marker
for polygon in current_obj.data.polygons:
    verts_in_face = polygon.vertices[:]
    norm = polygon.normal
    print("face index", polygon.index)
    print("normal", polygon.normal)

My problem is that I simply can't check for y coordinate of this vector: I've tried:

polygon.normal[1]
polygon.normal.y

etc. I'm getting "Syntax error: invalid syntax" pointing at [1] or .y. In this case, it isn't possible to check vector's y coordinate against 0 in if statement, so I can't pick up the vectors which y coords are >=0.

What you're asking for is this:

Using ops

import bpy

# if named..
# obj = bpy.data.objects['IcoSphere']
obj = bpy.context.active_object
me = obj.data

# must be in object mode, to refresh face selections and data
bpy.ops.object.mode_set(mode = 'OBJECT')

faces = me.polygons
for f in faces:
    f.select = (f.normal.y < 0.0)

# to remove using this method we switch to edit mode, and back after removal.

bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.delete(type='FACE')
bpy.ops.object.mode_set(mode = 'OBJECT')

This is essentially a scripted walk through of what you would be doing if you inspected each face normal and selected only those that had a negative y coordinate, then at the end it would delete the selected faces.

There are other ways to do this, but this might give some insight. This is the after shot:

Using bmesh

See:

TextEditor -> Templates -> Python -> Bmesh Simple
bmesh.ops docs.

warning, the context parameter of bmesh.ops delete is a little undocumented, but is described here

import bpy
import bmesh

obj = bpy.context.active_object
me = obj.data

bm = bmesh.new()   # create an empty BMesh
bm.from_mesh(me)   # fill it in from a Mesh

faces = [f for f in bm.faces if (f.normal.y < 0.0)]

bmesh.ops.delete(bm, geom=faces, context=5)

# Finish up, write the bmesh back to the mesh
bm.to_mesh(me)
bm.free()  # free and prevent further access


Combine separate armatures On the right side under scene I have a couple different armatures like
armature.001 and armature.002 and bone. I was wondering how I make these all one object
I'm trying to parent bone 4 to the neck bone but it wont work. I'm guessing because of these separate armatures.

All you have to do is select one armature, shift select the other one, and then press Ctrl+J to join them.

Then shift select the two meshes that go with the armatures, and join them too.

Then all you have to do is select the mesh, shift select the armature, and press Ctrl+P. Then select the armature deform option.


Blender's version of Sketchup's line tool? (I previously opened a multi question thread, which is against rules, so here's just the main question I had)

As a relatively long term Sketchup user I can't work without the line tool and the Knife tool in Blender doesn't show distance and it doesn't snap by length like the Sk-u line tool, so it's really hard to work with it.

Basically here's what I want to do, to draw a small line 20cm from ,,point Q" (random name I thought of) and then to draw a line towards the other side of the box to the point that is also 20 cm from it's version of "point Q", hopefully without using subdivision and loop tool, which both create a lot of unnecessary things and are both unprecise for what I need.

I was advised previosly to use the snap utilities addon, but I only want to use either Blender's own stuff or at least a freely available addon (snap utilities is 17 usd), I am a 21 year old from east europe, so I neither have (or need) a credit card, nor a paypal and I'm not in the mood to get those 2 just for a small snapping addon, I'd probably end up paying a lot more for the credit card itself..., so if there is anything free, it would be much appreciated.

Blender isn't really the right tool for doing precision 3D design, but it can be done.

You will have to do some arithmetic, but one approach would be

start with a view perpendicular to the face you want the edge on.  In your example, it looks like that would be top orthographic, so hit NUMPAD-7
select the knife tool (Shortcut KKEY)
place the cursor on the either of the edges you want to connect and click LMB
type the C key
place the cursor on the other edge and click LMB
type ENTER

This will create the edge you want, but not place it where you want it.

type g
do not move your mouse
Go to transform panel of the properties panel and enter a value.  (if the properties panel is not visible, type N to unhide it) the transform panel looks like

To figure out the value, here is an example, based on your image.
* You appear to be adding the edge to a top face.  This means that you want to set the median y value entry.
* take the y value of point q and subtract 20cm from it.
* enter the result.

You end up with a precisely place edge.


Blender renders the same camera view even after camera is deleted! I have Blender 2.8 and setup 3 cameras for my animation. I want to render animation of one camera at a time in separated output files, like: Hit render to render camera 1 save the animation, then change the active camera, hit render again and so on - but blender always render camera 1 view.

I set a different camera as active, change the camera 1 location to camera 2 location and even delete camera 1 from the scene but it still render camera 1 view no matter what!!

I don't want to render every camera in a single animation, I want to render only one camera of those...

My setup:

Render:

If I understand the question correctly, you want to set it up as a sequence and switch cameras with a marker. I think this question is a duplicate of How swap views between multiple cameras?.

You can create markers on the timeline with the M key. Then select the camera you want to bind to that marker and hit Ctrl+B. As soon as your timeline reaches that marker the camera will switch. It is important that both the marker and the camera are selected.

So if you're doing stills, you'd only need however many frames as cameras that you have.

Edit: (select your camera and use CTRL+Num 0) ...


Why doesn't the shrinkwrapped vertex move smoothly over the mesh? I have a mesh and on to that I have added a single vertex, which I'm extruding making lines on the body. I have added a Shrinkwrap modifier and when I extrude the vertex it goes up or down instead of moving along the surface of the mesh. I have checked and there is no snapping on.

The Shrinkwrap modifier tries to find the closest surface of the Shrinkwrap Target to move the vertex to. If the vertex is very far away from the Shrinkwrap Target then the vertex may appear to 'snap' to part of the object as the Shrinkwrap modifier is having a hard time determining which part of the mesh the vertex should be moved to.

Now, you may be thinking that this isn't the problem here as you can clearly see the vertex you are moving is very close to the surface. However, what you are seeing are the vertices in their new, shrinkwrapped positions. What the Shrinkwrap modifier sees are the original positions. You can see the original vertex positions by disabling the Show on cage button:

Your vertices are probably quite far away from the Shrinkwrap Target, which is causing the issue.

A very simple solution to this is to first Copy the modifier, so you have two Shrinkwrap modifiers:

Then Apply one of the Shrinkwrap modifiers (make sure you're in Object mode):

What this does is apply the new, shrinkwrapped positions to the vertices. Now if you disable the Show on cage button you will see the vertices are in exactly the same place. You can now continue extruding and translating and because the vertices are very close to the surface they should move very smoothly over it.

If you are moving the vertices a lot you will eventually start to see the same snapping problem appear, because, remember, even though the vertices appear on the surface, you are moving them away from the surface, in 3D space, altering their original positions. When this problem happens again you can just repeat the copy/apply process to apply the new vertex positions.


CUDA rendering on Linux Mint or Ubuntu variants I know that nobody likes duplicate questions, but I haven't found my answer on any of the other questions with this topic.

I built a computer with a GeForce GTX 750 GPU (made by Gigabyte).  It supposedly has 512 CUDA cores.  I followed this tutorial, (which enabled the Nvidia proprietary drivers) and was able to enable dual monitors and all the desktop graphics that are needed.  Unfortunetly, the GPU processing option still doesn't show up in Blender.  I've tried installing nvidia-cuda-toolkit, and that didn't make a difference.  I also tried to update my drivers from nvidia-346 to nvidia-349, and this had no apparent effect either.  What can I do to enable GPU rendering?  (I've tried both blender installed and just downloaded from the site).

You will need to install the package nvidia-modprobe which (I believe) allows Blender to detect your nvidia CUDA device. This is applicable to Mint, Debian and Ubuntu, I don't know about other distributions of Linux:

sudo apt-get install nvidia-modprobe

You can also install nvidia-modprobe via your favourate package manager.
Please use the Nvidia drivers from the standard repo, the drivers from their website are not auto updated. Doing sudo blender for one feature is non-optimal :) and means that all your .blend files and exports will be owned by root. This is inconventient.

Note that Blender+Nvidia+CUDA requires nvidia-cuda-toolkit, nvidia-modprobe and the proprietary drivers.

Edit: Mint doesn't have a nvidia-modprobe package.

Download the nvidia-modprobe coresponding to your nvidia driver from here then extract it.
Use a terminal to navigate (use cd [dir] to navigate) to the folder where you extracted the file. Run make and then run sudo make install to install nvidia-modprobe.

Alternatively use this to download and install the Ubuntu nvidia-modprobe package (not recomended):

wget -c "http://mirrors.kernel.org/ubuntu/pool/multiverse/n/nvidia-modprobe/nvidia-modprobe_340.24-1~ubuntu14.04.1_i386.deb" -o "nvidia-modprobe.deb"

And then:

sudo dpkg --force-install nvidia-modprobe.deb

You will need to reboot afterwards.
This should install the right package. You might want to submit a bug report to the Mint17 people for not including nvidia-modprobe.


Applied emission, set strength quite low but still looks really over exposed, any ideas on how to correct? Doing The CG Fast Track Beginner Tutorial Trying to add atmosphere as is in the steps of CG Fast Track beginners tutorial step 3. Applied Emission but it looks way too overexposed compared to the tutorial, tried to lower the strength further but made no difference. Any recommendations what I can try to fix this? I'm a brand new beginner to Blender so any help would be much appreciated.

You've connected an emission shader directly to the volume output for the world.  With this connection you're saying "emit light from every point in the world" so it pretty much doesn't matter how low you set the light, it's going to be pervasive.
Here I've used a principled volume node and used the density slider to control the amount of fog in the scene, then I made the fog emit just a bit of light.

I encourage you to take liberties with tutorials, because not only did I learn a lot that way, but you'll find yourself creating pieces with a personal touch.


How to remove webbing from curved mesh? How do I remove the webbing/  starlacc pit from the mesh after subdividing..

Actually you've filled the bottom and top edges with a simple F (fill), but as the shape is round it goes bad because the center of the whole face is out of this semi-circular shape. So you should keep quads:

Select those faces and press X (delete) > Faces.
Now select all these vertices except the extreme right and left ones.
Press W > Bridge Edge Loops. It will fill the gap between the edges.
Then finish the process, select the extreme right vertices and press F. Same for the extreme left vertices.
Do the exact same process for the opposite edge.


How can a normal map be masked through a stenci? I have a mesh that i use as a ground in the game engine, I used multiple stenci layers to dispatch the textures, all tileable. It works well but for the normal channel, what i mean is that when I turn on normal influence for a texture, it appears on the other layers without taking the stencis into consideration, so that when each texture has its normal turned on, the effect piles up until the last layer. What I have managed to do is to create normal maps for every layers but the last (the path as you can see on the picture) but in doing so i'm loosing the ability to repeat my picture. Is there a way through this ?

I had to use the node system to use my normal maps in HD, instead of stenci I set up a series of color mix nodes. I needed to substract a geometry normal node via a vector math...don't ask me why.


Can you repeat a portion of a texture across a face? I'm currently trying to texture a series of walls, all different lengths, but wish to use the same portion of a texture to cover them all.  I know that I can split up the walls into roughly equal panels, or spread out the wall UVs to various sizes until they repeat as necessary, but my goal is to keep the polycount low, as well as keep the texture usage to a minimum.  My goal is to dedicate a strip of my main texture (say 128x1024 of a 1024^2 texture) to a repeating wall panel, and then tile that across my walls using different materials.  Other portions of the texture will cover windows, floor tiles (which similarly need to repeat, though in two directions), posters, and fake room renders I'll be scribbling in myself.

tl;dr:

Is it possible to repeat just a portion of a texture map across a large face?

You can use some math nodes and keep simple proportions for you texture parts (for instance working with 1/2 or 1/4... easy to multiply or divide).

Here is an example :

Each face is assigned to a material composed of nodes like these ones (this material is for the red triangles) :

Amount of repeats
Shift U as the triangle starts at U = 0.5
Don't shift V as the triangle starts at V = 0
Modulos : here the texture is divided in 2 (so modulo = 1/2)
Shift back U to 0.5
Shift back V (but V starts at 0)

For the blue square, you may invert the roles for U and V.

For the green circle, just don't shift anything.

To reach the upper right quadrant, shift both U and V 0.5.


"Export UV Layout" no there in the menu I cannot find the "Export UV Layout" option in Blender. The menu option "Export UV Layout" is simply and plainly not there. I have this problem with Blender 2.81, 2.82, 2.83, and 2.90, so it is most certainly something I am doing wrong.
I searched for the "Export UV Layout" add-on in the preferences and the add-on is not there. Can you please tell me what do you think I am doing wrong?
I am doing as follows:

New project.
Select the default cube.
Change into edit mode.
Go to the menu UV -> Unwrap
Change into de UV Editing screen layout.
Menu: Image -> New... -> Ok
Select all vertices of the UV map
UV Menu -> and fail!

I tried using the "Operator Search... (F3)" option, but it doesn't find it.

The "Export UV Layout" is not there. Can you please spot my mistake?
Thank you very much.

Search for 'UV' rather than 'Export' in the addons:


UV texture is stretched out, how to fix? So I have placing the image textures sorted to position with my UVs, however now I can't sort why the images themselves are distorted. You can see that "walk-sonic" is stretched vertically (it's too tall) and the "dial" section is compressed horizontally. (probably a bit tricky to see the text in the pic - the other should be easily seen).

I made the texture image just a big square and I don't know if it needs to be a specific size or ratio?

Found the answer in another thread by Kura.

"Few months late, but in case anyone else needs it: if your UV maps are coming out stretched, try going back into object mode and applying object transforms, then try unwrapping again. Usually, this takes care of the issue when it occurs for me, and is the first thing I try if my UVs are stretching."


blender render side tab One of my friends' side tab disappeared. Does anyone know how to get it back?

Just find one of the corners in the view port, and click and drag it inwards. Then change the editor to "Properties".


Problems applying Boolean modifier to mesh using arrayed object to make Colander I'm trying to make a colander by taking a basic mesh I created using the screw and solidify modifier and cutting out the holes using a Boolean modifier with a cylinder that I have applied three array modifiers to (as you can see in the picture), but when I add the Boolean modifier the mesh just disappears. I've applied all the scales, the objects have a common origin, there are no non-manifold faces and the normals all seem fine, so I'm a bit confused what the issue is. If I add the Boolean modifier before the Solidify modifier I get a result, but it's inaccurate and with horrible artefacts (even with four levels of subdivision before the Boolean). Here's the .blend file, thanks in advance.

The result you have is correct but the subdivision surface modifier doesn't have the geometry to make it look nice.  You could try marking the edges of the holes as creases with SHIFT E.  Then the subdivision surface will know where the edges are.


How can i update my changes in the UI scripts? I want to change some menues in the 3D View, for example the Specials Menu. So I added some lines. If i have an error in my changes, Blender reports this in the system console. But when I press W, my changes don't appear.
Here is my changed Script:

(C:\Program Files\Blender Foundation\Blender\2.70\scripts\startup\bl_ui\space_view3d.py)

   ...  (line 1116)
class VIEW3D_MT_object_specials(Menu):
    bl_label = "Specials"
    @classmethod
    def poll(cls, context):
        # add more special types
        return context.object

    def draw(self, context):
        layout = self.layout

        scene = context.scene
        obj = context.object

        if obj.type == 'MESH':
           mesh = obj.data
           layout.operator_context = 'INVOKE_REGION_WIN'
           layout.operator("object.shade_smooth", text="Shade Smooth")
           layout.operator("object.shade_flat", text="Shade Flat")
           if scene.render.use_shading_nodes:
               try:
                   props = layout.prop(mesh.materials[0].node_tree.nodes["Emission"].inputs["Strength"],"default_value", text="Emission Strength")
               except:
                   pass
   ...

Also if I run Blender with Admin Rights on my Win7 Computer the Changes dont appear.
What is wrong?

One option is to run the altered script while it is in blender's text editor. There is a button in the text editor header for this.

Another option is to save the changes to disk and press F8. This will have blender re-run all the interface and addon scripts similar to having re-started blender, which is also an option.

Having said that it isn't recommended to alter the scripts that come with blender. You can create an addon that alters or adds to existing menus and lets you easily turn it on/off as well as use it again in the next version after you update.

If you look at some existing addons you can easily work out that you can add to the object specials menu with a line such as bpy.types.VIEW3D_MT_object_specials.append(MyMenu)


Poor Undo Performance: Blender 2.9 I'm having issues with Undo locking up Blender on the first undo action following some action.
This happens whether I remain in one mode, or on one obj. Basically say I rotate a joint and I don't like it. I undo and my blender locks up for like 6 seconds then performs the undo. If I want to undo further from there I can get like 4 or 5 more in before it locks up again. And if I commit any new action, the first undo will always lock up.
Right now all I have in my scene is a few disabled duplicate collections (for safety), a retopo'd character body mesh (10K polys), a rigify rig, and an empty. my blend file is 37mb. Blender says the scene is using 3.3GB of Memory and 3.4GB of VRAM.
I am using global undo (tried without too). was at 200 undo steps with no limit, then tried at 50 step to see if that helped, but it didnt.
Any ideas? Am I missing something?
Thanks. Also, I dont see where I can add a blend file. is that not a thing?

If you encounter any problem toward Undo system, please help to file up that bug to the bug tracker in Blender develop. There is a new undo/redo system been adopted due to the old one was bulky in some situation.

A quick way to fix your strange behavior is to use old system instead of new one:
By checking Developer Extras in Preference-

And choose Experiment panel and check undo legacy


Folding a cube (animation) I'm trying to fold a cube with an animation. I've tried inverse kinetics with no luck. Here are some images that explain what I'm trying to do. I'm trying to make this so that

when the upper bone is pushed down, the box is folded to the ground.
when the upper bone is pulled up, it unfolds the box.

one possible way is to use :

use the Transformation constraint to convert translation to rotation from control bone to lower bones
use the copy rotation constraint to make the upper bone rotate in reverse to the lower bone

The Transformation constraint to the lower bone with this settings :

the Copy rotation constraint on the upper bone :

there's only one plane ( with middle edge) and have an array modifier controlled by an empty ( see the .blend file )


"OpenCL build failed" error when rendering with GPU I am trying to render my Images in GPU Computer but after 1 Minute or so this message pops up:

  OpenCL build failed: errors in console.

Now whats with that? Anyone experiencing that as well?

Working on:
MacBook Pro (Retina, 15-inch, Late 2013)
2.3 GHz Intel Core i7
NVIDIA GeForce GT 750M 2048 MB

As I just investigated in https://developer.blender.org/T48842 - if no errors was really produced (despite msg "errors in console. ") try to run blender with "--debug-memory" option - it enables "fully guarded memory allocator" which magically does things.


bpy.props types, update, set, and get fields format Part of my project involves integrating functionality similar to a graphing calculator into the image editor of Blender.  Once complete this will just be a nifty little time saver that helps avoid leaving Blender to bring up other tools.

I'm using bpy.props.FloatProperty for a few metrics, such as domain minimum and maximum, so that they can quickly be set in Blender for an algebraic function to be drawn.

I don't want to work with these directly from the bpy.props objects because to do so would sacrifice usability.  For example, we're used to a straightforward scale metric in Blender where if we want an object scaled to 50% on the x-axis, we simply set the x-axis scale to 0.5.  But in an algebraic function where the vertical depends upon the horizontal, this fifty percent scaling is actually accomplished by multiplying the independent variable by two.

So, it helps the user to have something sit between the interface and all the math going on under the hood.  That is exactly the kind of thing the update, set, and get fields are meant for in bpy.props objects.

The problem is that I can't find an example about how to format that string.

set = "self.set_thing ( )" ?
set = "self.set_thing" ?
self = "set_thing" ?
set = "self.set_thing ( self, thing )" ?
set = "set_thing ( self, thing )" ?

There are probably possibilities there that I'm not thinking of yet.  But how exactly do we format that and what are the restrictions?  Do the set methods have to be in the object class that the bpy.props object is a data member of? Can it be any object, i.e. set = "thing_container.set_thing(thing)"?

Finally, with a getter and a setter field, what functionality does the update field have?  Does this just allow for another method call in addition to the setter, whenever the setter is called?

Got it!

This page addresses how to get a function name, in a way that's friendly to class methods and not just script-scope functions.  Blender API requires a 'self' parameter in the specified function for update, set, and get, so it actually requires a class method anyway.

So, let Python do the formatting for you.

update: I had a partial answer here before.  I want to force use of the local dictionary, so that I know for sure that an instantiated object's method is used and that no global method is looked for.  The answers for this question provide the second part. Also, the incomplete answer I had before does not work because it uses a string where a function is expected.

Here's an example using the lower domain constraint in my script:

global set_domain_min

self["domain_left"] = bpy.props.FloatProperty(
    name="x >=",
    description="Domain left bound",
    default=-10,
    min=-sys.maxint - 1,
    max=sys.maxint,
    step=1,
    precision=6,
    subtype="DISTANCE",
    unit="LENGTH",
    set=locals()[self.set_domain_min.__name__]
)

I don't know if this is a duplicate topic, since it's specific to Blender's API requirements but is answered with a general Python question.  My last question was marked as a duplicate, and is, but I haven't deleted it because I think the original has poor wording for the topic.  Next time I happen by this site, if a mod has marked this as a duplicate then I'll just delete it.  The answering topic isn't obvious for somebody learning Python using the Blender API, but I'll leave this to others' judgment.

Update: Alternatively, the following can be used...

class foo:
    def __init__(self):
        self["bar_prop"] = bpy.props.FloatProperty(set=self.set_bar)
        self["bar"] = 1 / self["bar_prop"]

    def set_bar(self, bar_in):
        self.bar = 1 / bar_in

This makes it unnecessary to use locals ( ), but the 'self' identifier is needed.  Using locals ( ) is only necessary if there's an identifier with the same name declared global in-scope.  The first code snippet I posted above has been updated to demonstrate.  This can be useful for overloading an identifier such that the local is only used in specific cases.


How to use blender command lines in OSX? Update:
NB: This is a revised and updated version of my original question. You can also see the relevant discussion on meta as to why it was closed and reopened.

On June 29th I asked what I thought was a very simple, straight forward question: Can files be queued for animation? The answer, basically, was yes, if you do as explained in the manual on the Render/Command Line page:

Although it didn't explain that the word 'blender' in the syntax means the entire path to blender (or does it?), I worked it out (or did I?). Maybe that is considered to be common sense? (This could be an indication of where the problem lies!)
Now, for those of you who asked:
There are two ways that I can start blender from the command line.
First open Terminal. It looks like this:

1 - Type 'open' and space at the command line, then drag blender.app from /Applications/Blender/:

to the Terminal window:

Press return, and blender opens, then if you quit Terminal, blender quits too.
2 - Type 'open' and space at the command line, then drag blender (Unix Executable File) from /Applications/Blender/blender.app/Contents/MacOS/:

to the Terminal window:

Press return, and blender opens, and another Terminal window opens with:

then if you quit Terminal, blender quits too.
Now back to the issue. Since I first asked this question I have been told several times that I must set up the $PATH environment variable. I thought I had done that but now I'm not sure!
I typed sudo nano /etc/paths at the command prompt:

Then return, and got this:

Then I added the path to blender:

and saved it. Then to check it I typed in echo $PATH and the result shows the path has been added:

I have a feeling this path is not the correct one for $PATH.
This is the result of an attempt to do a background render:

'blender: command not found'.
Additional update:
I tried what Aldrik and zeffii suggested, to change the $PATH variable setting to /Applications/Blender/blender.app/Contents/MacOS, then attempted to do a background render only to have blender quit before doing anything:

Then, after some searching, I found this:

http://david-martinez.tumblr.com/post/28083831730/environment-variables-and-mountain-lion
I tried it:

and got nothing!

Execute the following command in the terminal, then open a new terminal window and the blender command should work as expected:

echo "alias blender=/Applications/Blender/blender.app/Contents/MacOS/blender" >> ~/.profile

What this command does is add the following line to the end of /Users/SteveW/.profile:

alias blender=/Applications/Blender/blender.app/Contents/MacOS/blender

I strongly recommend to not mess with PATH or any other environment variable for this, it only makes things more complicated, there's no reason to do so when you set up the alias correctly.

On recent versions of macOS, .profile is not used. Use ~/.bash_profile  instead.

echo "alias blender=/Applications/Blender/blender.app/Contents/MacOS/blender" >> ~/.bash_profile


I don't seem to have blur node, using v2.69 Following along in tutorials I see the blur filter being used. I am using Blender 2.69 and I can't locate it visually or even with a search. Actually, there is no "Filters" category at all.

Do I have to download something to get it?

The "Blur" node is only available in "compositing" node tree type. The type can be chosen at the bottom menu-bar of the Node Editor window.

The 3 little icons correspond to the 3 node tree types available :

Shader nodes (for materials)
Compositing nodes
Texture nodes


Is there an easy way to turn parrent child objects into rigged objects I'm having technical drawings, with a lot of mechanical parts. (think of robotic arms)
Initially, I have it set up as parent-child objects,  chains of parent-childs.
Sometimes chains as deep as 8 objects, since the base drawing wasn't blender, I had to do a lot of modification to fix all axes for all involved objects.

As I'm already a bit behind my schedule, I know animation with bones would go faster, (the other option is without bones, but making use of all relative rotations between parent & childs.

I just wonder if there is a quick way to turn hard objects into a rigged system based upon origins and the rotations in the parent-child chains. (ea I know quite good how to rig people with rigify, and in general I've used bone systems a lot, but those robotic rigs are a bit of a returning headache in my workflow especially when the drawing wasn't originally started in blender.

(note i cannot share this file).

A script to create an armature, create and place each bone at the objects and child objects positions. Then it makes each object parented to the respective bones (bone parenting).

Note that the script will loose the previous parenting hierarchy as an object can only have one parent.

From that if you want rigged objects, not just bone parents, simply select them all and parent to the armature.

Script principles:

Create an armature at the parent object location with same transformations
Parse the object hierarchy and create an edit bone for each object, recursively
Parse again in object mode to make the parenting to each object

Nearly each line is commented below. But if questions, please ask.

import bpy
from mathutils import Vector, Matrix

#Create the armature
def create_armature(object, collection):
    armature_data = bpy.data.armatures.new(object.name)
    armature = bpy.data.objects.new(object.name, armature_data)
    armature.matrix_basis = object.matrix_basis
    collection.objects.link(armature)
    return armature

#Create the bones
def bone_from_hierarchy(object, armature, parent_bone = None):
    #Create a bone parented and disconnect to its parent
    bone = armature.data.edit_bones.new(object.name)
    bone.parent = parent_bone
    bone.use_connect = False

    #Get its transformation matrix inside the armature from the object matrix
    matrix = armature.matrix_world.inverted() @ object.matrix_world

    #Place head and tail
    bone.head = matrix @ Vector()
    bone.tail = matrix @ Vector((0.0, 0.0, 1.0))

    #Recurse through the children objects
    for child in object.children:
        bone_from_hierarchy(child, armature, bone)

#Parent the objects to the armarture
def parent_from_hierarchy(object, armature):

    name = object.name

    #Get the pose bone
    bone = armature.pose.bones[name]

    #Keep the object position
    matrix_world = object.matrix_world.copy()

    #Parent it
    object.parent = armature
    object.parent_type = 'BONE'
    object.parent_bone = name

    #Make so we can unparent and keep object's position
    bone_matrix = Matrix.Translation(bone.tail - bone.head) @ bone.matrix
    object.matrix_parent_inverse = (armature.matrix_world @ bone_matrix).inverted()

    #Assigns its position
    object.matrix_world = matrix_world

    #Recurse through the children
    for child in object.children:
        parent_from_hierarchy(child, armature)

def make_bone_hierarchy(object):
    if object:
        armature = create_armature(object, object.users_collection[0])
        #Enter edit mode for the armature in order to create edit bones
        bpy.context.view_layer.objects.active = armature
        bpy.ops.object.mode_set(mode='EDIT')
        bone_from_hierarchy(object, armature)
        #Back to object mode
        bpy.ops.object.mode_set(mode='OBJECT')
        #bpy.context.view_layer.objects.active = object
        #Parent the objects to the armature
        parent_from_hierarchy(object, armature)

root = bpy.context.view_layer.objects.active
make_bone_hierarchy(root)


Weird geometry when using Mirror + skin modifiers I'm following a course from CGCookie (Basics of character modelling). I'm trying to pull one of the vertices backwards:

there's a mirror modifier on, as well as skin and subsurf.

All the geometry gets warped:

Same thing happens when I'm trying to extrude another vertex from the bottom one.

Can anyone please help? I tried asking the question on the course's page, but the mods deleted it for some reason.

Skin Modifier is generating the geometry from the root vertex (marked with dashed circle around it), and if its not on the mirror axis that will generate mesh errors.

To fix that select the vertex of the groin area and in Skin Modifier click Mark Root.


Why does my smoke domain stretch the simulation? Trying to set up a basic simulation and hitting a few problems.
Will separate out into a few questions though.
My first issue is when I resize the domain object for a simple cube using quick smoke, the simulation stretches with it and doesn't refresh. I'm using eevee, but nothing changes in the other render engines.
Thank you

When resizing any object relating to a simulation (domain, flow, rigid body, etc.) you should always Ctrl+A, Apply Scale to ensure Blender is aware of it's new dimensions (actually, whenever you rescale anything it's generally a good idea to Apply Scale anyway - uneven scale can cause all kinds of problems with simulations, texturing, etc.). In your case, you should just need to Apply Scale and then re-bake the simulation.


Follow Path and Track To constraints together I've got a camera with a follow path constraint:

Throughout the animation, I'd like to be able to make the camera point at something in my scene, rather than forward along the curve. For example, I'd like to make the camera look at Suzanne as it rounds the corner in the top right of the screenshot. This should be a smooth transition from pointing forward along the curve, to point at Suzanne, and back to forward along the curve.

I've tried parenting the camera to an empty, and tracking to the empty. The idea was that the empty would come along for the ride with the camera, but it could be moved off toward Suzanne as it gets close to the corner.

With the following constraints the camera follows the path, with the influence of the Track To the camera can be directed to the target object. The influence can be keyframed by hovering and press I.

Demo blend


How to find the best place to set up the vanishing point axes in fSpy? I'm aiming at the accurate recreation of this shot in Blender using fSpy.

I'm struggling to find the best place to set up the vanishing point axes.
This is what I have done so far.
https://prnt.sc/ubxvco
If I put that fSpy file in Blender things are close but not quite right.
https://prnt.sc/ubxxmw
Should I just go with what I have and try to fudge it, or have I just picked an image that is impossible to analyse?

Fspy calculates the camera placement and field of view based on perspective, by tracing lines that would be straight and parallel in the real world, but in an image they converge towards a Vanishing Point.
So try to find the lines that give you the best sense of perspective and fspy will do the rest.
In this case the vertical lines of the building would work fine (most buildings are indeed vertical), and it gets a bit trickier on the street.
The lines you are using are setting in fspy seem too short, specially the vertical ones, extend the lines so that you trace most of the building.

Set the horizontal lines a bit further apart so that you get a better sense of the perspective.


Origin of selected group of vertices is in odd position, why? The pictures are pretty much self explanatory:

Points of the circle are clearly equally distributed but still when I select them all in edit mode the origin of selection is not at the center of the circle! And this creates great problem like asymmetrical scaling as shown below:

So why is this happening and how to get rid of this problem?

From your screenshot I see that you have selected 147 vertexes.

But it's looks like your circle has 32 vertexes. So I conclude that some of vertexes are off screen. But if it's not so, I think some vertexes are "doubles", that means you have several vertexes on same position. In this case you can:

Remove double vertexes (menu W -> Remove Doubles)
Or use Bounding Box center instead of Median point as a center of transformation (,):


How to lock texture tile size while painting? I am a new to the blender.
While I was painting texture to the mesh surface, I noticed that if I move camera(view) even a little bit and paint again, the new painted area texture tiles are different sizes than other previous painted texture tiles. If I zoom the camera and paint, texture tiles are smaller in the mesh surface, If I zoom out texture tiles are bigger.

How could I lock the texture tile size so that if I zoom in or zoom out, it doesn't affect to tile size?

I found a partial answer. If you want to keep the tile size same while texture painting, you should paint textures only inside of the UV editor.

Unwrap your mesh.
Change your view to the "UV/Image editor".
Select "View" and change it to the "Paint".
Then go back to the "3D View" and select the "Texture Paint".
Go back to the "UV/Image editor" and now you could paint textures directly to the texture atlas.

You could control the tile size by adjusting the Brush Radius.


Not rendering in object mode I'm completely new at blender and yesterday I followed a tutorial and everything turned out fine, not a single problem.
So I wanted to try and make something myself, now the only problem is, when I try to render it, I don't see the object.

Here is the .blend file:

http://www.pasteall.org/blend/31320

Please keep in mind that I'm completely new.

IMG1: This is what it looks like when I choose the "Only render" option in "edit mode"

IMG2: This is what it looks like when I choose the "Only render" option in "object mode"

IMG3:And this is what I see when I render it..

Duplication options segment is for telling Blender whether it should be rendering object itself or instances of child object assigned to it.

Parent and child has "None" selected. Objects are rendered as in viewport:

Parent has "Vert" selected in Duplication objects. It will be not visible. Only child Sphere instances will be rendered, without original Sphere. Sphere has to have "None" selected, as it do not have child objects assigned that could be duplicated.

In Your file, object has not any child nor parent, so it should be set to "None". "Only render" option is for viewport displaying only. When checked it displays only object that are selected to be rendered (camera icon in Scene Outliner - top, right panel). It is helpful for temporary clearing viewport from helper objects, grids, manipulators, lamps etc.

I uploaded a blend file with example: http://www.pasteall.org/blend/31324


Can object parameters be set from data file? I would like to do 3D animations.

M spheres appear moving around and rotating along N frames (all spheres will appear in every frame).

For each sphere at every frame, these values are saved in a text file, which I'd like Blender to read:

position
angle rotation

Is it possible to read this file from blender, (so that Blender will create N frames and move and rotate at each frame the M spheres with the data read)?

I can write the file with the positions and angles in the most easily format to perform this. Eg. csv file:

time step | sphere number | x | y | z | mx | my | mz

(where m is refered to the rotation components)

Using a data file to control position and rotation can be done using the animation nodes add-on.
If this is not installed, then install it from the Git repository

To install the animation nodes, see http://animation-nodes-manual.readthedocs.io/en/latest/user_guide/install/install.html

Tested in Blender 2.77

To start, create a simple scene with a sphere and a plane. Add a material to the sphere so rotation can easily be seen.

Open the node editor, switch to the animation node mode, then create a new animation node network.

Add the 'Compose Matrix' and 'Object Matrix Output' nodes. Connect the matrix output to the matrix input. In the 'Object Matrix Output' node, set the object to the sphere is the scene.

At this point, if you change any of the values in the 'Compose Matrix' you should see the sphere move, rotate, or scale.

Add a 'Combine Vector' node and a 'Combine Euler' node. This will expose scalar values that can be used set. In the 'Combine Euler' node set the 'Use Degree' check box.

Once again, changing these values will move and rotate the sphere.

The next couple of steps will add the logic to convert a string into a vector. Add a 'String Input' node, a 'Split Text' node, a 'Get List Element' node, and a 'Parse Number' node as shown. Also 'Debug' nodes can be added to see what values flow through the node network. The 'Split By:' value should be set to ',' (a comma).

Now changing the inputs string, which is CSV separated, will change the location of the sphere.

Create the input file for location and rotation. It should look something like the following. Save it to 'sphere-1.csv' in the current directory.

The next steps will replace the string with the input from a file. Delete the 'String Input' node. Add a 'Text File Reader', a 'Split Text' node, and a 'Get List Element' node. Change the 'Split Text' to use 'Lines' to separate the text file.

This will set the x position of the sphere to the value of the 1st line in the 'sphere-1.csv' file. To animate this, add a 'Time Info' and 'to Integer (floor)' node.

To see this animation work, open a timeline panel and set the start to 0 and the end as 12. This will then only animation the first 13 lines in the data file.

If animated, the result will be the following:

At this point, all of the pieces are in place to translate and rotate an object. The next step is to hook up all of the information from the file to the object. Extend the previous network into this one.

The result of this network should be the following animation.

To animate multiple spheres, the animation logic is converted into a 'group' which has a file name and object as the input.

Add a group to the network. Connect the output of the group to the path and to the object. Then add a group instance. This will behave just like the previous example. The difference is that that group instance passes the path name and the object to the group. This group can be reused.

Add three spheres to the scene and create the three more data files with location and rotation like 'sphere-1.csv'.

Add a 'Create String List' node and populate it with the files names with the data for each sphere. Add a 'Create Object List' node and populate it with the name of each sphere. Add two 'Get List Element' nodes. Add a 'Loop Input' node. Connect all of this so the 'Loop Input' is used to specify the 'Index' of the object and data file for each iteration of the loop. Finally, add a 'Invoke Subprogram' that points to the loop and has 4 iterations. The part of the network is shown below.

The entire network is shown here:

By adding more data to the input files and setting the last frame in the animation larger, an animation like the following is generated.

This blend file can be downloaded here:


How to make camera continuously move along the circle path? In my scene I have a circle (curve) and a camera, attached to it via CTRL+P > follow path.

How can I make the camera continue moving along the circle, after the first loop ends?

Don't attach camera to curve. Unparent  it and use the follow path constraint on the camera. Set the camera coordinates to 0,0,0 (this should put the camera on the path, if not you can do it manually. Check follow curve, then set the camera rotation. This should work.

here is what mine looks like:


How to add a Texture to a Material using Python? It looks like it would be easy to add a texture to a material using Python, but no matter what i do i cant figure it out!

I can create a texture using:

bpy.data.textures.new("NewTexture", type='IMAGE')

and I can create a new material texture slot:

bpy.context.object.active_material.texture_slots.add()

However i can't link the texture to the Material Slot Texture. I have tried looking through the python API but nothing is working. I would be eternal grateful if someone could point me in the right direction.

Similar to material_slot.material, there is a texture_slot.texture

(I'm assuming Blender internal from the texture_slots.add in q)

mat = bpy.data.materials['Material']
tex = bpy.data.textures.new("SomeName", 'IMAGE')
slot = mat.texture_slots.add()
slot.texture = tex

A simple example using Cycles can be found here https://blender.stackexchange.com/a/14115/15543


How to "Reverse Engineer" mesh created out of smooth curves with a missing chunk? I have a model that needs a little mesh patching which has been imported from a .stl file. It seems like the model started off with a nice curving face made out of triangles, which was then cut through and patched to add features. The goal is to remove those features and bring the model back to its original curved face by adding/removing vertexs where they need to be. Below is a quick example as to what currently needs to be patched.

The selected hole will need to have the already existing sweeping curves reintroduced in order to look as it did before, as seen below.

I've tried to do a few methods in patching over the hole, such as bridging the edge loop, grid fill, and just adding a face over the hole, but it seems like the new faces created looked flat instead of following the contour of the model. grid fill may do the trick, but I may end up dealing with a miss count of vertices on all four sides of the grid layout. I believe shrink wrapping a subdivided plane over the hole worked pretty well, but causes plenty of odd looking geometry. Any thoughts?

You can fill holes in curved surfaces like this either with extruding with snapping set to Vertex or using Mesh:F2 addon.

Using F2

After enabling add-on, select vertex in the corner of the hole and hover mouse cursor over hole (mouse position matters regarding to where face is created if there are several possible ways).
After that press F to fill the face. Continue until finished with other vertices.
Split uneven parts of hole to make it of square / rectangular form. Once it is use Ctrl+F > Grid Fill and choose options to have clean topology.

See more about filling faces with F2 addon: Make quad face from where two edges will meet?

Extruding and snapping

The same could be done with extruding with snapping turned on and set to Vertex as element to snap to. Fill the surface until the hole is rectangular and then use Grid Fill.


Edit mode cursor is too small too see Just updated to 2.83. Before this I know that there was an option in the interface to tab of the preferences to enlarge the edit mode cursor. Now I can't find it and am losing sight of the cursor every time I tab to edit mode.
Did the developers move the option or was it removed. Is there any other options to improve the cursor visibility.

They removed it for 2.83. Users were complaining that it didn't scale well, and I don't think it worked on mac at all (the checkbox was there, but the cursors did not obey).
What they opted to do was remove, and relegate control of all the cursors back to the OS.
In windows 10 you adjust it like this (for some reason the cursor does not appear on screenshots - you'll just have to take my word for it):


Python: Store rotation / normal in bezier curve point? Still trying to visualize a game file format in Blender, I think I reached a limit of what I can do with Blender Bezier Curves.

The game file format defines the coordinates of the curve point and the two handles. It additionally, however, defines a rotation of the curve point, basically a normal, because it needs to move and rotate objects along the path the curve forms.

Is it possible to store a normal in a Bezier Curve Point?

I didn't find anything like a normal / rotation for bezier curve points in the documentation.
Also, curves don't seem to support custom data layers like with the BMesh API where I could at least store the original normal information. Also it would be hard to edit those normals then visually.
I think it would be a monstrous task for someone who has never worked with the Blender C(++) codebase to add a new object type supporting that, or is it possible to relatively "easily" add normals to curve points or derive a new curve type from the existing one, just adding this information and keeping big parts of the base curve class?

Bezier curve objects can store a property called tilt.
It is basically a per point rotation value or normal that controls it's twisting on a per.vertex basis.

It can be set through the UI in edit mode under the Properties Shelf > Transform > Tilt or through the Python API with bpy.types.BezierSplinePoint.tilt

As far asI know curves don't support arbitrary data layers per vertex like BMesh does, but I may be wrong.


Why don't my renders reflect the updated scene? I have a fairly simple scene with an object that had some weird artefacts due to the weird topology:

...which I mitigated by separating it into 2 standalone objects, hoping that'd give me a cleaner render:

But every time I render in both Eevee and Cycles (the final render needs to be in Eevee) I keep getting the old render (see first image) that won't reflect the changes I made.
I've come across threads mentioning how disabling the Sequencer option in the post-processing tab should fix it, but I still have the issue even with it disabled. Which is weird as I only have audio strips in my Sequencer:

Any help in troubleshooting this would be massively appreciated!
[Edit]
After trying to troubleshoot it, the issue doesn't seem to be related to the sequencer, but the actual material, which seems to be blending with an unrelated PBR one in my file. (SSGI v1.4 addon enabled for context):

Seems like you have double geometry. Try selecting the object and moving it to see if you have overlapping objects or entering the Edit mode and selecting an island of geometry with L while hovering mouse over it to see if you have double geometry in a single object. It may also be that the double geometry is connected so you might need to grab a face or an edge and move it to see if they have duplicates beneath.


What is the difference between a UV Sphere and an Icosphere? When working with or adding meshes, I've seen UV Spheres and Icospheres being presented to me. What are the differences between them, when should either be used and is there anything I should take into consideration if I want to have them render cleanly?

The major fundamental difference is how each sphere is modeled. The UV sphere, somewhat like latitude and longitude lines of the earth, uses rings and segments. Near the poles(both on the Z-axis with the default orientation) the vertical segments converge on the poles. This sphere is useful for projecting terrain onto planets and/or complex modeling as it is readily subdivided even after being created, and maps onto equirectangular projections (plate carrée) readily.
The icosphere uses a different approach. A polyhedron is made with triangles which are placed(at various subdivision levels) as an icosahedron (thus the name) and more finely-subdivided solids. All faces have the same area, which may be useful for certain types of UV mapping containing non-organic textures. An example that comes to mind is an isocahedral die or billiard balls where stretch must be minimized near the point where the number is printed onto the ball.

A conparison of UV and icospheres. UV spheres are on the left. Going downward, the subdivision levels are increased. 10 rings, 3 segments; 16/8, and 32/32 for UV spheres, and subdivision levels 1,2, and 3 for the icosphere. Default BI material is used, and light is directly behind camera.
Source: manual page and experimentation with UV mapping.


Keep object in the middle of two other animated objects I need to animate and move the turret between the two outer objects.
So the two empty outer objects are moving around in an animation. I need the turret to stay exactly between the two points.

I have limited blender knowledge and tried constraints, but failed.

This is easy to achieve with the Copy Location constraint.

Select the turret and add two Copy Location constraints - set the target Object of one of them to the first Empty and the other to the second Empty. Then simply slide the Infuence on the second constraint to 0.5 and the turret should move into the middle of the two empties.

The first constraint is simply to ensure that the start point is at the first empty (you could alternatively move it there manually and parent it to the first empty - then you would no longer need that first constraint). The second constraint moves it from its current location (the first Empty) towards the second Empty but the reduced influence means that it only actually moves half way there.


OpenCV and Blender for use in Broadcast We are a high school broadcasting team looking to up our productions for all of our shows. We are looking to specifically improve our american football productions, as those are some of our big shows. One common element in an American football game is the yellow first down marker. As you can imagine, this is an extremely difficult thing to accomplish for two main reasons:

Keeping the line in the same place as the camera moves is difficult to achieve.
Getting the line to go under the players and not on top of them is difficult.

We have figured out how to place the line under the players using chroma keying on our switcher, so no problem there. There problem is keeping the line in place. We are looking into motion tracking to achieve this, and stumbled upon something called OpenCV. It is essentially an open source video tracking/interpretation software. It has enough power and acceleration to run in real time.

We are looking to do something like this:

Take live video feed from a Decklink card into Blender
Place a 3D model of the football field over it, and use OpenCV to track it to the field.
In the 3D model layer, or with a layer parented to it, have our graphics play.
Send ONLY these graphics back out to our switcher for use in broadcast.

Everything having an SDK (The video card) or being open source (Blender, OpenCV), does this sound like something that could happen? What issues could arise with it?

Thank you

This paper details the solutions and challenges, as well as some technical information to how we completed the project.

https://drive.google.com/open?id=1deBHSbWQEG0gIO_ZPd8jKtOnZp0k2a_F


White Image appearing grey when saved as RGBA I have a bit of a problem with my blender project.
I need to render this as a transparent animation, so I'm using RGBA on PNGs
The issue is that, whenever I save the white image as RGBA, it appears slightly gray.
Below are the RGBA image and RGB image, from the same render. Why will the color change so much simply by changing the image "save as" format?

So after much trial an error, I was able to fix this by changing the exposure value from 0 to 1 in the color management tab.
This was the only way I could get my RGBA image to appear pure white, like the RGB image was.
Thanks guys


Why my exported UV map is different in size? I did unwrap my mesh which consists of several parts. I did an export using EPS file format, then I applied several images to all the faces in Adobe Illustrator.
When I try to import the texture back into Blender the map is slightly off or just out of scale:

Q: Why the export is different in size? What am I doing wrong?

Don't use EPS to transfer UV maps - it only exports the occupied area.
Use SVG instead, it exports the whole UV canvas.


Rigify posing library Rigify is seems to be a popular plugin for rigging. If a person is using human rigging based on the Rigify, are there any pre-defined poses or library for posing?

As Rigify is a very flexible tool, a pose that works for a Rigify Character will not work with a different Rigify Character. To transfer poses (and animation) from a rig to a similar one you should do a "retargeting", which is an option that some softwares have (like UE4), but not Blender, unless there is some addon that I don't know.


Physic-based fur/hair on an already animated model from an external software (Source Filmmaker)? So, I was looking up tutorials on physic-based hair or fur in Blender. However, while I found a ton of different tutorials on the subject, I couldn't find one where you could just overlay the fur or hair onto an already animated model. I'm already relatively familiar with animating in another software known as Source Filmmaker (SFM), and I find it far easier to use than Blender. However, it is also severely outdated, so it would simply crash if I were to use a high-poly model. I was thinking I could take the animation I made in SFM and apply it to a high-poly model in Blender, and then add the fur/hair to it. But I really want the hair or fur to be physics-based, not static. Is there any way to do this? Or would it just be easier to learn animation in Blender?

I'm not sure exactly how I can help except point you to a tutorial: https://www.youtube.com/watch?v=yxbW5mCdHLg
Animation import as fbx will work.