How Do I Save 3d View as a Wireframe Image? (Blender Render) I have some objects that I want to save their wireframe view as an image file.

Someone told me to use the OpenGL render active viewport button on the 3d viewer's menu header, but I just get an error message saying Failed to create OpenCL off-screen buffer, unknown when I try that.

I was also told to press F3 to save it that way, but that just gives me a history menu.

Then I was told to go to the file menu and "save as render", but I have no such option.

Can anybody who knows what they're talking about please help me?

Must be an integrated Intel graphics card, those are known to cause trouble. You should look into solving that problem first as there is no other way of capturing OpenGL viewport wireframe.

Anyway alternatives are

If you are using Blender Internal render create a new material and at the top of the Properties Window > Material Tab change it to Wire type. Optionally turn on  Shading > Shadeless

If you´re using cycles create a new material and add a Wireframe node as mix mask between two other shaders. Combine them as desired to achieve whatever visual you want.


Layer painting problem I have an issue with painting a certain section that has been 'layered' as in, having created a seperate collection from the object in question. Here is a link of an image describing the details: https://www.mediafire.com/view/h0iz7x4l71lmb59/Painting_Problem.png/file

Your 2 objects are sharing the same material, and the faces of the big objects are overlapping in the UV Editor, you could see it in the UV Editor if you select all in Edit mode, you need to unwrap with another method, like Unwrap > Smart UV Project or mark some seams then Unwrap > Unwrap.


Why doesn't Blender have groups that allow you to transform grouped objects all at once? I'm a long-time 3DS Max user recently converted to Blender (refugee from the monopoly and now financial oppression practiced by Autodesk).  So far, I love many of the features in Blender more than Max - not to mention the pace of new development.  One struggle I currently have, however, is the lack of Groups/Grouping in Blender 2.8.  Does anyone know why they chose to eliminate such a useful and ubiquitous feature of all CAD programs?
I've tried using collections, but I can't simply click on a collection and then move/rotate/scale it as if one single group/object.  I know you can parent objects to achieve this effect, but it's like using "Link" in 3DS Max and not very effective (because you always have to remember which object is the parent).  The Join feature could also be an option, but it's more like simply attaching an element to a mesh in 3DS Max and also not practical for this reason (can't then easily transform/rotate a "joined" object within the larger object).  Am I missing something?  Has anyone found a practical work-around?  Any idea if they'll bring back groups in an upcoming Blender release?

To achieve what you want to do, simply right click on a collection and press "Select Objects", effectively selecting every single object in said collection, then transform however you like.


Connect two walls with a curve If I have this,

How can I connect the two walls in the following way?

I mean, I would like to understand how to connect the two parts with a curve.

You can do that easily with the Bridge Edge Loops operator, just select both faces capping the ends you wish to join, and press Space Bar and search for Bridge Edge Loops.

Adjust parameters as desired, most importantly the Number of Segments and Smoothness.


Get height value at specific x and y coordinate via script It may be simple but I don't get it to work. I have ground objects and several other objects that should stand on the ground. These other objects are automatically positioned. The x,y coordinates are fixed here, but the z coordinate has to be adapted so that the objects really stand on the ground.
What is the best option here? Use object.ray_cast or search for nearest vertices in the area of x,y?

Precisely speaking you need some sort of collision detection look at this book and this link for more info.
Roughly speaking ray casting  is a good way; but be careful about optimization.I suggest you to compare x-y bounding boxes of your objects and groundObjects (using bpy.data.objects['Cube'].bound_box
). If they overlap each other do raycasting for each vertex of your objects on the overlapping groundObjects and choose the shortest one.


Speeding up hair editing The first time I saw the hair system in blender, I was able to style it in the particle editing view without much of a problem. That was on a cheap laptop. Now I'm working on a system with two bridged hybrid GeForce GTX 980 TI's, 32 GB of RAM, and a Core i7-5930K 6 core CPU clocked at 3.5 GHz. It can handle any game I throw at it without a hitch. But ask it to edit a couple hundred hair particles? Maybe a hair here and there will change before Blender crashes. It doesn't matter if I put it in CUDA mode or not. I'm at my wits end here.

Edit:

If I disconnect the hair from the emitter, I can manipulate it freely. Except, I really can't have the hair disconnected from the person's head.

Here's what was happening. I made the body itself the emitter, which is very high poly, and had a large deflect emitter distance. There were actually about a thousand hairs, each of which was being calculated against every single vertex in the body.


Issues with joining 3D scanned OBJs We work with another program to first create a human head with particular facial features, then we try to join it with another scanned mesh (the human body) in Blender. Both are in obj format.

The problem is when we use Ctrl+J, it mixes all the colors and one of the meshes loses its colors by doing this. Is there another way to join the head and the body without losing the real color of both meshes?

This is the result of the joining in Blender software and the other is obj obtained from the 3d scanner directly, and I need to preserve the colors of the face and the body individually

Here is a procedure for baking the color from a 3D scan to a UV map in Blender: https://software.intel.com/en-us/blogs/2015/03/24/RealSense-3D-scan-Vertex-Color-to-UV-Map-Blender

Follow this process for both meshes (the head then the body). Then try to join them. If the textures are baked and applied via a UV map, both colors should remain when you join the meshes.


Fill hole with spherical cap I had some artifacts at the pole of a sphere, which are the result of a Displace modifier with a slightly messy UV map:

To get rid of them, I Alt-selected a loop around them and did Select > Select Loop Inner-Region:

When I now hit Del and choose "Dissolve Vertices", I get a single flat face:

Is there a way to instead fill the hole with something like the cap of a UV sphere?

Any other way will leave a flat face. The way I do it is to create the exact size UV sphere with the same amount of segments, delete the unnecessary faces, and then manually connect the vertices to the cap of the new UV Sphere.

But I'm guessing since you have so many segments that would take forever. So another more inaccurate way- since it's a sphere is...
Extrude the opening's edge 2 or 3 times. Then merge the smallest loop into a single vertice.
From there you can adjust the height of the new vertice loops until the smooth operator or subsurface takes effect visually.


Plane rendering order depends on camera position/angle I have 2 plane meshes on top of each other within ~0.1 units.
The top plane is a small image (with alpha) 'car' that is moved around by input. The bottom is a large image (with alpha) 'terrain' that is static. The camera is also static.

I noticed that the game engine would sometimes draw the tank below the terrain for some positions. (Because of alpha in the terrain, I can see the car below the terrain.)

I started experimenting and found out that this rendering order error depends on the angle between camera and planes. I did not find a proper pattern though. Generally speaking, the problem seems to disappear when distance (between camera and planes) is small and the angle too (i.e. the camera is looking 'directly' onto the flat planes).

Is this a known problem? I don't know how to progress from here.
Blender version is 2.78c.

That is caused by floating point errors, depending on the distance to the camera. When the values get too high, the precision is not enough to properly sort the objects, especially when they are only 0.1 units apart. You can try to remedy this by adjusting the camera far clipping plane value in the camera properties or increasing the distance between the two planes.

EDIT: just now saw the screenshots - that does look like the far clipping plane. Decrease its value and you should be fine.


How do I remap colors in Cycles? I'd like to remap colours in Cycles the way one would have done in Blender Internal, such that I could take the output of the shader/material and change the range of colours to something else, say from a ramp.  This was how Blender Guru was able to change the texture map on his Realistic Earth so that the dark side of the planet had one texture, while the other did not.  Such a technique could also be used to affect the fac input on Mix Nodes, as well as parameters, such as Glossy 'Roughness'.

I've tried many things without achieving the results I desire, but I'm still new to Cycles.

It looks like what you are looking for its the color ramp node.

The color ramp node can take any value between 0 and 1 (values outside this range will be clamped to 0 or 1) in it's fac input socket.  And it will output the respective color from the gradient specified by the color swatches just like in BI.

Use the + and - buttons to add more swatches.
Use the <-> button to flip the order of swatches.
The color (and alpha value) of the selected swatch is set with the large color strip at the bottom of the node.
You can adjust the exact position of the selected swatch with the pos spinner.
The alpha gradient is outputted through the alpha output socket.

So it could, as you mentioned, be used to adjust the affect of an image texture on a mix shader (the image texture could just get plugged directly into the mix shader if no color adjustment is needed though).


How could one unwrap/morph/project a complex 3D mesh to a flat surface? I'm working with a 3D mesh (non-convex) and would like to achieve a similar effect as shown in the following video:

From: https://youtu.be/Z0Qiq22PRWQ?t=1544

In other words, if I'm starting with a mesh that looks like this:

I would like to flatten/unwrap/morph/project its vertices to a flat plane mesh like this:

I'm looking for a general process of how this could be done. An example, e.g with Suzanne, would be helpful.

I recognize that this is somewhat similar to UV-unwrapping. However, it's not clear to me how one would go about creating flat 3D mesh vertices from the UV map data.

This could also be done by moving each mesh vertex to the desired position on a plane, but I wonder if there is a more efficient method.

This script can help you to prepare the animation:

The script should be run in object mode.

The script will report UV map coordinates into a shape key, so that you can animate the shape key.

You need to prepare the mesh: mark seams and make your UV map (you may need to move rotate, scale the uv isles as you wish). If you modify the UV map, run the script again so that the shape key will be updated.

The seams are important because the script will use them to split the original mesh (so your mesh will be modified by the script).

These splits are done because we want each vertex to have only one correspondent uv vertex in the uv map.

It is commented, below, but if some more details are needed, please ask:

import bpy
import bmesh
from mathutils import Vector

print( "------------" )

shape_key_name = "test"
object_name = "Suzanne"
uv_map_name = "UVMap"

obj = bpy.data.objects[object_name]

# Prepare the shape keys

if not obj.data.shape_keys:
    obj.shape_key_add( name = "Basis" )

shape_key = obj.data.shape_keys.key_blocks.get( shape_key_name )

if shape_key:
    obj.shape_key_remove( shape_key )

shape_key = obj.shape_key_add( name = shape_key_name )

# Cut the mesh

# Get a bmesh from the object mesh
bm = bmesh.new()
bm.from_mesh( obj.data )

# Prepare the mesh
bm.verts.ensure_lookup_table()
bm.edges.ensure_lookup_table()
bm.faces.ensure_lookup_table()

# Split edges that have seam and link to 2 faces
edges = [e for e in bm.edges if e.seam and len(e.link_faces) == 2]
bmesh.ops.split_edges( bm, edges = edges )

# Give the new geometry back to the object
bm.to_mesh( obj.data )

# Get the uv map
uv_map = obj.data.uv_layers[uv_map_name]

# Assign the coordinates to the shape key
for loop, uv_data in zip( obj.data.loops, uv_map.data ):
    uv = uv_data.uv
    vertex_index = loop.vertex_index
    shape_key.data[vertex_index].co = Vector( (uv.x, 0, uv.y) )


Shrink wrapping 2 mesh together I need a help shrink wrapping a mesh.
* The tan part is the one that needs to be shrink warped because it was it has data on the front and the back side.

The puprle mesh only has data on the font side ( this is the reference scan i want the tan part to fallow)

My question is, Is it possible to have the tan part fallow the shape of the purple part and still keep the data on the back of it without being crushed.

1) In edit mode, go to your vertex settings (it's the triangle connected with vertices icon) and click the plus sign to add a vertex group. Rename this vertex group something like "shrink".

2) Select all your vertices (Hotkey "A") and then in the vertex group tab, click "Assign".

3) In your Shrinkwrap Modifier, add this vertex group.

4) Then, select only the vertices you don't want shrinkwrapped to your original.

5) After that, with those vertices selected, in the vertex tab and with the vertex group selected, click "Unassign". Those vertices will be excluded from the shrinkwrap.

Hope you can understand my explanation and good luck with it :)


Black spots... Blender Guru Tutorial - Anvil I did the tutorial of BLender Guru about the anvil but I am close to getting crazy due to some black spots I can not get rid of...

Render Preview:

Final Render:

I hope this is an obvious one... Thanks for looking into it.

Nodes:

Normalmap:

Goodle Drive Blender File

It's because there is an object hidden in the viewport but not to the render engine. Both objects have approximately the same shape and overlap each other at some parts. The node setup and baked map is perfectly fine.

Here's how you disable rendering the viewport-invisible object:


Detect when object is sliding backwards I am working on a skateboarding game and I need to detect when an object is moving backwards so the character can change stance and the controls will swap.
For example after doing a 180, or when coming down after going up a ramp (and not doing a 180).
Ideally this would be a boolean, with an adjustable tolerance. I have been through every object I can think of and I can't figure out how to do this and it's had me banging my head against the wall for weeks. I'm guessing there is an old frame and new frame value to operate on to tell whether the player is moving in the negative y direction. Fairly new to blender and python, terrible at math. Any help is greatly appreciated.

getLinearVelocity() provides you the motion vector you object was travelling since the last frame to reach the position it is now.

The motion vector is the vector from the last position (L) to the current position (C).

With the scalar or dot product you can determine if the previous position was in-front or behind the current position. You can even determine if it was left/right or over/under the object.

Before you can calculate anything you need to define what is front and what is behind. You need an Front/Behind orientation vector. Lets assume the border is the local XZ-plane.

anything that is at the positive Y-axis is front
anything along the negative Y-axis is back.
anything on the XZ-plane is neither back nor front (it is left/right/over/under)

For correct calculation all vectors needs to be in the same space. I suggest to use the scene space (world) You convert the orientation vector to scene space (relative to the objects origin):

from mathutils import Vector

FORWARD_ORIENTATION = Vector([0, 1, 0])
forwardOrientationVector = object.worldOrientation * FORWARD_ORIENTATION

The dot product projects one vector on the other and tells how much of the vector the projection uses. The calculation is pretty simple, but we still use the dot operation mathutils.Vector provides:

forwardRatio = forwardOrientationVector.dot(object.getLinearVelocity())

You check the range of the result, to get one of the three possible values:

if forwardRatio > 0.0:
    print("forward")
elif forwardRatio < 0.0:
    print("backward")
else:
    print("neither forward nor backward")

Similar calculations can be used to determine left/right (RIGHT_ORIENTATION = Vector([1,0,0])) and over/under (OVER_ORIENTATION = Vector([0,0,1])).

I hope it helps


how i disable this in dyntopo sculpting? i did a test showing you this as you can see, the polygons in the plane get more deep when i scroll in or out,i do not want that the brush detail increase or decrease when i scroll in or scroll out to a sculpted mesh , any solution for this?

Turn on Constant Detail and the brush should behave the same zoomed in and zoomed out, same detail size but unfortunately the brush size will still increase and decrease by design.
edit: Found it, hit that lock there on theleft of the radius and you can zoom in and out and the brush stays the same size :D


Interface. Join areas is not working properly I made a mess with areas trying to merge them into 2. Is there a way to remove areas without aiming at the corner and then dragging them with LMB?

Just right click on the border and select Join Areas.
Then you can choose which way to merge them.


Fading and animating objects without materials I have a scene where I have a lot of particles (> 5000) which are essentially spheres, that I would like to animate in a particular fashion. Basically, the thousands of particles can be categorized into a few types, with each type having its own material.

I am working on animating the behavior of a "periodic" box where, as particles cross a plane, they appear out the other side. Similar to a game of snake where the snake goes through one wall and appears out the other. However, I have come across the following limitation(s):

When I keyframe the animation, unless the frames are literally 1 apart, the particles will travel backwards then start moving forwards again. If the frames are 1 apart, the particle will disappear and reappear at the back. This is undesirable as I would like to have a smooth animation.

As a solution to this, I thought of fading out the object, move it, then fade it back in at the start. However this brings up another issue:

I am using cycles. Short of having 5000+ materials, one for each objects, I don't know how to control the opacity/transparency of an object independently. Also, if I have that many materials, I lose the ability to change the attributes (color/texture/etc...) of an entire group collectively.

If anyone has any thoughts on how to deal with this issue, whether in terms of fading out an object independently of its material, or any neat approaches to what I am trying to do, it would be greatly appreciated. Just for sake of completeness, I am writing a blender python module to do this, since all the position data for the particles are in a file generated by a simulation, and this is the remaining issue I have.

Thanks!

Ok so I figured out a solution thanks to @Carlo's comment. Hopefully this will help anyone else who's trying to do something similar.

I create one node group per object type that has a default color, and accepts one input: transparency. The node group itself is basically a mixer between Diffuse bsdf and transparent bsdf shaders.

Each object of that type has it's own material which basically links the node group with the material output. I can then keyframe the opacity on each material independently, but still maintain the ability to change the color collectively for the type by changing the node group color.

Since I am scripting this, I am not worried about having to keyframe 5000+ objects. I came up with the following functions:

# create_node_group - Creates a node group
# for a particle type with a default color.
def create_node_group(name, color):
    group = bpy.data.node_groups.new(name, 'ShaderNodeTree')

    # Create node group input.
    inputs = group.nodes.new('NodeGroupInput')
    inputs.location = (-300, 0)

    # Create diffuse shader.
    diffuse = group.nodes.new('ShaderNodeBsdfDiffuse')
    diffuse.location = (0, -200)
    diffuse.inputs[0].default_value = (color[0], color[1], color[2], 1)

    # Create transparent shader.
    transparent = group.nodes.new('ShaderNodeBsdfTransparent')
    transparent.location = (0, -400)

    # Create shader mixer.
    mixer = group.nodes.new('ShaderNodeMixShader')
    mixer.location = (200, 0)

    # Create node group output.
    outputs = group.nodes.new('NodeGroupOutput')
    outputs.location = (350, 0)

    # Create input and output sockets.
    group.inputs.new('NodeSocketFloat', 'Transparency')
    group.outputs.new('NodeSocketShader', 'Shader')

    # Link everything together.
    group.links.new(inputs.outputs[0], mixer.inputs[0])
    group.links.new(diffuse.outputs[0], mixer.inputs[1])
    group.links.new(transparent.outputs[0], mixer.inputs[2])
    group.links.new(mixer.outputs[0], outputs.inputs[0])

    return group

The above function creates the node group and returns a reference to it. I then use the function below to create a material for each object in my scene, which calls the function above.

# create_material - Creates a material with a color
# for the group (if not created already). Name and
# group name should typically be the same.
def create_material(name, group_name, color):
    group = bpy.data.node_groups.get(group_name)
    if group is None:
        group = create_node_group(group_name, color)

    mat = bpy.data.materials.new(name)
    mat.use_nodes = True

    for node in mat.node_tree.nodes:
        mat.node_tree.nodes.remove(node)

    mgroup = mat.node_tree.nodes.new('ShaderNodeGroup')
    mgroup.node_tree = group

    outmat = mat.node_tree.nodes.new('ShaderNodeOutputMaterial')
    outmat.location = (200, 0)

    mat.node_tree.links.new(mgroup.outputs[0], outmat.inputs[0])
    return mat

Finally, if I want to change the opacity of an object, I simply call this small function:

# set_transparency - Set the transparency of an object.
def set_transparency(ob, val):
    mat = ob.data.materials[0]
    mat.node_tree.nodes["Group"].inputs[0].default_value = val

This may not be the best solution, but it works for me, and hopefully it will help others in a similar situation.

Thanks!


How to add more vertices on my object (picture examples) The video I'm following has more of those vertices (black dots), on their object and mine doesn't - it is required as I'm about
rip open the object ,and since I don't have more, its impossible to rip where the video is asking.

Apply the subdivision surface modifier. Press Ctrl + A (or use the arrow on the top right) to make the modifier permanent.

Read:
https://blender.stackexchange.com/a/205166/92768
and
How to apply a modifier in V2.9+
But if your "tutorial" doesn't explain those concepts, consider looking at one that explains better. Not all videos are "tutorials". Some are just not worth your time.


Is there a way to make different HDRIs be reflected on specific objects in the same render? I know how to make all reflections be one HDRI while everything else is a different HDRI, but how could I have one HDRI affect one object's reflection, while another HDRI affects a different object's reflection?
I would like to do this without layering to get a lighting effect.

Would be helpful if you can closer describe what exactly you want to achieve by this technique.

If you want to affect one object by one HDRi and second object by another HDRi from World shader - you can't (from what I know). From World shader you can use more HDRi to affects different types of light rays with Light path node. That is what you mentioned already I guess. Those affects all objects in a scene. For something like that you would have to render twice and merge in compositor.
In some cases you can fake few things like reflection per object on material level.
Like here is used another HDRi for reflection.

Tip: Quite great explanation of "Light Path" node.


Is it possible to join multiple objects without losing their own UV spaces? I am working on a 3D character for export out of blender, but I need to keep the UVs of every object separate. I need to have one object with multiple UVs for different part of the mesh. How do I do that?

As long as your UV maps have unique names(before joining), they will be kept separate when joined into one mesh. You can change the names of UV maps in the Object Data tab in the Properties Editor:

UV Maps Panel

Multiple UV Maps


Used boolean modifier for lettering on 3D print. It won't print letters, but shows as working I am trying to print this piece I made. It looks as though everything is right until I put in in my print program and the lettering doesn't print right. I can't figure out what I did wrong.

File before the Boolean

I got it to the point of showing letters, but they are outlined. How do I make it solid?

Try with file https://drive.google.com/file/d/0B7t43CPM6VA-RURVZDg0NGhuTEk/view?usp=sharing (I'll delete it from my drive at Oct 28).

I did the following:

Converted text to mesh.
Combined all text meshes together.
Extruded text meshes on Z axis.
Did the boolean modifier to carve the plate.
Applied the modifier to the plate.
Deleted the text meshes.
Exported to STL.


Add curvature to the edge of my UV Sphere that has a hole through it Could someone tell me how i could add a curvature to the edge of this sphere hole?

We, people from forensic department ... we already know :)
But yes ... please  use more illustrative screenshot like - switch to edit mode to see wire (topology) of your mesh with probably more distance so we can get more context.

If I'm right ... just select top edge loop Alt+Shift
And Bevel Ctrl+B it (with Middle mouse add more loops.

Or use Bevel modifier as non destructive ... just create a Vertex group from top vertices.


how to use BMesh to add verts, faces, and edges to existing geometry I've puzzled about this for a while, but haven't found an answer I understood. This snippet below does add geometry (3 verts and a face) but it also generates an error, Does going to object mode make the data reference in bm be cleared? if so, how does data.vertices still get updated?

ReferenceError: BMesh data of type BMesh has been removed
Error: Python script fail, look in the console for now...

any ideas, this is the cut down script ( run it with a cube in edit mode)

import bpy, bmesh

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

bm.verts.new((2.0, 2.0, 2.0))
bm.verts.new((-2.0, 2.0, 2.0))
bm.verts.new((-2.0, -2.0, 2.0))

set_of_verts = set(bm.verts[i] for i in range(-3,0))
bm.faces.new(set_of_verts)

bpy.ops.object.mode_set(mode='OBJECT')
bm.to_mesh(obj.data)

I have a few scripts that might benefit using the BMesh module for adding geometry, I know how to do it in the pre BMesh way.

Edit, using answer: here's how to add tris and quads while staying in edit mode https://gist.github.com/zeffii/5668669

The issue with this script is when you exit editmode, the editmesh you were editing becomes invalid (thats good, but not what you want).

So instead, just exit editmode and blender will handle converting the modified bmesh into the object mode mesh data.

import bpy, bmesh

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

v1 = bm.verts.new((2.0, 2.0, 2.0))
v2 = bm.verts.new((-2.0, 2.0, 2.0))
v3 = bm.verts.new((-2.0, -2.0, 2.0))

bm.faces.new((v1, v2, v3))

bmesh.update_edit_mesh(obj.data)

# This is optional, you could also stay in editmode.
bpy.ops.object.mode_set(mode='OBJECT')

Note, if you want to stay in editmode, call bmesh.update_edit_mesh(me) at the end of the script to ensure ngons are re-triangulated for display.


Flicker screen effect I am using blender as a video editing software. And I wanted to know i it is possible to get this effect from it -->  https://youtu.be/BXbBTTmdYtA?t=65

The effect causes a flickering screen can this be done by inserting black frames?

The flickering effect can be achieved by adding an effect strip on top of the movie clip.

Shift+A > Effect Strip > Color
Go to the Properties Panel of the video sequence editor (N)
Set the blendtype to Alpha Over
Set a keyframe on the opacity (also in Properties Panel) by clicking on I
Go to the graph editor and add a Noise Modifier (in the Properties Panel of the graph editor)
Tweak the different options in the Noise Editor like scaling, strength, phase the frame range etc.


How would you model a pyramid pattern? I’m trying to model this kettle with a pyramid pattern on the lower side of the kettle. The problem that I am facing is that I have a Subdivision Surface modifier on the object to give it that smooth round look. If I try to model each individual pyramid, the Subsurf smooths out the pyramid.

What is the best way of achieving this look?

You can model the pyramids either scaling extruded individual faces to 0 and then removing doubles(w->r), or you could poke the faces(alt+p) and then select the middle vertices by the amount of adjacent faces or connecting edges(shift+g menu) and use Shrink/Flatten(alt+s) to move them outwards in the direction the surface is facing. You could then grow selection(ctrl++) and bevel(ctrl+b) the edges so they remain sharp(ish) after Subdivision Surface modifier. You could crease the edges(shift+e) instead of beveling to have them completely sharp with the Subsurf, but that would be a bit unrealistic since edges are rarely completely sharp.


Merge two or more blender files with the same model but with different animations? I have a a couple of blender files(.fbx files) where the model for each file is the same, however each file has a unique animation. (Examples of files: player_idle.fbx , player_walk.fbx and player_attack.fbx)
Since they have the exact same model. Is there a way to combine each blender file into a single blender file with all of the animations from every blender file?
Sorry, but I'm quite new to blender.

Create a blendfile and import all the .fbx. and save it
Open the master blend file. (the one where all animations are supposed to go).
Click on File -> Append
Choose the blendfile you created earlier containing all the .fbx.
Choose the 'folder' Action - Inside are all animations that were imported. Hopefully they have useful names.
Press A to select all and Append.
Import the main model into your .Blend.
Open an Action Editor and select the action you want to use with your selected object.
Just for safety check the Fake user icon for each animation.

Now you can switch, combine, select or even export to Unity etc. between your actions.

Btw. an FBX can store more than 1 animation. Usually you wouldn't store the same mesh several times, but once with multiple animations appended, or one fbx for each animation, with the mesh in a separate file.


How do I add texture to new faces on an already-textured mesh? I finished modeling and making a texture for a coyote, but then decided I'd like to add some planes behind the legs and around the ruff so that I can add a texture that will make the coyote look more bushy. Below is a picture of my coyote with some rudimentary MS paint lines where I'd like to add planes that will simulate spiky fur when viewed from the side.

I can easily add more planes for the fringe, but in order to apply texture to them, I'd have to create a new UV wrap, which will make the UV map around which I based my existing texture useless. Is there an easy way to add faces and textures to an already-textured object without ending up with an entirely new UV map?

Thanks!

Like someonewithpc said, you can simply create the new geometry for the fringe and add it to the existing UV map:

Create the new geometry
In Edit mode, deselect everything then select only the new geometry
With your cursor in the 3D view, type 'U' and select your preferred method of UV unrwapping
In the UV/Image Editor, select the new geometry and place it in an unused portion of the texture. (Hopefully you have some blank spots in the image. If not, you're out of luck)

The new geometry should be part of the UV map, and the existing UV map will remain unchanged.


AN: how to get update event from sockets? I'm trying to understand the many features AN has developed over normal node api and by reading the code I realize that if you need to be notified of a property change with the classical update hooked to a function call it needs to be declared as normal blender property and there is no way to get update notification with sockets data? For example:

import bpy
from bpy.props import *
from ... base_types.node import AnimationNode

class TestNode(bpy.types.Node, AnimationNode):
    bl_idname = "an_TestNode"
    bl_label = "Test node"

    def runUpdate(self, context): #this never get's called by run2 update
        print("update ", self.run1)
        #print("update ", self.run2 ) #<---- this error not sure how to get it

    def draw(self, layout):
        layout.prop(self, "run1")

    run1 = BoolProperty(name = "run1", default = False, update = runUpdate)

    def create(self):
        self.newInput("Boolean", "run2", "run2", update=self.runUpdate, value = False)

    def execute(self,run2):
        if run2:
            print("RUN 1 ", self.run1)
            print("RUN 2 ", run2)

In this example the only way (I know) to get run2 value is with the main execute function and update=self.runUpdate never get called.

Also I noticed all the time blender props get hooked to events.propertyChanged / executionCodeChanged etc and/or the function calls createSockets() with @keepNodeState decorator and inside this function the sockets get declared. can someone tell me if I got it right and how is supposed to work to get notified if a value in the socket change and in general what is the correct way to take advantage of these events?

A node should not react to changes of the value of a socket. What you are trying to do is not possible. You cannot create an event handler yourself that is executed when the eg the boolean input socket changes.

Also run2 is not a property of the node. This is why self.run2 raises an error. The final value of run2 is passed into the execute function. It my differ from the value of the socket (when the value comes from another node via a link).

The propertyChanged and executionCodeChanged event handlers are mostly used by the Auto Execution system. When propertyChanged is called the tree will execute (only if Property Changed is activated in the Auto Execution panel).

The executionCodeChanged event on the other side triggers a new generation of the execution code. Furthermore the new execution code will be executed if Tree Changed is activated in the Auto Execution panel.

The keepNodeState decorator stores the current values and links to a node in the beginning of the function execution and sets them back on the newly created sockets when the real function ends. This makes it much easier to update sockets without having to care about all the details every time.

When you create/move/remove sockets the treeChanged event is called automatically. It does pretty much the same as executionCodeChanged. This is why I don't have to call executionCodeChanged again after I changed the sockets.


How to setup your system python for use with Blender I found lots of material on how to make Blender use the system version of python. Essentially: delete the python folder of the install, and Blender looks for a system version, where on some systems you need to supply the path yourself as:
PYTHONPATH=/usr/lib/python3.7 ./blender --python-use-system-env

Official information from Blender docs found here.
What I cannot find is how to set up the system python to correspond perfectly with that of a given Blender version. Prefferably, I would like to do this with virtualenv.
The workflow I am interested in woud look something like this:

make a virtualenv that corresponds exactly to that of the Blender bundled python + dependencies/modules.
make Blender use this system python, of this virtualenv (if I have to issue a command like workon Blender2_91_2 before I start Blender, thats ok)
modify my virtualenv as need arise. Any change I make, I know i am likely to break things, which hopefully would be only other addons, which will be ok (its all only a virtualenv that I can play around with, since i know the proper bundled one)

Edit.. If having encodings hassles try virtualenv
After installing python 3.77 to /usr/local/ from a tarball, thought I would  create a new python venv for blender.  Using /usr/local/bin/python3.7 -m venv foo --copies I ran into the no module named encodings error, and found no way to alleviate the situation.
Thought I'd give the somewhat deprecated virtualenv a try, and bingo, blender ran straight up.
/usr/bin/virtualenv -p /usr/local/bin/python3.7 --always-copy foo

creating a copy of the python to venv and from it blender runs without any extra steps required.

A way for Ubuntu
Having horrible issues building blender currently, so have gone thru the motions of setting up virtual environments for freshly downloaded 2.91.2 and 2.92.0
Have both in vers folder
Note commands shown below are <prompt> $ <command>
shitbox:~/blender/vers$ ls
blender-2.91.2-linux64  blender-2.92.0rc-linux64

renamed the python folder in both from python to _python
shitbox:~/blender/vers/blender-2.92.0rc-linux64/2.92$ mv python _python

Now set up a virtual environment named "bar" and changed into that directory
shitbox:~/blender$ ~/blender/vers/blender-2.92.0rc-linux64/2.92/_python/bin/python3.7m -m venv bar --copies
shitbox:~/blender$ cd bar

next have made link copies of blender's distribution python lib to venv lib
shitbox:~/blender/bar$ cp -as /home/batfinger/blender/vers/blender-2.92.0rc-linux64/2.92/_python/lib .

Created  symlink to blender into the venv's bin.
shitbox:~/blender/bar$ ln -s  /home/batfinger/blender/vers/blender-2.92.0rc-linux64/blender bin/blender

activate the venv
shitbox:~/blender/bar$ source bin/activate

and start blender telling it to use this venv
shitbox:~/blender/bar$ BLENDER_SYSTEM_PYTHON="$VIRTUAL_ENV" blender

The environment variable can be set in the activate script in your venv's bin folder, however on Ubuntu I am using direnv which automagically activates the environment when entering the folder using an .envrc file. So I have stuck it in there
export EDITOR=nvim
source $(pwd)/bin/activate
export BLENDER_SYSTEM_PYTHON="$VIRTUAL_ENV"

echo "Blender 2.92"

and similarly for 2.91 in "foo"
(foo) shitbox:~/blender/foo$ blender
Read prefs: /home/batfinger/.config/blender/2.91/config/userpref.blend
found bundled python: /home/batfinger/blender/foo

Can install in the venv with pip
pip install matplotlib

and bingo in blender
>>> import sys

>>> sys.executable
'/home/batfinger/blender/foo/bin/python3.7m'

>>> import matplotlib
>>> matplotlib
<module 'matplotlib' from '/home/batfinger/blender/foo/lib/python3.7/site-packages/matplotlib/__init__.py'>

Notes.
Above is demonstrating how to use the python that ships with blender to make a venv. Would be very inclined to download and build the matching version Python3.7.7 and use this as the basis for a venv. (It's my experience that python builds pretty well hassle free)
It's been a while since I downloaded an official build of blender and was a little surprised to see both versions above using python 3.7.7. (Have been building against 3.8.2 since blender 2.7, last run of install_deps.sh to build was using 3.9.1 .. miss not building with the "latest" .. don't miss when it doesn't work)
Since both venvs use same python version it feels a little overkill to install scipy, matplotlib, pynvim, plumbum and other 3rd party modules I use alot for each venv.
In the past any module  I wish to have available for all instances I have used
pip install pynvim --user

which is unavailable in venvs as setup above, unless python --system-site-packages was used creating venv, or in hindsight edit pyvenv.cfg to have include-system-site-packages = true
or add a   path to python path in .envrc with
export PYTHONPATH="$HOME/.local/lib/python3.7/site-packages"

will make that path available to python in your venv, but not in blender..
A quick way around this is make a script to add paths to blender
addpaths.py
import sys
sys.path.append("/home/batfinger/.local/lib/python3.7/site-packages")

and start blender with
blender -P addpaths.py

TODO write a script to automate the above.


How to model a flag stand? I’m quite new to Blender and started to make some shapes. At the moment I was trying to make a flag shape like that:

But unfortunately, I’ve got no clue how to do it the proper way. If someone could give me a tip or redirect me to a video tutorial that would be very helpful!
Thanks!

Basically you do this steps:

⇧ Shift + A -> Mesh ->  plane
7 -> Top Orthographic View
↹ Tab -> Edit Mode
⇧ Shift + ↹ Tab -> Turn snapping on
Select the bottom vertices and RMB  -> subdivide
Select the bottom left vertex
Press G -> Y -> Move down with mouse
Repeat step 6-7 for bottom right vertex

Here is a link to a video tutorial: https://youtu.be/3I-udSlXakM


Model Deforms When I move A Bone When I parented my rig to my model with automatic weights. The model deforms when I try to pose it. The arm bone attaches to the leg and pulls with it.

EXAMPLE: http://i.imgur.com/mdQnlbH.png

(please note: Im rather new to rigging in BLENDER)

The automatic weights aren't perfect, you can manually decide what part of the mesh gets to be controlled by what bone.

It's called weight painting.

Here is a tutorial for beginners.


Wood texturing - how to get seamless texturing i've found a nice wooden texture, and I want to aply it on a bench, but I have no idea how to get a nice wooden look - without the obvious texture repeating. I've tried some node tricks, but nothing was looking ok. What should I do, to make the texture look nice and realistic?

There are several procedural wood textures available like this one

from http://www.blendswap.com/blends/view/52626.

They are seamless by definition. However you have to adjust scale and rotation to your object.


Active Layer Indicator I have used Blender regularly for years and don't consider myself a newbie by any means. But I have no idea if there is any way to tell what the active layer is. When creating a new object, linking in an instance from another .blend, etc. the new item will be placed on the active layer. But, as far as I know, there is no way to know which layer that is by looking at the UI.

We've got the little circles in the Layers panel indicating levels containing objects. And we've got the highlighted circle that shows which layer the selected object resides on. But nothing that shows what the active layer is.

Have I been missing something obvious all these years?

the outliner does show it, and it corresponds with bpy.context.scene.active_layer


Draw text with 2 colors in viewport I'd like to know if it's possible to display text, with blf module, in the viewport with 2 colors ?
For exemple, i want to draw "Ngon: 5".

"Ngon:" should be red and "5" should be blue.

Did i have to draw my text separatly or is it possible to define the color in the string ?

yeah, you have to draw by setting a bgl.color** before each new differently coloured text. It's not like a terminal print command, though you could write really simple functions that take

(x, y, [(str, col),...])

Because you can query the x,y dimensions of a string, you can easily generate the offset coordinates.

Something like this:

def draw_string(x, y, packed_strings):
    font_id = 0
    blf.size(font_id, 18, 72)
    x_offset = 0
    for pstr, pcol in packed_strings:
        bgl.glColor4f(*pcol)
        text_width, text_height = blf.dimensions(font_id, pstr)
        blf.position(font_id, (x + x_offset), y, 0)
        blf.draw(font_id, pstr)
        x_offset += text_width

x = 60
y = 100
RED = (1, 0, 0, 1)
GREEN = (0, 1, 0, 1)
BLUE = (0, 0, 1, 1)
ps = [("Blue ", RED),("Yellow ", BLUE),("White ", GREEN)]
draw_string(x, y, ps)


Trying to add a scene in the video editing mode I get "No Items Available" [Blender 2.8] I'm trying to add a scene created in the 3D viewport to the video editor.. this works in Blender 2.79, but in Blender 2.8 it doesn't work.

When I try to add a scene created in the 3D viewport to the video editor (video editing mode -> add -> scene) it appears "No Items Available".

P.S. I know that I can do the same by adding directly a text in the video editing mode.. I'm just adding a text here to make it easier to understand.

Solved!

You just need to add a new scene and add to the new scene the text instead of adding text in the default scene.
Once done that if you go to video editing mode -> add -> scene you will see the new scene appearing as an option.


Why are the highlights and specular gloss disappearing in this toon shader setup? I've been rebuilding Irie's famous Toon Shader (a la this blendswap) because I have exactly zero skill is OSL and I don't know about you, but I can't even run the silly scripts.

The good news is, I recreated the 'toon' material - the bad news is, I've tried to recreate the 'edge' material, with not as much luck. I'll explain.

Using the basis of the shader's hackyness (what with the flipped normals of a solidify modifier, according to this stackoverflow reponse) I can get those crisp black lines. Problem is, for some reason, the transparency of the Transparent BDSF isn't... transparent. A picture is worth 1000 words, so here's what I mean.

The modifier set up. Let's pretend the 'flip normals' is selected, I was messing with things when I took a screenshot of this.

The node set up for the edge material, based on the suggestion on blendswap

And the output of said set up.

Those edges sure are beautiful aren't they? What could possibly be the problem, you ask. Well, the transparent BSDF (or maybe the backface cull, I'm not even sure) is eating my highlights and specular gloss shines. Without the solidifier, my 'toon' material looks like this:

If you look at Irie's original project, the glosses and highlights definitely are not supposed to be eaten up by the solidify modifier - just lay on top, all pretty like.

So to sum up - why the heck is my node setup eating all of my lighting? And how can I fix it?

If I'm understanding you correctly, then I think this covers what you are missing:

See the whole article from BlenderNPR for the full explanation: http://blendernpr.org/solidify-modifier-contouroutline/


Q:Multiple root bones after exporting to UE4 I have seen similar questions before but couldn't find an answer. When I try to import my animated mesh to UE4 it gives an error saying there are multiple roots in the armature. I did export other animated meshes from blender to unreal and didn't have this problem.

The following helped me` I selected model, bones and create a copy, then I exported a copy of model and this issue was fixed.


Why is my alpha pass binary (just 0's and 1's) in Cycles? In Blender Render, my rendered alpha pass has intermediate values (e.g., 0.83) at the boundary -- great for anti-aliasing compositing!

However, when I switch to Cycles, my alpha channel is always binary, i.e., consisting of only 0's and 1's.

For some other reasons, I have to stick with Cycles. How would I produce an alpha pass with intermediate values in Cycles?

You have only 1 sample set for Cycles:

Any particular sample in Cycles will return either 1 or 0 for the alpha channel. Antialiased alpha edges are built up by averaging multiple samples, some of which strike the occluding object and some which do not. Using a larger number of samples, such as 16, will fix the issue.


Change User preference properties via script I'm trying to make a script to change the size of the manipulator, but I get this error from console:

Traceback (most recent call last):
File "/addon_widget_size.py", line 30, in draw
TypeError: UILayout.prop(): error with argument 1, "data" -  Function.data expected a AnyType type, not int

I have very limited skills at coding, so this error says nothing to me.

my code is:

bl_info = {
"name": "WidgetSize",
"author": "Ed-Hernandez",
"version": (1, 0),
"blender": (2, 79, 0),
"location": "View3D > properties-panel",
"description": "fast change witget size",
"warning": "",
"wiki_url": "",
"category": "3D View",
}

import bpy

class WidgetSize(bpy.types.Panel):
    """creates a panel for the addon"""
    bl_label = "Widget Size"
    bl_idname = "WidgetSize"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    @classmethod
    def draw(self, context):
        layout = self.layout
        col = layout.column()

        row = col.row()
        row.label(text = "WitgetSize")

        row = col.row()
        row.prop(bpy.context.user_preferences.view.manipulator_size, toggle=True, text = "size")

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

register()

You have to pass the property name as a string as second argument:

row.prop(bpy.context.user_preferences.view, "manipulator_size",
         toggle=True, text="size")


How do I reset my UV window? The object in that window are not showing up whereas it is right in 3D View:

Q: How do I reset my UV window to display the object properties?

It looks like a bug in Workspaces.
Simply create a new UV workspace an then it should work.
+ > General > UV Editing


lighting problems, sun isn't working on render I am trying to create an indoor enviroment. I made two windows, added a sun and rotated it so that it could go throug the window and lighten the sofa and part of the wall.
But I don't see the sun light anywhere.

I checked on settings and is not invisible to the render but it just not reflecting any light. The only light I get is from the image background.

This is the picture with sun

and this is when I delete the sun

Can anybody tell me please why is this?

Thanks in advance

Your sun is working fine but the size is huge, it is making shadows very soft and blurry.

Reduce the Size parameter to something below 0.1 units if you want hard shadows.


Blender only renders black frames I've been working on a project that contains a building with some textures and materials and an animation. When finished I wanted to render the scene. I rendered the animation using jpeg as output. But when I went to the output folder all the frames created turned out to be pitch black.

Even as I try to render a single image I get this window

using cycles render I get this result

Also the rendering time is extremely short and as my scene is quite complicated I think that it doesn't consider my scene at all.

Can someone help me render my scene?

Figured it out. The composition checkbox and the sequencer check box should not be checked. You can find these checkboxes in the properties panel under render under post processing.

Make sure these aren't checked and it should work.


Mesh becomes extremely wrinkled around the hips and shoulders I have been trying to fully model, rig, and animate my own character with Blender.  So far, it's been going great.  However, I have come across an issue that has impeded my progress.  Whenever I lift up a leg or arm, it looks okay until I put on a multiresolution modifier.  My mesh becomes extremely wrinkled, and looks terrible.  My gut tells me that it's in my weight paint, although after repeated weight paint combinations, it has resulted in no solution.  Any help is appreciated!

Moving the multires modifier below the armature modifier solved the issue.  :)


How to get a plane to intersect and join/merge with the perpendicular plane? I'm trying to model my house as a way of learning Blender. I'm having a problem filling in a small hole after following a tutorial about roofs.
It's best demonstrated with a video, but basically I want the extruded edge to 'collide' with the perpendicular edge but no matter what I do, it doesn't seem to snap to the edge it collides with. I'm always left with two unrelated planes which also means I can't make the small trianglar area at the top into it's own face.
Hopefully this question makes sense once you've seen me extruding the roof edge towards the house:
https://www.youtube.com/watch?v=ZDGNVaY2G-8&feature=youtu.be
Sorry for the youtube link but it seems this StackExchange site doesn't like large GIFs, APNGs or anything else I've tried.

You want to stick this edge to this face but this is not a clean topology because your edge will just float, you should first use the knife tool to cut the roof and the left side, in order to add vertices, then fill with faces between the vertices with some F, and at last delete the inner faces:

Edit with your current file, as we can see you have floating edges, inner faces, etc:

What should happen:


Does an .obj file exported from Blender contain a texture? I searched online for the question about whether an .obj file contains a   texture. Some people said that we can extract textures from the .obj file, some said that the .obj file only stores geometry data and does not keep any materials and textures. Some online tutorials said "Export the model together with the texture into the obj file". When I study the example from three.js, the script takes the texture file and the obj file separately. So, it is so confusing as to whether the .obj file exported from Blender contains a texture.

When you export an obj from blender, it creates a .obj and a .mtl file.  As I understand it, the .obj file contains the geometry data and the .mtl file contains the texture data.  So as long as you keep the .obj file, the .mtl file, and the textures together, your model should retain its texture.


how to print the centroid/origin of an object? I am trying to re-center an object that I have imported into blender.

I have set the object origin to the Center of Mass of the object, now I want to translate the object so its' center of mass is exactly at the global (0,0,0) location.

How can I print the x,y,z coordinates of the object's center of mass? or is there a way to just directly translate the object center of mass to a given x,y,z point?

Thanks!!

Are you trying to place object in center of grid?

import bpy

bpy.ops.object.location_clear(clear_delta=False)

or something like this.

import bpy

ACT_OBJ  = bpy.context.active_object

ACT_OBJ.location = (0.0, 0.0, 0.0)


How can I delete keyframes? I am trying to sync this intro with music. The problem is that there are two really fast keyframes that don't look good. I want to delete them but I can't figure out how.

This is an image of the keyframes from the dope sheet. I want to delete the selected ones.

To delete keyframes, select them, and press X.

Some keyframes may be locked (Icon of a lock on the side). I can't tell because the Nurbs or the Spiral are not expanded in the Dope Sheet Summary.


Blender 2.8 no shadow lighting I have a blender object for export into BeamNG. Is there a generic lighting scheme or environment that will not create shadows?

To clarify, I am looking for a no shadow environment in Blender 2.8

Grateful for any help.

There is no global solution if you are using an environment texture in your world material.
You can turn off shadows per object/lamp though.
For rendered objects go into the object settings under cycles visibility turn off Shadow.
For lamps go into the material settings and turn off Cast Shadow.
You can do that with multiple objects, select them all and hold ALT while disabling the shadow option. If your objects have mixed settings for this parameter toggle it twice, to unify them.


MeasureIt / Blender 2.8 : black screen with only measures, how to render? I tried eeVee & cycles, same result. Normal render (F12) works well but obviously without measures.

Since 2.80, the add-on generates the measures in a separate image. The final image is done through the compositor as below (before rendering as usual, F12).


How to Add a Shader to a Specific Part/Area of an Object? So let's say I create a material in Cycles and let's say, I load an image texture onto a sword. It perfectly fits, all good.

Now, the sword I would load in would only be one part, it's just one big mesh.

So how would I select an area of the sword, let's say one part would be steel, and the other part would be (leather)? I just need to know how to add more than one shader on different parts of the object.

You can assign another material to the faces that should have a different shader. Just go into edit mode, select the faces that should have a different material and assign it to the face:

Otherwise you could mix two shaders depending on a texture:


How to install Luxrender? I need a manual download link for the Blender addon so that I can copy this .py to the add on folder and then I hope I can switch to the Luxrender option in Blender 2.75.

After following the normal installation process there is no addon installed. I am using Windows 7 64-bit operating system.

Any idea what's wrong?

The installation process by Inseln looks good.

Have you tried to follow the installation instruction here?

Below the main instructions there is a link to a development builds repository where you can get a .zip file which also contains Python files. But you have to follow instructions for that package, too.


Render settings for rendering an animation (with fire/smoke simulation) I am new to both Fire/Smoke simulation and Animation. I have baked a Fire/Smoke Simulation. I do the baking of the fire/smoke in CPU on my MAC and this goes really fast.

Now I wanted to render an animation. This animation is about the earth turning around and at the same time the earth is burning (using the baked fire/smoke simulation). When trying to get this animation rendered I encountered some challenges in render time .... and this question is about what to do to get acceptable render times. I render on a Windows/NVIDIA machine with one GTX970 card.

Best Practices

So my question is about the best practices when running this kind of renders. How can I reduce the rendering time and still maintain a good quality ? What sample rate is necessary for most animations ? What are the most common things you can consider to reduce render time ? And if render times of (many) days are normal, how do you people deal with this issue ? I mean this is only an animation of 10 seconds ... and blocking my computer for 10 days for other renders. Do you all have many computers ?

Rendering on CPU or GPU ?

First I tried to render this animation on CPU. But after reading the comments of Antonio I installed Blender 2.77 RC1 and rendered the Smoke Simulation on the GPU. Really big improvement !! But still ... rendering each frame required more than an hour (sample rate = 250) and rendering this animation would still last some 10 days. HELP !!!! How to deal with animations of 30 seconds or more ?? That would mean 30 days of rendering.  By the way, I am using settings like in this post

Render Dimensions and Render Output

I started with 4K resolutions (as this seems to be the future) and rendered the output to video format directly. This resulted in render times of more than an hour per image and a total render time of about 10 days ???

After reading the answer of Diramazioni I rendered with 1080p resolution instead of 4K resolution and rendered the output to PNG as adviced. This indeed resulted in a render time of about 20 minutes (per PNG). That's good news ... or not ? I mean 4K seems to be the future, how to get reasonable render times when 4K is the new norm ?

Two GPU system

Also I might seriously reduce render time with installing another GPU, but should that also be a gtx970 like I already have ? Diramazioni gave some good advice on this GPU issue.

Sampling

I now render at 250 samples. Maybe 100 samples is enough ? I have to test the impact of the number of samples on render times. And It would be handy If I had some rules of thumb for setting the render sample rate ....

Other aspects of sampling are Clamping and Branched Path Tracing. I have to dive into that. But I thought that Clamping can also have a negative effect on the render quality ?

Light Paths

As Diramazioni advices there is possible some improvements in render time possible when you play with Light Paths. If I understand him correctly then an analysis of render passes should give guidance in setting the bouncing ??

Other Possibilities

I have tried to restructure my question. If there are other possible improvements in render time, please let me know in a new answer

Rendering 4k means almost x4 the time of a 1080p render, and adding a second card with the same power won't double the performance. However, rendering with two instances of blender, on two separate cards and on different frames, and you will have the best performance you can get from a single machine.

Also the OS counts, my experiments shows that on linux it's faster.

Some Advices:

Turn off caustic, and use some clamp to greatly reduce render time and be conservative with light bouncing setting.
Use all the rendering pass on one frame to discover the most noisy one, and then use branched path tracing to cast more ray where is really needed.
Bake everything you can bake in advance.
I bet you can reduce the time a lot if you follow these advices.
Render out on a series of png/exr, don't output to a video format directly.

Edit with more info:

For basic settings for light paths you can select "limited global illumination" in the dropdown (this will also uncheck caustics).

Filter glossy it's also sometimes useful.
Clamp settings. It's under Sampling (still in the render tab) start setting Clamp indirect to 1 or higher (it works the opposite lower values more clamping but I don't advice to go lower then 1).

A tutorial on "branched path tracing".

And again, pre-baking a combined pass and then rendering it using an emission shader will save time for every frame a lot!

These are general advices and don't apply specifically to fire/smoke because every render is different depending on the material used.

Of course if you need to make a long sequence, and you reach the limit of optimization you can always use a render farm. However, you can go a long way by just preparing the scene before rendering.


How to remove reflected light from glass? [Blender 2.92] As you can see, at the image above, I used 4 lights to illuminate my scene but their area light squares is showing up and I don't want it to show up. What can I do using Blender 2.92?

You can disable the direct light reflections by un-checking the Glossy Ray visibility in the Object Properties of the light (you will need to do this for each light you don't want reflected):


Output tonemapping to PNG produces gray even for superwhites I have a scene that when rendered to EXR, produces a more-than-white background: 1.2, 1.2, 1.2 or thereabouts. When I save a render as PNG, that same pixel is (220, 220, 220) or 0.86, 0.86, 0.86. Why isn't it white?
I understand that saving to PNG applies the "Color Management" settings in the Scene (camera icon). Mine are set to:
  Display Device: sRGB (correct for PNGs, right?)
  View Transform: Filmic
  Look: None
  Exposure: 0
  Gamma: 1.0
  (no curves)

I would expect that a superwhite result would produce a white PNG pixel unless I have some setting seriously out of whack, right? Even if I apply a "high contrast" Look, I still get (228, 228, 228) in my PNG. If I do "View Transform: Raw", then I do get a saturated (255, 255, 255) but the doc says Raw is not intended for final output.
I'm using Blender 2.91alpha recent nightly.

White is not necessarily a scene referred value of 1 or 100 or 10 000. It all depends on the color transforms through which the image is processed to a display referred image, in which case yes, white is corresponds to 1 (and then expressed in a number of available bits, for example in an 8 bit image pure white would be 255, 255, 255).
When you save as EXR you are bypassing the color transforms set in the color management section.
EXRs are scene referred linear data, not intended for display, but for further processing, like compositing, that should be done with linear data.
The information in EXRs is not limited to a scale of 0 to 1, and can have very large values. Those values are probably beyond what any monitor can display, so in order to be displayed in some way that we can see and understand they go through color transforms set in the color management section
Next. When you set the display transform to sRGB and save as PNGs, then the values of the image are not linear anymore but are re-scaled and transformed, scaled and probably clipped, within the bounds of "display referred" imagery (0 to 1). A curve (sometimes called "gamma") is applied to the values, hence the difference in values that you report.
If you use the filmic transforms. White could be at a different value, 16.19 approximately.
To get a much better explanation on any of this (including the maligned term "superwihtes") please read:
Render with a wider dynamic range in cycles to produce photorealistic looking images
Also when you are using a "RAW" color transform you are not applying a curve to the output image. Any value larger than 1 will be clipped in any display referred format. RAW should only be used when you need your data to be undistorted by color transforms, as is the case of normal maps, height maps, etc, that are technically not images but data.


Solidify modifier gap I'm super new to blender and wanted to make some simple heart shaped object.
I've created this, but adding a solidify modifier makes a gap, which obviously I want to fill. I got no idea how to do this, due to my lack of experience.. Any ideas?

Just as I said in the comments, it's happening because you you used two separate mesh (two cylinders) which's vertices were so close that you wont notice that there are two vertices. Solidify modifier does something similar to extruding and scaling inwards.
Its just an easy process. I will walk you through it-
First of all apply the object's scale with CTRL+A > scale (or else it will create uneven solidification).
Then go to Edit Mode and box select the vertices as shown and merge them with Alt+M > Merge at center.  (Just  M  in Blender 2.83 and above)

Notice how the gap gets filled...


What is the intended workflow to fix this UV issue? I've made an extremely simple scene, as a pretty minimal example to reproduce this issue. I'd like to know what I was supposed to do differently to get reasonable results. To make this scene:

Make a plane.
Extrude one edge up to make a wall.
Knife a little cave entrance in the wall, touching the bottom edge of the wall.
Extrude this cave in a little.

I want to UV unwrap this structure, and I did so with the following seams (the selected edge is also a marked seam, by the way), followed by Unwrap:

From these marked seams it's incredibly clear to a human what the four islands should be. From this image it's clear that Blender messed up the complicated concave face; that's not even really my problem, I'm okay with splitting up that face with more edges (although I'd appreciate tips on making unwrap go less crazy with complex planar ngons).

The real issue is that the selected edge gets mapped down to being incredibly small for the large square ngon floor face. To see how bad it is, observe when a color grid is overlayed:

It's easy to fix manually in this case, but what am I doing wrong in general?

The .blend file is here.

As per Gilderman's comment, the problem is that I was using U>Unwrap. Simply using U>Smart UV Project fixed both of the issues I mention above, producing this much more reasonable UV mapping:

Observe how the concave planar ngon is correctly mapped isometrically (that is, both conformally and authalically) into UV space, and the same is true of the big square floor ngon. In fact, every single face ended up being mapped isometrically; exactly what I wanted.


Enabling collection unhides all objects Whenever I enable a collection in Blender, it unhides all objects that I've selectively hidden. This is very irritating as it means I needs to rehide the objects I want hidden, or keep objects in separate collections.

The eye icon hides objects temporarily. To hide objects globally, use the screen icon.
You can enable it from the outliner "funnel" menu.
Temporarily Hide objects (Eye icon)
Resets when a collection is enabled, duplicated or linked to another scene
Globally disable objects (Screen icon  )
Stays on when collection is enabled, duplicated or linked


How do I create a radial metallic gear material procedurally? I am trying to make a gear material where there are highlights that are like lines facing outward from the gear's center. This image shows what I am trying to accomplish. How can such an effect be done?

Thanks in advance!

Here I'm converting Generated Coordinates to something like Object Coordinates so this should work on any size of gear.
A Gradient Texture set to Radial gives us this output.

If we feed this into a Noise Texture we get this.

We can mix in a bit of the regular coordinate space to give some irregularity.

And here I've used this output to drive the base color between two shades of brown, the roughness, and a Bump Node.  I've also used a bit of regular ol' anisotropy.

And since these are generated coordinates based on a bounding box around your mesh, you can easily use this on any size of gear.


Is there a way to manipulate objects as group in Blender 2.8? I grouped objects in Collection. But I can't find a way to select collection as 'one object' and let's say center it.

A collection allows to create collection instances.

As p2or said in comments, you can also in 3D view ShiftA, then 'collection instance' and choose the collection you want to instanciate.

Once done, you use the instance as one object:

On the right here the original collection, on the left, the instance that you can manipulate as if it is an object:

You can "edit" the instance from its base collection:

Either manipulating the individual objects:

Or modifying them in edit mode:


Real-time symmetrical modeling with distinct objects in Blender I would like to create a 3D model that has a wide variety of individually selectable objects on the right side of the x-axis, and then all of those same objects mirrored dynamically across to the other side of the x-axis. How do I do it?

What I want to achieve

Create an object with an origin at 0,0,0 and no parts jutting into the left side of the x-axis.
Create another object (say, a cube) somewhere on the right side of the x-axis.
Somehow create an association between these two objects that lets me still select them easily later.
Apply a mirror modifier to the association.
Create more objects on the right side of the x-axis and add them to the association so that they are also mirrored on the other side of the x-axis.
Add objects, move objects, change objects, and have them update in real time across the axis.

What I've tried
 - Grouping objects and then putting a modifier on the group (I wasn't able to get this to work)
 - Ctrl+J to join the meshes (but then I can't select them easily individually)

This is what Groups and Group Instances are for, you just don't add modifiers to them.

Create your selection of objects you want to belong to this symmetry group, then group them together with Ctrl + G. Give it a descriptive name

Now from the Add menu add a new group instance with the previously given name. Scale it a factor of -1 in X so it becomes mirrored.

You may optionally want to make the instance non selectable in the Outliner so it doesn't accidentally get in the way.

Now freely work on your original group of objects and see them symetrized automatically. Whenever you feel like adding a new one just link it to the existing group.

You can do this by selecting any new objects, then Shift selecting one already belonging to the group so it remains the active one. Then press Ctrl + L > Make Links > Group.


Use Filebrowser in a node for the Animation-Nodes-Addon I am working on a new node for myself for the Animation nodes Addon. I need to open a File-Browser via that node, similar with what happens in the "Bake Sound"-Node.
I looked at the code and have figured out how to add a filebrowser. What I can not figure out is how to get the path from the file browser for use in the code.

That is actually very simple because I developed a system to simplify tasks like this one.

You just have to call the invokePathChooser function in your drawing code and give it a callback (the name of the function that handles the result). AN will do the rest for your.

class MyNode(...):
    # ...
    def draw(self, layout):
        self.invokePathChooser(layout, "setFilepath", text = "Find File")

    def setFilepath(self, path):
        print(path)


Translate a texture in Cycles Material node editor? Essentially I just want to translate a checker texture to the side a little bit.

Is there a way to do this in a cycles material?

First you must provide texture coordinates to the texture node, something like Object or Generated should do.

Then you can use a Vector Mapping node to add or subtract values.


Creating duplicated sides on an object I am trying to duplicate each side on an object. I have managed to mirror as per the image below, however I cannot work out how best to duplicate the other two sides where they're supposed to be (adjacent to the existing 2 sides)

The object itself is basically like a Greek pillar, where each side is the same. As I will be insetting each face, I want to duplicate each side so that the measurements are exactly the same

EDIT

Thanks for the response. However I've tried doing this but they aren't lining up properly? (see images below, also showing the settings applied)

An array modifier.

Test image the plane created from  front face of default cube. It still has the cube's origin. And is located at the origin.  An empty is placed at origin and rotated 90 degrees in Z.
The empty is then used as the array modifiers object offset. There is no translation or non uniform scale to the empty. The only offset is the rotation in z,
The first copy will be rotated 1 x 90 degrees in Z, the second 2 x 90 and so on.
To add more pillars in the scene, make a group or in 2.80 a collection instance.  Involves adding objects of pillar to a group (or collection) and adding a group instance from add object menu.

Plane added to collection named "Pillar", A pillar can now be added at any time with shift A add collection instance, and choose Pillar. Every pillar in scene is made from one single 4 vertex plane mesh.  Notice the option to offset an instance such that when placed its origin is at the base for example.
With Mirror Modifiers

Align the plane along the line x = y such that each end is (forgetting z) at (L, 0) and (0, L) in x and y. On a 45 degree angle from both x and y axis.
Mirroring in X creates a V, mirroring in Y a diamond.


What is the difference between Spin and Spin Duplicates? In Blender 2.81 there are spin tools. The first one is Spin tool and the other is Spin Duplicates. I used both of them and didn't see any difference. What is the difference? If you know the answer please share with me. Thanks :)

Spin tools creates a revolution surface from the selected geometry, while the Spin Duplicate operator creates a circular duplication kind of "polar array" of the selection.

Current issue I see is that apparently using the tools from the toolbar doesn't seem to automatically set the correct operator preferences, making them by default behave the same unless you manually untick the Duplicate option which seems like a bug.


Edge angle dependent material apply Hi is there a way to apply a material on certain parts of an object? What I mean is this ... I have for example RUST and PAINT and in the MIX shader I could assign a texture (ie NOISE) so white parts will be one mat and black another or I could paint a texture myself on UV unwrapped surface to design exactly what I want but... Is there a way to AUTOMACIALY "assign" the RUST to the "sharper" edges/corners?

I know Pointiness could do something like this but dunno if there is a way how to "randomly" fade it out cause have rust exactly only on edges and with the same "amount" all the way along does not look "real". Im looking for effect in top-right corner (Wall-e material).

REM: SHARPER mean NOT with assigned sharpness but angle dependent so as could be seen on the picture below ONLY on the edges of the cube.

Sinerely, Jan

The traditional method for dirt/wear mapping has been to use an Ambient Occlusion shader to catch recesses, with the normals flipped for convex protrusions. In the AO node available in more recent builds of 2.79, the normals are flipped by using the 'inside' option.

AO is not strictly responding to the angle between adjacent faces, it's  a representation of how many hits there have been within a distance threshold, from a sample of rays fired in the hemisphere of directions surrounding the surface normal at that point.

A more specific response to the curvature of a surface can be obtained from its 'Pointiness' value, which you can get from the Geometry input node:

... which as far as I can gather uses angles between adjacent edges to approximate curvature.

In order to make it work here, this cube had to be subdivided. A Simple subdivision will do, or, as illustrated, Catmull-Clark with a bevel to hold the edges.

The values generated from these shaders can be used to control the mix of other shaders or colors,  or anything you like that can be controlled by a number. If different gradations are needed, you can put the values through a color ramp, curves, or map them to another range in some other way, as in the second example.

They can be combined in ways like this:

Or this, using AO alone, which is not toplology-dependent.


extrude, intersect, slice complex shapes? I have a 3D dragon (from Spyro 1) that I want to transform into a glass decoration for my home.

Before proceeding, i need to eliminate the 3mm thickness from every face, obtaining a shape that can be used to properly cut the glass pieces.

This could be useful to every artist who wants to do Tiffany glass works.

It's been two days I've been trying day and night, and still not found a good way to obtain what i need.

First, i separated every face of the model.
Mesh > Edges > Mark Sharp, Edge Split modifier, split angle 0°, sharp edges checked. In edit mode, select all, Alt+S scale planes by -0,03, (because the glass I am going to use is 3mm thick)

When the angle between faces is bigger than or equal to 180° it's OK. The scaled faces don't overlap, and they will be printed and cut as they are, but if the angle is smaller than or or equal to 180°, then the planes will intersect, and here comes the problem.

I have 160 different faces to intersect, and I am trying to do the job manually. It's a hard work, and Booleans do what they want. I am going crazy with them.

I have tried a second alternative, I extruded every face (vertex normals, -0.03), turn them into separate objects, then I used Booleans to subtract their shape from the dragon (it was like peeling an orange), but Booleans agreed to do it only on 90 of the 160 objects. Rage and frustration.

Should I insist with Boolean operations and extruded faces? Is there some magic that allows to do batch Boolean operations, or is there some trick or command that I don't know? (I am a total newbie)

I've prepared a file with the head of the dragon and two examples one for the scaling method, one for the Boolean method

drago di cristallo

I hope my explanation is clear enough.   :P

I think that the solution to this is Blender's inset function. The goal is to separate all faces equidistantly from another and do this in an efficient way.

Please be aware of the fact, that Blender is not intended to be a precision CAD software. The primary use is and always will be 3D modeling and rendering.

In the first step we need to change the unit settings to the Units we want to take our measures in (Properties Window - Scene Panel). In this example this will be "Metric", "Degrees" and a conversion scale of 1.0

We also want to apply the scale of the object to ensure that the values will be applied in the right scale. Hit Ctrl+A and select "Scale.

This is how your object's Transform values should change.

The next step is to separate the faces from each other. Tab into Edit Mode, type A to select all faces, hit Space, type "Edge Split" and hit Enter

Now that we have separated faces in our mesh we can inset them. Blender is not capable to do this in one step but the method we are going to use is still fairly easy.

If something else is selected, switch to "Face Select", type A to select all Faces, then I to start Face inset. Use the mouse to resize the inset value to approximately the desired size. If the gap's size between the faces should be 3mm go to the operator panel and set "Thickness" to 1.5mm (type in both the value and the unit here). Do not select or deselect any faces after that!

The last step is to delete the newly created redundant faces. Type Ctrl+I to invert the selection, hit X to delete and choose "Faces".

As a result you should get a model which is made out of separated and evenly spaced faces.

The described method works also on ngons.

To get a cutting pattern for your Tiffany work, you could uv-unwrap your model, increase the margin width between the islands and export it as svg. With inkscape you would be able to resize the pattern and move the pieces around until you get something useful.


Multiple TEXTURE Displacements (mapping) in one scene This might be a bit too special but I thought I'd just give it a try on this forum:

I have a meadow scene. And I want to have a trail running through it. I did use a displacement modifier on the small hills in the scene, and on the trail itself.

I did paint in the texture of the trail, because it should be a different one than the texture "under" the grass (as seen in the pic).

Now I want both textures ("brown soil under the grass" AND the "trail texture") to have a normal, displacement, occlusion, specularity and a diffuse map. But...

I only have ONE displacement connector in the material output node where I would have to put in the normal map(s)...

When I use a displacement modifier I can't place it in reference to the coordinates I already set up for the general seamless texture - so the "bumping" applies to the whole mesh and is way to big.

How can I apply multiple textures AND THEIR MAPS to certain areas on a single plane with the same texture coordinates as in their nodes??

(I'm not totally clear on you question but I'll give it a shot.)

You can combine several displacement textures one using Mix RGB nodes.

Let's say you have a situation like this where I'm combining two textures used as displacement:

Now I want to add some voronoi noise to the whole thing, so I would just combine the bump map with a mix RGB node like this:

But as noted in one of the comments using true displacement on the material nodes is still at experimental stages and might yield unpredictable results. It might be better to combine multiple displacement modifiers, and maybe use an empty to control the coordinates for the deformation.


What is the bmesh equivalent to bpy.ops.mesh.shortest_path_select()? Basically I am trying to replace a call to bpy.ops.mesh.shortest_path_select() in an Add-on of mine. While many bpy.ops.mesh operations have a bmesh equivalent, the selection of the shortest path between two verts is something I haven't found anywhere in the bmesh documentation. Maybe I just missed it, but nothing sticks out to me as an obvious solution.

Shortest Path algorithms

Dijkstra's algorithm
 Dijkstra's algorithm to find
the shortest path between a and b. It picks the unvisited vertex with
the lowest distance, calculates the distance through it to each
unvisited neighbor, and updates the neighbor's distance if smaller.
Mark visited (set to red) when done with neighbours.

Here is a bmesh take on this.  The algorithm calculates the shortest path from source vert to all verts.
To clean this up would prob make a class of the method, that once built would return this info
import bmesh
import bpy
from math import inf

class Node:
    @property
    def edges(self):
        return (e for e in self.vert.link_edges if not e.tag)

    def __init__(self, v):
        self.vert = v
        self.length = inf
        self.shortest_path = []

def dijkstra(bm, v_start, v_target=None):
    for e in bm.edges:
        e.tag = False

    d = {v : Node(v) for v in bm.verts}
    node = d[v_start]
    node.length = 0

    visiting = [node]

    while visiting:
        node = visiting.pop(0)

        if node.vert is v_target:
            return d

        for e in node.edges:
            e.tag = True
            length = node.length + e.calc_length()
            v = e.other_vert(node.vert)

            visit = d[v]
            visiting.append(visit)
            if visit.length > length:
                visit.length = length
                visit.shortest_path = node.shortest_path + [e]

        visiting.sort(key=lambda n: n.length)

    return d

# test call select two verts edit mode

context = bpy.context
ob = context.object
me = ob.data
bm = bmesh.from_edit_mesh(me)
v1, v2 = bm.select_history[-2:]

# calc shortest paths to one vert
nodes = dijkstra(bm, v1)
# specific target vert (quicker)
#nodes = dijkstra(bm, v1, v_target=v2)
# results of other vert
node = nodes[v2]
print(node.length, node.shortest_path)

for e in node.shortest_path:
    e.select_set(True)

bmesh.update_edit_mesh(me)

Notes. Added option to target a destination vert to yield when the result for that vert is reached.
Another addition would be to save the  alternative route when the distances match. Multiplying each node in the resultant path will give the combinations of possible routes.


Unable to create surface with bsurface addon I'm using bsurface addon.

With the curve circle I have made some shape.
And add a  normal plane

I click on the curve and then shift selected the plane and press tab to go in edit mode
Then I click on add surface and I'm getting this error

All splines must be bezier

Im unable to create the surface.Any solution

Set Bezier spline type for your curves.

As the warning is saying, you need to work with "bezier" spline type. They are currently "poly" type (probably because you created the curves from mesh conversion, and by default poly is the choosen type).

Select all the curves and click the button you can find in the tool shelf under the Curve Tools section. A menu will pop up letting you choose the spline type for the selected curves.


Duplicated object not showing in render My issue is that my duplicated objects are not showing.

I've tried everything, visibility options are on, turning all restriction toggles on and off, one by one, everything but I just couldn't make them show in render.

If I hold Z and choose the Rendered, the objects are showing, but when I hit F12 , only the original model that I made shows.

Try checking Visibility in the Object Properties


uv-allign-distribute add-on I have spent the last hour trying to install the uv-allign-distribute add on from revolution. I'm doing all the usual things that I've done with other add ons and nothing is happening. Im installing both from the zip file and also tried installing by opening the zip and trying to install each different .py script. Nothing, nadda, zero.

I ask for help because sometimes with a new version of blender apparently add ons behave differently, (windows create is now archimesh for example,) anyway, any help appreciated as usual.

The instructions for installing the addon could be clearer.

The releases download page on github has several download options, the easy one is the uv_align_distribute.zip - download this and you can select the zip file after clicking Install Add-on From File... in blenders preferences.

If you download one of the other options or download the whole repo from the project page you get the whole repo and you will need to copy one folder out of it to your addon folder.

After unzipping the full repo download, copy the uv_align_distribute folder, into your addon folder, not the outer folder that will have -master or -3.0 in the name, but the inner folder that will be seen with the docs and tests folders. The best location will be in scripts/addons in your user config location. If you want to, you could copy it into the blender install with the existing addons.


Export animation FBX, shaking I made an animation and when exporting to FBX the animation started shaking, but in blender i have no problem.
Problem FBX in Marmoset Toolbag: https://drive.google.com/file/d/1loDWkOefH95C00tcl_WS7Egwn-8rOaMG/view?usp=sharing
Noproblem Blender render: https://drive.google.com/file/d/1Xj08Ifq4eT7UK76tmDlC5UUnCGDALV2z/view?usp=sharing
Actually in FBX the rendering of the pose is wrong because i reset the rest pose, but the shaking is still here. I can remove a big body shaking from the entire model if I remove parental controls from this orange selected bone that is "keep offset" to the "root" bone. But legs and arms shaking still here, i think problem in inverse kinematics, but i don`t know how fix that. I need your help, blender community.
Blender file: https://drive.google.com/file/d/1gsWaPlQfIdOgoyBwKFSZw9ZWHKZXr4pf/view?usp=sharing

A similar problem:
Blender animation not exporting correctly to FBX

The problem is solved, set the value "simplify" from 1 to 0.1 in FBX export settings.


How to do photogrammetry within Blender? Photogrammetry is really frustrating. The good tools are really expensive, and the free tools are either really old, or really difficult to get working because they're pet-projects... or they're Autodesk.

Current workflows use one tool to reconstruct the structure. Often either a Structure From Motion approach, or a multi-view stereo approach. Then another tool is used to turn those results into a mesh, almost always MeshLab. And another tool to texture using the photographs, often MeshLab and/or Blender.

Blender has all the functionality to identify features in an image and match those features across multiple images. We do it with motion tracking all the time. Blender also has the functionality to project those features into 3D, as with the empties that get produced when doing any kind of motion tracking. Blender also has the functionality to turn a point-cloud into a mesh.

Are there any tools/addons for doing photogrammetry or digital reconstruction from within Blender, without external applications?

Although quite labor intensive, and far from automatic (but certainly cheap), it would be possible imagine a workflow using tracking information to reconstruct objects based on photographs.

Using a rotatory platform photograph an object. Bring the image sequence into the Movieclip editor and track as many of the object's features as you can.

Solve the scene and setup a tracking scene.

On the 3D viewport enable Motion Tracking.

Instead of your object moving you'll be presented with a camera that moves around a bunch of markers (the tracked points on the image sequence).

Using those markers you'll have some guidelines to reconstruct the geometry of your object.

Or you can select all your trackers and convert them to vertices by using
3D Markers to Mesh.

That will create an object with a point cloud of unconnected vertices. You can then connect the dots...

Once you are done with the modeling, you can use some of the same photos to project the textures onto the UV unwrapped model using the UV project modifier and the camera as projector.


How to add thickness symmetrically using the Solidify modifier I have a mesh surface which I'd like to add some thickness to using the Solidify modifier, however, it only adds thickness to one side.

I've tried setting the mode to "Complex" but I can't find a way to add an even amount of thickness on both sides.

I also tried adding a second Solid modifier and flipped normals, but this didn't work either.

In the modifier options there's offset that can be ±1 or 0. The first two add thickness either outside or inside. Setting this to zero gives the result you want. Still, you must remember in this case you add half the value to either side.


Mesh collapses too much when DynTopo sculpting I've just started using blender or sculpting in general, and I have a problem. I watched lots of tutorials of how to sculpt and in all of them, they just drag the object and it's uniform, as in the example.

But for me, it's like this:
I don't understand what I do wrong. I've tried turning the symmetry on and off, turn it only for certain axes, zoom out, zoom in, everything.
Now, the question is: How can I make the smooth sculpt? What do I do wrong?
Tried to explain it as best as I could.

Thank you!

I took a look at your file. It seems your brush density was too drastically different from your mesh density, and this was causing some extreme pinching and decimation.

Try using Constant Detail instead (which I find is almost always best anyway because you can maneuver around the 3D Viewport without your sculpting being affected), and then use the Eyedropper to click somewhere on your mesh to sample its density. Then your brush resolution will match your mesh density.

Result:

There are some other settings you can play with that may give you even better results. Here is a sample .blend you can check out and experiment with.

Finally, here is another answer worth looking at to further your understanding of the Dyntopo settings.


Is it wise to use edge loops and subdivision modifiers on high poly meshes? in Blender tutorials i see that apart from CTRL + E, loop cuts are often used to preserve edges, despite subdivision surface modifier.

Now that I have some experience with Blender and have created meshes with more than 100,000 faces, I wonder if this is the most useful method.

Of course it is faster to add a layer of the subdivision modifier and then add loopcuts, but the bottom line is that Blender has to work with more vertices and faces.

I am aware that if the mesh is not near the camera, you can set the subdivision modifier to adaptive (cycles) or use a decimate modifier.

Now to the real question: Is it better for performance to use a subdivision modifier lv 1 and add the details yourself to reduce vertices in the end result, or to work with loop-cuts and subdivision modifier lv 2 to reduce vertices in the viewport?

Lower polycount is better performance-wise.
But sometimes it makes sense to sacrifice performance for ease of use.

Bevel modifier
- easily adjustable edge width, great for hard surface modeling
- not suitable for complex corners and edges (creates overlaps)
- low-poly results

Subdivision Modifier
- easy to use, great for organic surfaces
- works almost anywhere
- hi-poly results  (4x more polygons with each level)

In reality they're often used together.

Let's compare
Same edge resolution, different face count.


How to create a realistic tooth enamel material? I tried to mix the Glossy and Translucent shaders to create the enamel material, but the effect wasn't good. Have you got any ideas how to set up the nodes to make it look realistic?

(this is a converted comment)

Good results can be done with tooth geometries that consist of 2 surfaces: dentin (refraction 1,45) and enamel (refraction 1.7).

The tooth is an anisotropic volume with numerous layers non of which is actualy solid.

Front-lit:

Back-lit:

Can you give us some dental scan or something? That way I can do some tests in the evening.

It should be mix of sss and transparent for the enamel with glossy on surface and yellow tinted volume absorption for dentin.

This should yield what you want. Adding the refraction and anisotropic element should also help but maybe that will be just an overkill..


How can I make an object render with a wireframe in the game engine? I want it to look like the top image when I press P, so it has those lines around each face.

Like this:

Not like this:

You want to create a wireframe material. A quick 'n' dirty way to do generate a wireframe texture is described below:

Unwrap your model. If you don't know how to do this simply select everything and press CtrlE > Mark Seam.

Press U > Unwrap.

Open up a UV/Image editor:

Click UVs > Export UV Layout. Remember where you save this image.

Press AltO to open a texture, then select the saved image.

Tada!

You may want to remove the transparency in an image editor if you want your model to be opaque.


How to make (focused on modeling) burnt wood For my art lesson I want to use blender to create burnt down Letters. I know how to texture it but I don't have an idea how I should model it. The idea is that the shape is still visible but the has a rough/deformed surface. Like a piece of wood that burnt but didn't break (like a matchstick?). I don't know how I could describe it better.

Example look:

You can create a burnt wood look by sculpting. Disclaimer: I am not very good at sculpting

Here is how I did it:

First add a cube and scale it to the dimensions of the wood plank.

Add enough edge loops so that all polygons look square

Subdivide the mesh in edit mode to a point where the square are about the size of the detail you want.

Add a displacement modifier.

Switch to sculpt mode and use the clay stripes brush

Repeat until happy.


Do I need 2 normal maps to solve this issue? I want my character to flex his Bicep, when he does, veins should show up, but only when activated.
The problem I have is the normal map is already used for all the other details of my character.  If I put the veins in, they'll be static.
Is there a way I can clip the veins on ONLY when he flexes?  How would I approach this?
Thanks for your help!

You could use a BW mask the turn normals on/off locally.
Use the Strength input of the Normal Map node.
Then just animate the BW mask.


blender automatically add faces in object mode I'm having some problem with blender, I was working on a sphere in edit mode but as soon as I turn to object mode some faces automatically reappear.

The only reason I can guess so far is that you have hidden the faces with H instead of deleting them. Go into Edit Mode and press ALTH. The missing faces might appear.