My texture won't show up on the object I am designing a simple tent in Blender. I created a prism from a cube. Then, I added a material and a texture, and UV-unwrapped the prism. But the texture won't show up on the prism. I made double sure I had enabled material / texture mode in the view mode - that didn't help. Here is the blend file with the texture included - I really tried everything I could find in the internet to make that texture show up, but without succes … You are my last hope … Apologies if I missed something obvious.

You need to tell the shader what texture to put on the cube.  Add a Texture Coordinate node and an Image Texture node to your shader:


How can I use blender's python API from a Ipython terminal or Jupyter Notebook? I would like to have a python notebook running on my localhost:8000 that i can execute bpy scripts with... and see the resulting change in my other monitor which is running blender.

Normally, I would have to import a script into the "Scripting - TextEditor" view and hit "run script".  Is there a way to bypass this interface?

One of the most important things to be aware of is installing the correct version of the tools:
Using the current 2.91 Blender version we should use Python 3.7. We can install that using Anaconda3 2020.02 from exe, list of packages.
After that we need to install the blender kernel from here, using the following command in anaconda terminal:
python -m pip install blender_notebook
blender_notebook install --blender-exec="C:\Program Files\Blender Foundation\Blender 2.91\blender.exe"

Now, when we start Jupyter Notebook we can select blender kernel.
First, you need to import the Blender specific library bpy:
# blender related imports
import bpy

After that, we are able to use many examples, already available out there.
I've made an example Jupyter Notebook on this topic, available here
See the discussion and plans on updating blender's python version here.


Normal Map only visible on single Shape Key? Is there a way to make a normal map for facial wrinkles more/less visible with certain shape keys? I've seen something like this on youtube, but I haven't been able to determine how it was done.

I've got a character that I want to give big smile wrinkles, but I don't want the character's basis to be that smile. So the smile wrinkles shouldn't be visible until the shape-key I specify.

Thanks.

As Scott commented you can drive the Normal Map strength with the value of the shapekey. Right click with your mouse the Value of your shape key and select Copy as New Driver.

Next, right click the Strength value of you Normal Map node and select Paste Driver.

Now the strength of the normal map changes as you change the value of the shape key.


Objects Disappear when using Cycle Engine GPU: Geforce GTX 1060 3GB
CPU: AMD Ryzen 5 1600 Six-core Processor
When i switched render engine from Eevee to Cycles, the object disappear in the viewport and also disappear in the render. I tried solutions from other forums and still did not solve this problem.
What i've tried:

Checked to see if i disable or enable render visibility in the OutLiner. In which i checked that it is all enabled and still does not work.

Checked if i accidentally pressed "H" to hide objects and to unhide them using "Alt H". I double checked this by trying it while its using Eevee Engine and again while it is on Cycles Engine. Again, this does not work.

When rendered with the Eevee Engine ^

When rendered with the Cycles Engine ^

The Blend File ^

Please post a blend file to reproduce.
chances are your material is off , your cycles visibility is off, or something else is off.
Edit:

See that arrow thing bouncing up? that's indirect, and it says it only uses shadows if that is selected. I turned it off on Collection1 and your blend file now works.


generate an event or function callback when a stringproperty is changed via user interface I have defined a StringProperty as:
StrParents = StringProperty(default='-1 ',update= GetParent),
and used prop to display the property in a panel as:
layout.prop(item, 'StrParents', text='parents').

I would like now to make some actions (i.e: call a function X()) if the StringProperty was changed from inside the code. And doing another action (i.e:call a function Y()) if the StringProperty was changed from the user via the panel.

How can I achieve such that requirement?

I suggest looking at the context properties, for instance in this example context.area.type.  If scene.x is changed in the console it prints CONSOLE, a panel in the properties panel PROPERTIES etc.  As a test, print the context.copy() dictionary to find what suits for your needs.

import bpy

from bpy.props import StringProperty

def goober(self, context):
    print(context.area.type)
    return None

bpy.types.Scene.x = StringProperty(update=goober)


Incorrect context for bpy.ops.screen.frame_jump.poll() I have a problem with the context being incorrect while i try to work with both the animator and do renderings.

I have a script where i would like to do a bunch of renders of the same object dropped in different positions using the physics engine. The problem is that after rendering i can not get the right context to work with the timeline.

Here I can show an example of my problem (I have removed a bit of code which basically remove handlers when they are no longer used, etc. in order to make it more readable)

First i will call this generate image function. Everything works fine and the animation resets and plays. No problem

def generate_image():
  scene = bpy.context.scene

  # Add the handler to know when rendering should be done
  bpy.app.handlers.frame_change_post.append(stop_at_last_frame)

  # Reset the animation (to before physics)
  bpy.ops.screen.frame_jump()

  # Move objects randomly around before dropping

  # Play the animation (run the physics system)
  bpy.ops.screen.animation_play()

The stop_at_last_frame is called when the animation is finished and all physics simulations are done. It looks like this

def stop_at_last_frame(scene):
  if scene.frame_current == scene.frame_end:
    # Stop the physics engine this is omitted for readability
    # Call on render done when rendering is done
    bpy.app.handlers.render_post.append(on_render_done)
    # some setup here is omitted
    bpy.ops.render.render('INVOKE_DEFAULT', write_still=True)

When rendering is done this final callback function is called, which simply starts the process all over

def on_render_done(scene):
  # Keep generating images
  generate_image()

Now when the process starts all over and generate_image() is called after the render, i get the following error

RuntimeError: Operator bpy.ops.screen.animation_play.poll() failed, context is incorrect

This happens basically for all operations using the timeline.
It seems that something has happened to my context during rendering which i have to "reset". However i can not really see what i have to do here.

OK so I found a solution for this.

It should be noticed that I just needed to run everything as a script. I however thought that the UI would help me debugging, hence i tried to run it all from within blender.

The solution was to actually run blender in background mode, and not using bpy.ops for anything else then rendering.

blender blender_file.blend --background --python script.py

When running in background mode, I do not need all the callbacks to know when stuff is done, since the code is no longer async.

Now to do the physics simulation and then render I can simply do the following:

# Reset to first frame
scene = bpy.context.scene
scene.frame_set(0)

# Run the physics simulation
for i in range(250):
    scene.frame_set(i)

# Render image
bpy.ops.render.render(write_still=True)


Render issue - Model doesn't appear to be on any layers and won't render Really odd on this... using Blender 2.75... I started modelling and lost the objects from the 3d view, but they were still showing in the object lists on the outlier... I was able to copy them and continued working... when I did a test render I discovered that only the original lost objects were rendering and nothing that I had modelled over the previous 2/3hrs was showing up...

I have no idea what I did but I created another 3d view and the original bits showed up along with the layer buttons which had been missing from the screen which I thought was just a new feature from  2.75...!

Picture to show the 2 screens, top one doesn't render but bottom one does

Any idea's what I've done?

Apparently, it was a simple mistake - I entered Local view, by mistake; to exit it, I just had to press Numpad /.


use python to randomly inset each face, bmesh? I would like to create some interesting shapes with a script. I'm still pretty new to python and I'm having trouble understanding how to get BMesh to behave the way I want. Here is what I'm trying to accomplish.

Randomly inset faces a random length, with some not being inset at all.
Advanced function: randomly inset again excluding the 4 faces around original insets (if that makes sense)

import bpy
import bmesh
from random import randint, random

obj = bpy.context.active_object

bm = bmesh.new()
bm.from_mesh(obj.data,face_normals=True)

for faces in bm.faces:
    if randint(0,1) > 0:
        bmesh.ops.inset_region(bm, faces=bm.faces, thickness=0.4, depth=randint(0,1))

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

Here is an idea of what I'm going for generated from a cube.

You can't loop through bm.faces, because you are creating more faces in the loop, which are also iterated over. Instead make a copy of the faces

faces_copy = [f for f in bm.faces]

Now, your code would give us the following result.

Notable problems
- Insets, even at 0 depth.
- Your example image shows and inset with 0 depth and then a random extrusion.

Let's implement that. Luckily, after a inset_region operation, the face index stays the same so we can simply extrude it by insetting another time and moving the face's vertices along the face normal.

bmesh.ops.inset_region(bm, faces = [face], thickness=0.4, depth=0)
bmesh.ops.inset_region(bm, faces = [face], thickness=0, depth=0)
bmesh.ops.translate(bm, verts = face.verts, vec = face.normal)

Now lets add the randomness:

import random
#[...]

bmesh.ops.inset_region(bm, faces = [face], thickness=random.uniform(0.1, 0.9), depth=0)
bmesh.ops.inset_region(bm, faces = [face], thickness=0, depth=0)
bmesh.ops.translate(bm, verts = face.verts, vec = face.normal * random.uniform(0.1, 4))

Iterations

We need to catch the newly "extruded" faces. Luckily inset_region returns geometry. We can create a new face list like this:

geom = bmesh.ops.inset_region(bm, faces = [face], thickness=0, depth=0)
new_faces = geom['faces'] # list of bmesh faces

Create an empty list for the new faces. After the insetting and extrusion, we'll add the active face and the extruded side faces.

new_faces.extend(geom['faces'])
new_faces.append(face)

Complete code (with two iterations):

import bpy
import bmesh
import random
from mathutils import Vector

obj = bpy.context.active_object

bm = bmesh.new()
bm.from_mesh(obj.data,face_normals=True)

# faces, which could be extruded
faces_copy = [f for f in bm.faces]
new_faces = []
# number of iterations goes here
for i in range(0, 2):
    for face in faces_copy:
        do_inset = random.randint(0,1)
        if do_inset:
            bmesh.ops.inset_region(bm, faces = [face], thickness=random.uniform(0.1, 0.9), depth=0)
            geom = bmesh.ops.inset_region(bm, faces = [face], thickness=0, depth=0)
            bmesh.ops.translate(bm, verts = face.verts, vec = face.normal * random.uniform(0.1, 4))
            new_faces.extend(geom['faces'])
            new_faces.append(face)
    faces_copy = new_faces
    new_faces = []

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

The concept is pretty cool, but it already show, that we need to implement a method to take the faces size into account before using bmesh.ops.translate.


How to fix messed up vertices after sculpting a model I just started learning to sculpt a model in blender. When I was finished and had switched to edit mode, I ran into a problem

A lot of the vertices were messed up like this. The decimate modifier just messes it up even more.

Is there any way to fix this, I am kinda new to sculpting so I have no idea?

You can use remesh modifier or remesh option from properties or any other tool like instant mesh
Mesh at start:

Remesh Modifier:(make sure not to drag voxel size too quickly or blender will crash)

Remesh option in blender:

Result of remesh option:


how to selectively show indices as developer One can choose to "show indices" of the vertices of a mesh when in edit mode.  However, when there are a lot of them, you can no longer read individual ones, it becomes a giant cloud of indices.  I would like assistance in coding an add-on that would allow one to add a boolean value to indices that you define (if defining them in python), so that when, as developer, you request to "show indices", only those indices that you've indicated you are interested in are the ones that get marked.  Perhaps this functionality exists already?  If it doesn't, help in finding the code of the existing functionality would go a long way to helping determine how easy or hard this will be..

This is not directly, what you asked for, but it may help anyway:
Only the indices of selected vertices are displayed. You may write an add-on, that selects only the vertices with certain indices to achieve what you want to.


Eyes won't show correctly (Overlapping?) (Transparency Issue?) I have these eyes & there are eyeballs & eyes. The eyeballs are meant to be transparent, & there are until I add the eye? So the black eyes themselves are transparent but once I add the white it just does that as shown in picture 2, so I need the eyes to show.

These are the nodes, the 1st one is the eye & the second one is the actual eyeball.

Eevee treats transparent objects differently than Cycles. They are sorted from front-to-back per object and do not receive any screen space effects.

This is fast and works fine for many cases, but it is only approximate and gives incorrect results for some object shapes. For more accurate results, enable Alpha Hashed transparency in the material. With a sufficient number of samples to resolve the noise this gives accurate transparency.


Is there an option to turn off the save prompt before quitting in 2.8? Seems that now Blender 2.8 is asking if we want to save before quit providing three options: Save, Discard and Cancel.
However, my workflow is fast and I'm more bothered by these questions, especially when I want to load another blend file really fast.
Is there an option to turn off this?

Yes, you can choose to loose all of your work by not saving (and be unbothered), if that is what you want to do...

Disable the Save Prompt on the system preferences>Save and Load section.


Boolean Union Doesn't Work All I'm looking to do is union join two meshes together. They're not overly large or complex and I can't find any faults with them (Mind you I'm new to this). If anyone can help I'd be very grateful! It shouldn't take long at all for anyone with experience.
The file is linked here.

The inner mesh Ear Deco has overlapping faces.

Go into edit mode Tab. Select B and hide H the outermost faces. You will find additional faces inside the mesh.

Go into face selection mode Ctrl + Tab > F, select the unnecessary internal faces and delete them X.

The boolean modifier will now work.


Make texture visible in sunlight I would like to make my textures visible in sunlight. I adjusted the exposure but that didn't help:

Right now when sunlight hits my textures they turn white. I want to be able to see the texture even in bright sunlight. Like in this image:

By the way I am using a free HDR (downloaded from poliigon.com) to light the scene. Increasing the roughness also didn't help. Any help would be appreciated. Thanks.

PS The first image, excepting the HDR, is my work, the second image was downloaded from poliigon.com

"I adjusted the exposure but that didn't help"... maybe you mean: I didn't adjust the exposure "enough".
"My textures they turn white"
But what is white anyway?
In the case of digital images, "White" is not a color, it is just the limit of what the display can deal with, in other words it is when the data has reached the top of the scale (from $0$ or $100$%) in all three channels. If you want to have detail in the highlights, those highlights should be at a lower value than $100$%. Brighter values are ignored or "clipped", in other words, the display cannot show anything brighter than "white".
What should you do to get detailed highlights?
There are many approaches:
The first step is to evaluate the brightness or "exposure" of the scene. Use the "False Colour" setting in the color management section to view how hot the scene is. Very bright values will be displayed in red, and "blown out" or clipped values will be colored as white.

Or use the vectorscope on the Image Editor to see up to what point the highlights are being "clipped" (usually you can see a horizontal line at the top of the scale)

If you are lighting the scene with a HDR image, use the "strength" slider on the world/surface to bring the values to a point where the texture is not "blown out", or it falls within the limits of what is displayable.
Same scene but with lower strength on the environment texture:

Vectorscope and False Colour show that the highlights are not clipped anymore

The trade-off is that, in order to get detail on the highlights, the rest of the scene will go dark too. That is quite normal: it is hard to light a scene with a very large dynamic range, like the one you are showing, without additional lighting or re-interpreting the brightness values, or some other trickery.
In real life, a photographer would need to add powerful light sources inside the room to be able to capture detail in the highlights on the clouds, and the detail of direct sunlight in the room, plus the detail on shadows that are darker by several magnitudes. You could add some light sources to enhance or recreate the illusion of "realism". Those sources can be placed to recreate how the light coming from the window would bounce on a room.
Next image shows the same scene, with an area light placed where the direct sunlight illuminates the floor. Note that the area light illuminates only in one direction, and is set to be invisible to the camera using "is camera ray" on a Light path node:

A different solution would be to use the same HDR image to light the scene, and use nodes to make the camera see the same image at a different intensity in the background. As explained here: https://blender.stackexchange.com/a/113945/92768.
Or you can use the ASC-CDL node to change how the values of the scene are interpreted for the final image. As detailed in these links: https://blender.stackexchange.com/a/69615/92768 and https://blender.stackexchange.com/a/57927/92768
Here's the same scene again, with the original values that caused clipping, but interpreted through the Color Balance/ASC-CDL node. Using Power and Slope the high values were brought down to levels below clipping, and the contrast of the scene was modified to brighten the darker areas.

Additionally, blender has tools to interpret the values of the rendered image using one of the different "looks" on the color management section. Try a "low contrast" or "very low contrast" setting.
The last solution I will propose, is to generate two or more different images, one for the interior of the room with the proper light values, and one for the exterior that is seen through the window and one for the very bright sunlight on the floor, and composite them together later.
The bottom line here is that the artistic intent, or subjective way to understand an image, might not match the values of the sene itself, those of the HDR images, or they might not fit within the limits of what can be displayed on the screen. So you will have to resort to interpretations, adjustments and tricks to reach your goal. There is no magic button to make things look "realistic": it is a highly subjective concept.


Can you Weight Paint differently on Linked Duplicates? Is it possible to Weight Paint unique Weight patterns on Linked Duplicates, that share the same mesh? I can't work out how to do it.

In the example images I have set up I have two spheres one is a linked duplicate created with Alt+D. They both share the same particle system using the smaller third sphere as the Instance Object. I want the same Particle System to be used on both spheres but with separate areas painted in weight paint.  How do I achieve this?

When I open the right sphere in Weight Paint mode and start painting, it just inherits the same pattern from the left sphere.

I'm guessing it's something to do with Vertex Groups but is it possible for the same Particle System applied to Linked Duplicates to use multiple Vertex Groups where each one is uniquely painted in Weight Paint?

In the images you can see that the right sphere just inherits the pattern from the left.

I hope that is clear, if not please comment and I can try and edit for clarity.

Sincere thanks for your help.

Select your object, go in Edit mode and assign a vertex group to the faces that are supposed to emit the particles. Then in the Properties panel > Particles, create your particle settings and in the Vertex Groups submenu > Density field, choose the vertex group you've created.

Link-duplicate your object (AltD), go in Edit mode and assign a new vertex group to the faces that are supposed to emit the particles on this second object. Then in the Vertex Groups submenu > Density field, choose this new group.

The objects are still linked but the particles emission will happen on 2 different parts.


Is there a way to rotate and pan view while in knife tool and other tools that lock the view ports? It seems there are many tools, such as the knife tool, that cause the viewports to lock up when you are "in" the tool. By "lock up" I mean that while in the tool I cannot rotate, pan, or zoom the view. This would be super handy and seems like a no-brainer. Thanks for your help!
-Ben

I figured out my problem. I am using a 3Dconnexion 3D mouse and it does not manipulate my view while a tool is active. The normal mouse/keyboard ways of rotating etc do still work as expected while a tool is active.


Why doesn't the paint-on texture show when rendered (packed and saved texture)? I'm both new to this website and Blender.

The problem is the painted on texture won't show when rendered as an image or animation. I have saved the texture and packed all of the files together but it still won't work. Is it something to do with the mapping? Please help. Blend file included

(texture included separately just in case)

Thanks

The materials for the object don't have a texture associated with them.
Select your object.
In the materials slot select the material slot that will use the texture.
Move to the texture section and create a new texture that uses your image.


How to set the camera in a precise position? I'm following a tutorial and the creator made the camera into this certain position that I can't seem to follow:

You need to rotate the camera 90 degree along the Y-axis. To do so, select the camera, then hit R then Y then 90.


How to get even gradient repetition using modulo? I am trying to apply the modulo on a gradient to get some repetition, but the problem is that the result is different from one gradient to another because of random inputs to the modulo, as you can see here:

I want the gradient to repeat itself equally, not like this. Is there anyway to overcome this problem?

This is really simple. What you need is to, first, modulo the gradient texture by a value that is less than one and then divide by that same value:

The problem you're experiencing is due to the image's resolution. The only way to fix this is to render to a higher resolution image.

Here's the .blend:


Animating Hair along their path I would want to try to achieve this kind of animation but i am not sure how to proceed. what i am interested in is the "follow path of the hair particles"
Any help or advice on how to proceed would be awesome!
Full animation: https://www.instagram.com/p/BsJ05RWHBV8/

You can do this easily using Falloff Tracer node.
Falloff Tracer is available on Animation Nodes + Extra Nodes addon.


Cloth animation export Unity Stutter I'm attempting cloth animation in Blender and exporting to Unity.  My process is as follows:

-Pin one point of the cloth (for it to dangle from) and then apply armature motion to that pinned point

-Simulate cloth physics and export the resulting vertex data as a point cache (.mdd)

-Duplicate the cloth, remove physics, and import point cache data (basically a physics bake)

The animation works perfectly in Blender like so:

However, when it comes to importing to Unity, something in the export/import process introduces stutter like so:

Any help debugging this problem would be greatly appreciated.

Leave 'Rig / Animation Type' on 'Generic'
Switch to 'Animations', deactivate both 'Resample Curves' and 'Anim. Compression'-checkboxes
Switch back to 'Rig / Animation Type', select 'Legacy'
Click 'Apply'
Check the Animation-Preview - no stuttering!
Drag the FBX onto the scene-view-window
IMPORTANT: click 'Revert' rather than 'Apply' when asked whether unapplied import settings should be applied

Downsides:

No 'loop / ping-pong' etc. functionalities (I'll try to create a script-based-solution as a workaround)


translate (change location) in object more or edit mode? What is the difference between translating (i.e moving an object) in object mode and achieving the same thing by selecting all mesh elements in edit mode and then moving those?

Why would one chose between the two methods?

In object mode, the object origin (the pink dot) moves as well. In edit mode, it doesn't.

The point is that if you want the origin to stay in a certain place, you could move all the elements in edit mode without affecting object origin location.


Blender 2.8. Export material I made this water material and I was wondering how to export this material to use in other projects. Haven't find a concrete answer to this for some reason.

Shaders are implementation specific, and there are no real standards as to how to process, store, or describe them.  Blender uses a variant of OSL for cycles, and a slightly different version for EEVEE.  Unity uses DirectX (HLSL) and OpenGL (OGLSL) shaders (based on the target platform), Unreal can do something similar.  Substance uses a proprietary format for their PBR shading.

Occasionally, if two tools are widely used, the parties involved will make a bridge between the two.  However, without knowing what you are trying to export to, we cannot give much advice.


Modelling best practice - can I build a library of meshes? I'm new to blender and I've been trying to model a fairly simple house as a starting project. I'm thinking of building the various parts of the house as separate models, e.g. creating a model of a four pane window and then saving that as a reusable window (for any future projects), so if I want to create a house in the future, I can just load up the window and add it the model of the house. After some time I could have a large library of reusable objects. Is this considered good/bad modeling practice? should I be extruding/loop cutting a single mesh instead?

Yes, a library is a great practice. You can then link or append those library files into a current project. I recommend using append because you can then edit that particular object in you current project file.

https://www.blender.org/manual/data_system/linked_libraries.html

I also build a library of materials.


C4D mograph like behaviour in Animation Nodes i'm trying to replicate the mograph like behaviour in Animation Nodes. I'm trying to grasp the concepts here and new to this so bit more explanation would be great. I searched but could not find the info i was looking for so if you can help I would really appreciate it.

So i have a plates that are on certain locations. I was trying to randomly scale them from 0 to 1 and I think I got it. Heres the screenshot:

Screenshot 01

By adjusting the Effect Strength from -1 to 1 I'm able to get what I want - randomly scale images from 0 to 1. I hope this is a correct/elegant solution, so I'm open to better ones if they exists.

After that I wanted to add location/translation - like let the plates start from off screen and then fly to their original locations. I added following nodes:

Screenshot 02

Unfortunately in this case the change in Math node iterates and continues to grow without stopping and I was not able to find a way to break the loop.

Could you please let me know how this is done? Is this approach an optimal one? I suppose rotation will be dome as translation too right?

Well thank you in advance for your support. I also attached the blend file so feel free to look. Thanks.

ANIMATION_NODES_BLEND_FILE

You have to use ID Key node. It basically allows you to recover positions from objects previously stored. Use it instead of the object transform input.

Positions are stored on the viewport.

See this documentation.

http://animation-nodes-manual.readthedocs.io/en/latest/user_guide/nodes/object/object_id_key.html


How to get this type of relief? i made this "3d" effect in photoshop, but i want to make it real 3d in Blender, how can i do that? i'm working with a SVG so i can import it in Blender, thanks!

update >> using bevel and offset

I would do it manually:

Put your picture as a background image.
Create a plane, begin to follow the shape of the object with some extrusions.
When you have finished, create some edge loops on the centre of each quads line, where the bump is supposed to happen.
drag the edge loops to create the bump.
Give your object a Subdivision Surface modifier, and click the Smooth Shading button to smooth it.


setting hook location frame to frame I would like to animate an object using vertices as anchors. Blender 2.70a implements the Laplacian deformation method for methods. I have the following code to familiarise myself with hooks. As a trial, I create a for loop to increment the frame number and set the hook location in that frame to a position chosen from a list of coordinates. However, when I scroll back through the frames, the hook location is always in the same place. So the following code is setting the hook location for the entire timeline, not frame-by-frame.

import bpy

# use default cube
ob = bpy.data.objects['Cube']
obdata = bpy.data.meshes['Cube']

# make sure everything is deselected before selecting vertex for hook
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
bpy.ops.mesh.select_all(action="DESELECT")
bpy.context.tool_settings.mesh_select_mode = [True, False, False] # (Vertex,Edge,Face)
bpy.ops.object.mode_set(mode='OBJECT', toggle=False)

# select vertex, add hook, rename to Hook1
obdata.vertices[0].select=True
bpy.ops.object.mode_set(mode='EDIT', toggle=False)
bpy.ops.object.hook_add_newob()
bpy.data.objects['Empty'].name = "Hook1"

# create a list of positions to move the hook through
positions = [(0,0,-2),(0,1,-2),(3,2,-1),(3,4,-1),(1,2,-1)]

scene = bpy.context.scene

frame=0

for position in positions:
  scene.frame_set(frame)
  bpy.data.objects['Hook1'].location = position
  print( bpy.data.objects['Hook1'].location )
  bpy.data.objects['Hook1'].keyframe_insert(data_path="location", frame=frame, index=-1)
  frame+=10

UPDATE: Added keyframe insertion.

In order for blender to store the location on each frame, you must insert a keyframe.

See the blender API reference for details.


cycles visibility for multiple objects Is there any way to change the ray visibility of multiple objects (say from selected)?

I have been trying to say make 150 objects invisible for diffuse - do i have to go by hand?

or is there way to write

bpy.context.object.cycles_visibility.* = True/False

but not to object?

Paste this into text editor and run it for your selection:

import bpy
for obj in bpy.context.selected_objects:
     obj.cycles_visibility.diffuse = False


Bone heat weighting: failed to find solution for one or more bones after i remove doubles http://www.pasteall.org/blend/33521 my link
i already search for some solution and try it but still no working.

I quickly fixed it , First you have to select the robot then press[ ALT + P ] , Then select clear parent and keep transformation

Do that to the armature aswell.

Now select the robot , Hold SHIFT and right click the armature .

Press CNTRL + P

Add automatic weights.

It will now work , if you have problems just ask

Also keep in mind you will have to some manually weight distribution because it does get messy


Object becomes transparent when motion blur is enabled (Cycles) I'm trying to render a simple animation with comical characters. From the following images, you could see clearly Combines from the Half-Life universe, and a creature called "The Stalker" (based off of The Hidden). The project has gone rather well so far, and I've begun to render, but while rendering I came across a problem. I do have motion blur enabled, and it looks nice and all, but it causes a fast moving object to become transparent? It might be the color, material, or something else.

Motion blur:

Without motion blur:

It's supposed to look like this (side view):

All of the materials are in place, render view isn't restricted, the only difference in any of those images is the fact that Motion Blur is enabled.

Motion blurred objects are inherently semi-transparent if they're moving fast enough, because they do not cover any area of the frame for the duration of the exposure. Motion blur results because an object moves during the exposure and thus "partially" covers an area larger than itself. For large or slow moving objects, there will be a large region that they obscure for the entire exposure, thus the transparent blur only appears on the edges. However, if an object is sufficiently small and moving fast enough, it can cover the distance of its own width during a single exposure. At this point, there is no region that is covered for the entire exposure and the object appears to become transparent.

This is not a limitation of CG, it happens with real objects too. See, for example, how the car in this photograph is almost invisible except for the lights which are able to overwhelm objects behind them:


How to make better quality 1080p videos in the video editor? I am trying to use Blender to edit game play videos that I capture with Nvidia's Shadowplay.  I have learned what I know so far by watching these Blender tutorials which will be linked below.

My problem is that the original video source is 1080p at 60fps.  When I finish editing and attempt to save the video as 1080p at 60fps, the quality to bad. The video is grainy and blurry.  Nothing like the source video which is clear.

So my question is what can I do to improve the quality of the video the way a 1080p video should be?

This is to the tutorials I mentioned before.  https://www.youtube.com/playlist?annotation_id=annotation_4173738165&feature=iv&list=PLjyuVPBuorqIhlqZtoIvnAVQ3x18sNev4&src_vid=xSGIPmQdV6M


Hair rotation doesn't understand global Z Why aren't these hair particles sticking up? I want them to stick up and to add a random rotation around their Z axis.
If I change the orientation axis to Global Y or Global X or Object X or Object Y then the particles will stick up but that's obviously a bug. In any case, randomizing rotation will not rotate them around the object's Z axis.
Does anyone know how to work around this bug?

The issue here is that while while the particle system is indeed pointing the objects towards the global z, it is pointing the front of the objects (in the +y direction i believe) towards the global z. In this case, you want the object to stay standing up, so if you rotate the original mesh by 90 degrees, the correct direction will be aligned to global z in the particle system.


Simulate objects falling into water On the blender website there is this image:

What would I need to do to recreate this, cubes and spheres falling instead of fruit would be fine. I believe this uses the cycles render I have never used this before.

This can be done with Fluid Simulation.

From the wiki:

  In general, you follow these steps:

  set the simulation domain (the portion of the scene where the fluid will flow),
  set the fluid source(s), and specify its material, viscosity, and initial velocity,
  eventually, set other objects to control the volume of the fluid (inlets and outlets),
  eventually, set other objects related to the fluid, like:

  obstacles,
  particles floating on the fluid,
  fluid control, to shape part of the fluid in the desired form,

  eventually, animate the fluid properties,
  Bake the simulation (eventually, revise as necessary and bake repeatedly).

A quick way to setup the domain is with Space> Search > Quick Fluid

If you want to make something exactly like that image, check this tutorial on Blender Guru.

Otherwise you could:

Create the domain object (You could select an object and use Space> Quick Fluid, but here is how to do it manually):

Add a cube (ShiftA> Mesh > Cube)
Add a Fluid modifier in Physics and set the Type to Domain:

Add a second cube for the fluid:

Add a fluid modifier in Physics and set the Type to Fluid:

Create the falling objects:

Create the motion. You could either animate the motion or use rigid body physics, in the above case it's probably easiest to animate them.
Add a Fluid modifier to one of the objects and set the type to Obstacle.
Select all the objects which will be falling in (selecting the one with the fluid modifier last so it is the active object) and press CtrlL> Modifiers. This will copy all the modifiers on the active object to the selected objects, including the fluid modifier.
Configure the fluid settings of the domain object as desired (see below)
Select the domain object and bake the fluid simulation in Physics > Fluid > Domain.

Domain Settings:

The settings in the domain object are as follows:

Fluid panel:

Simulation Threads: The number of threads to use for multithreading the baking process. (0 automatically picks, you can probably leave it the way it is)
Resolution: You can bake two different resolutions, this is useful for having a low resolution place-holder in the viewport.

Final: The resolution to bake the Final quality results at.
Preview: The resolution to bake the Preview quality results at.

Render Display: The bake quality to use in the render. The options are:

Final: Use the Final bake resolution in the render
Preview: Use the Preview bake resolution in the render
Geometry: Use the original geometry of the domain object in the render

Viewport display: The bake quality to use in the 3D view. The options are the same as Render Display
Time: Note that baking always starts on frame 1, these settings control the behavior of the fluid (e.g. for slow motion effects)

Start: The number of seconds into the simulation to start caching data.
End: The simulation time of the scene End frame in seconds.

Generate Speed Vectors: Record vector information in the cache (useful for motion blur)
Reverse Frames: Reverse the fluid frames
Speed: Rate of motion of the fluid. (0 = static, 1 = normal)
Offset: Number of frames to offset reading of the cache. This is the only setting which you can still change after baking.
Bake Path: Location on the system to read and write fluid cache files.

Fluid World panel:

Gravity: Force of gravitational pull on each axis. If Gravity is enabled in Scene > Gravity, this setting will not be editable from the physics panel. Instead change the values in Properties editor > Scene > Gravity.
Viscosity:

Base: The viscosity of the fluid
Exponent: The exponent that is used to make entering small values in the Base value easier. The end Base value is equal to base*10^(exponent*-1).

Real World Size: Size of the longest axis of the domain in real world meters. This setting does not affect the size of the domain in the scene, but rather the way the fluid behaves. (e.g. If you wanted to simulate fluid in a glass and your domain is slightly larger than the glass, you would set this to roughly the size of a glass in the real world)
Optimization:

Grid levels: Number of lower resolution grid levels to use in the simulation. -1 is automatic.
Compressibility: Amount to allow standing fluid to be compressed

Fluid Boundary panel:

Slip type: Collsision settings for the domain boundary. These settings are the same as on Obstacle objects. The options are:

No Slip: Fluid sticks to the obstacle surface
Free Slip: Fluid runs freely on the obstacle surface.
Partial Slip: Mix of No Slip and Free Slip. (0 = No Slip, 1 = Free Slip)

Surface:

Smoothing: Amount to smooth surface. (0 = none, 1 = normal, >1 = more than normal). Note that you can also non-destructively smooth the fluid after the back with a Smooth modifier.
Subdivisions Number of subdivisions on the mesh

Remove air bubbles: Remove the gap between the fluid and obstacles. Note that this can result in a dissolving the surface in other places.

Fluid Particles panel:

Tracer: The number of tracer particles to be created in the fluid when the simulation starts.
Generate: The number of fluid particles to generate. Note that you must have Subdivisions set to at least 2 for this to affect the result.

See the wiki for more info.

Some things to note:

Modifiers must be applied in order to affect the fluid simulation

Other notes from the wiki:

  Unique domain
   Because of the possibility of spanning and linking between scenes, there can only be one domain in an entire .blend file.

  Selecting a Baked Domain
   After a domain has been baked, it changes to the fluid mesh. To re-select the domain so that you can bake it again after you have made
  changes, go to any frame and select (RMB Template-RMB.png) the fluid
  mesh. Then you can click the BAKE button again to recompute the fluid
  flows inside that domain.

  Baking always starts at Frame #1:
   The fluid simulator disregards the Sta setting in the Anim panel, it will always bake from frame 1.
      If you wish the simulation to start later than frame 1, you must key the fluid objects in your domain to be inactive until the frame
  you desire to start the simulation. See below for more information.

  Baking always ends at the End Frame set in the Anim panel:
   If your frame-rate is 25 frames per second, and ending time is 4.0 seconds, then you should (if your start time is 0) set your animation
  to end at frame 4.0 × 25 = 100.

  Freeing the previous baked solutions
   Deleting the content of the “Bake” directory is a destructive way to achieve this. Be careful if more than one simulation uses the same
  bake directory (be sure they use different filenames, or they will
  overwrite one another)!

  Reusing Bakes
   Manually entering (or searching for) a previously saved (baked) computational directory and filename mask will switch the fluid flow
  and mesh deformation to use that which existed during the old bake.
  Thus, you can re-use baked flows by simply pointing to them in this
  field.

  Baking processing time
      Baking takes a lot of compute power (hence time). Depending on the scene, it might be preferable to bake overnight.

  If the mesh has modifiers, the rendering settings are used for exporting the mesh to the fluid solver. Depending on the setting,
  calculation times and memory use might exponentially increase. For
  example, when using a moving mesh with Subsurf as an obstacle, it
  might help to decrease simulation time by switching it off, or to a
  low subdivision level. When the setup/rig is correct, you can always
  increase settings to yield a more realistic result.


Cycles render is blank and camera object changes I have this problem where my scene render is blank, and I think I've figured out why, but it's weird.
I set my scene camera to the actual camera object:

But when I press f12 the render is blank. Not black, but transparent. Then for some reason, the camera object switches to 'bulb' by itself

Please help me out, this makes no sense.
 You can download the blend file here.

This is because the Bulb object is bound to the marker Jump. See this answer for details.

To fix it, you can either remove the marker (press X while hovering over it), or select your camera object and press Timeline header > View > Bind camera to markers (or press CtrlB in the timeline area).


How to apply a real time constraint on a moving gear Here are some examples of what I have already accomplished

http://imgur.com/sU4y5pD

http://imgur.com/GTz5PtK

http://imgur.com/rNXuqQ1

The next gif is where I run into a problem. Right after the ball hits the 'slider.' I can move the bone, but I can't move the entire selection, as seen in the previous gifs.

http://imgur.com/RSuuJ8z

Now that you've seen the basic idea, and the main problem. I will now show you a  less complicated version of my end result.

http://imgur.com/Wj07waT

I want the gear inside the lever to spin freely on the grounded gear in real time. I wanted this so in the long run, I don't have to animate the gear placement when at a certain point. Speeding up the process of my work flow.

My example file

My Lever Project file.

Not sure if you're interested in this solution, as it does not deal with physics simulation but using traditional constraints instead. As mentioned in a few comments already, this is recommended for various reasons, like easier handling and setup, better stability, etc. For what you're really trying to achieve, this will work.

Here is the file rigged based on your provided Blend:

I'm using an Armature, parenting a few bones in there in a hierachy like this:

Main Bone and Lever Bone are purely for better flexibility later on when animating. Using the Main Bone you can relocate the whole rig, the gear bone allows additional offset. Both bones are optional, but recommended. The lever bone is a child of the Gear Bone, so it follows the movement of that, and the sprocket bone a child of the lever bone.

The rig itself looks like this:

I turned on Axis Display for each bone, so you can see the local bone axis and better understand why I set certain values later on in the Constraint. Speaking of the Constraint, I used a Transformation constraint to achieve the desired effect:

The logic is: If you rotate the lever bone by 8 degrees along the Z axis, the sprocket bone has to spin 36 degrees along the Y axis, but in the opposite direction, hence the -36 degrees. Where I got these values from? Simply count the number of teeth of gear and sprocket. The Extrapolate option makes sure that this math relationship is kept even if you exceed the values.

Now, if you rotate the red lever bone, the sprocket spins around the gear.


Importing shapefiles with other CRS other than Web Mercator and WGS84_latlon New to Blender.
I have correctly installed and activated the BlenderGIS and the bpyproj addons. The GIS module allows me to add a new CRS searching by the EPSG number when I try to import the shp. However, when I select that CRS, in my case is GDA2020 / MGA zone 56 (EPSG: 7856) and hit ok, Blender returns "Shapefile import fails, check logs" error - upon checking the logs, a Python error pops up which does not help me.
How can I add a shapefile with a specific CRS?
I am using Blender ver 2.90.1 | Windows 10
EDIT: Here is what I do\see:

Thank you

I've checked your shp and It seems ok. The GIS importation has any problem if you do this:
Check the shp first to be sure about the projection:

To add some elements of reference to this piece, I've created a point layer to get some perspective:

Then I've imported the point into the scene just using web mercator (dont worry for the moment as the projection of these will be ok with your layer...)
CRITICAL PART: Now, I've imported your shp using your CRS...BUT...when you specify other than Web mercator, I mean, a defined CRS (7856 in this case), you have to remove the Scene georeferencing...

...to see something like this:

Doing so Blender has no problem to locate all the elements within the scene. As you can see, they are correctly positioned to each other. Here is just a view of the points and your line (shp):


I can't make an edge sharp I'm new to Blender and I wanted to design this mask in order to print it in 3D but i have a problem.
I want the eyes holes to be sharp but the subdivision surface modifier make them round.
I tried everything i found on internet to make them sharp ( edge split, ctrl r, crease... ) but none of them works.
Could you please help me ?
Thank you.

I want it to look like this :

Once you have geometry that can follow an edge loop you can make edges as sharp as you want. CtrlR is the hotkey for creating loops in Edit Mode. Loops require quads. Below I have the example to start...

...and then adding an extra loop to sharpen even more.

I did cheat a bit here as the loops do cross - but it still works and I think acceptable.


How to place cubes around in a square shape As it can be seen in the image, I am trying to place all these cubes in such a way that forms a square shape. I don't know how do I place these cubes by evenly spacing out the distance between each cubes. Can somebody please tell me and give me step by step instructions please?

You may use Dupliverts to achieve it.

In Edit Mode add a plane and subdivide it, then delete the faces. In Object Mode add a cube and scale it as you like.

In Object Mode parent the cube to the plane (Ctrl+P-->Object).

Select the plane and go to the Object header-->Duplication panel and push the Verts button.

Finally with the plane selected press Shift+Ctrl+A to make the duplicates real meshes.


Two moving bodies collision What is the right way to create two moving bodies collision by script?
Since both of the objects been animated they collapse into each other when colliding. How can I prevent this from happening?

Part of my code:

bpy.data.objects['Cube'].rigid_body.kinematic = True
bpy.data.objects['Cube'].location = [-5,-5,1]
bpy.data.objects['Cube'].keyframe_insert(data_path='location', frame=1)
bpy.data.objects['Cube'].location = [0,0,1]
bpy.data.objects['Cube'].keyframe_insert(data_path='location', frame=20)
bpy.data.objects['Cube'].rigid_body.kinematic = False

bpy.data.objects['Sphere'].rigid_body.kinematic = True
bpy.data.objects['Sphere'].location = [5,-5,1]
bpy.data.objects['Sphere'].keyframe_insert(data_path='location', frame=1)
bpy.data.objects['Sphere'].location = [0,0,1]
bpy.data.objects['Sphere'].keyframe_insert(data_path='location', frame=20)
bpy.data.objects['Sphere'].rigid_body.kinematic = False

In this setup, you will need to add keyframes for the kinematic property. The kinematic property should be enabled during the beginning so that the object movement is controlled by the animation. Right before the two objects collide, the kinematic property should be disabled so that the rigid body simulator takes control over the object movement.

Here is an example for how to modify your script so that the kinematic property is disabled at frame 12:

bpy.data.objects['Cube'].rigid_body.kinematic = True
bpy.data.objects['Cube'].keyframe_insert(data_path='rigid_body.kinematic', frame=1)
bpy.data.objects['Cube'].location = [-5,-5,1]
bpy.data.objects['Cube'].keyframe_insert(data_path='location', frame=1)
bpy.data.objects['Cube'].location = [0,0,1]
bpy.data.objects['Cube'].keyframe_insert(data_path='location', frame=20)
bpy.data.objects['Cube'].rigid_body.kinematic = False
bpy.data.objects['Cube'].keyframe_insert(data_path='rigid_body.kinematic', frame=12)

bpy.data.objects['Sphere'].rigid_body.kinematic = True
bpy.data.objects['Sphere'].keyframe_insert(data_path='rigid_body.kinematic', frame=1)
bpy.data.objects['Sphere'].location = [5,-5,1]
bpy.data.objects['Sphere'].keyframe_insert(data_path='location', frame=1)
bpy.data.objects['Sphere'].location = [0,0,1]
bpy.data.objects['Sphere'].keyframe_insert(data_path='location', frame=20)
bpy.data.objects['Sphere'].rigid_body.kinematic = False
bpy.data.objects['Sphere'].keyframe_insert(data_path='rigid_body.kinematic', frame=12)
```


How to re-link collections to scene To clean up my scene, I used Right-Click > Unlink in the Outliner, but now I want the collections back.

I can find them by switching to the Blender File context in the Outliner, but the Right-Click > Link to Scene doesn't appear to do anything.

Instance to Scene makes something that acts like a Collection Instance, so I can't edit the contents.

I also can't click and drag, or copy paste.
What am I doing wrong?

You can open a second outliner view and drag and drop the collection back to the view layer.

Here from Orphan Data to View Layer:


How do I view the different texture paint of multiple objects simultaneously? I have uploaded a couple of rigs and they all have their own texture paint but I don't know how to show them at the same time. For example I can show woody and Boba Fett's texture paints at different times but not at the same time.

In order to view multiple textures simultaneously, change the viewport shading mode to either Material Preview or Rendered. Material Preview will allow you to view all of the materials in a scene and Rendered will provide a preview of what the rendered scene will look like.
To switch modes, use the four icons located at the top right hand corner of the viewport. The modes (from left to right) are Wireframe, Solid, Material Preview, and Rendered.


How do you return to the default view (the one you see when blender starts)? I cannot find any menu or keys that return blender to the view that you see when you start blender.
Using save close and then open again but it must be easier than that?

How do you change the view from side or front, or back to the view that is enabled by default at start?

I assume you are wanting to have the same arrangement of windows as when you start blender.
If you have chosen another screen layout at the top: , just choose the Default layout.
If you have modified the Default layout, you can reset all your layouts to normal by:

Save your current file.
Choose File > New and reload the startup file.
Open your file, but make sure that the "Load UI" checkbox isn't checked:

To save your new layouts, save your file, and the new (default) layout will be saved with it.

If you just want to reset the view of the 3D view in the screen layout "Default", there's some python code that will make that happen.  So temporarily change one of your windows to the type "Python Console" and paste this code in:
for space in [area.spaces[0] for area in bpy.data.screens['Default'].areas if area.type == 'VIEW_3D']:
    space.region_3d.view_matrix = Matrix((
        (0.4100285768508911, 0.9119762182235718, -0.013264806941151619, 0.0),
        (-0.401742547750473, 0.19364379346370697, 0.8950446844100952, 0.0),
        (0.8188281059265137, -0.36166486144065857, 0.44577914476394653, -14.988801002502441),
        (0.0, 0.0, 0.0, 1.0)))

This will reset the view for any 3D view windows you have.
Note:
The numbers in the matrix above are not something I figured out using complex math.  I just opened a new blender file and read the value in
bpy.data.screens['Default'].areas[-1].spaces[0].region_3d.view_matrix


Blender UV mapping equivalent of disabling Normalize Map in 3ds Max I'd to perform essentially the same type of UV mapping described in this question, i.e., UV map a mesh such that the resulting UV coordinates for each face aren't scaled or normalized and are based on the actual size of the object face (not limited to [0,1]). This is useful for large polygons intended to use a tiling texture with known real-world size, e.g., an image of bricks, a wallpaper pattern, or (in my case) a reference grid where the dimensions of each square on the grid should correspond to a fixed number of units in space.
Unfortunately, the answers provided to the question linked above don't work in my case: no alternative source of mapping coordinates produces the desired result and the UV project modifier isn't feasible given the number of faces that need to be mapped (since each face would require an empty controller object aligned with its normal vector).
The desired mapping can be accomplished in 3ds Max by disabling Normalize Map (sometimes called Normalize Clusters, depending on the dialog and version) when UV mapping. The 3ds Max documentation describes Normalize Map as follows:

When on, scales the mapping coordinates to fit into the standard coordinate mapping space: 0 to 1. When off, the mapping coordinates are the same size as the object. [...]
For example, if you take a sphere of 25 units that's planar mapped from the top, and then apply Unwrap UVW and turn off Normalize Map, then when you open the editor, the radius of the sphere's mapping coordinates is 25 units. As a result, the texture map is tiled onto the sphere surface many times. With Normalize Map on, both the sphere and the map fit into the 0–1 coordinate space, so they're the same size.
In general, for best results, leave Normalize Map on. One reason to turn it off would be to turn it off is if you want to map several elements of different proportions with a texture of a specific aspect ratio, such as brick, keeping the texture the same size on each object.

Is there a method that can be used to obtain equivalent results in Blender?
EDIT: it's important that the resulting UV map be "exportable", as my intent is to use the mesh and its UV mapping in another program.
EDIT 2: here are some screenshots from 3ds Max to clarify what I'm trying to accomplish. The upper images show the UV map and resulting texture mapping with normalize enabled (this matches Blender's behaviour) and the lower images show the result with normalize disabled (which I'd like to reproduce in Blender).

The Magic UV addon (available here) can be used to accomplish the desired result.

To install the Magic UV addon:

Place uv_magic_uv folder in the Blender/(version number)/scripts/addons folder.
In Blender, go to File > User Preferences > Add-ons.
Scroll down the list and enable "UV: Magic UV".

Use:

For a given texture intended to be X units by X units in size, make a reference square (e.g., the side of cube) of those dimensions.
Switch to the UV Editing screen layout.
UV map the square such that it occupies the entire UV area (no margin).
With the square selected, press U and select World Scale UV > Measure.
To apply the same scaling to other faces, select them, press U, and select World Scale UV > Apply.

A video demonstrating Magic UV's World Scale UV functionality is available here (recorded by Nutti, the creator of the addon).


Is it possible to edit images programmatically with the Blender API? I need to ascertain if it's possible to complete a project in Blender exclusively (my preference) or if I need to use an OpenGL API to write an external application for my needs.

If the project can be completed in Blender, then I need to be able to color pixels on a 2D image using Python within Blender.  If that can be done by pixel coordinate, then my project can be completed in Blender.

Because the Blender API documentation is laid out by structure of API itself rather than by task (a good thing!) I'm having trouble locating the part of it that I'm interested in.  Because usually Blender isn't used for this, I can't find any discussions that point me in the right direction.

edit: I see that bpy.ops.paint.sample_color() can be used to sample a color on an image; I'm just having trouble finding a way to directly manipulate pixels.

edit2: I should mention that I also found this in old documentation, but searches for something similar in the current documentation come up empty.

last edit: This thread from 2007 includes a script for pixel level access to images.  however, it is dependent upon classes that are not a part of the Blender API and do not appear to be part of the Python repository.  The colour class does not inherit as_tuple, which in turn only seems to be part of the decimal class.

So, I'm not listing it as an answer because there's no way to know with certainty just what the author meant when those classes are used.

Within blender's image class you can access the raw pixel data at image.pixels as an array of floats, 4 floats per pixel (RGBA). image.size[0] is the width in pixels image.size[1] for height.

This answer shows how to crop an image, while this one about performance might be useful.


making a color ramp cycle back and forth i have a particle system hooked up to a color ramp so that the particles change color based their age. the only problem is once the reach a certain age they stay a certain color because the color ramp value becomes greater than 1. is there a math function to make the value progress back to 0 once it hits 1 and vice versa so the colors can continually cycle back and forth?

Sounds like you want a sine wave! Just multiply your incoming value by sin (with a multiplication node and sine node, respectively) and you'll get your oscillation of 0 to 1 and back again. There's some official documentation on just that use case here: https://docs.blender.org/manual/en/dev/compositing/types/converter/math.html#using-sine-function-to-pulsate

Then, add one 1, and divide the result by 2. This is a much smoother way of interpolating between 0 and 1 while avoiding negatives, as Rich Sedman suggested!

In other words, this set-up should go between your existing "Divide" and "ColorRamp" nodes:


TPU 3d printed texture New to blender, I try to make a realistic 3D printed TPU plastic texture, but the result is not that good... I would also be super nice to have the layering...

Thank you for your advises !

I was looking for the same thing and decided to make a TPU material myself. I did it using a brick texture with the row height set really high, brick width set low, and mortar thickness very low to create tightly spaced long thin vertical line and feeding that into the Normal socket. You could experiment with mixing the Brick Texture with a Noise Texture to give it some more randomness, or by feeding the brick texture into the Color socket, varying the brick colors and changing the Brick Texture Bias setting to give it more color variance between the lines.


vertices with similar weights not moving at same speed As the above image shows, whenever I move the armature that controls the upper arm, the corresponding part of the t-shirt moves slower than it. This is regardless of whether or not they have the same weights.
The picture shows them at different weights, but I tested to see if the same issue arises when all weights are the same. The whole object is composed of one mesh the t-shirt and the arm are all in the same mesh. How would I prevent the arm from moving through the t-shirt?
(I know I can delete the vertices that are blocked by the t-shirt, but this same error persists even then for the remaining vertices that are slightly inside).

I am using blender v2.72b.

Upon further playing around with the mesh, I found out that I should do the following to get what I want:

In edit mode, select the island of the cloth mesh, in this case, the t-shirt.
Press P to separate the cloth, click by "Selection".
Go to object mode, parent the rest of the mesh to the armature, with automatic weights.
Then parent the cloth just separated to the armature too.
Go to pose mode and move the body, the cloth will follow it.
Go back to object mode, select the cloth then the body, and then join the two meshes, to get back the original mesh.
Going back to pose mode and moving the armature around still shows that the cloth follows the body's motion.

That's it, this worked for me and I hope someone will also find it helpful. If anyone has a different way of approaching this, please share.


Is there a way to adjust the color of a texture paint I have painted onto the model? I have just finished texture painting my model on a base model texture. I now want to do a few alternative colours but I don't want to have to hand texture paint each new coloured model as the textures won't be consistent across each model, is their a way to change the colours of an already painted texture? or a way to bake the paints onto a different coloured model?

You can do a lot inside your shader node tree with the Color Mix nodes and other things - here I added a few procedural textures on top of the image texture I used on all of the parts using Box Mapping with Vertex Color multiplied - you can see I did some color manipulation there too.


Operator doesn't work when invoked from Panel, but works when invoked using the spacebar I have defined an operator, which is called from a button in another operator's panel. The called operator is supposed to import a ply file into the scene.

This is the relevant code:

class LoadPointCloud_Button(bpy.types.Operator):
    bl_idname = "load.pointcloud"
    bl_label = "Load Point Cloud"
    bl_options = {'UNDO'}
    bl_description = "Load the point cloud"

    def execute(self, context):
        bpy.ops.import_mesh.ply(filepath="C:\\sfmoutput\\pmvs\\models\\option-0000.ply")
        return{'FINISHED'}

The ply mesh is imported successfully when invoked by pressing the spacebar and typing "Load Point Cloud". When invoked from the panel button, nothing happens.

The System Console window says that the import was successful in both cases.

  Successfully imported 'C:\sfmoutput\pmvs\models\option-0000.ply'
  in 0.554 sec

But in the latter case, nothing happens.

I tried various things including manually setting the active scene, but nothing seems to work. I couldn't find similar example code either. What's the solution to this?

There are two issues with your code, and I presume your button doesn't actually call this code, but an older version of your operator:

bl_idname = "load.pointCloud" is an invalid name, only lower-case characters are allowed. Bad naming will make the operator registration fail.
The path to your .ply file contains backslashes, but you didn't escape them. You can use a raw string (r"C:\path\to\file.ext") to avoid lots of \\.

class LoadPointCloud_Button(bpy.types.Operator):
    bl_idname = "load.pointcloud"
    bl_label = "Load Point Cloud"
    bl_description = "Load the point cloud"
    bl_options = {'UNDO'}

    def execute(self, context):
        bpy.ops.import_mesh.ply(filepath=r"C:\sfmoutput\pmvs\models\option-0000.ply")
        return {'FINISHED'}

def register():
    bpy.utils.register_class(LoadPointCloud_Button)

def unregister():
    bpy.utils.unregister_class(LoadPointCloud_Button)

if __name__ == "__main__":
    register()


Import polygons with predefined coordinates Let's presume I have a file with polygons vertices coordinates in any format. I need to import the polygons into Blender. Can it be done?

Thanks!

Your best bet is to use the Wavefront .obj format. As it's written in ASCII, it's fairly easy to generate.

A simple introduction to the specification of this format is as follows:

#This is a comment

o Object      #Defines an object named Object
              #All the vertices, edges and faces below this belong to this object
              #Until another object is declared

v 1.0 1.0 1.0 #Defines a vertex at the XYZ coordinates 1, 1, 1
              #and adds it to the list of vertices, like an array (starts at index 1)

f 1 2 3 4     #Creates a face defined by the indexes 1, 2, 3 and for
              #Which refer to the vertices in the list above

.
For the complete specification, please see this page.

To import it, you can just go to the 3D View header, press File, then Import, and then Wavefront (.obj). This will bring you to the file browser, where you can choose your file, and in the bottom left corner, choose some extra settings.


Change behaviour of an animation - AN I'm starting to use animation nodes so I can easily make some cool animations at my work to show case some products.

I've been able to move a list of objects and arrange them the way I want, but I don't know how I can make another animation with that.

I've made some objects to gather by the world origin, now I want to move them away, leaving just one in the center of the screen.
 I'm able to do that separately, but I have no idea of how I can make it continuously.

Edit: @Omar:Thanks for your answer, I've been able to make the in and outwards animation, biggest issue that I have is that I'd need to remove one object from the list and move the rest of them. Of course I'm able to do that with keyframes, but would like to learn it using AN
I'd like to do something like that:

First, create the initial animation using an approach like this:

Next, we take the output time and delay it by some amount using a Delay Node. This time is then used as the time for an Animate Vector node, the start vector will be a zero vector (No offset) and the end vector will be the offset vector. A list is then filled with this vector to match the objects' count. Finally, we set a certain list element to zero, this element corresponds to the object that will not move. Then the list is added to the vectors:


Z-buffer output from blender as file I am trying to synthetically generate depth image mimicing a real Kinect. So I have set the camera params as below using python script.

I have setup the nodes and able to get the depth image as shown below. Along with render params as shown in the figure. I am able to render the depth image.

But when I read the image outside, there is a cutoff after certain depth. This can be seen in the below matlab read of the image. One can see that the top rows in the image are set to constant high values.

When I change the viewpoint of the camera to be lower, it seems to gradually improve gradienting. So I believe its having a threshold which says beyond this z value, if there is an object then just assign the highest value or something. I played around with all the camera params and couldn't figure out the issue. Please let me know if you have come across this or know of any parameter that can fix this.

Thanks in advance!

The values of the Z Buffer are in float values, and then they get clipped to <0,1> (<0,255>) range in your file format.

Either save the images in some hdr format (.exr for example) that will support float values
or re-map the values to the <0,1> range yourself with Map Value node.


Is it possible to emit hair particles from vertices as objects without overlap? I'm trying to construct a low-poly deathstar-type surface using a collection of square panels randomly placed along a surface. I'm using a hair particle system, render as collection, emitting from vertices, however due to the random placement of the objects some vertices of the surface get no panels and some vertices get more than 1 panel.
Is it possible with the particle system to specify that only 1 object should be put at each vertex of the surface?

First activate the Statistics option in the Viewport Overlays, so that you know how many vertices your object has:

Now in the Particles panel > Emission > Number, type the exact same number, and under Source make sure that Random Order is disabled:

Here the answer for emitting one particle by face.


Indirect Lighting is very slow proportional to vertex count even if they are not in the view I have this library scene which is full of instanced group of the same model. The vert count says only 58, but when actually rendering it shoots to 1.7M due to all the books. However, the rendering is fast because Blender seems to exclude unseen objects.

However, when I turn on Indirect Lighting because I want it's effect, now the rendering time is exponentially higher. It seems to be longer proportional to vert count, even occluded ones.

Hiding some model is not an option since the camera will move around and eventually will reach the hidden part that I set. (Imagine a zooming all the way on this corridor)

Is there any solution to make indirect lighting calculate only the relevant model that matters in the current frame automatically, like the normal rendering without indirect lighting?

In this scene I even have a mist, so technically I can exclude everything further than the visible range. I thought things like setting camera's far clipping plane can help excluding things for Blender to consider but that is not the case. Rendering time is the same even with far plane as low as 100.

You are making wrong assumptions, something not being directly visible doesn't mean it is not contributing to the rendered pixels, in fact indirect light means exactly the opposite.

The walls out of view are still castings shadows in the visible ones, and the window behind the mist still lets light in even when you look away.

That is true for many direct light situations, even more so  with indirect light, all elements influence scene lighting everywhere, unless behind a watertight boundary.

Also Indirect light already calculates only relevant data as best as possible.

Some optimizations are done internally but it is not trivial to determine what contributes to a scene and what doesn't, more geometry will invariably make a render slower eventually.

If you want faster renders manually optimize your scene, reduce polygon counts, hide unnecessary stuff, simplify lightning, use instanced geometry wherever possible, reduce object count etc.

Also match your expectations to your hardware. If necessary bake lighting into textures to make animations faster.


Importing image with original asspect ratio without cropping At the end of a video (resolution 1080x720) I wanted to display the 'credits'. I thought the most simple way way was making an image file (with GIMP) with all the text that I could import to blender and move (scroll) via keyframes. The file is of size 1080x5000px. This was getting cropped when transforming (after checking the 'image offset' box), which is what I want to avoid.

Here in detail what I did so far:

When I import it, it is automatically stretched to the size of the video:

For getting the original aspect ratio I read that I should check the option 'image offset, which looked promising:

But when I tried to make the image smaller and move it (via effect strip>transform) the rest of the 'credits' image was cropped/not visible anymore.

As you can see, this only shows the last line of the credits, the rest is cropped away and I have no idea why.
So can anyone tell me how to make the rest of the image visible again? Is there maybe another way of importing it?

You have found right option, the only thing left is to animate it.

With your credits imported, find the best Offset options (both X and Y) to make them begin the credits being in the bottom and end - in the top of frame, and animate your found values:

So, in the 1st frame this value is -1850 for me, and in the last - around 230.

The result will be scrolling your text:

text from here

The much more in-depth solution is provided in this solution


texture mapping without distortion I tried to map this texture on cube and place the uv corner to match the object shape , but the result came out distorted. Any idea what is wrong, tried to subdivide the face by 1 and still not good. How to fix this ?

Thanks

You probably distort UVs by image shape. This is why your texture is distorted diagonally from left top to right bottom corner.

Use some 2D editor to fix texture perspective and use rectangular shape for UVs to mach shape of plane. Never distort UVs. In best case, they should have exact the same shape as faces in 3D object.

EDIT: "never" is too strong expression, sometimes is helpful or
 necessary, but definitely not in your case.


Where to learn texture painting? Texture painting has been really hard for me. Can anyone recommend me a nice place to learn texture painting to lighten my headache?

Xrg have made a very nice tutorial serie about texture painting. However it's not focused on PBR (for that you probably need to look at Substance Painter).
https://www.youtube.com/watch?v=jR7Axe2hbz8&list=PLNHJ5gduZOiWXtbeiZZi3q082bclOHQY4
and
https://www.youtube.com/watch?v=L7ALfRw6I5I


Help with creating procedural aged golden material? I'm a beginner to procedural textures and have spent the past few weeks studying it and now I'm wanting to practice making my own.
I'm trying to replicate the texture of this coffee table (shown below) but I keep running into issues creating the rust/burnt kind of gold texture (sorry, not sure how to explain with correct terms).
If someone could point me in the right direction to create this kind of rust and the different coloring I'd be very thankful.

You could do something like this. It's just 2 Noise textures, one multiplied (to transfer the darks) and the other added (to transfer the whites), both mixed with an orange basecolor, which when combined with a high metallic value gives the cooper-ish look similar to your reference image. You can change the amount of light/dark by adjusting theColorRamps. As an additional factor, I mixed the 2 Noise Textures and combined the result with black for a roughness factor, and adjusted the mix factor until it was sufficiently "shiny but grungy".


Reflection is quad dependent and looks non realistic Im rendering varous objects with a Sharp glossy effect but the reflections are quad dependent on the object (image below), meaning they behave separately within every quad making it look 8bit-like. Can anyone tell me why this happens?. (Im pretty sure subdividing would fix it but I want to know why I cant have a low poly object reflecting normaly.

The object has 2 modifiers: Subdiv Surface and Solidify. (Perhaps the Subdiv is causing it?). Help me you Blender savys I dont have a powerful CPU to test and test within every render would take me hours and hours.

Image:

As @Mr Zak pointed out you need to use smooth shading to get cleaner reflections on a glossy material.

The following example should make it clear, both of the spheres are identical, and have the same amount of subdivision (2) on the subsurf modifier


I am skinning a skewed quad with math I have a quad v1, v2, v3, v4

I have a array (a subdivided patch of vertex) that is sorted so that

[0][0] = v1

[0][8] = v2

[8][8] = v3

[0][8] = v4

I need to average the vectors to fill in the other locations of the array

FaceData = [ origin, v1, v2, v3, v4]
plane.worldPosition = origin

for x in range(len(array)):
    for y in range(array[x]):
        vertIndex = array[x][y]
        vert.XYZ = ???
        #this is where I need help

edit:
solved problem + visualization

for x in range(8):
    for y in range(8):
        p1 = v1.lerp(v2, x/len[array])
        p2 = v4.lerp(v3, x/len[array])
        p3 = p1.lerp(p2,y/len[array[x])
        this is the point I needed


How to drive text based off of a value How can I drive the content of a text object by a value box such as the samples slider?

I want to be able to change the value here:

And have the value show up automatically on this text object, without any type of manual refresh:

i have created a blend example to show how to do this.
http://www.pasteall.org/blend/36360

Ill warn you that this is big hack. it will most likley not work if you submit this job to an external renderfarm, deppending on the renderfarm settings.

What we want to do is create a driver on a transform property of an unrelated empty. Then write a custom Python Driver that updates the Text.body string with the Scene.cycles.samples value.

create an empty
create a driver on the x transform (not too important which axis)
run script in text editor.
set up driver

Code:

import bpy

def update_driver():
        bpy.data.objects['Text'].data.body = "%i samples" %bpy.context.scene.cycles.samples
        return 0

bpy.app.driver_namespace["update_driver"] = update_driver

Run this code when you open the file. now our custom pydriver will be available in the expression field of the driver. If you have already entered the expression before running the script, you will need to click in the expression field, and press enter to update.

It is important to have this fake_driver variable connected to a transform property of an object. This 'hack' forces the driver to update on each frame.
In the driver we now enter update_driver() for the expression.

Depending on your settings, you may need to open the User preferences and turn on 'auto run python scripts' to allow our python driver to work.


Atmosphere (Rayleigh/Mie) Scattering in Cycles I'm currently trying to create a photorealistic model of planet earth. Texturing and "modeling" is of course no problem. More interesting is the question how to obtain a realistic looking atmosphere.
In most tutorials it is done in the compositor by applying blurs to the render, but as a physicist I cannot be happy with those results as they obviously look fake in 99% of all cases.

There is one blend file in the internet, that implements ideas from GPU Gems that accurately recreates the atmosphere effect and looks realistic: http://www.blendernation.com/2009/11/05/atmospheric-scattering-blender-game-engine/
However, it was written for the Game engine and therefore cannot be used for Cycles renders.

With the introduction of volumetric rendering in 2.7 (which has a test build online) I would like to know if it is possible to create similar shaders to get a realistic atmosphere. I am aware of the fact that this will slow down the rendering time significantly by using volumetric rendering. Or does anyone else know a method to get realistic renders?

Thanks for your help!

I spent forever experimenting on getting a realistic volume atmosphere for a gas giant. My method will be explained step by step below.
** UPDATE **
While simplifying the node setup (easier to remember and faster renders), I discovered that the color ramp does nothing. Screenshots added.

1: To get a realistic density gradient and to have the edges of the atmosphere taper, you will need to connect the Object output to a Mapping node, and set that to point.
2: The scaling of that mapping node has to be the square root of the atmosphere sphere's size (in the sample scene, the sphere was 10 units, so the scaling was left at 1) or else the volume will go beyond the edges of the object. The result is a volume material that is smaller than the edges of the object.
3: Connect the mapping vector to the gradient texture node, and set that to spherical. Connect the Fac output to a multiply node.
4: The Multiply node needs to multiply the input by the square of the object's radius (which would be 10 in this example) x 10-100 (depending on how thick you want your atmosphere), and that the Multiply node in turn needs to be connected to both volume nodes.
6: Rayleigh scattering is easily emulated by using a combination of Scatter and Absorb nodes. Absorb has to have blue at 0.995, green at 0.088 and red at 0.024 (corresponding with the extinction coefficient of water; Neptune and Jupiter type planets have water and ammonia clouds and ices in them) and Scatter has to have Red at 0.224 Green at 454 and Blue at 0.950 (corresponding to the scattering probabilities of Lord Rayleigh). Absorb needs to go to the bottom input of the Mix Shader (before the one that controls density) and Scatter needs to go to the top one. The Mix Shader's Fac value should equal the albedo you want, which is 0.27 for Neptune and roughly the same for Earth. A rocky planet's atmosphere will not need the absorb node. Anisotropy for the scatter should be 0.250 to get the edge brightening that comes from peering through the atmosphere at a grazing angle.
7: For a rocky planet's atmosphere, it is helpful to simulate haze from dust. Add an addition scatter node and an extra mix shader. The different types of dust has different optical properties, so you will have to experiment. The new scatter node should plug into the top input of the mix shader and be no more than a few percent of the overall mix.


Hair Dynamics do not work on a object that has been parented I currently have a sphere parented to a key chain. This sphere has hair particles. Basically, I'm trying to make a pom pom -esq key chain, similar to what Fendi makes. However, when I apply the hair particle effect and turn on hair dynamics, the hair doesn't move in the animation. I have key framed the gold chain [see image] to move, and the ball moves with the gold chain but the hair does not. Any recommendations?

Here is the blender file

It wasn't parenting. You need to start the animation on frame 1, rather than frame 38. This allows it to cache from the beginning. I figured it out by rebuilding a .blend file and testing everytime I changed something until I found the issue, which I did.

Here is the fixed (Start 38 --> 1) .blend file.


How to rotate an object in my setting postion along z-axis in python? I want the screw object to rotate along the z-axis in 99 steps from 0 to 2*pi. For each step, the python can output an image and save in a folder.

The original position of the screw is like this:

I had expected the rendered image's position could be like this. It can only rotate along z-axis without the changing of the origin's position.

But after I ran my code, the position of the screw changed to this:

My code is:

def animationImages(path, num):

    model = bpy.data.objects[0]
    print(model)
    model.rotation_mode = 'XYZ'
    images_path = path

    image_index = 1
    for radi in np.linspace(0, 2*math.pi, num, endpoint = False):
        model.rotation_euler = (0, 0, radi)
        image_save_path = "{}/{}.png".format(images_path, image_index)

        bpy.context.scene.render.filepath = image_save_path
        bpy.ops.render.render(write_still=True, use_viewport=True)

        image_index += 1
    return

images_path = r'M:\RenderedModels\images'
num_images = 99

animationImages(images_path, num_images)

How can I write the code to get the expected result?

sorry that I have worked it out. The code can be:

def animationImages(path, num):

    model = bpy.data.objects[0]
    print(model)
    model.rotation_mode = 'XYZ'
    images_path = path

    x_radi = bpy.context.object.rotation_euler[0]
    y_radi = bpy.context.object.rotation_euler[1]

    image_index = 1
    for radi in np.linspace(0, 2*math.pi, num, endpoint = False):
        model.rotation_euler = (x_radi, y_radi, radi)
        image_save_path = "{}/{}.png".format(images_path, image_index)

        bpy.context.scene.render.filepath = image_save_path
        bpy.ops.render.render(write_still=True, use_viewport=True)

        image_index += 1
    return

images_path = r'M:\RenderedModels\images'
num_images = 99

animationImages(images_path, num_images)


How to get rigid body to collide with inflated soft body? I have a mesh that inflates, that is meant to land from a short height onto a floor, which is a plane.
This sets the scene as a kind of inflated balloon/pillow on the ground.
Then I want a rigid body (actually a parented group of rigid bodies? they are all parented to one mesh) to land on the pillow, deforming it, and sort of bouncing up and off of it.
I have scoured this website and others and cannot get specific answers to my problem. Here is my current setup which allows the pillow to land on the ground, but the rigid bodies to land on the "pre-inflated" shape of the pillow mesh.
Floor-
Collision
Rigid body passive, Shape - mesh
Pillow
Cloth - Inflate
Rigid body passive, shape - mesh, deform enabled
collision
Parent of several objects
rigid body - active, shape - mesh
This is for a product animation, so i could maybe recreate a version of this if required but i dont really want to share this particular .blend.
Thanks everyone

Unfortunately, it's a bug: https://developer.blender.org/T60079. You would have to switch back to 2.79 if you want this feature to work properly.


How can I model these support wires? I'm trying to model something like the image below, and I'm stuck on the support wires.

I've been trying to create a curve to use a guide for a spring model, but haven't had success. I find it tough to get my curves the right distance off the sphere; it's also tough to get the right curvature.

Here's another example of my problem; I can't figure out how to get good curve placement such that it sits nicely on the surface of my sphere.

Is there a better workflow that I could use to model this?

Go to File > User Preferences > Addons and search for Add Curve: Extra Objects and activate this addon
In the 3D view add a new curve object from the Spiral type. Adjust its settings as desired.
Add a new curve circle with a radius similar to the sphere.
Now to the spiral curve apply an Array modifier fit to a curve using the circle as length definition.
Next add a curve modifier to it using again the circle as deformation curve.

You can now freely adjust the bezier curve circle as desired to match desired length and radius. Set it's handles to Free and then subdivide it to make shorter segments.

EDIT
The trick here is using a bezier circle as deformation in the Curve modifier, since it will guarantee a perfect fit around the sphere as long as the body is truly spherical. You can then rotate both objects at the same time (curve circle and spring-like spiral) at will and it should always fit around the curve.


Help me create fog for my movie Help me create fog for my movie. I suffer for three weeks, I can’t make a smooth transition so that the fog is only in the distance of the landscape.
I cannot use planes with fog because the camera is moving. I also can not use the scatter for the world because I need a clear sky.
I came up with only such an option - snap a large cube to the camera (Copy Location), which only moving along the X and Y axis. Next, I mix two gradients in the material, a Linear gradient for a smooth transition into the sky and a Spherical gradient in the center of the cube because there should be no fog near the camera.
It seems simple, but in the end I get a dark scene or a sharp circle without fog in the center. Help adjust the transducers so that the fog matches the gradient and looks natural. How to make the most distant objects of the landscape completely in the fog, which gradually passes into the sky?
Blender 2.82 file in Dropbox (IronDump_fog.zip 56.5MB)- https://www.dropbox.com/s/abw6hz2q409bwxo/IronDump_fog.zip?dl=0

Best solution that doesn't take incredibly long to render is to use the Mist pass and composite in the fog. On the View Layers tab turn on Mist.

Then, in the compositor, turn on Use Nodes and add a Mix node between the Render Layers node and the Composite Node. Plug the Mist output into the Fac input on the mix node. The bottom slot controls your mist color, but you can also plug any other texture into this. You could for instance in another scene create a flat plane with an emission shader and a noise texture added to it and animate the texture node z position. This would look like clouds moving towards you. Then plug this animated texture into the bottom image slot the Mix shader in your main scene.

The falloff of the Mist is controlled in the Mist Pass panel in the World tab. Depth controls how far into the mist you can see. I would animate this to simulate the effect of changing fog density as you move across the landscape. Basically the thicker the cloud, the lower the depth.


VSE isn't multi-threading Whenever I render a video using the blender video editor only one core is ever used at any time. I have an 8 core CPU(FX-9590) yet regardless of whether blender is set to auto detect or a fixed 8 threads only one core ever sits at 100% at any given time. The rest of the cores sit and really low usage as if blender is completely ignoring them. I'm running blender 2.77a on Linux. I'm using Theora as the codec with an ogg container and Vorbis audio. How do I get blender to use all my cores?

You can use Pulverize to do multi-process rendering from Blender's Video Sequence Editor:

https://github.com/sciactive/pulverize

Pulverize will render multiple parts of your video in separate processes, then concatenate them into one video file using FFMPEG. It uses the Blender command line to select frame ranges for each render.


Drawing complex shape in Blender 2.83 Well first I am a complete and utter noob in Blender, so treat me like a 5-year-old (and maybe I can learn faster, oh and take the piddle out of me :) with a nice bit of banter ).

I'm an artworker, and I'm getting into creating some 3D artwork in Blender and create some basic shapes with some small knowledge of blender, but I still cannot understand what a biezer or a node is or even spell it right. So that's my level in 3D. Give me Photoshop/Illustrator/InDesign any day.

I can draw perfectly in Adobe Illustrator and save an SVG file 1.1 from Illustrator (now this SVG file might not be the way to go) as you will see in the poor attempt below:

So as you can see above, a whole load of noise which I guess is because of the curve or SVG file (so pointer number 1 from you geniuses for a fix or best way forward - with details on how to draw/fix this shape in blender 2.8X) EDIT Subsurface Modifier did the weird stripes.

The next thing is... how the hell you put a cap on this thing, I've tried 'Solidifier' with a minus number in to fill it in, but that is obviously not the way to go.

This screenshot below is the blender layout mode... yes it looks nice doesn't it, with its nice curves and oh so innocent look... but when I render it, the devil is within.

I've gone through so many video's, tutorials and google searches I'm now calling on 'Tech Support' aka StackExchange.

I'm not sure I understand the question, but I'll take a stab at it anyway, and you can let me know how close I came. If you want, of course.

It seems there are two questions: 1) How to render without strange artifacts, (or just how to model this form best in general) and 2) How to fill in the top-most open face of an object like the one you have shown.

This is my best guess as to what you are wanting to know. If I'm wrong, I apologize, but this is what I'm going to focus on until I know for sure.

Regarding 1): I'm still weak when it comes to rendering advice, but I do know that clean geometry is the starting point for getting renders to look right. There are many other factors, of course, but  geometry is the starting point, and that's something I know a little bit about. So you want to start with clean geometry. This leads us into a discussion about how to model your form.

Given the uniformity of it and the vertical nature of it, I would simply draw a top-view of the entire shape using curves. But then you will want to convert those curves to a mesh object before extruding it upward. Mesh objects and curve objects can be converted back and forth between one another using the Object Menu at the top of the 3D-View while in Object Mode.

After the conversion from curve to mesh, go into Edit Mode to extrude the shape upward. As for the fill, choose to select by Edges with the Number 2 key, and then hold Alt while selecting any one of the top most edges of the shape in order to select the entire top-most edge loop. Then press the 'f' key to fill in the top side of the shape.

One final note: Rather than start all over modeling this, it might be better to select a single edge loop while in Edit Mode, using Shift-D to duplicate that edge loop, pressing 'p' to bring up the Separate menu, and then separate by selection. This will make the edge loop its own independent mesh object. You could then attempt your extrusion beginning from this new mesh object, rather than modeling a whole new curve object and converting it.

The purpose of this whole procedure, by the way, is to test your results to see if they still have the artifact weirdness from earlier. If not, then this means you have created a repaired version of your mesh by following these steps.


Why Asset Browser is missing from Blender 2.92? I just downloaded the new version of Blender (2.92) and the "Asset Browser" (which we were all waiting for) is missing. Is this normal for a reason or do I have to do with any settings issue?

well, it's simply not ready to be released in 2.92
so they push the asset browser feature back to 2.93
you should check the 2.93 alpha and play with it, and report if there's bug