Update all materials, but keep their color and textures I am working with a very large scene file that was imported as .obj. This gave me basic blender internal materials with colors and textures. I then used an addon to convert all of the BI materials to Cycles ones (https://blenderartists.org/forum/showthread.php?394600-Materials-Specials-amp-conversion)

What I have now is every material is a Diffuse Node with a color, or with an image texture node hooked up to it with the appropriate texture.

What I would like to do now is make a more complex node setup (likely in a group), and then copy it to all the objects in the file, but have them keep their own diffuse color and texture.

Are there any existing addons or scripts that can do this?

import bpy
for material in bpy.data.materials:
    if (material.use_nodes):
        nodes = material.node_tree.nodes
        links = material.node_tree.links
        for node in nodes:
            if (node.name=='Material Output'):
                out = node
            elif  (node.name=='Image Texture'):
                img = node
            elif: (node.name=='Diffuse BSDF'):
                diff = node
                # if diffuse node is not linked,then save it's colorvalue
                if not(node.inputs[0].is_linked):
                    color = node.inputs[0].default_value
                else:
                # else we should set color to None, and be aware
                    color = None
            else:
                nodes.remove(node)

        hold = nodes.new('ShaderNodeHoldout')
        geo = nodes.new('ShaderNodeNewGeometry')
        mix = nodes.new('ShaderNodeMixShader')
        RGB = nodes.new('ShaderNodeRGB')
        if (color==None):
            if (img==None):
                #No image and diffuse was not empty, set color to grey
                RGB.outputs[0].default_value = (0.7,0.7,0.7)
                img = RGB
        else:
            RGB.outputs[0].default_value = color
            img = RGB

        links.new(out.inputs[0],mix.outputs[0])
        links.new(mix.inputs[0],geo.outputs[6])
        links.new(mix.inputs[1],diff.outputs[0])
        links.new(mix.inputs[2],hold.outputs[0])
        links.new(diff.inputs[0],img.outputs[0])

This code does almost what you want.
It saves one image texture node, one material output node, and deletes everything else, and then adds emission and holdout node and connects them via backfacing. As for part of your own shader, i think you can save it as a node group and append it into node setup via python too


Prevent meshes from clipping into each other There are two meshes that are clipping into each other.

I used the boolean modifier to subtract the cylinder from the wall object. How do I fix this problem?

.blend file

If you are referring to what can be seen in the image below, this is called z-fighting. It is when to surfaces overlap and are in the same 3d space. This is not physically possible in the real world.

To fix this you would have to get rid of one of the overlapping surfaces.

Select the object Cube
Select the faces that are overlapping.

Delete them, x -> Faces

Final Result


Connecting two separate objects physically without moving them I want to connect the cylinder to the half-sphere without changing their positions (they are separate objects with space between them).  In reality the half-sphere and cylinder have a lot more faces than this simplified version.  What is the most elegant way to do this?  The connecting surfaces can be anywhere, as long as they are inside the hemi-sphere.  In the end I want to 3D-print the model so that the cylinder is floating in the hemi-sphere exactly as it is positioned now.

One idea I came up with is to have a vertical plane be the connector, but the plane must not go through the cylinder, only touch it, and the plane must not go outside of the hemisphere, only touch it.  But I don't know how to do that.

Here is my idea with the plane.  If someone can tell me how to remove the section of the plane that is inside the cylinder and outside the hemisphere, then I am done:

Update:  Adding the difference Boolean modifier to the plane with the cylinder succeeds in removing the plane portion inside the cylinder, but I'm also not sure if the plane is actually touching the cylinder or not during the 3D-print (if it is not, then the cylinder will fall).  Then adding the intersection Boolean modifier to the plane with the hemisphere apparently succeeds in removing the plane section outside the hemisphere (again, I don't know if the plane is actually touching it or not).

However, when I export as obj and import in ZBrush, there is no proper hole of the plane inside the cylinder, so it actually didn't work:

This new blend file is attached (second one):

Update:  This method described totally does not work with my actual (more complex) models.  The Boolean function is really buggy.  Any other way? Here is my only working solution so far, which is really, ugly (protruding faces from the cylinder, and then using the Grab tool to make sure that the protruding faces just touch the hemisphere without going past it).  I'm not even sure if the cylinder will fall or not after the 3d print:

It's mainly a question of booleans, if I understand your request well.

you have your three geometries, sphere, cylinder and plane. Remove the desired faces on sphere and cylinder
image 1: boolean modifier applied on the plane, difference mode, select the cylinder in the Object drop-down menu, and click Apply
image 2 : once boolean intersected is applied, now show the sphere
image 3: then a new boolean modifier applied on the same plane, this time intersect mode, and select the sphere as Object you want to intersect to, apply the modifier

In short, the solidity of the 3d print depends of various factors, the thickness of the model, the surface of the different contact zones, if the object is full or hollow...

P.S.: I feel a Death Star inspiration here, lol


renderman not installing So, I've got the renderman engine from GitHub and, when I install it and enable it (as an add-on), it doesn't show up with the render engines. Why? (The add-on said it required a 2.8 blender update so the add-on is 2.8 ready)
Also, I'm trying it in blender 2.81 and blender 2.82a

Yeah, that is just not going to work. It is actually not compatible with 2.8 or many of the previous versions. Even though it may say. There are forums all over the place that say the same thing. No one has gotten it to work. But, it is probably for the best. Renderman is not near as capable in clarity of pixelization as cycles. 1080p in Cycles vs Rman is a pretty big difference. Plus, I would guess that alot of the modifiers in Blender would not work in Renderman. It also takes alot more time to Render especially in Windows. And a huge bug with Renderman that comes from what people like about it overcasting light, is that you will get pitch black shadows sometimes that you cannot get rid of.


Pointiness to Vertex Colors for EEVEE I am attempting to create some Procedural Weathering Effects on a high-poly model using a similar Pointiness method to that discussed in my previous question and answer here. Whilst Cycles provides great results using this method, for the sake of speed I'm trying to replicate the effect in EEVEE.

As of Blender 2.81a, however, the Geometry->Pointiness node is not currently supported in EEVEE and, as discussed in this thread on the bug tracker, due to the intensive pre-processing step needed to compute the effect it is unlikely to be supported anytime soon.

This has led me down the path of attempting to manually replicate the colours that the Pointiness node generates by first using the Dirty Vertex Colours operator (which is, in-practice, 1-click) to give me a vertex colour map of the mesh edges/cavities, and then essentially colour-correcting them (in a very rough fashion) to be visually similar to the output of the Pointiness attribute in cycles.

This has been somewhat successful when using the high-poly (~430k faces) 'Standford Buddha', and the following node setups for EEVEE/Cycles:

Whilst this works well for the buddha model, attempting to use the same correction parameters on different, lower-poly models yields drastically different results:

With a significant amount of tweaking, I'm sure the correction parameters could once again be adjusted to visually match the Pointiness output, however, I'm looking for a rapid, procedural approach that doesn't require a lot of manual changes.

Despite the issues, it does still seem like the 'Dirty Vertex Colours' approach could be the most promising. As a result, I'm debating whether a script or mathematical shader approach could be used to either replicate the basic Pointiness values and apply them as vertex colours or, alternatively, accurately remap the 'Dirty Vertex Colours' to the 'correct' Pointiness values. I'm assuming that a script that simply generates Pointiness colours based on the original algorithm from Sergey's patch may be simpler and more successful however, considering my initial problems.

Unfortunately, despite it not seeming like the algorithm is particularly complex, my knowledge of python and the code that goes into cycles shaders isn't sufficient enough to help me convert it. From Shadowphile's thread here on Blender Artists, it is suggested that Pointiness is generated by searching in a ring around a vertex/edge (one-ring neighbourhood), applying a value of 0.5 to flat surfaces, a value of >0.5 to outside edges and a value of <0.5 to inside edges, before adding an overall blur to approximate a two-ring neighbourhood.

In researching this problem more, I also came across Ambi's script here for better calculating Mesh Curvature to Vertex Colours (and the associated BA Thread). While this provides some insight into how iterating through the mesh and assigning colours could be achieved, it unfortunately uses different algorithms, and isn't directly related to my Pointiness problem; or ultimately converted for Blender 2.8x.

Thanks for taking the time to read, any help in shedding some light on this problem would be very much appreciated!

Helpful Links:

Sergey's original patch and notes from when Pointiness was first implemented in Cycles.
Shadowphile's dissection of how the Pointiness effect is generated.
Ambi's BA Thread about his Mesh Curvature to Vertex Colours Script.
Additional BA cross-post discussion thread.
'Understanding the Pointiness Algorithm' Devtalk thread.

This is kind of a hack:

shoutout to dagtholander for his car model onsketchfab
And the node setup is really easy:

Works only with shade smooth!
change spherical to quadratic sphere for more difference


The hair displacements differs in object mode from those in particle mode the upper image is in particle mode and the lower image is in object mode.
the displacements of the hair vastly differs. How do I fix it and let those hairs in object mode lie exactly on where the hairs in particles mode is?

You have to go on edit mode of your hair object (the screw one) and rotate it in one of the three axis. This will rotate all the particles as well.

Hope it helps.


How do you reuse a texture in cycles? In blender internal render, in material nodes, there is a "texture" node by which you can select a previously created texture. But in cycles there is no such node for material nodes, all the nodes are to create new texture. How do you apply an already created texture?

You can choose it here, at the Material tab.
The same option you can find at the bottom of the Node Editor.


How do I make a celtic knot? I have no idea how I'm supposed to tackle this, I've tried making a three-point star but after that I had no idea how to continue since a celtic knot has rounded edges.

Your question is much too vague, how is your 2D shape supposed to be in 3D? I've tried a basic shape, tell me if that's what you want, I began with a half-circle as your knot is basically made with 3 half-circles:


How to get Properties Editor tabs context for the active object? I'm trying to find the available Properties Editor tabs of the active object. bpy.context.space_data.context (when accessed inside the Properties Editor) indicates which tab is being displayed and can be used to set the active tab. To do this with code you should know ahead of time which tabs (panels, menus, etc.) are available for the active object (i.e. armature vs a mesh type). For instance if you set bpy.context.space_data.context = "cheese" (while in the Properties Editor) with a mesh object active you get this error message:

TypeError: bpy_struct: item.attr = val: enum "cheese" not found in
('TOOL', 'RENDER', 'OUTPUT', 'VIEW_LAYER', 'SCENE', 'WORLD', 'OBJECT', 'MODIFIER',
'PARTICLES', 'PHYSICS', 'CONSTRAINT', 'DATA', 'MATERIAL', 'TEXTURE')

Are these values stored in the object context somewhere? Is there some other way I can access a list of available Property Editor tabs context for the active object, or will I have to map these out manually? space_properties.py doesn't seem to be much help here.

Dynamic enum property.

This is a dynamic enum property, ie it changes dependant on context.

We can get all possible members, from the properties rna data  enum_items

>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'PROPERTIES')
(1, 'CONSOLE')
(2, 'OUTLINER')
(3, 'TEXT_EDITOR')

>>> s = C.screen.areas[0].spaces.active
>>> s.bl_rna.properties['context'].enum_items.keys()
['TOOL', 'SCENE', 'RENDER', 'OUTPUT', 'VIEW_LAYER', 'WORLD', 'OBJECT', 'CONSTRAINT', 'MODIFIER', 'DATA', 'BONE', 'BONE_CONSTRAINT', 'MATERIAL', 'TEXTURE', 'PARTICLES', 'PHYSICS', 'SHADERFX']

or similarly from the type

bpy.types.SpaceProperties.bl_rna.properties['context']

whereas the error message, as shown in question, shows those members available for that context.

A dynamic enum property has a method that populates its items depending on context. I am unaware of how to tap into the method and get only context members.

Pinning an object to the panel also changes context tabs displayed.

Henceforth apping them out manually (with some assistance) is AFAIK going to have to do.

This is one of the rare cases where I would recommend using try / except clause.  We could for instance write a script that creates sets for each data type.  We know the union (above) and can find a common set and those unique to each type.  For instance can grep the context members out of the exception message.  Pretty ugly example below, mesh object selected in edit mode, improve using re expression perhaps.

>>> try:
...     s.context = "Foo"
... except TypeError as e:
...     m = str(e.args)
...     m[m.find("(", 1) + 1:-4].replace("\\'", "").replace(" ", "").split(",")
...
['TOOL', 'RENDER', 'OUTPUT', 'VIEW_LAYER', 'SCENE', 'WORLD', 'OBJECT', 'MODIFIER', 'PARTICLES', 'PHYSICS', 'CONSTRAINT', 'DATA', 'MATERIAL', 'TEXTURE']

Worth mentioning that DATA will display mesh data for a mesh object, armature data for an armature object,  curve data for a curve etc


Is it possible to make a mesh symmetrical without mirror modifier? I created a base mesh to sculpt upon using a mirror modifier, but then applied the mirror before adding a multires to sculpt with. During sculpting I went into edit mode and made some changes to the base mesh, forgetting that my alterations were not being mirrored. I tried re-adding the mirror, but it can't be moved above the multires. I've also tried manually correcting the problem, but it's still not how it should be. Is there a way I can make my base mesh symmetrical again, or do I just have to live with my mistake?

Yes.

It is possible to make a mesh symmetrical without a Mirror Modifier.

Simply set your Pivot Point to be your 3D Cursor, place the 3D Cursor at the center of symmetry, duplicate the geometry to be mirrored (ShiftD), and scale (S) -1 on the axis of symmetry (in this case the X axis X).

You can set the Pivot Point to the 3D Cursor here:

Take this example of half a monkey:

Finally, pressing W and choosing Remove Doubles can get rid of overlapping vertices and weld the mesh halves together.

You'll want to Recalculate Normals after doing this (CtrlN) because the face normals get flipped inside-out in the scaling process.


Volumetrics clip through objects, they always render in front of everything (shown material)

I'm really not sure what causes this, I have several volumetric objects in my scene, but this one renders always in front, as you can see below:

The first very obvious thing I tried was to change the volumetrics clipping values, but they didn't really solve the problem consistently. Sometimes you can see the volume through objects, sometimes you can't. This may also be caused by the fact that it's an emission shader that's plugged into the volume socket of the material output, but I'm not sure, as I tried swapping out it for a principled volume shader and the problem persisted.

If you know what's causing this, please let me know!

Thanks!

 (comparison with 2 materials)

This is due to how renderers process depth. Basically they squish all depth into a range between 0 and 1. With large ranges, rounding errors will create visual glitches like clipping. You may already be familiar with this in the viewport and cameras for the view range of geometry, but volumetrics also use this. I'm not sure why volumetrics are so much worse at this, but the way to fix it is by giving blender less information to cram in.
This means reducing the range where it renders volumetrics or increasing the number of samples. Both of these settings are in render > volumetrics.
Renderers bias toward objects closer to the camera so increasing the lower value is the best way to improve results. You might also be able to get results from the distribution slider which I think changes the bias on the renderer but I haven't been able to get anything out of it.
TLDR: Reduce the volumetric render range and increase samples.


Why is texture paint mirroring? I uv mapped a part of my character and am looking to texture paint it. I used the fill brush to fill the whole part green, but then went to the texture draw brush and then drew on the back of the character. The drawing appeared, but it flipped to the front of the mesh. I applied the mirror modifier. The image shows the uvs of the object, and the stroke that I painted on the back of the mesh, but showed up on the front.

Your normals are inverted (they are going inside the model).
Texture paint paints on front normals. That's why when you think you paint the front, all is going to the back.
To see the normals (edit mode) : go to the "mesh display" part of the right panel of the 3D view.
To inverse the normals, select all the needed vertices, then ctrl+N or ctrl+shift+N.


More effective way to subdivide the cone? Was wondering what is the most effective/fast way to subdivide the cone to make the subsurf modifier work properly?

There are many ways to do it I guess. Here's mine:
After adding a cone set it's base fill type to triangle fan. Select the lower edge and press Ctrl+B to bevel it and scroll the mouse to add two additional edges. Change the mode to Percent (press M tree times) and place the edges very near to each other. Next select the very upper edge and place it on top of the cone pressing G twice. Add a subsurf modifier.

Finally dissolve the edge at the bottom (X-->Dissolve Edges) and add the edge loop (Ctrl+R) to replace it.


How to add randomness or variability to Action Strip scale I would like to add variability to an Action Strip's scale, ideally within a range of values I select.

In the wing beat strip below, for example, I would like to scale between something like .3 and .5 with a curve... or noise, or something. This variability is not within the individual actions contained in the AStrip: rather it adjusts the scale of the strip throughout its repeat range.

There isn't a way to set key frames for that value, so as a last resort I wrote a little python script.  Copy this into the text editor, and click "run script". Be sure to set the MIN and MAX values, and put the name of the action in the ACTION_NAME variable.  The script will automatically choose a new random value every time you change frame.  Setting the STEP size will make it wait n number of frames before choosing a new value.

import bpy
from random import random

# Set your min and max values here
MAX = 9
MIN = 3
ACTION_NAME = "DragonflyAction"

# Set step size.  Step size of 1 chooses a new value every frame
STEP = 5

def my_handler(scene):

    if scene.frame_current % STEP == 0:
        obj = bpy.context.selected_objects[0]
        obj.animation_data.nla_tracks["NlaTrack"].strips[ACTION_NAME].scale = (random() * (MAX - MIN)) + MIN

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

Here's a screenshot:


How to track the state of a window toggle with python? With bpy I can call the following function:
bpy.ops.wm.window_fullscreen_toggle()

But how can I track the state of the toggle so that I avoid unnecessary calls to the bpy.ops.wm.window_fullscreen_toggle() function?

You can use the code
size = bpy.context.window.y
if size == 0:
     # it's fullscreen
else:
     # it's not fullscreen

I don't know if that's the proper way to do it, but it works for me


Cycles procedural texture appears in preview, but disappears in final render Today I was working on a porcelain material to include in my personal material library. It has several layers of procedural wear, including a grunge map inputting to the roughness of my PBR Dielectric shader, a scratches layer with four separate sets of scratches all going different directions to add to the bump map and to mix in a different color to my Dielectric shader again, and a layer of dust using the layer weight and upward facing normals to apply a noise texture to add in a dust dielectric to mix into the final result. (Picture below to clear that up, and I'm more than willing to post screenshots of the expanded node groups)

I worked for quite a while on this material, and it was looking absolutely fantastic in my preview renders, but it was missing something in my final renders. I was unable to put my finger on it in the beginning, but now after comparing them side by side it appears that in the final render for whatever reason the scratches layer is not showing through, despite it being in the preview render. Why might that be, and how can I fix it? Might it have something to do with the subsurface modifier looking different between the two renders since I'm using the pointiness geometry node?

So it appears the pointiness output's effect in the Geometry node is significantly reduced when you increase the subsurf modifier. Multiplying the effect of the mask from the pointiness factor would likely solve the problem as well but for this particular instance simply reducing the subsurf back down to 2 subdivisions rather than the initial 4 that I was using was sufficient to get the effect I wanted.

So to sum it up, pointiness reduces with subsurf, so multiply its effect or reduce the subsurf.


Initial scene in BGE Is there a way to set the initial scene in Blender Game Engine so it always starts at the beginning, regardless of what scene you have selected in the editor?

I hate having to go up to the top, and use the drop-down to select the right scene, every time I run it.

When I use an overlay scene I use this method:

The level scene adds the overlay scene as overlay.
The overlay scene adds the level scene as background.

The BGE does not add an already loaded scene. Therefore you always get both scenes regardless what scene was the first one.

Attention: this will not work when you want to use the overlay scene with another level scene.


Impossible to snap to objects I'm trying to snap two objects with closest vertex, but when the vertex of the object I move is very close, it jumps back! I guess the distance is 15 mm. When it jumps back, a small ring is visible at the other objects vertex. I cant find any solution and need help!

You could try the following:

1: In Edit mode select the vertice you want to use as the snap point.

2: Move the 3D cursor to this vertice, (Shft S to open the snap menu, then choose  Cursor to Selected).

3: In Object mode move origin to the 3D cursor, (Shft Ctrl Alt C and choose the Origin to 3D Cursor option).

4: Change the Snap Target from Closest to Active.

In the example gif below, I’m trying to snap the point of the pyramid object to one of the corner vertices of the cube object.


Converting bottle threads from diagram to a 3D model Goal:
I'm trying to model the threads of a polar springs 500ml bottle in Blender 2.8x so I can 3D print an adapter for it.

Issue:
I'm having issues converting what Blender 2.8x calls Screw and what the diagram calls Helix Angle and Travel Per Turn.

Full diagram of threads I'm following
I've been able to find some good dimensions for the threads to start with.
Link to full diagram below.
https://www.bevtech.org/assets/Threadspecs/2072573_tmp.pdf
Tried:
I was thinking of using the profile of a 3 edge plane
See image below

And using the screw modifier to make each of the 3 threads (each of the 3 threads only go around 73-75% of the bottle head) see image below (I was doing it this way to have more control over each thread since 3D printing this may require fine tuning each thread)

To test the treads I would just use a cap that comes with the 500ml Poland springs water bottle.
Ps: I was following parts of this tutorial
https://youtu.be/kVNxfCtoG_A

Such a nice diagram almost calls for the Simple Deform Modifier :)

Model the thread as in the diagram
Add a Simple Deform Modifier > Bend
Choose an axis and set angle to 360°


Bind water animation to keyframe I'm currently making a bar scene.
One of the guests is holding a keg upside down, I made the water animation for it.
But I want to make the camera go through the stream of pouring beer at frame 180.

How do I delay the animation so it starts at frame 179, so the camera can catch the initial pouring?

Here's something that works for this:
Make sure you have saved the .blend file, and have baked your fluid simulation completely. (This isn't required but is optimal.)
Once ready, set the offset amount. Negative (one for each frame ahead) postpones the simulation one frame. Positive makes the simulation a frame earlier.
Here are some pictures:

Offset -15 frame one:

Frame 15 offset -15:

Hope this helps!


'Matrix' object has no attribute 'z' in world_to_camera_view I'm trying to use the following code to get 2D points out of Blender.  Ultimately my goal is to generate HPGL for a pen plotter but for now I'll be happy with a printed list of coordinates.

Whenever the code calls world_to_camera_view I get the error Matrix object has no attribute z.  This appears to be a problem inside the world_to_camera_view function?

I'm at a loss as to how to fix it and/or what data the function is actually expecting?

Thanks for the help!

import bpy
from bpy_extras.object_utils import world_to_camera_view

scene = bpy.context.scene

# needed to rescale 2d coordinates
render = scene.render
res_x = render.resolution_x
res_y = render.resolution_y
cam = bpy.data.objects['Camera']

current_obj = bpy.context.active_object

scene = bpy.context.scene
camObject = bpy.data.objects [ 'Camera' ]

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

    coords_2d = [world_to_camera_view(scene, cam, coord) for coord in verts_in_face ]

    # 2d data printout:
    rnd = lambda i: round(i)

    print('x,y')
    for x, y, distance_to_lens in coords_2d:
        print("{},{}".format(rnd(res_x*x), rnd(res_y*y)))

Seems like you are passing a vertex though you named it coord.

verts = current_obj.data.vertices
coords_2d = [world_to_camera_view(scene, cam, verts[index].co) for index in face.vertices ]

face.vertices does not contain a collection of mesh vertices, but a list of vertex indices. You need to retrieve the actual vertex and use its coordinate (v.co).


Sculpt for glasses nosepads I have a glasses model :

But, how I can make nosepad like this:

I tried Sculpt mode, but i cant.

Thanks

Starting with the basic shape of the eyeglass frame.
I started with a circle with 64 vertices and formed that to the inside of the frame and then extruded that out and shaped the outside of the frame.

Then extruded that shape up to create the thickness of the frame. (I also used a Mirror Modifier and a Sub Surf Modifier).

I then selected the vertices that would make up the nose piece and pressed CTRL + “I” to inverse the selection. Then pressed “H” to hide that.

Then selected the following eight vertices and turned on Proportional Editing “Connected” choose “Sharp” for the falloff and pressed “G” and moved them up.

Then changed the falloff to “Linear” pressed "S" and scaled them in.

You can press ALT + “H” to unhide the rest of the vertices and/or Tab into Object Mode to see the result.


How do I import a minecraft rig into my scene? So I downloaded this minecraft rig by: VMComix and I was wondering how I can import it into my scene that I created. I tried file, append. But the rig has so many parts, I just don't know what to do, or how to import it!

You can also append Groups. So if you first Group all your parts CtrlG and name them you will then be able to navigate to this Group using the file browser when you Append.

Immediately after you create a Group you will be given a chance to name it in the Operator Panel on the left side of your 3D Viewport. If you don't see your Tool Shelf which contains the Operator Panel, you probably just need to press T while your cursor is inside the 3D Viewport to make it appear.

If you later need to browse your groups, you can do it in the Outliner. Double-clicking on the Group's name will allow you to rename it.

To see if an object is in a Group, or to add it to or remove it from a Group, you can go to the Object Context to manage this. You can rename groups from here as well.


SKINNING - How to remove specific vertex relation to bone I've create a model and a rig by myself to understand how it's working but i'm stuck with one thing : some vertex are related to a bone and I don't want it. Obviously to avoid that kind of result : (look at the pelvis which move withe the hand controller)

I tried to delete the relation but it's impossible to see the relation of a group of vertex, it's not listed anywhere because it's not an object but some vertex of this object.

Do you know how to solve that ?

Many thanks in advance,
François

You can find it in the vertex groups tab. Find the group with the same name as the hand has, select the skirt's vertexes in the 3d view and click on remove.
https://docs.blender.org/manual/en/latest/modeling/meshes/properties/vertex_groups/assigning_vertex_group.html


How do I link Particle data between objects? Normally if I have a material and want to put that material on say, 50 different objects, then I would select one object with that material, and then select the rest of the objects, hit Ctrl + L, and the material data would be copied to all the objects.

I have the exact situation I described above, except that I want to copy an object constraint from one object to all the other objects. Unfortunately the Ctrl + L menu doesn't have a "Particle" button.

How do I copy this Part to all the other objects?

select all the objects you want the particle system to be linked to
select the object with particle system as last (so it is the active object)
from particle system list select the system to be linked (the active one or all the particle systems)


How to set parameters of orthographic camera to see only a specified plane My question:
How can I set the parameters of orthographic camera, to look only at a specific plane from orthogonal position, and at the same time to see the whole plane on the render (fit the size of render to the plane size of a plane)?

Big picture: I have multiple planes in 3D space and I want to take a photo of each plane (render each plane) using python script. I want to set the parameters of orthographic camera, such that the camera is looking at one plane at a time from orthogonal position and the whole plane is visible on the render. Planes should not be moved in 3D space and planes are rectangular, and can be of any width/height combination.

-Just as an idea: Maybe a part of the solution would to use the "Damped track constraint", but I'm still not sure about setting the camera orthogonally and to see the whole plane.

Thank you very much for your time!

You can create a macro with the following steps for each plane:

set plane as active object.
bpy.ops.view3d.view_axis(type='TOP', align_active=True)
bpy.ops.view3d.camera_to_view()
bpy.ops.view3d.camera_to_view_selected()
if needed, change your render resolution to the same dimensions of the plane.


Python importing nightmare I'm having the hardest time trying to import a few things. I have an addon that has multiple files all under one folder with an __init__.py in the base. I'm performing all of these imports from this __init__.py. The addon folder resides in my addon folder as scripts/addons/RLD_Toolkit

My directory hierarchy looks like this

The part of the script where it errors

def register():
    #These imports do not work
    from . import rld_panel
    import rld_panel

    #This import does work
    import RLD_Toolkit.rld_panel

The error I'm getting is

Import Error: cannot import name `rld_panel`

Why won't it perform the relative imports (or even the straight up import) from my __init__.py?

Edit:
Here's a printout of my globals() variables and sys.path

To answer the question, you will have to add the line:

sys.path.append(__path__)

before importing anything. This will add the current folder into the path Python looks in for imports. Then you can import files  with:

import foo

instead of:

from bar import foo

.


Creating and packing a 32-bit float image How can I specify the file type and color depth when generating and packing an image with Python?

I'm trying to generate an image with full 32-bit float color depth and pack it into my blend file but I keep getting it revert back to 8-bits per channel.

I'm creating the image using the following python code :

import bpy

width = 800
height = 400

image = bpy.data.images.new("testimagepacked", width=width, height=height,float_buffer=True)

pixels = [None] * width * height

for x in range(0,width):
    for y in range(0,height):
        pixels[(y*width)+x] = [float(x)/width,float(y)/height,-y+x,1.0]

pixels = [chan for px in pixels for chan in px]
image.pixels = pixels
image.update()

This successfully creates the image and dragging the mouse across it in the UV/Image Editor shows that the pixels are correctly stored as floats (with the Blue channel ranging way beyond the usual 0.0, 1.0 limits and green and red not being rounded to 1/256ths).

If I manually select Image/Save As Image and specify the format as OpenEXR, RGBA, Float(full) to save if as a file and then select Image/Pack then the image is packed into the blend file retaining its full 32-bit precision.

This shows that it's possible to pack the image in 32-bit precision.

I have tried to replicate these actions in Python but am unable to save the image as 32-bit float - I can't figure out how to specify the image file format.

The nearest I've got is to save the image as OpenEXR but, apparently, not in 32-bit float for the image loses its precision when it's packed using this :

image.file_format = 'OPEN_EXR'
image.filepath='//created image.exr'

image.save()
image.pack(as_png=False) # I expected this to pack as float rather than PNG but this doesn't seem to work
image.use_fake_user = True

How can I specify the Image Format Settings when saving the image from Python? Even better would be to be able to directly pack the image (as 32-bit float) without having to save it to disk at all, but I don't think this is possible.

It would seem that to control the image format that gets packed into a blend file, you will need to save the image to disk and then re-open it.

To get control of the file format an image is saved to disk with, you can use save_render(). The render settings from the scene parameter holds the ImageFormatSettings which allow you to adjust the settings. If you don't want to use the render settings from the current scene you can create a new one just for this.

scn = bpy.data.scenes.new('img_settings')
scn.render.image_settings.file_format = 'OPEN_EXR_MULTILAYER'
scn.render.image_settings.color_mode = 'RGBA'
scn.render.image_settings.color_depth = '32'
img_path = bpy.path.abspath('//')
img_file = image.name+'.exr'
image.save_render(img_path+img_file, scene=scn)
bpy.data.scenes.remove(scn, do_unlink=True)

But this still leaves you with an edited image that doesn't respond to pack(). To get around this, remove the image block and open it from the file.

bpy.data.images.remove(image)
bpy.ops.image.open(filepath=img_path+img_file)
image = bpy.data.images[img_file]
image.pack()
os.remove(img_path+img_file)


Why won't my fluid simulation render? My fluid simulation baked and showed up, but when I rendered it it shoed no simulation. The rendered viewport even shows the fluid! The bottom part of the screen shows the rendered viewport, the top screen shows the images after rendered

Your object doesn't render because it is disabled for rendering in the outliner.
Use the camera icon to enable.


How to maintain right angles while editing a rotated mesh? I'm trying to move an edge loop in a mesh that's not aligned to the global axis, but is supposed to have all right angles (since it was created from a cube). Even though I move the loop along the mesh's local Y axis eventually the angles on some edges deviate from 0.000/90.000 degrees as you can see here:

This stops happening for this particular edge loop after I apply the scale translation to this object, but now I'm worried it'll happen to me after I've made a lot more modifications to the mesh and wasn't paying attention to the angles.

Is this actually due to a precision loss or something else? Is applying the scale the best solution, if so I'd like to understand why, if not, what is?

Sample file: https://ufile.io/s7vwy
Blender: v2.79

This is happening because you're moving the loop according the its locals, which is not straight because your mesh is not straight--your mesh has its own locals (either an element that you added is making it this way, or you didn't make your mesh on the grid properly)--not according to the other points in respect to the loop. How do we know this? Because if you slide the loop G x 2, you find that this doesn't happen.

In orthographic view, you can see that there's an alignment issue of some sort at the very top (middle). There's a crease there to be specific (not easy to notice, I know). Check this by going into orthographic view from the front side (Numpad 5 for orthographic, and Numpad 1 for front) and look by the Z axis. Alternatively, look at Z-axis values of your edges.

The sign of not being straight (only noticeable at distances, generally):
(Note that if the lines were straight, this should never happen.)


How do I bevel this object if subdivision surface modiefier is already applied? I have made this shape in blender, as you can see I have used subdivision surface modifier.
I want to bevel the right corners of this model.

But when I try to apply this bevel to my model bevel doesn't work.

How do I bevel the right hand side corners and apply subdivision surface at the same time ?

Can anyone tell me what should be my approach ?

Regards
Prachu

Sometimes, it can suit to let the subdivision do the bevel for you.. the resulting curve is not quite the same shape as one you would have made yourself, and can be subtly altered by holding loops a fair way back from the 'bevelled' edge.

If you don't put the holding loops in, though, the edges between  the bevels are slightly curved, and the large face is not as flat.

The bottom surface is the top topology with three levels of subdivision.


Different text size in panels The panel on the left has small unreadable text and the panels on the right are readable. whats up with this? how do i get the left panel to be readble again. when I open a new file its normal but i cant adjust it in this file

[

(Assuming Blender 2.80)
To fix the size, move your mouse cursor over the panel, which you want to change. Press CTRL and hold down the mouse wheel. Then move the cursor up and down until the size of the fonts are as you want.


Star Trek: Impulse Engine Material in Blender For those of you who are not familiar with which part of the Enterprise is the Impulse Engines, it's the red parts:

Google Images

The photo doesn't display it great, but it should help get the point across. The Impulse Engines are a multiple squat little hexagons separated by thin strips silverish, hull-colored strips. Each hexagon emits light and is a slightly different Saturation (think HSV color definition) of red. If this were a gif, you would see that the Saturation changes overtime for each hexagon, so it appears that they twinkle.

Seeing as I would love to not have to model each little hexagon and add a different material for each, I would love if someone could figure out a material that looks similar to these.

A .blend for you to play with:

This problem has been a really interesting one to work on. At the start I didn't think this would be possible with 'pure' Cycles nodes - without resorting to OSL - but was surprised to discover it is. I've certainly learned a lot along the way.

Here's the material :

(glare added in compositor)

And here's the node tree (click to enlarge) :

The pattern can be generated by measuring the distance of each point being sampled to each of a number of fixed reference points in a similar way to how the Voronoi texture is produced. By carefully positioning the reference points we can generate a hexagonal pattern.

Starting with a single reference point (held in a Combine XYZ node), the vector between the reference point and the texture coordinate can be calculated simply by subtracting one from the other using a Subtract Vector Math node. This is passed into both inputs of a Dot Product Vector Math node to generate a scalar distance (actually 'distance squared').

This structure can be replicated for multiple reference points and the results of each combined using a Minimum node. This will effectively return the distance (squared) to the closest reference point.

Greater Than nodes can then be used to compare each individual output with this combined 'Minimum'. This will produce 3 outputs that will be '0' if the corresponding reference point is the closest, otherwise '1'. These values are also passed through Subtract nodes to invert their output. We now have two sets of 'mask' outputs - one set that's 0 if the corresponding reference point is the closest, another that is '1' if the corresponding reference point is closest.

To be able to control the edges of the cells (rather than having a gradient emanating from the centre) we need to be able to detect the boundary between one cell and the next. The boundary occurs at the point where the distance to one cell equates to the distance to the next closest cell. This can be achieved by determining the minimum distance to all of the reference points excluding the one we already know to be closest. Subtracting the closest distance from the next closest will give a measure of the distance to the cell boundary - this will be zero at the boundary (where the distance to each reference is the same) and increase as we move further towards the centre of a cell. For the first reference point we can do this as follows :

Note the multiplication by the mask - this is to ensure that each value is only used when the point being measured is closest to the corresponding reference point - the output will be zero outside the corresponding cell.

Replicate a similar structure for each of the other reference points - in each case this will need to combine the outputs from all reference point distances of the other reference points excluding the one corresponding to the 'current' one - which we know will be the actual minimum if the mask will include that point - ie,  the first combines 2 and 3, the second 1 and 3, the third 1 and 2. Since each of the resultant outputs are masked to zero when the sample is outside its cell we can simply combine them all as shown :

To be able to colour the individual cells we need to be able to determine the vector coordinates of the corresponding reference point. Again we can use the masks to pick out the relevant value for the closest reference and these can be simply combined to produce a single vector. In this case, the 'anti-mask' (set to 0 where that reference point is closest, otherwise 1) is most useful as it can be used in a Multiply Colour node to multiply the vector by zero when it is not the closest, otherwise allow the vector through unchanged.

For a hexagonal pattern we need to position the reference points in a grid representing the centres of the cells. By calculating only those reference points that are closest to the point being sampled we can re-use the above nodes to cover the whole texture space. This would technically be possible with only 3 reference points but becomes much simpler if we replicate the node structures to work with 5 cells at a time.

To position the cells, the 'grid' coordinates are determined by dividing the texture coordinate by the horizontal and vertical pitches (chosen as 1.5 and 0.866 to generate the correct spacing for regular hexagons) and rounded down to integers. Modulo 2 is used (which returns '0' for even rows and '1' for odd rows) to determine the Row Type and Column Type to allow alternating rows to shift across in the hexagonal pattern.

Once the location in the grid is known, the Generate Point Coordinates Frame calculates the locations of the "nearest" reference points. These are multiplied by the Horizontal and Vertical pitch to get coordinates that can be used with the current sample point to determine the distances. This can be illustrated as follows with the current sample point indicated in white with the 5 nearest cells shown :

The cell border can be adjusted via the Edge Offset and Edge Power values. Larger Offset results in thicker borders to the cells while the Power affects the hardness of the cell edge. Negative values can give some interesting effects (eg, Offset = -0.5 with Power = 1.0 provides a quilted effect with soft borders, while a small positive Offset and Power 0 gives hard narrow lines between cells).

For the cell colours, a noise texture is used to generate a value between 0 and 1 based on the cell vector and this is multiplied up and passed through a Modulo 1 node to generate a (mostly) linear distribution. An Offset is added to allow it to be animated and the result passed through a further Modulo 1 so that the value wraps around at the edges of the 0 to 1 range. This is then passed through a colour ramp to generate the final shade for each cell. Using the cell coordinate as a basis for this colour generation ensures each cell is coloured consistently.

The maths used to manipulate the grid and dynamically position the reference points works fine with positive coordinates - so plain old 'Generated' coordinates should work well. However, switching to Object coordinates will result in negative values which upset the calculations. To work around this you need to increase the Location of the Mapping node to avoid the negative texture coordinates.

Blend file attached.


Best Topology for modelling animal legs I have done a modelling course making a dinosaur and am now practising making my own.
The course made the leg and attached it to the body as shown here. It involved rotating the edge loops quite a bit until they could be joined to the body's edge loop cut out for the leg. This process was rather clunky in my opinion.

While making my own model I went to see what others are doing for this step and I found this video (at 3:38) where instead the modeller just extrudes part of the body's faces out and then extrudes the bottom part of that new protrusion down to make the leg.
This creates 2 very different topologies, and I cannot tell which is better. The second method is a lot easier to do as it involves a much easier to manage topology, which in my book is good.
What are the pros and cons of these methods other than ease of use (the only thing my novice self has encountered)?
Just as an FYI I am modelling and rigging to practice making a small game, so I am also looking to animate these models.

I have modeled many dinosaurs myself; I started out using the approach you're saying the course used (and that approach is still valid), but I have come to prefer the approach used in the youtube video; I just think it better compliments the shape of the hipbone, which you can see a 3D recreation of here:.
The former approach will lend itself to making that whole area more smooth (as you can see in the image you attached), whereas the latter approach lends itself to giving more definition to that hipbone shape (see how visible the hipbone is in this still from Jurassic World: Fallen Kingdom)
It makes it very easy to have edge loops actually following (and thus better bringing out) the curvature of the hipbone; organic modeling is all about having the topology flow with the forms you see in the shape.


How to inset group of faces Coming from 3ds Max I was wondering if it's possible to inset a group of faces. The result I would like to achieve (using 3ds Max):

This is the result I get using the inset tool in Blender:

Once you activate the Inset tool  Disable "individual"


Using array and fit to curve changes orientation of object I am trying to make a simple stadium/arena and thought I could just make one section and use an array to fill the rest of the circle but when I try this it turns it sideways and renders it useless.  I've tried different origins, different offsets different deformation axis and it only makes it worse and not better.  I do not understand what I am doing wrong.

If I'm not mistaking, Blender uses the world's Y axis as reference to align your object to the curve. Something like that.
So theoretically, you would only need to rotate your object at a 90° angle (or -90°) on the world's Z axis. Maybe also apply the object's rotation via CtrlA.
Nice demo picture by the way!


How do I get the correct color for Minecraft swamp grass? I've got the texture and the material and the UV mapping down for the grass, but I can't seem to be getting the color down. It keeps getting too light, not showing enough green, too tan, or not 'lush' enough for swamp grass.

I've tried taking the swamp grass hexadecimal(#4c763c) from here (refer to item 1 in the link below) then getting RGB percentages from here (refer to item 2 in the link below) and putting them into the textures property like this (R: 1.298, G: 1.463, B: 1.235), but the result is disappointing: (refer to item 3 in the link below)

I have also tried putting the RGB values into color balance in gimp: (refer to item 4 in the link below)

The original Minecraft texture: (refer to Item 5 in the link below)

target color: (refer to item 6 in the link below)

https://docs.google.com/document/d/1xbP10JUztmZoTq74KTY-mh4eX07V6YpAMq_Rd6fN6BE/edit?usp=sharing (I can't have more than 2 links because i don't yet have 10 rep)

I don't know how exactly it should look, but you can set the hexadecimal value (#4c763c) to the diffuse color and the intensity to 1, then change the blending mode of the texture to Multiply.

You can do it in GIMP by adding a new layer, fill it with that color and change the mode to multiply.


Simply adding an image to mesh (UV confusion) I don't fully understand UV Mapping.

I imagine that the shapes that evolve from the flattened/cut open 3D object, are laid out on a 2D canvas which is the UV Map. You can draw on that canvas, add images and all the things that are within the shapes (unwrapped 3D object) are gonna be shown on the 3D model, where the shapes belong.
But as I understand now, The Map is basically one Image and you lay those shapes on top of that one image.

Can I put a second image on there on a specific island?
Can I create a separate UV map for unwrapping only a specific part of the mesh?
Is a new map created every time I unwrap the object? If yes, how can I mangage all those maps?
Does a texture without alpha always cover the whole 3D model?
When is a texture from a UV Map activated/rendered? Does that only work via the shader editor?

As an example, how would I put this white logo/lettering on this screwdriver, which I modelled in Blender? Assuming that I have the logo as an image file.

I use Cycles for that project.

Click to enlarge

So for everybody looking for a solution for that situation as well.
There are two ways (probably even more) to solve it:

The one that Akai explains in his post very detailed
The one that is explained in this video https://www.youtube.com/watch?v=VnfTSXWF21A

Thanks for the help!


Get screen space coordinate for node position I'm working on some features for Node Wrangler and seem to be a bit stumped.

The task is to draw some text and shapes using the BGL module near a certain node.

BGL is drawn in screen space (the origin always at the bottom left and measured in pixels).
However the node location is kept in some kind of region space, the origin being the origin of the background grid and is not measured in pixels (for example, some node is 200 units wide no matter what zoom level you're at)

How could I find the coordinate of some node converted to screen space, so that I can draw some BGL stuff near it?

There are two utility functions for regions to convert 2D spaces:

Region.view2d.region_to_view()
Region.view2d.view_to_region()

-- API Docs

You might not even need it, try 'POST_VIEW' for your draw callback:

bpy.types.SpaceNodeEditor.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_VIEW')

This set, you can draw in the node space in your callback function, unlike 'POST_PIXEL', which will always give you the screen space.


How do I set the selected value of an enumproperty? I have a dropdown that should show a list of materials available for the selected object. The current material should be the selected entry in the dropdown list. I've been looking through posts but can't find the answer to this simple question.
I can set the value through the console by doing bpy.context.scene.mydropdown = 'my selection'
but doing this anywhere inside of my script gives me an error: Writing to ID classes in this context is not allowed.
class SC_PT_Wall(SaunaCloudPanel, bpy.types.Panel):
    bl_idname = "SCPANEL_PT_Wall"
    bl_label = "Wall"

    def draw(self, context):

        layout = self.layout
        sc = context.scene.saunacloud
        obj = context.active_object
        layout.prop(obj, "sc_has_heater", text="Heaters")

        sc.matlist = obj.material_slots[0].material.name  #this causes an error
        layout.prop(sc,  'matlist')

class SC_Global_Props(PropertyGroup):
    def getMatList(self, context):
        obj = context.active_object
        type = obj['sc_type']

        lst = []
        for mat in bpy.data.materials:
            parts = mat.name.split("_")
            if parts[0]==type:
                lst.append((mat.name, mat.name[len(parts[0])+1:], "Tooltip baby!"))

        return lst

    def setMat(self, context):
        obj = context.active_object
        matName = context.scene.saunacloud.matlist
        mat = bpy.data.materials[matName]
        slots = obj.material_slots
        if len(slots)!=1:
            print("Can't set material because '"+obj.name+"' has more than one material.")
        else:
            slots[0].material = mat

    matlist: EnumProperty(
        name="Material",
        description="Tooltip for the Dropdownbox",
        items=getMatList,
        update=setMat
     )

Ditch the Enum.

AFAIC Using an enum property to list the materials has been superseded by using a pointer property to the ID object type. In this case a material.
Custom search data to UILayout.prop_search
Search custom properties in objects on the scene (Python)
Have used this option here.  Given the property group a material property, which is a pointer to blend material, or None if not set.
An update method on this property sets the objects active material to the sauna specific one chosen.
Added a boolean property to material type to flag (poll)) it as a "Sauna Cloud" material.  The only materials that poll  will have this set as true.
A select menu is drawn by the UI using a UILayout.prop(...) (commented out) or with the ID template.  (Note a custom operator to  add material can be set here, I took out the generic add material_)
Other alterations.
Drew the context objects material slots in the  panel and an option to add a new one. Further to this would be to define your own UIList to add the "Is sauna material" checkbox in the list, add a filter etc.
Displayed the is sauna material checkbox, in panel and prepended it to Material Preview panel, by way of example.
Set the context members material (context.material  only exists in the PROPERTIES area, otherwise needs to be set for material operators) which can used in your addons custom operators, with buttons in this layout,  as
mat = context.material
sc_mat = context.sauna_cloud_material

or in hindsight  sc = context.sauna_cloud.
Changed the namespace from SC to SAUNA and would go as far as to say even SAUNA_CLOUD  The naming convention,  _PT_ for panel type.  is all about limiting name clashes.
import bpy
from bpy.props import PointerProperty, BoolProperty
from bpy.types import PropertyGroup

class SaunaCloudPanel:
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Sauna"
    @classmethod
    def poll(cls, context):
        ao = context.active_object
        return ao and ao.type == 'MESH'

class SAUNA_PT_Wall(SaunaCloudPanel, bpy.types.Panel):
    bl_idname = "SAUNA_PT_Wall"
    bl_label = "Wall"

    def draw(self, context):

        layout = self.layout
        sc = context.scene.saunacloud
        ob = context.active_object
        mat = ob.active_material
        layout.context_pointer_set("material", mat)
        layout.context_pointer_set("sauna_cloud_material", sc.material)
        box = layout.box()
        box.prop(ob, "name")
        col = box.column()
        col.template_list("MATERIAL_UL_matslots", "", ob, "material_slots", ob, "active_material_index", rows=5)
        col.operator("object.material_slot_add")
        if mat:
            col.prop(mat, "is_sauna_cloud")

        #col.prop(sc,  'material', text=getattr(sc.material, "name", "None"))
        col.template_ID(sc, "material")

class SAUNA_Global_Props(PropertyGroup):
    def poll_material(self, material):
        return material.is_sauna_cloud

    def update_material(self, context):
        scene = self.id_data
        sc = self
        ob = context.object
        mat = self.material
        # debug print
        print(f"Update object: {ob.name} with material: {mat.name}")
        ob.active_material = mat

    material : PointerProperty(
        type=bpy.types.Material,
        poll=poll_material,
        update=update_material,
        )

classes = (
            SAUNA_Global_Props,
            SAUNA_PT_Wall,
        )

def draw_sc_material_checkbox(self, context):
    mat = getattr(context, "material", None)
    self.layout.label(text=mat.name if mat else "None")
    if mat:
        self.layout.prop(mat, "is_sauna_cloud")

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Scene.saunacloud = bpy.props.PointerProperty(type=SAUNA_Global_Props)
    bpy.types.Material.is_sauna_cloud = BoolProperty()
    bpy.types.MATERIAL_PT_preview.prepend(draw_sc_material_checkbox)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    bpy.types.MATERIAL_PT_preview.remove(draw_sc_material_checkbox)

if __name__ == "__main__":
    register()

To answer the question, in an update or items method self is the propertygroup and self.id_data the ID object down the chain it belongs to. Scene in this case.
To get the enum value in either
self.matlist

Consider defining an enum and using same on material and object to poll instead of relying on naming convention.
enum = EnumProperty(... our types ...)

bpy.types.Material.sauna_type = enum
bpy.types.Object.sauna_type = enum

You can't set properties of ID objects in a draw method.
In the update method, to do same as above
ob.active_material = bpy.data.materials.get(sc.matname)

however IMO far better to poll a pointer. Import from bpy import context into the poll method to get context object. eg using matching enums,
def material_poll(self, material):
    from bpy import context
    ob = context.object
    return material.sauna_type == getattr(ob, "sauna_type", None)

or via name slicing method used in question


how do I render my animation and the rest of the scene seperately I have a scene that scatters over a million grass plants on a landscape and also an animated river that runs through the landscape. As the river is the only thing hats animated is there any way I can render the landscape and grass once instead of over and over each frame along with the water?

You can render the first static frame, save it as image and then plug into Alpha Over node in compositing.

Disable animated river. Uncheck Disable in Renders icon in the Outliner tab:
Render only Statics and save on disk:
Enable the river in Render and disable all statics (same as 1)
Check Fill>Transparent (available for both Eevee and Cycles):
Set up compositing Alpha Over node:
Render the river. Compositing will be executed for each frame of the animation:


Subdivision Surface with a hard edge problem

Hi.

I added the side of inside sink later and sub surf causes problem. even if I put loop cuts to align the lines(vertical side) it doesn't help.

https://blend-exchange.giantcowfilms.com/ doesn't work for me so I leave the file in google drive address. https://drive.google.com/open?id=1hqZDeiltItw2UUwfPcbUuI6SbGw_IiKi

Thank you

I can't seem to open your file, but from the pictures you've provided, I tried to recreate the problem and possibly solve it here:

https://youtu.be/S1x6OycmPD0

In the video you can see me going inside the mesh to check if there are any faces on the inside. Make sure to remove them if you see any on yours. Then I select all and clicked "Remove Doubles".

Let me know if the problem persists


How to distribute without the occurart tool? I can use array modifier, but I want to align four different objects.
It could be a script. Please teach me.
And why was oscurart deleted

Objects I want to distribute.

Create four objects. Enter the names of the objects at each end, A and D. Type B and C in the middle. Then spread the distance on the y-axis.
import bpy

#Compare y-axis distances

dif = bpy.data.objects["A"].location.y - bpy.data.objects["D"].location.y

#There are four objects, so do 4-1.

chunkglobal = dif / (4-1)

chunky = 0

#Sets the initial location value.

deltafst = bpy.data.objects["D"].location

OBJECT = bpy.data.objects["A"]

#In object, enter the location information for A.

OBJECT.location.y = deltafst.y + chunky

#Add the total length divided by the average length.

chunky += chunkglobal

#Repeat to the following object

OBJECT = bpy.data.objects["B"]

OBJECT.location.y = deltafst.y + chunky

chunky += chunkglobal

OBJECT = bpy.data.objects["C"]

OBJECT.location.y = deltafst.y + chunky

chunky += chunkglobal

OBJECT = bpy.data.objects["D"]

OBJECT.location.y = deltafst.y + chunky

chunky += chunkglobal


Reset vector where objects are added to origin (0, 0, 0) Some time ago I was following a tutorial that I can no longer find in which the presenter suggests to edit a setting that changes the vector an object is added to the vector of the 3d cursor rather than origin (0 ,0, 0). Can somebody direct me how to find this setting again?

You can change coordinates in the Location field in the Last Operator panel for Add primitive menu and set there 0,0,0 (use an old trick for entering all 3 values quickly - set the mouse in the top-most field and drag it all the way through to the bottom-most field, then type a value).

However there doesn't appear to be any default way to save this into user preferences to use later. It's possible to edit the location of the object afterwards by placing 3D cursor to scene origin though (Shift++S > Cursor To Center) and then aligning object to the cursor (Shift++S > Selection To Cursor). See Precisely move the 3D cursor and The easiest way to move an object to 3D cursor for more info.


The back portion of model is not visible while rotation If you see in the below image I have pointed the area with red arrows where the surface is not visible.

I thought that that portion will not have the face so I rotated thee image whenever I am rotating the image it's back surface seems to be invisible. For reference see second image I have pasted.

Can you please suggest why is it so?

That's backface culling on the N panel, on the right side of the viewport, under Shading -> "Backface Culling", this only draws faces which have their normal pointing at the camera, if you deactivate it you turn every polygon "double sided" in the viewport.

For rendering purposes this has no effect, but it might help viewport performance or visibility.


Why does the screen turn completely white in render view when using 2.8 eevee? I know this version of blender is just a beta but this wasn't happening the entire time I was creating my scene. After adding in furniture from CGtrader, the rendered mode began showing up completely white.

I have tried deleting the furniture I imported and adjusting my lighting and bloom settings but that did not fix the issue.

When I switch to rendered view the scene stays in lookdev mode for a while before light slowing starts illuminating and eventually turns the screen white.

Any possible suggestions?

This may be too late, but someone might find it handy if a search lands them here.

I just had this issue. My computer crashed and when I re-opened the file I had been working on, everything was white. Zooming way out made it seem like it was a giant bloom effect in the middle of the scene.

I tried reopening the file multiple times without luck, but what did fix it was opening a different file. I spent a moment panning around that scene, switched render views, then re-opened the file with the issue.

The bloom was gone, so I assume it was just bug that was cleared when I opened the other file.


Hair particle bugged (blendfile attached : https://drive.google.com/file/d/1DwS8ZN3pF6nQY0i9CgwZgsIfeeG0TcSD/view?usp=sharing )
My hair is very buggy.
I have a hairstyle composed of two layers, two particle system, one for the main hairs, and one for the frizzy hairs. The scalp where the hair is, has modifiers set up like this :

And here is a picture of the hair how I want em, and how I stylized em in the particle editor :

But this is how it looks when I disable the fluid modifier that the scalp has
<img src="https://i.stack.imgur.com/FAsda.png" alt="Screenshot 2021-01-29 013058
Screenshot 2021-01-29 013058
528×510 67.7 KB" />
And this is how it looks when I uncheck the “Dynamic Hair” box

I want to simulate my hair, but when I bake it, it comes out weird and deformed, plus, the main hair are static, there is only the frizz going crazy.
I want to simulate hair correctly, looking exactly like the first picture, but without the fluid modifier, wich I think is causing problem in the sim.
(blendfile attached : https://drive.google.com/file/d/1DwS8ZN3pF6nQY0i9CgwZgsIfeeG0TcSD/view?usp=sharing )
Edit : If you wanna see the particles in edit particle mode, make sure this option is set to particles :

Ok. You have Fluid modifiers everywhere! On the Scalp, on the Body and, on the (hidden) Hat object. (How did that happen?)
Here is a fix list ;-)

Remove the Fluid modifiers from the objects
When you remove the Fluid modifier from the Scalp object then the main hair will be modified (2nd picture of the model in the question). There is a long "children" strand on the left side of the head, far away from the hair particle (hair guide). The reason for this is that [X] Long Hair is ticked in the Hair Particle Settings for the Interpolated Children. Turn off Long Hair for the children. Then the children will follow closely the hair guides and the hairstyle will look like before.
If you make the main hair static by turning off Hair Dynamics the hair will change and look like in picture 3. This is because there is a Collection named "SCALP" set in the Hair System Settings → Field Settings → Effector Collection. Clear the value here and the hair will look fine again.

Side notes:

I've tried to run your hair simulation but when I press the Play button the frame jumps 1, 30, 70, 123, ..? I have no idea what's going on there. If I move the fixed Scalp object into a new blend file the hair animation works fine and the tips of the 'Fizz' hair move slightly.
The 'Body' has a Subdivision modifier, level 3 for viewport and render. This results in 280k faces and 500k tris. Maybe turn it down to 1 and 2? There is no difference between level 2 and 3 except for the 200k extra faces (70k -> 280k).


Computing and animating mesh deformations I have two different meshes with the same topology, and I'd like to animate one deforming to the other.

I believe I need to somehow compute and apply the deformation between the meshes, and set the second mesh as a shape key of the first. Is such an operation feasible?

Having two meshes with the same topology (The meshes must have the same number of vertices for this to work) you can easily use one mesh to define a shape key of the second mesh.

First select the mesh that you wish to be the shape key, then shift-select the target mesh. In the mesh properties click the little down arrow next to the Shape Keys list and select 'Join as Shapes'

You can have multiple meshes that each get applied as shape keys in the one step, each separate object will create it's own shape key.

You may also wish to copy a shape key from one object to another with the Transfer Shape Key.


Rendered line on a flat plane Can anyone tell me what the line is rendered on this flat plane and how to get rid of it please? Things I've already tried:

Recreating topology around the holes using only quads as shown
Looptools - flatten
Scale in Z by zero

Edit:

I tried adding extra supporting edges, but I noticed I kept chasing the lines around. It is very dependent on the viewing angle of the render, see below for three slightly different angles. So I'm thinking there is something more fundamental going on. More info:

I'm using the Measureit tool to add dimensions which requires the Blender Render engine according to a tutorial I followed
There is no thickness to my plane (I'll try adding some)

Did you try adding these edges (shown in red)?


Why does cloth sewing not work correctly on this imported SVG? I drew a body pattern for clothing simulation using Inkscape.
Then I imported the pattern to Blender with .svg extension file.
I filled the curve (when I import the pattern, it was curve type not mesh) in 2D for both and then I converted it to the mesh.
When I switch the mode to edit mode, there are a lot of points that I did not create, and a lot of lines (I think these lines are grid line but I do not understand why and how it created).
The pattern I filled in 2d for both and converted to the mesh:

The pattern in edit mode. As you can see, there are a lot of points and lines while I created only red points that I marked:

Since there are only horizontal lines, when I sew the pattern with the function in Blender, the cloth only folds in up&down direction like the images below

But I want to wrap this cloth on the body model like pictures below. I took them from Youtube video:

I think the difference is that, this pattern has vertical lines as well, so when the cloth is sewing, it wrap in left-right direction as well.

Therefore, I want to have that vertical lines on my patterns.
How can I add those lines with python script?
Or, do I have to add them manually?

The main concept to learn is that faces do not bend unless they are subdivided.
The first image shows that the object has no vertical subdivisions. How do you expect to bend it?
Rambling answer:
SVGs are converted to curves when imported to blender. When you convert curves (or text) to mesh the resulting geometry is usually triangulated or quite irregular, useless for the most part.
A workaround is not to fill the shape and fill it yourself. To do that, just import the SVG but before converting to mesh, set the fill on the curve to None, so that you only keep the outline.
Proceed to convert curve to mesh and you will be left with some vertices connected with edges outlining the object.
In Edit Mode select those edges and do "Grid Fill" and play with the settings for grid fill until you get an evenly divided mesh comprised of quad faces.
The resulting object should bend the way you need it to.
Here is an example borrowed from a different answer:

Note that for grid fill to work you need an Even number of vertices on the outline.
Also, in the shape you show on the question, you will need more subdivisions at the bottom, on the straight line.


Problems with rotation and scale importing blender object to unity? Replicate unity cube? I am having real problems and am very new to blender/unity. Right now I have a script that resizes and creates variable longer blocks from a basic cube in unity. I won't show the script as that might not be relevant but this is the result when the script is run to give you an idea -

The original prefab is the default unity cube but the script scales it, etc.

I am trying to replace this cube prefab with an altered cube (a cube with the top right and left edges cut off) to create variably-sized platforms such as this -

I am very new to 3D and so started by just created a simple modified cube in blender -

When I drag this cube into unity it shows up well however when I plug it into my script it elongates the cube in the wrong direction, etc. I know the rotation is off, so I tried to fix that first by rotating the object in blender (this did nothing) and then creating an empty Gameobject and rotating the object there as Unity says, but nothing is working.

In addition to rotation I think the scale of the blender cube is much bigger than unity cube. Furthermore I do not know how to add colliders or other components to my blender object if I just import it- seems I have to drag it into an empty first or the options are all grayed out. Mostly I think I just don't know how to properly import from blender to unity despite tutorials.

This is what happens when I run my script as opposed to original picture  -

Clearly a lot is going wrong here. I just want to replicate the default unity cube in blender and modify it so when I bring it back to unity I can use it in my script. How can I do this? What am I doing wrong?

Yes, Blenders scale is different, if you are using FBX (which i would recommend for Unity likes it), there is an export options called: Apply Transform (Experimental!). This works for me, otherwise, scale your final mesh down to compensate (Unity's scale is 100x smaller, so it makes the cube's scale 100x100x100, you can also adjust the mesh import scale in Unity, instead of compensating in Blender).

In Blender, if you make any changes to the rotation in object mode, you need to apply that rotation (CTRL - A) before it exports it. Also, the reason the rotation is wrong is due to Unity using the Y axis as its up axis, and for Blender this is Z. You can compensate by making the up axis of your mesh the Y axis in blender. See posts like this for more info: http://answers.unity3d.com/questions/174832/stopping-the-270-degree-fbx-default-rotation-on-im.html

If you are still experiencing issues something is going wrong in Unity, and you should post the issue in the Unity section, with your script included. And good luck and have fun learning!


Does increasing Blender's noise texture increase the quality of the rendered video? For example if (in the noise texture:Node editor) I increase the scale to 1000
and the detail to 20,000 will the quality of the rendered video increaase in quality or will it be neglible?

Short answer: it depends on your intentions and on the scene. Just try different settings.

Longer answer: the noise detail is not a quality setting, you might want a "blurry" look. And even if you prefer the "rough" look, it might not matter depending on the scene (for example if your object is far away from the camera).

Note that creating a more detailed noise requires more computing time. It depends on your scene whether this extra time is significant.

The scale is not related to the detail (or to the quality), the best scale depends only on your intentions. The scale setting should not influence the rendering time.


Object moves back into origin everytime i open the blender file When i open the blender file the object seems to move back to origin and scales back down.... I tried to apply location but it gives me an error. Any idea whats happening or what can i do to fix it ?

there is a keyframe set on your object. That's why it moves back to original location and scales down.

You will need to open the N-Panel (see below) by hitting N and then right-click on any illumined fields and choose "Clear Keyframes"

As for not being able to apply the location, your object is a multi-user (it shares data with other objects). You will need to make it a single user by clicking the number icon here:

I hope this helps!

-Adam

EDIT: Also, if there is appears to be no keyframes set and the object still jumps back to another location, it may be controlled by an NLA strip. Open the Non Linear Animation window and delete the action that is affecting it.


Fix triangular lighting artifacts I'm trying to make a sword, but I ran into some weird shading on one portion of the blade.

Any ideas for the reason for this shading? Thanks!

Triangles are notoriously difficult to shade. Unfortunately, EVERYTHING gets turned into triangles by the renderer before rendering happens. Consequently, long, thin quads are also notoriously difficult to shade... because they're actually triangles once they get rendered.

Firstly, turn any triangles into quads. The renderer has a much easier time knowing which direction the quad should be split so that the triangles get smoothed the right direction, than it does trying to figure out which direction your triangle is supposed to be smoothed (without having come from a quad).

Secondly, make your quads as square as possible. It's not always necessary to make them perfectly square, but if you can add a couple of edge loops to make them shorter, that will probably help.

Lastly, (and I doubt this is the problem, but it's worth checking) recalculate your normals (ctrln or Mesh -> Normals -> Recalculate Outside) to make sure they're all facing the same direction.


How do I find 'Remove Doubles' in 2.8? I looked it up and 'remove doubles' should be under Mesh in 2.8.

I can't find it.

Remove Doubles is now renamed as Merge By Distance.
and it is located under

  Mesh> Clean Up > Merge By Distance

and

  Vertex > Merge Vertices > By Distance

(in Edit mode )

Shortcut key is Alt+M > By Distance


Orthographic view with something like shift/transformation? Is it possible to make something like in the picture below in Blender? I mean ortographic view with like back planes moved along one axis but without modyfying mesh. Is there a camera option for it? Is it even possible?

You can approximate the effect by moving the camera a long way away from the subject and using the Focal Length/Sensor Size/Shift camera settings to adjust the view.

The long distance for the camera effectively removes the effect of perspective (making it appear orthographic). For example,  I moved the camera back to -65 blender units and pointed it directly at the subject (ie, rotation X 90, Y 0, Z 0).

To project the depth as an offset you need to move the camera off the centre line. For example, move it 20 BU to the right and 20 BU up.

View through the camera and adjust the camera Lens shift settings to bring the subject back to the centre of the frame.

Adjust the Focal Length or Sensor Size to effectively 'zoom in' to the subject. Further adjust the Shift to keep the subject in view with the desired perspective.

NOTE : The Shift values have a "soft" limit of +/- 2.0 when dragging to adjust the value. To get beyond those limits simply type a value beyond the limit (eg, -2.5) and you can then drag to adjust beyond the limit.

Note that this is not "true" orthographic projection since it is still using perspective (for that you'd need to move the camera out to infinity which would not be practical and would introduce severe rounding issues!). However, with a narrow depth of the subject you should be able to get something appears close enough.


Glowing/outline effect when particle and object are colliding How to do a glow/outline of collision effect when particles (objects with same size in a group) are entering other object?

For example when a small box particle is falling into a plane (will fall through), when a box starts touching the plane the place of collision (essentially a square on the plane, around the box particle) is being rendered?

Edit: Adding more info as requested. I don't want to share my real scene, so I mocked a simplified version of it.

Desired effect highlighted with purple colour:

Dynamic Paint and Freestyle

Dynamic Paint. Contrasting particle paint with a mysterious mesh object in the shape of a number moving on the z-axis.  The mysterious mesh object is not shown to emphasize the Dynamic Paint process and not mesh movement. No Compositing Nodes. Image Above

Dynamic paint. Stopping particles with collision plane to show coincident locations.

Dynamic paint with Particle System.

A dynamic paint render. A cyan plane has been colored yellow with fading where the particles have hit the plane.  Image above.  Please click on image to see a larger version in a different browser window. The images were created by dynamic paint feature and then applied as a texture.

A Blender Render Node system showing a blur node.  Please improve and customize.

Dynamic Paint Example. Canvas, Brush, Particle System. Please customize to your tastes. Image above.  One panel is pinned to show data from more than one object.  Note that using a particles system with dynamic paint may eliminate some options that the OP might find useful in a future version of Blender.  The particles above seems to be used for location of the paint effect, disregarding size and shape.  The mesh paint effect which is not a particles clearly respect the volume.  Particles can be made in meshes by make real.  Keep aware of physical forces.

Mysterious Mesh object brush with brush settings for dynamic paint.  Not a particle. Image above.

Files created by Dynamic Paint based on particle system typically used as part of a  Blender File render. 2 Images above.  The yellow blobs show where the particle hit the plane.

Dynamic paint can detect a contact point / intersection or proximity between

Particles and a surface
Two objects

and color a surface.

The Blender compositor can use a [blur node] to create a visual blur because it can recognize different objects by object id.  A blur effect can be composed onto the image.
Freestyle and the compositor.  Freestyle topic can be searched here at BSE.

Outlining again.

You may consider fire/smoke as well.

These three bullet points are high level information.  Tutorials exists for these topics on video websites or you may find smaller explanations here at BSE

https://docs.blender.org/manual/en/latest/physics/dynamic_paint/index.html

https://docs.blender.org/manual/en/latest/render/freestyle/index.html?highlight=freestyle


Wrong shading after Shade Flat how to fix this? This happened when I used Flat Shading on top faces

object data properties(vertex group section)>Normals>auto smooth|| This will fix the issue.


Using the Screw modifier, how do I accurately set the axis of rotation? I got two good answers to my previous question about using a profile to create a mesh.  The problem I am still having is that I can't get the axis of rotation in the right place.  One thread said to position the 3D Cursor on the axis and another said to move the axis to the Origin.  I redid this three times. The last time was the closest. Still, the axis of rotation varied from ideal. How do I position the 3D cursor more accurately so as to make the axis of rotation where I want it to be?

The modifier uses the objects (local) axis (X, Y, Z)

Modeling from top side or front ortho view will make things simple. use numpad5 to switch orthogonal/perspective view

Shape modeled in top ortho view (green line is Y global axis)

Screw modifier set on Z object axis

Screw modifier set on Y object axis

Once modeled, you can move your object or rotate it (object mode) but in edit mode, you'll get a mess. Apply modifier or clear rotations for editing.


Origins to the down of the object by default Is there a way to make the origin of any new object appear by default at the lowest point of that object?

The center of the lowest face for a cube, for example. It's very uncomfortable to transform objects and lose their position on the ground (or anywhere else). Every slight transformation makes me to snap this object again. I know I can move pivot manually or just move the upper face (if any) in edit mode, but it's still more moves than I want. Also there is a "cage transformation", but it often uses wrong rulers for transformation for some reason.

Run a script using msgbus when new primitive added

Run the following script in the text editor.

Add any mesh primitive, the origin is adjusted to the bottom of its bounding box as long as the following conditions are met.

Object mode.
Object is a mesh.
The active operator is a mesh primitive add.

Code put together from

Set origin to bottom center of multiple objects

Adjusted such that the object is not moved globally so the mesh origin is at scene cursor location, and is the centre of the bottom face of bounding box. (For Suzanne is outside the mesh)  Alternatively running this one after adding objects does the trick, but not "automatically".

How to get an event when an object is selected?

Very lacking in docs re bpy.msgbus, not sure for what version was introduced, possibly should assert(bpy.msgbus) to throw an error if not available for your version.

import bpy
from mathutils import Vector, Matrix

handle = object()

# Triggers when an object is made active
subscribe_to = bpy.types.LayerObjects, "active" #

def origin_to_bottom(ob):
    me = ob.data

    local_verts = [Vector(v[:]) for v in ob.bound_box]
    o = sum(local_verts, Vector()) / 8
    o.z = min(v.z for v in local_verts)

    me.transform(Matrix.Translation(-o))

def notify_test(context):
    if (context.object.type == 'MESH'
            and getattr(context.active_operator, "bl_idname", "").startswith("MESH_OT_primitive_")
            and context.mode == 'OBJECT'):
        print("Setting origin to bottom")
        origin_to_bottom(context.object)

bpy.msgbus.subscribe_rna(
    key=subscribe_to,
    owner=handle,
    args=(bpy.context,),
    notify=notify_test,
)

bpy.msgbus.publish_rna(key=subscribe_to)

Note: put this together as a proof of concept. Have not tested greatly.

Could modify to only work for Cube, Cylinder, Cone not Monkey Sphere.

Having the origin at centre of lowest face would be Ok for cube not UV cylinder, Cone with ngon fill, not fan etc.

Alternatively could rewrite, or override (ie register another with same name), any / all the add mesh operators in python.


Some vertices stopped moving in sculpt mode On a project I was working on creating shape keys and sculpting the model for those keys, suddenly while attempting to create a new shape key some of the vertices of the model stopped reacting to the sculpt mode brushes and won't move at all. I was able to sculpt the same vertices earlier for the other shape keys and they still move if I change their weights. I tried all of this to try to figure out what's going on:

Isolated the "frozen" vertices by deleting all the other ones.
Deleted all other objects and modifiers in the project.
Deleted all the shape keys
Extruded some of the frozen vertices (by extruding edges) to create new geometry
In edit mode added a UV sphere as part of the same object where the frozen vertices are

The frozen vertices and the newly created by extrusion remained frozen and impossible to alter by any of the sculpt mode brushes. I was able to sculpt the newly created sphere without any issues.

I then applied a modifier to the object with the frozen vertices (tried with subdivision or with bevel) and this un-froze the vertices and I was able again to sculpt them. Is the vertex data corrupted? Is there a way of fixing this in the full project (I can't apply modifiers without loosing all my shape key work)?

Project file with the frozen geometry (can you sculpt this?): Blender file

This vertexes are masked. https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Sculpting

Masks are used to "protect" parts of the model from being edited by the sculpting tools. They appear as darkened areas of the mesh. The darker a masked area is, the less effect sculpting on it will have. Masks can be edited with the mask brush, as well as cleared or inverted accross the entire model. The masking feature is active as soon as sculpt mode is entered; there is no separate toggle.

To clear mask use Alt+M


Strange 'Stretch Marks' after rendering Object in the viewport, Solid shading:

Object rendered:

Here you can see before and after rendering. There are some distortions and irregularities visible on the front face of the mesh between the circles which are supposed to be the eyes.
How can i fix/prevent this?

The geometry around the eyes is deformed and bad topology makes it obvious.

Select the outer edge ring around both the eyes.

Scale them to 0 along the Y axis (in your case). In my image it is the X axis. To do this, this: S Y  0  enter.


How to animate a curve/circle for a tank I recently created a model of an M4A3 Sherman tank along with the tracks. I made the tracks first with a single plate and then used an array and had it follow a curve circle. This works well for a single render but I want to create an animation of it traveling over terrain. I need help mainly with finding a way to make the array of tracks follow the curve. Thanks in advance for any help.

If the tracks are arrayed along the curve, then keyframing the location of the track object should work. It's probably along the X axis.


3-bone IK chain not rotating properly, why? I ran into a weird bug where my 3-bone IK chain isn't behaving as expected. I've made other quadrupeds in the past and had no problem like this. As far as I can tell, the IK constraint is also exactly the same as all others I've made. Here are some GIF examples.

This is what I would expect from a good 3-bone IK leg: https://gyazo.com/98754f4cdb2f08d87d9ce5734c5b367e

This is what I'm getting now, the upper bones are barely rotating:
https://gyazo.com/0ea27bb19a79a998cf1cfe44400b36c5

As it turns out, the severity of the rotation in the chain directly effects how well the IK will work. A subtle rotation isn't enough, but as soon as I bend the chain a bit more in edit mode, the IK picks up quite a bit of rotation.


Blender not showing objects in render? I'm rendering an animation and I've got a peculiar problem. It seems like Blender is rendering in chunks.

At one moment in the render, there's just a bit of the objects visible.
But then at about frame 40, everything else pops in. I am using the Blender renderer

I am not quite sure how to explain it, so here is an example:
http://stepperman.me/weird_render.mp4

It's just a camera moving forward. So I'm not quite sure what's going on?

Oh. There was a huge cube in the center that was invisible for some reason, but nothing renders behind it. Very weird. I removed the cube and it was fixed.


circle window extruding doesnt work I do this round window according the tutorial, but in his case everything is working and in my case while extruding the circle mesh nothing happens, it only moves

1st picture is tutorial,2nd is mine

Didn't pay attention to switching to Vertices selection mode, I had Faces mode active, and that is why it didn't work


How to make particles collide on face instead of median point? I made a scene where particles collide with a plane, but the particles seem to collide on their median point:

i want it to collide with their faces, so their faces don't go through the plane... is that possible?

Enable "Size deflect" in the "Physics" tab of the particle system

Result with randomly rotated Suzannes:


How do you animate image texture materials in blender cycles with keyframes? I have an image texture material on a mesh already in blender cycles 2.75... I was wondering how to change the material with keyframes so it changes to different pictures in the animation... I tried image sequence, but that doesn't seem to be what I am trying to achieve, neither does pressing "i" on the image source in the materials tab, it just says that the name property can not be animated ... Could someone help?

To dissolve one image into another, connect the different image textures to a color mix node, before the shader node.
By animating the Mix Factor you can control the how the images change.

Cascading this node setup might work for a few images.

But if you have many images, you might want to turn them into an image sequence (just renaming them with the same name and progressive numbers will work). Then load the image sequence as a texture.

If what you want to do is have the image change with every frame of your scene use the default options and use autorefresh.

If you want to manually set the duration of each image. Set the number of frames and start frame to 1 and animate the offset value.

Note that by doing this the images will change from one frame to the next but will not dissolve gradually.


Aligning shapes and quantizing distances between shapes on the plane grid? I want to straighten the alignment of the angles of shapes so that they are straight running parallel with each other and aligned with the plane grid.

Where do I get to either reset and/or specify the rotation and translation x,y,z values to guarantee that everything is exact and symmetrical? (from a numpad1 perspective/camera view looking across the green Y line)

Location and Rotation values for the selected object are editable in the Properties panel :

Clic on the + on the top right corner of your 3D view or press N.

You can specify the rotation and translation for x,y,z values.

Tip: you can edit x,y,z values at once. This can be done by clicking on one button and dragging vertically to include buttons above/below. After the vertical motion you can drag from side to side (for finer control use Alt or Ctrl while dragging the mouse), or release the LMB to type in a value and Return.

Number Buttons reference in Blender Manual


Line appears under image in VSE When I add an image to a video in Blender, a thin white line appears under it at the bottom border, and stays there no matter how much I translate the image.  I checked the image to make sure it wasn't part of that.  It's there a reason for this?

I use blener 2.7a. I had the same problem. but only if I use "Image Crop" function and sRGB as "Input Color". The thin line you referring to is 2 pixels in height, one pixel above bottom, so the last line of pixel remains sound, right? Checking "Convert Float" under "Filter" resolved the problem for the above settings on my system! Although I do not really know, what it does. Hope this helps...
Besides, my input-file is MTS from Lumix GH2.


Is it possible (plugin?) to use a camera input (solidview or materialview) in the compositor as a preview? While in the compositor, the usual input is the renderlayer, but when compositing, mostly when checking masks or rotoscoping, having a simple preview instead of a final render as an input is quite good (and fast) enough, so, instead of having to press f12 every time I move to other part of an animation to check, is there a way to use a camera output instead of render layer as a kind-of proxy to speed up. Yes, I know you can render the viewport into a sequence or videofile and use a moviefile input, but being a workaround for a specific situation, it's doesn't answer the general question.

If you're using 2.8x, you can change the render engine to 'Workbench.'

It's the equivalent of a viewport render in previous Blender versions, except it ports into Blender's rendering system, and therefore the compositor.  It should render a frame about as quickly as the viewport, and gives you to extra options (depth of field, outline, basic shadows, etc.)


A question about Manual errors I found this misleading entry in the latest Manual (2.68):

The '7' should be '11', but as there is no way to enter a key twice, it should be G.
The 'Edges' should be 'Delete' as there is no option to Delete Edge loop in Mesh > Edges, and the Erase menu is really called the Delete Menu.

so I set about trying to find a way to have it corrected.
I worked my way through the 'maze' in blender.org only to find dead ends and outdated information!

Can anyone point me in the right direction?.

Editing the Wiki

You will have to create an account by clicking Log in / create account:

Once you have done so and logged in (click Log in),  there will be an edit button:

(Note that you won't be able to edit anything until you verify that you exist)

and one should read the usual writing guides and such..


How do I recreate this translucent/subsurface material? I thought it'd be rather simple as it just looks like something with a lot of roughness and subsurface, but I can't get it to work somehow. Help is much appreciated.

edit subsurface radius. this is the most overlooked sss settings in blender.
do note that before that you need to apply scale on model to get same results on every model that has this values.