Zero faces problem with model for 3d print I created a model in parts to print using sculptris and blender, i enabled the 3d print tollbox addon, and when i click in check all, my model has only two problems that i coudln't find a solution anywhere, not even on posts here. First is the zero faces, i tried all the options in the CLEAN UP menu, tried triangulate boolean, tried selecting the button "make manifold" and every time i check with the 3d toolbox the same number of zero faces appear. The other possible problem is the overhang faces, but i think that to solve that i should create a support below the model. I imported my model into the program MeshMixer, and selected "analisys" and "inspector" and clicked in some of the options like "auto repair all" nothing happens with the model, the program says that it doesn't have any erros, but blender detects the zero faces. What should i do to fix the zero faces with a big 3d model?

Here is the link to download one part of the model: http://www.mediafire.com/file/le73t6or2tscs4e/Model.blend/file

When i import the model to a 3d print program like CURA, it says that isn't manifold, even before opening the model in blender and clicking at the option "make manifold". The error message appears just before entering with the camera inside the model.

As a noob myself I have noticed a big amount of zero faces. Selecting them by clicking the Zero Faces "text" in the 3d print result block make them show up in the model. They are small faces. I measured a really big one to be 4 millimeter by 10 millimeter. The rest of my faces (the models!) are about 70 by 20 millimeter. I assume therefore that they are small faces that clogg upp the model, and wont contribute much. One way I have figured out to fix them is to select the mesh and use Merge by distance. Merge by distance is found if you have added the Mesh tools addon. Look elsewhere for how to do that. Under Utility tools there I found the Merge by distance. Mesh tools appear in the Edit vertical menu under the 3dprint vertical menu. I selected a side of my model and entered Merge by distance as 0.02 meters ie 20 millimeters. (In the small popup down left in the big part of the screen.) I set the selection tool to faces before that, ofc. :) With this method I will go around the model and merge the small faces.

So go around your model and select it and merge these small things away. Perhaps you can select the whole mesh and do it in one go. Good luck.

Edit.Btw I guess that: - "Intersecting faces" are two faces where one go through another without an edge. "Thin Faces" are faces that are at least partially on top of each other.

Edit 2: A more economical way of doing the same thing is selecting the "Thin Faces" in the 3d print addon, and then doing Select more in the Select (2nd row horisontal menu). This select adjacent faces as well as the original selection. Merging by distance will then correct that too. The merging by distance command works immediately so just shorten the distance gradually until your problem is solved.


Mix shader not behaving as I expect I'm trying to make sparks that fade out over time, and I'm pulling my hair out trying to get the nodes to work properly. It seems like the mix shader node is doing the exact opposite of what it's supposed to. This is my node setup:

Everything connected to the emission strength input is meant to control the spark's edge softness. I found it counterproductive to try to make a spark the edges of which you can see, so I set the brightness of the volume emission node to fade as it reaches the edges of the spark.

The mix shader node tree is where the problems are. Whenever I try to drag the factor slider on the mix shader node, nothing happens. I set the emission strength to be quite small, so that if it began to fade to transparent at all, I'd know. However, when I drag the slider, absolutely nothing happens until it hits 1. When it hits 1, the spark immediately goes from bright to invisible with no transition. I can get arbitrarily close to 1 (0.9999) and there's still no change. It only does anything when it hits 1.

This is exactly how the particle looks with a mix shader factor that's any less than 1:

This is what happens the second it hits 1:

Plug the Output of your Multiply Node into the Factor Input of your MixShader. You probably need to invert it before.


Mesh can't "keep up" with bone movement I have an issue with my model.
My mesh can't "keep up" with my bone movement. Whenever I rotate my bone, part of my mesh (window) moves along with the door, but quite "delayed". My windows are set up as a separate mesh, and parented to a bone via vertex groups. If I move my "root" bone.

I'm sorry if I sound vague and unclear, I'm just completely stuck and don't even know how else should I google this.

The glass part still follows the parent bone, but "falls behind", as if it is weighted improperly. But I have checked, my vertex group has correct name and fully weighted to the controlling bone. Location, rotation and scale are applied to all my objects, armature included.

My first thought was to just separate  the glass part that doesn't move from the rest of its glass mesh(all glass and transparent parts of my project are made as a separate mesh, for better looking textures) and just merge it with my door's mesh, but I really don't want to do that, since I already have the whole thing unwrapped and textured. Thus I really can't connect my glass vertices to my door frame, that will mess up my uv and textures.

I tried messing around with vertex groups, but to no avail. This glass triangle follows the rest of the model, but as soon as I try to "open" the door, it does this.

I've looked through similar posts regarding mesh deforming and rigging, and could not find anything close to my problem.

I uploaded my file to Google Drive, if you want to take a look at it yourself. Yes I'm using 2.7 since I want to finish this thing and then move to 2.8(I'm not comfortable to use it yet).

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

I hope you could help me, thank you in advance.

Clicking on the 'windows' object, changing to Weight Paint mode and clicking on each of the vertex groups in turn we can see that the small triangle of window is part of the 'door_fl' group in addition to the 'car_body' group (red highlighting means a weight of '1' is assigned):

The small part of the window that is 'lagging behind' needs to be solely part of the 'door_fl' group. Because it is also assigned to the 'car_body' group (and therefore also under the control of the 'car_body' bone), the 'door_fl' bone is not fully in control, which is why it is not exactly matching the movement of the bone. When vertices have weights of '1' in two groups, the bones connected to those groups share control of the vertices 50/50.

To remedy this, simply select the vertices that make up that part of the window in edit mode, click the 'car_body' group in the Vertex Group panel of the Object Data tab in the Properties editor and click the Remove button:

The window will now be only in the 'door_fl' group, only be controlled by the 'door_fl' bone and will move correctly.


Can I upload / share my Blender animations? Am I free to upload/distribute my final rendered Blender animations (without the use of external textures)?

What license restrictions (if any) are there on artwork produced by Blender and what attribution must I, for example, place in the description?

If possible quote a source from Blender.org because I find there nothing.

The copyright on artwork created with Blender is owned by the creator of the artwork.  Nothing in the Blender license agreement infringes on the moral rights of the artist.

This means you are free to publish, distribute, licence, exhibit or otherwise diseminate your art as you see fit.

See the Your Artwork section of Blender license page:

  All your artwork – images or movie files – including the .blend files
  and other data files Blender can write, is free for you to use as you
  like.

  That means that Blender can be used commercially by artists, by
  studios to make animation films or vfx, by game artists to work on
  commercial games, by scientists for research, and by students in
  educational institutions.


FK and IK rig for the same mesh Is there a way to have one rig for FK and one rig for IK for the same mesh? Some animation programs allow me to easily change between both. Source Filmmaker for instance has a built in IK solver that just changes everything to FK and vice versa on the spot. Is there such a feature in Blender?

Having both FK and IK is essential in every rig for animation, so yes, Blender does offer this.
There are 2 easy options:

You can pose an FK armature with Auto IK. It has huge limitations:

The auto IK option in the Tool Shelf enables a temporary IK constraint when posing bones. The chain acts from the tip of the selected bone to root of the uppermost parent bone. Note that this mode lacks options, and only works by applying the resulting transform to the bones in the chain.

Riggify addon (it's included with every Blender)

You import a metarig (biped), adjust it to the character proportions, then you generate the final rig from it and you skin the character to the rig. It comes with FK-IK controls and buttons in GUI to switch between (via included script run from those buttons).

For non-biped characters you will have to build the metarig yourself, then generate the final rig with all the features:
How to use the Rigify building blocks for non-human rigs?

Setting up such feature rich custom rig yourself requires lots of steps and some knowledge and a bit of coding. It's nowhere near as easy as in Maya (or probably Source Filmmaker also) as there are tools to do the IK/FK switching for you, in Blender it has to be scripted by you.


Finding vertices in a Vertex Group using Blender's Python API Is there an easy way to get the vertices in a vertex group?  The only way I've found is pretty brute-force - e.g., to find the vertices of object obs[i] in group "e":

e_idx = obs[i].vertex_groups['e'].index
vs=[v for v in obs[i].data.vertices if (v.groups)]
for v in vs:
    for g in v.groups:
        if (g.group == e_idx):
            es[i].append(v)
            break

Isn't there an easier way?  I just found almost identical code in the "Similar Questions", so maybe this is the best there is.

Methods

1. List comprehension

As mentioned by Pycoder in the comments below, using operators is often slow. So a quicker and simpler (and X2 faster) method to get all the verts that belong to a certain vertex group index:

vg_idx = 0
o = bpy.context.object
vs = [ v for v in o.data.vertices if vg_idx in [ vg.group for vg in v.groups ] ]

2. bpy.ops

You can also use the bpy.ops.object.vertex_group_select operator in edit mode:

import bpy

o = bpy.context.object

bpy.ops.object.mode_set( mode = 'EDIT' )

# Set the first vertex group as active:
o.vertex_groups.active = o.vertex_groups[0]

# Deselect all verts and select only current VG
bpy.ops.mesh.select_all( action = 'DESELECT' )
bpy.ops.object.vertex_group_select()

# Now the selected vertices are the ones that belong to this VG
vgVerts = [ v for v in o.data.vertices if v.select ]

3. Optimization if only one group

If there is only one group, this is a more optimized way to get the verts that belong to it. Note that this only works if there is only one vertex group.

vertices = [v for v in obj.data.vertices if v.groups]

Performance testing

1. List comprehension

With the default cube (8 vertices), this was timed 1,000,000 times, and had a minimum value of:

  0.000003528 seconds

With the default cube subdivided 8 times (393,218 vertices), this was timed 1,000 times, and had a minimum value of:

  0.1528 seconds

2. bpy.ops

With the default cube (8 vertices), this was timed 10,000 times, and had a minimum value of:

  0.0003289 seconds

With the default cube subdivided 8 times (393,218 vertices), this was timed 100 times, and had a minimum value of:

  0.8849 seconds

3. Optimization if only one group

With the default cube (8 vertices), this was timed 1,000,000 times, and had a minimum value of:

  0.00000222 seconds

With the default cube subdivided 8 times (393,218 vertices), this was timed 1,000 times, and had a minimum value of:

  0.0659 seconds

Here is a graphical (but less accurate) model if the performance. Each point is the min of 100 iterations.

Another representation of it:

Because the higher subdivision values make the lower end almost meaningless, we can use a logarithmic scale to see everything a bit more clearly:

Additional links

https://blenderartists.org/forum/showthread.php?304054-Getting-vertices-of-a-vertex-group-from-within-Python

Checking if a vertex belongs to a vertex group in python

How can i get the weight for all vertices in a vertex group?

vertex groups and bone weights programmatically

How can I get the names of the vertex groups these vertices are in?


How to calculate movement of a radius of one sphere to intersect another sphere and create a specified distance for the intersection Attached is a diagram and a picture of my current model and a GIF image what I'm trying to achieve.
Sketch:

Screenshot:

Details:
The inner circle is a perfect sphere with a radius of 6.63
The outer circle the bottom half is from a perfect sphere with a radius of 12.  The top half had a radius of 12 as well but was reduced 90% in the Z direction.  This is to simulate how an eye is not perfectly spherical.
Gif Image Showing My Goal:

The image above shows me taking the inner sphere and raising it out of the other sphere.  This will create the 'cornea' of the eye I plan on modeling later.  I can then use the modifier boolean to union them together at a later time.
The Question:
I'm doing this for 3D Printing and medical purposes so the dimensions need to be exact.  How do I raise the inner sphere so that it will intersect the other sphere and create a 12 distance once it's outside.  In the GIF image I uploaded you can see I was off in my attempt to raise it and I only guessed with a measuring tool what created the 12 distance.
Put another way the points where the circumference of the inner circle touch the circumference of the outer circle should create a distance of 12.  In my diagram it's the dashed line that says 12.
What is the best way to go about this so it's pixel perfect? (as much as possible)

We'll start with the 12 mm radius sphere, note the 12mm chord is in the XY plane, so scaling on the Z axis won't change its size, it will only move the position in the Z direction. Because we can draw a right triangle with hypotenuse 12 (the radius) and leg 6 (half the chord length) we know the remaining side is $6\sqrt{3}$. When we squish the sphere by 90% that side will also squish, so the red dot winds up at $0.9 \cdot 6\sqrt{3}$

Moving onto the smaller, 6.63 mm sphere, we can again draw a right triangle, this time with hypotenuse 6.63 but still with a leg of 6. We need to resort to the distance formula $ k = \sqrt{6.63^2 - 6^2} $ to find the side length because this triangle wasn't special like the last one.

To position the red dots on top of each other, we need to move the green dot so it is in the right place below the red dot: $ \textrm{green dot} = 0.9 \cdot 6\sqrt{3} - \sqrt{6.63^2 - 6^2} $
The final result.


Animated Fur can't use texture, like the rest of the body If you llok at the UV image editor you see the white area top right. This is supposed to be the snout's color. But in the 3D-view it is black. I found out, that blender uses only the pixels from the edge of the texture to colour the whole Vertex group, that defines the shorter hair of the face. These are animated as theRender panel shows. They grow. Also the Hair dynamics are baked as you can see in the timeline. The image texture works, as you can see from the body, so i assume that this is a bug. Or does anyone have an idea?

The problem was, that i emitted the hair from vertices. That's why the hair only used the colour information of the corners of the texture. The image information is in the faces so make sure to select faces instead of verts in the emitter panel of the particles tab.


How to hide toolbar on right side? Hi, how do I hide the highlighted tollbars without hiding the ones at the bottom? I tried space+shift but it hides both of them.

There is another way. You can also do this:


Fill a solid corner topologically correct When constructing technical objects I often come to a point where I want to add something into a corner. I haven't found an easy way to do so in a topologically correct way.

As a simple example this would be the situation with the corner to be filled

And this is the target to be achieved:

Given how easy it is to extrude such a block, I wonder if there is no easy way here as well.

Solutions I've tried so far:

extrude one of the two adjacent faces -> this gives a topologically incorrect model which causes problems later on
add a cube of the desired size, and make a boolean union -> (almost) impossible to avoid creating small steps and quite cumbersome
extrude one edge and fill the three faces manually afterwards. -> this is topologically correct, but still a bit cumbersome
isn't there an easier way???

If you have F2 addon enabled, here is a very magical trick.

Pressing F when F2 is enabled, several things will happen:

If 1 vertex is selected, it will create a face from the 2 edges connected with the vertex in the direction/position of the mouse cursor.
If 2 vertices or an edge is selected, it will try to created a quad face with the adjacent edges/vertices.  And the result doesn't need merging or 'remove double'.
If 3 or more edges are selected, it will simply create a face with selected edges.  Result can be an N-gon.


Assign variable selecting vertex group in blender I have a mesh with particular vertex groups that form a circle around different sections of the mesh. I want to be able to call those vertex groups using a single variable name (radius 1, radius 2). I've been using bpy.ops.object.vertex_group_select() to select vertex group (but vertex group name must already be highlighted under "Vertex Groups" header. Is there a way to code a variable, that will select an individual Vertex Group when called?

This is a python script which will select all the vertices in a vertex group with weight>0.5

import bpy
import bmesh

def selvg(obj, name):
    bm = bmesh.from_edit_mesh(obj.data)
    for i in range(len(obj.data.vertices)):
        try:
            s = obj.vertex_groups[name].weight(i) >0.5
            s=True # or maybe you don't care what the weight is, and even weight 0 is acceptable
        except:
            s=False
        bm.verts[i].select = s
    bmesh.update_edit_mesh(obj.data)

selvg(bpy.context.active_object, "Group")


Tips and Tricks with using blender with one hand Long story short, I was recently diagnosed with glioblastoma. I had surgery to remove one of the tumors and because of the surgery, I am paralyzed in my left arm. Hopefully, it's only temporary.

I love Blender as it is my passion, but it has become difficult to use Blender and the computer now with my arm, especially when using shortcuts. I was wondering if anyone has any ideas or tools to make blender more accessible and easier to use with this disability? So that I can make some art again

Not that I can say it is a solution, but Pitiwazou over on blenderartist.org has a thread concerning his Wazou's RMB Pie menu, and theoretically it could help a lot towards enabling more to one hand.


How to make diffuse render pass have transparent background? I have a 3D object that I want to render into separate diffuse, normal & AO maps for use as textures. I am using the View Layer Properties > Passes options to include these layers in the output render. However, the Diffuse > Color has black background, even if the Render Properties > Film > Transparent is enabled and World Properties > Surface is set to Background with completely transparent color. So, my question is, is there a way to force the diffuse layer background to be transparent?

Alpha is a different channel (like a pass) and diffuse pass is just a color channel, you could use the alpha socke with a "set alpha" to add that to a different pass.


Bone envelope changes without reparenting When a set of bones are parented to a mesh (Ctrl+P > Automatic > With Envelope Weights), you can then change the Bone>Deform envelope settings.

These settings, however, seem to have no effect until the armatures are unparented and then parented again.

What's going on, and is there a better way to make an armature deform a mesh and be able to alter the envelope settings?

From the manual

With Envelope Weights

  Works in a similar way to With Automatic Weights. The difference is
  that the influences are calculated based on the Bone Envelopes
  settings. It will assign a weight to each vertex group the vertices
  that is inside its bone’s influence volume, depending on their
  distance to this bone.

  This means newly included/excluded vertices or new envelope settings
  will not be taken into account. You will have to apply Armature Deform
  With Envelope Weights parenting again.

And in particular

  Tip

  If you want the envelope setting to be used instantly, bind the
  Armature Modifier to Bone Envelopes.


Problems achieving glow around lights Ok, new to using compositing nodes/tweaking the world color here but just watched some tutorials on low key lighting and looked at How to create a glowing fog effect to mimic their fog glare node setup. I'm in cycles.

I'm having a tough time understanding, with background color negligible (I always render on transparent then put background in later), how to achieve this dusk type lighting with a central glowing node:

This is what I have with some volume scatter and just one, small light plane:

Even if I put a background color in the lighting is off. How can I achieve a more dramatic, dusk/motel light like lighting?

You´re on the right track. After you do what you show on your picture, you need to go to the COMPOSITOR, and add a GLOW node, to help you boost the look you´re going for.
Also if you want "in scene" glows, you need to create a cube, set it to wireframe visual override, use the cube with a VOLUME material, set density to 0.02 and and there will be a soft "mist" on your scene which now the light can bounce and absorbe from the lights.
When you take your render into the compositor, you can adjust brightness and contrast to intensify the look of the lights.
You can also set a general volume pass for the world.
Thank you if you vote my answer.

BFCT_Schiller


Exporting procedurally textured models for game engine Recently I created a model which was texured procedurally. I used noise texture to texture the model and also combined it with a bump and Vorenoi map to add extra geometry to my model. On exporting the model neither my texture nor my geometry was preserved. Different export formats rendered different results but none of them preserved the texture or geometry. Is there a way around this problem.

Blender's node system cannot be exported since the 3D formats aren't able to store them and the game engines do not have nodes that are equivalent to the ones found in Blender.

What you need to do is bake your textures. Generally for game models you start with a high poly, detailed model from which you create the low poly version that can be used by the game engine (or several for different level of details - LODs). Part of the process is baking the normal map and PBR textures in order to get as close as possible to the look of the high poly model while keeping the polycount low. This is to ensure good performance of the game and keeping vertex budget for hero props (a building in the distant background doesn't need as many polygons as the model of your main character).


Apply different textures to faces of an object I find a lot of information about applying textures to objects, but when I try to look up info about applying different textures to each face of an object, it seems there's always a critical step left out.  For example, if I apply brick to one face of a wall, how do I get wallpaper on the opposite face?

Select the faces you want to add the texture to, then go to the material editor and add an new slot by pressing the +, next hit assign. Hope this helps.


How do I create an equilateral tetrahedron? How to design an equilateral tetrahedron where all edges are of equal length?

Is there any general principle to follow when modelling platonic shapes?

Use the the AddMesh: Extra Objects plugin (to access the user preferences use ctrlaltu):

Now you have to add Mesh-Math Function-Regular Solid

And select Source:Tetrahedron.

For older versions of Blender:
In user preferences  go to "Addons" and enable "Add Mesh:Regular Solids".

And select platonic solids when pressing shifta


Can't offset even with Extrude to Cursor I am complete beginner to Blender, and trying to do extrude a basic obloid shape (a 'wall') at an angle, only along x and y axes (ie I'm in top orthographic view), keeping the wall exactly same thickness. I have seen someone doing this in youtube video, with the extrude to cursor tool, I think they previously set the 'Offset Even' option to do this, but Offset Even checkbox is not available on this tool I think?

So I turned Offset Even on with another tool, switched to this one, but it's not preserved setting.

See enclosed picture for what I want. Anyway, however I do it, I am not offsetting even, and the wall thickness varies with the angle I extrude to, not what I want :-(

I am using Blender 2.8. Thanks so much any ideas?

Update
I must be doing something wrong, tried @moonboots solution below, and still got walls different thickness when I extrude normals from planes with offset even. I guess can just copy walls and move round, but would be nice if possible make this work.

The edge loop created as you extrude is staying the same size, but when an angle is forced, the "wall" thickness changes based on the new angle.

The only way to correct for this is to rotate the edge loop as to go along.


Generate x cubes at random locations but not inside each other? I'm generating cubes with this code:
for a in range(10):
    x = random.randint(-5, 4)
    y = random.randint(-2, 7)
    z = random.randint(3, 10)
    bpy.ops.mesh.primitive_cube_add(location=(x,y,z), radius = 1)`

What do I add to make sure no one of these 10 cubes are created with some part of it inside of one of the earlier created cubes?

A similar answer that utilizes Blender's Mathutils' Vector length property (prevents you from needing to calculate distances in all 3 axes individually):

import bpy
from random import random
from mathutils import Vector

cubeRadius    = 0.25
maxIterations = 1000 # Max iterations to prevent while loop from running forever

# min and max values for each axis for the random numbers
ranges = {
    'x' : { 'min' : -10, 'max' : 10 },
    'y' : { 'min' : -10, 'max' : 10 },
    'z' : { 'min' : -10, 'max' : 10 }
}

# Generates a random number within the axis minmax range
randLocInRange = lambda axis: ranges[axis]['min'] + random() * ( ranges[axis]['max'] - ranges[axis]['min'] )

size  = 250 # Number of cubes
cubes = []  # Cube coordinates list

loopIterations = 0
while len( cubes ) < size and loopIterations < maxIterations:
    loopIterations += 1

    # Generate a random 3D coordinate
    loc = Vector([ randLocInRange( axis ) for axis in ranges.keys() ])

    if len( cubes ) > 0:
        # Search for overlapping points (within the cube radius radius)
        overlappingPoints = [ p for p in cubes if ( p - loc ).length < cubeRadius * 2 ]

        # if any found, skip this location
        if overlappingPoints: continue

    # Add coordinate to cube list
    cubes.append( loc )

# Add the first cube (others will be duplicated from it)
bpy.ops.mesh.primitive_cube_add( radius = cubeRadius, location = cubes[0] )
cube = bpy.context.scene.objects['Cube']

# Add all other cubes
for c in cubes[1:]:
    dupliCube = cube.copy()
    dupliCube.location = c
    bpy.context.scene.objects.link( dupliCube )


Glow with depth in Blender? What would be a way to create a glow in Blender. For that purpose I've been always using the compositor. However, that is pixels work, which means it is a 2d work. To make a 3d one, do I have to use particles, nodes or maybe some simulator? Because the compositor deals with images, which will make the glow to be out of perspective (flat). is there a way to make a glow with depth in Blender? Here is what I mean (If we assume that the blue color is a glow, it is clear that like other objects it is part of the perspective of the 3d view, which means that it has depth) -

And if possible, how to make one in cycles?

Why would there be a glow around bright objects?

If the air is clean and transparent the light travels right through it, with no scattering and there is no glow around light sources or bright objects.

If there are particles floating in the air, those would get lit by the light source, light gets scattered, hence the perceived glow (think of a foggy night or the smog on a city)

With glass is the same thing: Clean and high quality glass would produce a non significant halo/glow around bright objects, the light would pass through it with very little dispersion. A dirty, scratched or humid glass would show the bright parts of an image with blurred edges caused by dispersion on the surface or the thickness of the glass itself (think a fogged or dirty window, or even a low quality or scratched camera lens)

So how do you create a glow then?

Option 1

Using the compositor would give you the option of the dirty glass. You can expand the brightess of the bright pixels using a glow node on the rendered image.

Option 2

If you want an environment with suspended particles then you use volume scatter in your world.

Maybe a bit exaggerated but just to get the point across.


Time Node in Blender 2.81? I'm trying to make a Rorschach effect material. What I want to do is have the distortion on a Wave Texture node change over time. It seems to me that in earlier versions of Blender, there was a Time Node. Is there a way to do this in Blender now?

This is the super-quick-and-dirty way to do it:

Simply double click the value of the distortion and type #frame into  instead of a number.

Then press Enter.

This automagically creates a frame based driver.

The box will turn purple, indicating that it is being driven.

If you want to modify it, just double-click the value box and edit as desired.    Note that the hash disappears, in the driver editor as it is no longer required.

Yes, you can use simple mathematical expressions too e.g. frame/10

You can also right-click the purple box and select Edit Driver from the context menu.

Just remember if you want to make it a driver add the # symbol to the front.


Subscribe to 'Finished' event of modal operator and get result of the operator I am currently writing a python script and call a modal operator of an external addon like this:
bpy.ops.uvpackmaster2.uv_pack("INVOKE_DEFAULT")

My problem now is, that this call only returns {'RUNNING_MODAL'} but I need to wait till this is finished before I run other tasks. Furthermore this operator can also fail - or let's not say fail, it can require further action and a further run.

I am looking for something like the 'addEventListerner' known from JavaScript or anything like that. I am very known to programming but kind of new to python. Is there something similar I can use?

Also, the second part of the question: I use the addon UVPackmaster2. If I invoke the uv_pack function the addon at first checks if there are some problems with the uv_map, if so the problematic faces get selected. If there are no problems the packing process starts and ends after a few seconds/minutes.
It looks like there is no specific output I can use to determine if the process requires further investigation or if it run properly. I only thing I saw, was that the plugin puts output on the report via self.report(...). But I really don't like the idea to parse the report output to get the information in which state the process is. Do you have any better ideas? Or how I could patch the addon to support me with useful output? But I don't know how a modal operator should communicate with my script.

I allready found this Running code after a modal operator finished its job but I really don't understand how the example works. And how I could adapt this to my problem.

thanks and best regards!

After a week of reasearch and discussion on blenderartist
iceythe helped me finding a solution writing a wrapper for the uv packmaster modal of the pack operator. (bpy.ops.uvpackmaster2.uv_pack())
Wrapper
import bpy
from uvpackmaster2 import UVP2_OT_PackOperator as op
from .bake_operator import callback

def modal_wrap(modal_func):

    def wrap(self, context, event):
        ret, = retset = modal_func(self, context, event)
        if ret in {'FINISHED'}:
            print(f"{self.bl_idname} returned {ret}")
            callback(ret)
        return retset
    return wrap

op._modal_org = op.modal
op.modal = modal_wrap(op.modal)

And an operator I tried it with :
import bpy

retval = None

def callback(ret):  # <- Modal wrapper calls this.
    global retval
    retval = ret
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.bake('INVOKE_DEFAULT', type="AO")

class BakteTexureOperator(bpy.types.Operator):
    bl_idname = "object.bake_texture"
    bl_label = "Bake Texure"

    def invoke(self, context, event):
            bpy.ops.object.mode_set(mode='EDIT')
            bpy.ops.mesh.reveal()
            bpy.ops.mesh.select_all(action='SELECT')
            bpy.ops.uv.smart_project()
            bpy.ops.uv.select_all(action='SELECT')
            bpy.ops.uvpackmaster2.uv_pack()

            print("after invoke")
            wm = context.window_manager
            wm.modal_handler_add(self)
            return {'RUNNING_MODAL'}

    def modal(self, context, event):
            if event.type in {'RIGHTMOUSE', 'ESC'}:
                return {'CANCELLED'}

            elif retval is not None:
                return self.execute(context)

            return {'PASS_THROUGH'}

    def execute(self, context):
            global retval
            val = retval
            retval = None  # Reset.

            if 'CANCELLED' in val:
                print("operator was cancelled")
                return {'CANCELLED'}

            else:
                print("operator finished")
                return {'FINISHED'}

To try it out just install the addon, select an image you want to bake to in the node editor and click the bake button in the bake testing panel.
It will unrwap and pack the uv's and the best thing is that you get a progress bar and you can cancel the baking. It's all comming from blender by running the bake operator as a modal.
The code for the full test bake addon can be found here :
Bake Testing


what is the cause for sharp shadows when using strong bump? I often have a problem when lighting where to see the sharp edges on the mesh. This happens when I add any bump & when I use Lamp as a light source. And the darker the scene & the stronger bump, the more visible these edges, even when the object is smoothed. Please help with this problem. Because of this it's impossible to make quality works.

It really depends on how you're applying your bump.

If you're doing it via the new "True" displacement (or "Both") settings in Cycles materials, your mesh should be adequately subdivided in order for it to work properly. The displacement is indeed applied on the actual geometry (vertices) of the mesh, not on its faces.

To do so, try using the Subdivision Surface modifier with an adequate level of subdivision or, if you're using the experimental features on a recent version of Blender, you can make it adaptive: reference.

Also, increasing the lamp size parameter could help.

(the black spots in the last one are because I didn't put too much care in creating a seamless UV map, and a fine subdivision, together with a strong bump value, makes it more evident)

Related: Blender Cycles True Displacement


How do you set the scale or size of the work area for modeling objects? Hello first time here I have a quite embarrassing problem with learning Blender I have no idea of how to set the scale to start my projects.  What I mean is

"HOW do you set the scale or size of the work area for modeling objects."

I have done many follow along tutorials but last week I tried to export an .stl file to my slicer and found that everything I have modeled in Blender was in Meters not millimeters or inches.  The models are so small when I changed views it looks almost as if they were deleted luckily they were still selected when all I could see were the camera and light.

If you want to change the way blender tells you the units from for example "meter" to "millimeter" or "centimeter", go in the "Scene Properties" under "Units". Select the system you want to use, either "Metric" or "Imperial".
Further down you have the option to select the length unit, as mentioned for metric like "meter" and "centimeter".


How to use Bend Modifier to create perfect polygons, (pentagon, hexagron, septagon, etc...)? I watched a youtube tutorial way back that did this using a circle as a reference onto a plank, and depending on the number of loop cuts, you could create a perfect polygon easily and if the two ends didn't line up there was a modifier checkbox that would automatically join the two ends together.
I found that I didn't like the placing of a circle and simply specifying the number of segments.
Thanks in advance!

That'll be the Screw modifier, operating on a single vertex mesh at (radius) away from its object origin?


Python: does it matter where I save properties? When I create a new property, I do something like this:

bpy.types.WindowManager.something = StringProperty(...

Or maybe:

bpy.types.Scene.something = StringProperty(...

etc. Could someone explain what the difference is and what are the best practices?

Blender's Custom properties can be attached to selected blender classes.

All data block types
Bones and Pose Bones
Sequence Strips

Where to place a property really depends on you usecase. If the property is tells something (or enhances) something that is related to Materials why not add it to the material self, so it is easier to find.

Best way to approach this is: Find the most detailed class where it tells something about a single instance of that class. If the property is shared over multiple instances of that class you can move it to a higher level like:

Armature for Bones and PoseBones
WindowManager for Scenes
Scene for most other classes

When placing it with Objects it is also important to find if it is part of the Object (placement in 3d scene) or part of its data (Mesh etc).

At the end it is just normal software design and knowing how Blender is stuctured


How to find textures in a model? I'm basically using Blender for the first time.

I've got a model that I downloaded from BlendSwap.  It's got (at least) a 3D mesh and some textures that came with it (which are manifestly in a subdirectory labeled "textures").  I can see the model load and applies the textures to the model.

However, I can't find the textures in Blender.  They don't appear to be in the editor labeled "Image Editor" or "UV Editor."  No matter how I scroll around or zoom in or out in those editors, I don't see anything. I have no idea how to find them.

Ultimate goal:  I need to export this blend so it can be imported into another program.  I need to check the textures to make sure they are "uv mapped" onto the mesh or the exporter or subsequent importer won't be able to find them.

Any help for a noob is appreciated!

Welcome to Blender Stack Exchange!

It's probably safe to assume that any image textures are UV mapped onto the model, as Blender does this by default. But, there are a ways to check.

If you don't see any images in the UV or Image editors, it's because no image is selected. Let's use the UV image editor, as you want to see the UVs. At the top of the editor there will be two buttons labeled New and Open. To the immediate left  of these there is a little image icon with an arrow. Clicking this opens a menu that lists all the images in the file.

To see the UVs and how the texture applies to the model, you will have to select the specific model/section you want to look at. With your mouse in the 3D view, press Tab to enter edit mode, and then A to make sure everything is selected.

Now go back to the UV editor and you should see the UVs. You will may have to open the appropriate image from the menu mentioned above if you want to see exactly how the UVs are laid onto that image.

Do note that this doesn't change which texture the model uses. If you want to see which textures the model uses, you will have to look at the material. To do this, switch to the Shading workspace, and at the bottom center you will see the shader editor. In this shader will be a network of nodes. Image texture nodes will have an orange header with the name of the texture as the title.

One other thing to note, the image files are probably packed into the .blend file. If they are, you may want to unpack them by going to File>External Data>Unpack All Into Files and choosing the first option.


How to Properly Unwrap Metaball, Metaball animation I have a Metaball animation running with animation node. I want to project the UVs from the surrounding sphere to the metaballs so I can have the textures applied without artifacts (you can se in the gif). The only problem is that I don’t really know hot to do it. If it was a normal mesh I would go for the uv projection modifier, but since is a metaball I can’t apply modifiers.

Does anyone know how to solve this problem?
Thanks a lot

I did it this way and it worked fine for me (but i am using a cube instead of a sphere).

Under - Texture Coordinates - Object - Try to plug in your outer sphere.


How to connect vertices together while joining another vertex in its path? Hey guys I am wondering how to connect the vertices in blue together while crossing over the path of the one in circled red. How would I connect them all together so the two blue and the red circles all connect as one?

The best option is to use Join. Select the two vertices that you want to connect and press J to connect them. This will automatically create vertices at any edges that the new edge crosses:


Trying to intersect two tunnels I'm trying to create sewer tunnels for game development and I cant seem to figure out how to make an intersection.

We've tried boolean but it doesnt seem to want to work properly nor cutting... Does anyone have any suggestions?

There are several ways to do it, here is one:

Create your tunnel section, create an empty close to it, give your tunnel a Mirror modifier with the empty as Mirror Object, enable Axis, Bisect and Flip on the right axis (here X):

Rotate your empty 45° on the Z axis and move it so that the tunnel and its mirrored version cross each other:

Apply the modifier, go in Edit mode, select all, in the header menu > Mesh > Symmetrize, and in the Operator box choose the right axis:

Symmetrize in the other axis:


How can I move bunch of vertices to the origin of the world properly with Sverchok? Please see the image below. As you can see I am  finding the average value and moving all those verts by the same amount in the negative direction. It kind of works but what I want is to put that torus geometry (one drawn by Sverchok viewer) in to the center of the world based on a the calculated origin of the mesh.

Thanks

List Math average isn't what I would use to find the average vector, we have an analyzer node for that. It expects inputs of Vertices, and employs an appropriate algorithm for that kind of input.

List Math expects primarily lists of numbers, (signified by the type of socket : green ) tweaking the level parameter will not result in returning the average of vectors. This is an understandably confusing situation.


Texture appears to stand still when the camera is animated I’m modeling an address book and have a mesh with tabs (UV mapped). I’ve created one .png with a paper surface image and the letters of the alphabet in black. Animated a slow camera pan. After rendering a targa sequence the texture appears in place but there seems to be another texture or layer or grain that doesn't move. Its mostly noticeable around the black fonts but once you see whats going on its everywhere. Almost as if there is a slight transparency.

Blender 2.76 / Cycles

Link to project file and short .mov
https://www.dropbox.com/sh/34y1weq6raspbzg/AAA_lJp4Mw_lvHwdo_DXkKiya?dl=0

Thanks!

That texture that doesn't move is caused by having the same seed for noise on every frame, so the final render has a fixed noise pattern.

You need to animate the noise seed. Use the Clock-like icon on the sampling settings and render again,


Fake reflections in Cycles, redux In the Fake reflections in Cycles question, there is an example of a simple shader set up. I tried it, the image is displayed in my Preview (Blender 2.73a). The rendered object shows reflection but no image. Why is my image not showing in the new version of Blender?

Jonathan Williamson has an example of how to do this on cgcookie (http://cgcookie.com/archive/tip-faking-reflections/), but it's dated 2010 so the Blender version is different - using Blender Render, not Cycles.

To reply here as well just in case others are looking for the same thing, you can achieve the same fake reflection effect with the following node setup:


How to do GPU rendering on MacBook Pro 2016 (AMD Radeon Pro 460) I'd really like to do GPU render on my new MacBook Pro 2016 with AMD Radeon Pro 460, but I get the dreaded Loading render kernels (may take a few minutes the first time) problem.

I don't see my GPU on the list of supported Open CL devices but the list says it's from May 2015. Is there anyone working on getting these devices to work?

However, it shows up fine in Blender settings, and the computer also has Intel HD Graphics 530, and I tried either or both with the same result. Is there perhaps a way to download a render kernel and put it in a folder or anything, or is this computer simply not supported?

I recently got the MacBookPro 2017 Radeon Pro 555 2 GB + Intel HD Graphics 630 1536 MB. Having both GPU on apparently causing Cycles not to render.

Just turning on Radeon Pro 555 and turning off Intel HD Graphics and the Cycles render works.


Problem with blender noise I have my scene with building. Scene has HDRI light and some additional light sources (area light) inside building. Problems is - after turning on layer with light inside building all scene gets more noise.

Photo with light on (50 samples)
http://www.part.lt/perziura/d74281caa2fff8977cdfece330bef225382.PNG
Photo  without light (20 samples)
http://www.part.lt/perziura/74b2f9f35932cb707c639afe99faad22636.PNG

Light is hard to calculate. Cycles is a path tracer, which means it shoots out light rays from the camera, bounces them around the scene and looks where they end up.

How many light rays are bounced is controlled by the "Samples" setting.

The issue that you're facing is that you've got a lot of light sources behind (I presume) glass panes, with a lot of geometry for the light to bounce around in. This is coupled with a very low sample count, and is the reasn for your noise.

Increasing the samples, leaving the lights turned off or decreasing light bounces might all be solutions to the issue you're facing at the moment.

If you find yourself sitting at 1000 samples or above with a lot of noise left then I'd recomment getting enabling the denoise in the scene settings. Be aware, this washes out colors and works against surface detail. Use it with caution!


How to merge two mirrored vertexes? I have made half of my model and the lips look fine when I set Subsurf to be simple. But if I change it to Catmull-Clark then the lips get a gap in middle.

Simple:

Catmull-Clark:

I used a mirror modifier for the right side of the character.

All you need to do is move the mirror modifier up. It must be first in the modifier stack. Also make sure you have clipping ON (like it is in your pictures).


Combining Complex Models I am very new to blender, and I have created a complex spaceship with multiple turrets that are parented to swivel on the correct axis. I want to be able to combine the entire thing under one file so that I can easily sort and animate it in a fleet formation. So far the only way I can find is to join all parts together, but this leaves me unable to move the turrets. As seen in the picture, the parts add up fast, yet I can't seem to find a way to join them into a 'folder' I guess so that I easily access other ships without having to sift through all of the duplicates parts

Parenting is hierarchical .. so  depending on which parts of your model you want to control other parts, a object can have siblings and a parent, and its parent can have a parent of its own.. and so on. The 'family tree' is normally collapsed in the Outliner, reducing clutter. You can select multiple objects and parent them to the last selected (active) object simultaneously, using Ctrl P.

You could join all the objects you don't want to move independently, and make the turrets children of the joined object. (The turrets' children will become grandchildren of the joined object)

Or, create a heirarchy of parts. In it, you can make a link between any child and its parent 'rigid' with respect to translation, rotation, and/or scale by locking the child's own transformations using the padlocks in the 'Transform' panel of the Properties Region of the 3D View. This will mean only ancestors can move the  children in those ways. If you want to lock multiple children at once, select them, and hold Alt while locking.


How to create a gradient texture? I am wondering how to recreate some kinds of effects (you can easily do in Photoshop) in Blender.

I want to create the gradient textures like ones pictured below, should I render objects and blur them in compositor? Or can I achieve it using only material nodes?

You can acheive this with Cycles material nodes using the 'Gradient Texture' node.

Setting the gradient node to 'Quadratic sphere' (and with a little offset from the vector mapping node) restults in this (on a plane with uv basic unwrapping):

To control the scale of the 'Quadratic sphere' in the result above I scaled the UV's as scaling using the vector mapping node node seemed to scale it towards the corner.

For a linear gradient you can simply set the Gradient Texture to 'Linear':

For different colours you can simply use a colour 'MixRBG' node and use the factor of the gradient texture instead of the colour and connect it to the 'Fac' of the mix node.


Using GG to move an edge doesn't yield expected results I created an edge loop so that I can add a groove vertically. Just like the horizontal groove. I want it to be a thiner groove so after creating the loop I pressed G > G to slide along the face. This was the result. I did notice when creating the loop I had to do it twice because the loop didn't go from the top of my model to the bottom. I'm sure that's where the problem is I just don't know how to fix it. How do I fix my faces or edges to go the same way?

I don't know how this fixed it but I deleted these quads circled in red. Then deleted the loop cut and redid a loop cut and it worked. Can you explain why?

As @Dontwalk pointed out:

  You had a face with three vertices and another face with five vertices. You changed the mesh so the faces all had four vertices which plays best with loop cuts and other tools in Blender.

I had a face overlapping another face and this cause my loop cut to not go all the through my model. Once i removed the extra face and redid my loop cut the problem was fixed.


Material that recieves shadows but no shading I'm trying quite desperately to help my wife create a shader (in either cycles or eevee) that has a flat color texture but catches the shadows from another object. So picture two image planes one hovering over the over, both with a flat texture, but the lower plane 'catching' the shadow cast by the one above it. It seems programmatically simple but has now eluded me for days. Is this at all possible? I've looked into...
1.. making the lower plane a shadow catcher, but that means it shows only the shadow and no surface texture.
2.. creating two 'lower' planes with one as a transparent catcher overlay.
3.. casting shadows via ray visibility onto an emission shader.
4.. math node multiplying an emission shadow by a diffuse shader designed to recieve the shadow.
5.. using the light path node shadow ray to display a mix of diffuse and emission shaders driven by the same image texture.
EDIT: Added picture. Here I'm just using flat colors not textures but the principle should be the same. I want the red plane to stay flatly shaded, and I want the green plane to also be flat shaded (unlike shown), except that it includes the shadow cast down onto it by the red plane. Viewed from an orthographic camera looking directly down the z-axis it would like the red plane has a 'drop shadow'.

EDIT: Thanks to everyone who helped! For future reference if anyone has this problem the accepted solution is an easy and effective answer to this problem and works in both renderers. I'll note the sun does help but you can easily get away with any light type depending on the strength and radius you use. Softer shadows can be achieved by messing with the interpolation of the color ramp. Casting onto an an unshaded image texture is as simple as plugging the color output from the image texture directly into the MixRGB node.

The closest I think I can get is to use a toon-ish style shader on the bottom plane. This leaves the plane flat-shaded, but allows for pure black shadows (remember to set the ColorRamp to "constant"). However, as you can see, the falloff from the point light also gets cast in black as well. This can be solved to an extent by increasing the size of the light source, but doing this causes the shadow resolution to suffer as well.
Here is an example using a point light:

However, if your mesh objects are sufficiently small (can be scaled down), this issue becomes negated:

As Markus pointed out in his comment, changing the light type to Sun fills out the plane (regardless of the size of your mesh), but the shadow quality properties will likely need to be increased to make the shadow look "cleaner" (less aliased), but it still may not come out perfect:


Blender will not import my svg in version 2.73 Blender will not import my svg image. I'm using inkscape and I made sure to use plain svg.

The SVG format can contain three types of graphic objects: vector graphics, raster graphics (bitmap images), and text. Blender's SVG importer can only deal with vectors (paths). So make sure you've traced your images as paths otherwise they will not load in Blender.
In Inkscape use main menu -> path -> trace bitmap or press shift+alt+b

Read: Why can't I import a SVG file from Adobe Illustrator or Inkscape? and Imported .svg files does not show up and Why won't Blender let me import .svg files?


Extruding square shape (from mesh) along curve results in a flattened mesh I'm trying to extrude a simple square shape along a curve, with the view to making a set of steps go around a corner.

Extruding a circle works perfectly, but a square shape seems to extrude along the Y axis instead of the X and is therefore just a flat shape.

Steps
- Created cube shape

Selected 1 face and duplicated it
Separated the face so it is a single object
Transform/rotation applied
Alt+C - converted mesh to curve
Added Path
Gone to path object panel > Geometry and selected the 'Bevel Object' to be the square

Result

The Extrusion is a flattened mesh.

Doing the exact same steps with a cylinder works just fine.

Blend file here - http://pasteall.org/blend/index.php?id=47161

Many thanks in advance.

The problem is your object called "square". It does not have the same orientation as the "Cylinder.001" that you used to extrude the Cylinder. The curve will be extruded on the local Z axis so make sure its facing the direction of extrusion.
A quick fix is to open the object "square" in Edit Mode and rotate it on the Y axis by 90°.


Rotating an Empty at a constant speed, through a Python script I want to make a Python script that rotates an Empty at a certain constant speed.  The python script will rotate this empty for a certain amount of time, and then it will stop. Does anybody know how such a Python script can be made?

The idea of a certain speed, is that I want the empty to rotate along its local axis, a.k.a its own origin, and completing two pi radians in a certain amount of time, so it will rotate a full revolution in time (t), and I want this time to be a variable,  so I can adjust how fast the rotation is.

My idea is that I wanted to parent a propeller or any other object to this empty,  and when the empty rotates,  the propeller will rotate as well.

Consider just keyframing the rotation of the empty. Simple animation. 0 degrees, 180 degrees, 360 degrees. 3 keyframes and then adjust.  In the graph editor add a cyclic modifier.


No save startup file or load factory settings option? I'm trying to save a default startup, and online tutorials say File > Save Startup File... but I do not find this option

the new path is File > Defaults > Save Startup File


How can I use the NUMPAD_PERIOD function to focus on an object when I'm on a Macbook Pro? I already know that you can emulate the number pad through the User Preferences, but that only seems to provide the numbers 0-9. I'm trying to focus on an object by pressing . ,however nothing seems to happen. I've heard about KeyRemap4MacBook, but it isn't available for Sierra.

The only way to emulate the numpad . is to go to blenders * User Preferences > Input*.

Then in the search field type "show active" and remap the function to a key you don't/won't use.


How to turn off camera's follow path constraint? This question How can multiple Curves be used to control Camera movement? says that I can disable the camera from following a path by adding a keyframe and setting influence to 0 for that constraint.

So I added a circle, selected the camera then shift selected the circle, pushed ctrl-p and chose follow path.

But as you can see when I select the camera and look in its constraints, only the track to constraint is there. There is no follow path constraint. How do I see that one to edit it?

Hm, this is another "follow path". Try to make "follow path" in different way: select Curve, Shift-select Camera, then press  Ctrl+Shift+C and select Follow Path. Then chose: in constraint settings click on "Animate path" or animate "Offset" value. This is equivalent of  "follow path" via constraint.

Also, you can add a constraint from menu Add Object Constraint, but in this way you need to manualy select curve object in "Target" drop-down selector.

To remove default "follow path" go in curve settings and unclick Path Animation checkbox.


Strange face transparency artifacts in Eevee Can somebody explain whats wrong with my mesh? Have no idea what to do.

Why some of these faces are transparent?
It is rendered with strange holes in Eevee, but in Cycles all is ok.

3rd and 4th screenshots with marked edges

You can achieve this with any texture in my .blend file.

http://pasteall.org/blend/index.php?id=52822

Please help!

You have an Alpha sorting issue. (Z fighting) When you have an Alpha channel in your texture the renderer has problems sorting which face is closest to the camera (or viewer).

This can be corrected if you tell the renderer to ignore Transparency or Backfaces.

First screenshot shows your present alpha Blend Mode :

You have a choice, either set the Blend Mode to Opaque :

or deselect the option Show Backface :

Third option create a new material and assign that to your model. The default settings work as is.

BTW. Your model also shows Alpha sorting issues in Cycles (and Eevee, when Viewport Shading is set to Material View.


How to put rotation- and scale invariant labels to three dimensional objects (motion-tracked insert effect)? I'm looking for an approach to introduce some informational objects to a 3D scene to be rendered. The effect is similar to motion-tracked inserts, you may know from various video productions. It would be nice to directly include these labels to the scene, rather than to do it in post. This would require kind of 2 dimensional objects that doesn't follow the laws of perspective (doesn't change size or rotation) while the camera moves. My thoughts brought me to putting empties to the objects to-be-labeled and parenting the actual texture planes to the camera. This is how I made the sample GIF. However I'm do not know how to translate the coordinates of the empties (in an automated way) to make the labels appear to be attached to empties. Maybe there is solution already that some of you already use.

Edit: important part set in bold. So not a duplicate of the mentioned other question.

Frame change handler

Cube is moving further away, Suzy is scaling up and down, cone is rotating thru. Camera rotated.
Proof of concept script.
For each object that I wish to label have added a text object (arbitrarily, could be an image plane) as a child, and given it a custom property named "label" to mark it as the label for its parent.
Theoretically this could be set up with drivers and or constraints, will however use a handler method instead.
By default a text object faces Z up. Will rotate it such that it faces the plane of the scene camera.  Have used the highest (largest Y coord in camera space) bounding box corner as the origin of the text object.  Can see the switch with rotating cone.
The scaling is using same method explained here, https://blender.stackexchange.com/a/107005/15543 where it is implemented with drivers.  Just as RIchard has divided by 10, have used a scale factor of 0.1.
import bpy
from mathutils import Vector, Matrix

scale_factor = 0.1

def label(scene, depsgraph):
    cam = scene.camera.evaluated_get(depsgraph)
    mw = cam.matrix_world
    mwi = mw.inverted()
    R = mw.to_3x3().normalized().to_4x4()
    labels = [o.evaluated_get(depsgraph) for o in scene.objects
            if "label" in o.keys()
            ]
    for label in labels:
        ob = label.parent
        omw = ob.matrix_world
        bbox = [mwi @ (omw @ Vector(b)) for b in ob.bound_box]
        bbox.sort(key=lambda v:v.y)

        M = R.copy()
        p = bbox.pop()
        M.translation = mw @ p
        S = Matrix.Diagonal(
            (scale_factor * -p.z,) * 3).to_4x4()

        label.matrix_world = M @ S

bpy.app.handlers.frame_change_post.clear()
bpy.app.handlers.frame_change_post.append(label)

Setting Up.
Here is a quick little script that adds a font object to each selected object as its child and assigns it a "label" custom property to mark it as a label.
import bpy
context = bpy.context

for ob in context.selected_objects:
    text = bpy.data.curves.new("label", type='FONT')
    text.body = ob.name
    label = bpy.data.objects.new("Label", text)
    label.parent = ob
    label.matrix_world = ob.matrix_world
    label["label"] = ob.name
    context.collection.objects.link(label)

Empties
As suggested by @clutch-lemon here is similar, but adding an empty as a child of each selected object.
import bpy
context = bpy.context

for ob in context.selected_objects:

    label = bpy.data.objects.new("Label", None)
    label.parent = ob
    label.matrix_world = ob.matrix_world
    label["label"] = ob.name
    context.collection.objects.link(label)


How can I use an attribute value from a mesh's material in another material? I want a lamp to emit as much light as a fire. I have a property in my fire material that says "flame". It seems like a good value to copy to my point light's material strength value.
I've considered drivers but I'm too new to the concept and I'm not sure how I can pull it off.
If anyone has an idea...

I understand that this question has already been answered in the case of constant input values, but the Attribute node I want to use is linked to a mesh, making it trickier to use for another object.

Here is a blend file with what I want to do: .
Light and fire on separate layers so it is possible to see the effect on the plane behind.

It's quite easy, and technically this is a duplicate question...but since you framed it within the context of lighting I will go ahead and answer.

Say you have two or more lights, and you want them to share a value for emission.

For any property you want to share between multiple materials, you need to Group it. CtrlG

In this case the Value we want to share is to be used for Emission, so create a lamp with a Value input node for emission strength and then group that node.

You should end up with a Group like this:

Hit Tab to go inside of the Group node and you will see your Value node that globally controls the emission strength for all lights with a material controlled by that Group node.

You can start by examining and playing with the example .blend provided.

The subject is lit with a proportionately controlled amount of light.

In this example render Suzanne is lit by multiple lamps. The distance, color, and even type of the lamps is different, but the global brightness is controlled by the same group-linked value.

Just keep in mind that if you're matching to an emitter mesh, the brightness will vary according to the surface area of the mesh. So you'll want to create a mesh light of matching size.

Update

I looked at your .blend. Compare the Group node you had...

to this modified one I made:

Since the flame attribute is local to the mesh, as you observed, the best we can do is to multiply the emission intensity by some value. And if we do that using a Group node then that value gets shared so we only need to change it once.

I put the color value in there so it can be shared too. But the nature of how the flame color is generated is different, and uses the ColorRamp, so while their intensity can be increased or decreased simultaneously, the color won't be exactly the same.

I added an emitter mesh because it emits more light than a Point Lamp. I left the Point Lamp though, so you can see how the Group node is applied to both.

I'm not sure what your final goal is with all of this, but I hope this can be a solution for you.

Taking it Further

You can keyframe the Value node and then add a Noise Modifier to the animation so the brightness will flicker in sync (although such animation will not be visible in Viewport Render).


Bevelling edge at the center doesn't take the shape of the object I'm trying to bevel the center loopcut that I made but the bevel doesn't take the shape of the object. I have tried applying the rotation and scale but that had no effect. Is there a way to fix this? Thanks!

I used ctrl+B to bevel the edge. use the percent setting to make the beveling follow the profile.


How to translate(bengali) tabs, tools etc I like blender alot as it is free and open source for modeling animation which i also like. But the main problem is the language as english is my second language. So is there anything that can translate(Bengali) the GUI, tabs, tools etc?

The language options can be found under Edit > User Preferences, then under the Interface category, then near the bottom, under the Translation section.

Sadly, not every language is available. Possibly including yours.


How to import a .max model into Blender? I've tried to import but I don't see the (.max) file as an option when importing. Is there another way to import the 3DMax model into Blender for rigging and animation?

.max is the native internal format of 3DS Max, just like .blend is Blender's native format. To get models into blender use an interchange format such as Obj, Collada or FBX.

If you only have the .max file and no access to 3DS Max, then yes, there's no way to import it into blender, just like there's no way to import a .blend file into Max, or a .max file into Maya.


To what degree does Cycles' sample level impact other passes? Can equally useful AO, Z, mist, speed and other non-beauty passes be generated at lower sample rates compared to those rates needed for beauty passes?

How about ObjectID mask passes?

Depends on the pass. Z and Object/Mat ID are not antialiased at all, and require only 1 sample. Normal, mist, and UV are also just data/stats, but since they are antialiased you need a few samples to get a smooth result. 8-16 is usually enough. Vector is a bit of a weird case that I confess I don't fully understand. It doesn't appear to be antialiased in the normal sense, but does seem to gather some multisample data - possibly time variance?

The remaining passes are just components of the main render, so they're essentially dependent on the samples rate of the full scene. However, since different components denoise at different rates, some passes may clear up more quickly than others. The "color" passes (including emit and environment) are just texture readouts and generally don't take more samples the normal/UV/mist. AO, shadow, and the direct/indirect passes contain the lighting portion of your render and generally one of them (usually one of the indirect ones) will be the last component to clear up.


Stamp Cut another Mesh I've imported some svgs, converted them to meshes, and I'm trying to stamp-cut one using the other.
Essentially, I have two cookie cutter meshes (no thickness, but has depth) at the same location. I've z-rotated one of them a bit, left the other, and now I want the intersection of the two.
I tried the boolean modifier, but it says it can't complete the operation. I also tried mesh > faces > intersect, also didn't work.
Any help is appreciated.

Boolean modifier is the correct option. It is failing because your meshes are not closed. Booleans do not work on open meshes. Select the ending loops of your meshes and press F to add a face. You can delete it again after the boolean has run.


How To Create 'Hard Plastic' Material? I'm new in texturing and I've been trying to create materials for my pistol model. However, for the grip part the plastic texture is undesirable as it is way too smooth when rendered. Ideally I want the material to look like this.

But for my own texture it looks like this.

How should I create the plastic material to make it look realistic? (With roughness on the surface) I have gone through the Internet but the tutorials mainly focused on creating glossy plastic which is not the one I need. Any help is appreciated.

Breakdown

Rough hard plastic or similar materials with slightly irregular surface textures should obviously have some sort of displacement.

Also, even if they are rough, they still have some sort of glossiness but it's more evenly distributed.

Base Material

The base material (blue box) consists of a diffuse color bsdf to control the base color, a glossy Beckmann bsdf to control the glossy color. The roughness that should be slightly below 0.5, everything above gets too evenly distributed and everything below generates too sharp glossy areas. The mix shader should have a factor that puts more stress on the gloss (0.75).

Displacement Material

The displacement material (yellow box) also generates some variation to the diffuse color. The Voronoi Cell Texture with a high scale is always handy when it comes to nice uneven distributed surfaces. It needs a Texture Coordinate node, since it gets generated per object and a Gamma Node to control the intensity.

Material Mix

Both the base material and the displacement material go into a mix shader. The gamma-corrected color value of the Voronoi Texture also gets connected to the displacement value of the Material Output node.

Node Setup

Result


Gray polygon appears in render/camera view but not user perspective I'm working on an assignment for an animation class and there is a gray polygon appearing in my camera persp view and in my renders and I cannot figure out what is causing it.

Here is the blend file: http://www.pasteall.org/blend/27989

The grey 'polygon' you see is the background colour. What is happening is your camera clipping end distance is set too low. So any geometry beyond the clip distance is not rendered. Resulting in what you see above.

To fix, simply select the camera and set the Clip distance to a higher value.


Blender build for Raspberry Pi3? Has anyone tried installing blender on a Raspberry Pi 3 or do you know which version of blender will be supported on Pi3? If I get just the 3d view running for modeling, that'll be great.

The biggest hurdle to getting Blender running on the Raspberry Pi is the fact that the Pi has an ARM processor rather than one that uses the x86 instruction set, which means software has to be specifically compiled for it. Currently the Blender Foundation does not provide these builds at the moment, but there are a number of builds floating around produced by 3rd parties that should work fine. Many of them mention use on the Pi since it is probably the most common normal linux ARM platform, the fact it runs full linux makes this much easier.

As you are relying on third party builds, many will be a bit out of date compared to the latest builds (certainly buildbot, and they may take a bit to catch up). That said on arch at least its up to date: https://archlinuxarm.org/packages?search=blender. However in the debian jesse repo, it is a fair bit out of date (https://packages.debian.org/jessie/blender). As fair as I'm aware the default Pi os (Raspbian) is based on jessie, so the blender you get there will be somewhat out of date. See @Zoots answer for more recent builds.

As Nathan Osman mentions in the comments, you should be able to install blender with: sudo apt-get install blender

For 2.8 and later, openGL 3.3 is required, making builds impossible. see https://blender.stackexchange.com/a/145057/26345


How to quickly do a clay render? Sometimes, I find that it is useful to do a Clay Render for my model, where all of the materials render with a single common "clay"-like material (see example image below). In the past, I have done this by:

Selecting all of my objects by using the A hotkey
Manually deselecting the World object, camera, and lights in the Outliner
Linking materials using Ctrl+L
Manually setting to the same material in the Properties>Materials menu
Render like normal

When I was done with my Clay render, I would revert to the old version by pressing Ctrl+Z a few time. However, this is a rather clunky solution, since I can't make any edits in the clay version without losing my old materials/textures data.

Is there a better way to do Clay renders, either with an addon or through some other technique such that I can make edits to my model and not lose my materials? If at all possible, I would like a single setting that allows me to quickly toggle clay-mode on and off in the same file.

Example "Clay Render":

In the Properties area, Render tab, Layer group, there's a setting to override every object's material:

As of Blender 2.8x there is a new Override panel as part of the View Layer Properties:


Error in addon: "wm_operator_invoke: invalid operator call" In this simple addon example, a button is added to the Render tab of the Properties window

but when I click on it, I get the error message:

  wm_operator_invoke: invalid operator call 'OBJECT_OT_my_operator'

What am I doing wrong?  Here's my code:

import bpy

class OBJECT_OT_my_operator(bpy.types.Operator):
    bl_idname='object.my_operator'
    bl_label="My Operator"

    def exec(self, context):
        print("hello")
        return {'FINISHED'}

def draw(self, context):
    self.layout.operator('object.my_operator', text="Operator 1")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.RENDER_PT_render.append(draw)

if __name__ == "__main__":
    register()

As pink vertex pointed out, the method needs to called execute.

What happens here?

An operator added to a panel shows as button, and if you click it, Blender will try to invoke it by default (which means it looks for an invoke() method in the operator).

Since your operator has no invoke(), it will try to execute it instead (thus try to call execute()). Your operator doesn't have it, and Blender gives up with the error mesasge:

  wm_operator_invoke: invalid operator call 'OBJECT_OT_my_operator'

So it means it couldn't find a method for the operator context (invoke for a button in a panel by default), nor an alternative (execute).

You can override the operator context in layouts if you need to. If your operator defines invoke() and execute() alongside, you might want a button in a panel that executes the operator, and not invoke it. Create a layout sub-element (column, row, ...) and set its operator_context attribute to the context you want to run it in (see API docs):

import bpy

class OBJECT_OT_my_operator(bpy.types.Operator):
    bl_idname = "object.my_operator"
    bl_label = "My Operator"

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

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

def draw(self, context):
    layout = self.layout
    layout.operator(OBJECT_OT_my_operator.bl_idname, text="Operator 1 - invoke (default)")

    col = layout.column()
    col.operator_context = 'EXEC_DEFAULT'
    col.operator(OBJECT_OT_my_operator.bl_idname, text="Operator 1 - execute")

def register():
    bpy.utils.register_class(OBJECT_OT_my_operator)
    bpy.types.RENDER_PT_render.append(draw)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_my_operator)
    bpy.types.RENDER_PT_render.remove(draw)

if __name__ == "__main__":
    register()


Supplying my own UV map I am looking to apply a texture to a flat shape and then project that texture onto my 3D surface. I am able to use Smart UV Project to allow Blender to generate an unwrapped flat UV geometry, but I am wondering it it possible for me to supply my own flat UV map and then project this back onto the 3D mesh.
The mesh between the flattenized shape (UV map) and 3D shape are 1-1 correspondence with respect to nodes, and I have my own mathematical representation of the transformation from the flat UV shape to the 3D x-y-z space.
Edit: (for some context...)
Say I have a flat UV map like this:

That I want to project onto a 3D structure like this:

I am wondering if there is a way I can specify my UV map and then cast a texture onto this to put on the 3D shape rather than using something like Smart UV Project to generate the UV map.
For the end result I am looking for something similar to MATLAB's warp() function:

Thanks in advance!

I don't think I understood your question. What is the reason use such deformed UV? What is your base mesh? And what is your final shape?
Until someone (who understood better) ... here is a tip.

I guess your mesh is always square, just stretched is some direction. So what about ...

Select all faces Unwrap > Reset.
With all selected and one face selected as Active (bright one) Unwrap > Follow Active Quad

Like that you can get even distribution again for your texture.

Also it is still square when view from top, so you can go to Top View (7) and Unwrap > From View


Can't see camera's 'passepartout' / overlay around the camera's view I have 'passepartout' selected in the Camera tab.

I have "Lock Camera to View" deselected in View (in the "N" tools section).

Yet I don't get a passepartout in Camera Perspective.

What am I doing wrong?

Thanks to Leander, I discovered it was offscreen.  I used to scroll wheel to scroll out (way, way out), and there it was.


How may I create a continuously looping animation? I would like to create a continuously looping animation that repeats itself constantly and without my help (I do not want to create one animation and then copy and paste it over and over again).  A good example would be the rotational movement of a helicopter's blades.  I am not repulsed by a scripting solution, and would indeed welcome it.  How may I accomplish this?

To do this, you'll want to add a Cyclic F-modifier. Go into the Graph Editor and select the keyframes that you wish to loop over (over their respective time period), press Shift + E, and select "Make Cyclic (F-modifier)".


How do I get the image index that matches the material texture? I see that the index order changes depending on the image name I have used a small script that Atom had published online, and it uses the index 0 for the image editor to then get the sizes of the image for setting render resolution. That art works great until you have more images loaded in blender, and then the index order may have changed. I want to get the index that matches the selected object's texture so that the operation doesn't mess up and use the wrong pixel resolution.

Any ideas here?

image_index = 0

    rnd = bpy.data.scenes[0].render
    rnd.resolution_x, rnd.resolution_y = bpy.data.images[image_index].size[:]

Assuming the image of interest is on the first texture of the first material of the active object and you're using the Blender Internal (BI) render engine (not cycles):

import bpy

print( bpy.context.active_object.data.materials[0].texture_slots[0].texture.image.size[:] )


Object with origin set to geometry not at center when coordinates are set to 0,0,0 When importing glTF models from Sketchfab sometimes they are not at the center even after setting origin to geometry and setting coordinates to 0,0,0. Frame selected show only these parts, the ball is the whole model. No modifiers.
Blender 2.83.3
Model https://sketchfab.com/3d-models/sci-fi-drone-74a5a6bcc9cf4a9f877364ab700623ba

There's a thin line, it means that your object has a parent and that its location values will remain the ones before parenting wherever it is now in your scene, you need to:

Go in the Properties panel > Object > Relations > Parent and remove the parent (yes, cruel).

Or AltP > Clear Parent.

Or header menu > Object > Parent > Clear Parent.


How to avoid desaturation when using glossy material Most materials is simulater with a white specular component. Now, if I mix the specular component with the diffuse component, the diffuse component becomes desaturated. How can I avoid this. The problem arises in Cycles, Blender internal, and in other CG lightning models.

For an example, see http://www.chocofur.com/6-shadersamptextures.html, especially "Reflection factor"

Compositor & Render Layers.  Enable Glossy direct.  Isolate/Transform gloss/specular with color ramp.  [Alpha Over] node to combine images.  The image below isolates some specular/gloss.

When you use the mix shader you have an option to specify the mix .. labelled [fac].  Change the setting to suit your taste.
Consider rendering the image once as diffuse and once with specular.  Use the compositor to threshold with color ramp and choose the best color. PR or NPR? Suit to your tastes. More work.
Use more elaborate nodes in the materials to change the effect of specular. More work.


My object is disappearing in sculpt mode After I sculpted my object in Blender and switched to the viewport, I can no longer see it. I tried pressing tilda>view selected. All that happens is a thin orange outline of my object appears, and then disappears when I rotate it around. The grid and x and y-axis guides are also no longer there. I also tried editing the clip start setting to 0.001, also to no avail. How can I fix this?

EDIT 5/2/20: My object is now appearing in Layout and Modelling mode, but not in Sculpting mode. When I press 0 (camera view) I can see and edit my object, but as soon as a rotate the camera, the object disappears. How can I fix this?

To solve, I increased my clip end value to $100$ in the View panel on the 3D View Sidebar.


BGE Consistent character speed In my game, I have this logic:

(The top actuator is the mouse looking thing, and the two hidden actuators are the same as Motion and Motion.001, just with different axis).

When I'm facing forwards, it's fine - it moves at a uniform speed constantly, but when I face downwards, it stops moving all together, and if I look down slightly, it slows down. I know why this happens: It moves on the local axis so when I'm looking downwards, it tries to move into the floor but can't.

Is there a way (preferably without scripting - but if scripting is needed it's fine) to make it even when looking straight downwards to move at a constant speed forwards?

Here is my 3D view, if it helps:

I think you should separate the logic for movement+rotZ and mouselooking+rotX into two different objects, and then parent the second one to the first one. With such setup, the object moved by keyboard is always facing parallel to the ground, not trying to dig into it. The example of this would be camera and cuboid. The camera is rotated only in X axis (relating to your orientation from screen) with mouse and it's parented to cuboid. The cuboid is rotated in Z axis with mouse and also is moved with keyboard. You can check the blend file below to see how it's done (Blender 2.74 or the latest build). Note the camera from my example can be replaced with your object of choice, and cuboid can be set to invisible so it can't be seen ingame. I hope this can help solve your problem. If you have additional questions, please consider providing a .blend file for more accurate feedback.


How do I split the edges on all objects in a scene with a script? I want to create a script that opens a blender file and splits the edges of all objects in it, perhaps ignoring those that are specified as smooth.

This is for a custom renderer that takes in blend files but interpolates ALL mesh normals from its vertices, which makes it difficult to have walls when they have a volume (i.e. their vertex normals don't match any of their faces).

It should be pretty straightforward, but blender's API comes off as strange to me, and I don't quite get the best way of doing things.

This is what I've got

import bpy
import sys

scene_file = sys.argv[sys.argv.index('--')+1]

bpy.ops.wm.open_mainfile(filepath=scene_file)
bpy.ops.object.select_all(action='DESELECT')

for i in bpy.data.objects:
    i.select = True
    bpy.ops.object.editmode_toggle()
    bpy.ops.mesh.edge_split()
    bpy.ops.object.editmode_toggle()

bpy.ops.wm.save_mainfile(filepath=scene_file[:-5]+'modded.blend')

I'm kind of trying to emulate the steps I'd take on the GUI, go through every object, get into edit mode, select all vertices/faces/edges, split edges, exit edit mode and continue. But it doesn't seem to do what I want (or anything in fact).

I've also seen the bmesh.ops.split_edges(bm, edges, verts, use_verts) operator, but it requires mesh, edges and vertices, which I don't know how to retrieve from the object.

Also, I may want to make all normals consistent before splitting them just in case.

Using bmesh.ops.split_edges(..)

Test script, object mode, for all unique meshes of all mesh objects in the scene, load a bmesh, split all edges, rewrite to mesh.  Need only pass edges of the bmesh to the operator.

import bpy
import bmesh
context = bpy.context
scene = context.scene

bm = bmesh.new()
meshes = set(o.data for o in scene.objects if o.type == 'MESH')
for me in meshes:
    bm.from_mesh(me)
    bmesh.ops.split_edges(bm, edges=bm.edges)
    bm.to_mesh(me)
    bm.clear()

bm.free()

On smooth shading AFAIK it is set on a per face basis. Using the methods outlined here Using python to set object shading to 'smooth' could make a flag to check if any, or in this case all the faces have smooth shading.

# check if all faces in bmesh are smooth
is_smooth = all(f.smooth for f in bm.faces)

Some notes on question code:

when using operators its far better to iterate over context.scene.objects or if pre selected context.selected_objects.  The collection bpy.data.objects is all objects in the blend whether linked to context scene any scene or no scene.  As well as being selected you also want to set the object to active, and select all geom before calling operator

mesh_objects = [o for o in context.scene.objects if o.type == 'MESH']
meshes = set(o.data for o in mesh_objects)
for ob in mesh_objects:
    if not meshes:
        break
    elif ob.data not in meshes:
        continue
    context.scene.objects.active = ob
    ob.select = True
    bpy.ops.object.editmode_toggle()
    bpy.ops.mesh.select_all(action='SELECT')
    bpy.ops.mesh.edge_split()
    bpy.ops.object.editmode_toggle()
    meshes.remove(ob.data)

Note that 100 objects in a scene could share one mesh, hence the logic above to avoid calling the operator on the same mesh 100 times.

No biggy, but as a generality, i is used for integer iterators.


Blender Render suddenly makes everything black I have been working on a building lately and I recently discovered the environment lighting which is awesome because it's useful when working on a project.

However, recently reloading the .blend file, everything gets rendered black. I never used a light source in the first place, so I don't know what's going on. I thought I might have touched some setting without noticing it, but everything seems in order. Also changing the settings doesn't yield any visible different result.

I'm using Blender Render (2.71 rc2), Ambient Occlusion of 0.30, and Environment Lighting of 1 (white). This is the difference between what it used to be and what it renders now:

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


How to avoid pink in EEVEE Oftentimes, once I exceed a certain number of textures (or other certain nodes) in a material, the entire thing will become pink, in both the lookDev and the final EEVEE render—but not in Cycles.

I initially thought this was a bug—I think that it even got reported as such at one point—but it's persisted for so long, through so many versions, that I think there might be more to it. I'm currently using a recent build of v2.83, but the issue has persisted since before the initial launch of v2.80.

How can I fix this issue? Is there a setting I can change? Or is it, in fact, a bug that still has somehow not been fixed?

I'm using a Mac, if that is important.

In addition to my comment above, I did a little research regarding what to expect in the future. It seems that it's not (only) a limitation in Eevee, but also depends heavily on the GPU/driver.
The Blender documentation states the following:

Memory Management
In Eevee, GPU Memory management is done by the GPU driver. In theory, only the needed textures and meshes (now referred as “the resources”) for a single draw call (i.e. one object) needs to fit into the GPU memory.
So if the scene is really heavy, the driver will swap things in and out to make sure all objects are rendered correctly.
In practice, using too much GPU memory can make the GPU driver crash, freeze, or kill the application. So be careful of what you ask.
There is no standard way of estimating if the resources will fit into the GPU memory and/or if the GPU will render them successfully.

Since Eevee is a real-time rendering engine (much like any other graphics engine found in modern games) based on OpenGL, it inherits all the limitations that come with OpenGL, the driver and the GPU.
The GPU drivers are designed to work as fast as possible, so they don't bother with sending messages back to the application to inform about a limit being reached.
Therefore it seems highly unlikely that we see any improvement of the current limitations in the near future.


Why does moving the UV map not move the texture on the model? I'm moving my UV map around, scaling and rotating, but the image which I imported, isn't doing anything. It wont move around on my model.

You didn't assign that particular UV map to any material.
Use the UV map node for that.

The Texture Coordinate node only connects the Active UV map (with the camera icon).
To assign a specific UV map, use the UV Map node.


Influence Geometry Node "Point Distribute" density based on distance to empty I've been playing around with the new Geometry Nodes features in the 2.92 version of blender, using it to distribute objects on another mesh. The way I have it set up is that when an empty gets close, they scale up, and when the empty moves further away they scale down to 0 making them "disappear".
It works for the most part, but I feel like I could make it a bit more efficient and performant if I had the density of the points influenced by the empty as well. Since even though the object is scaled down to 0, it's still technically "in" the scene. The fix would be having the density change based on distance. That way the computer isn't factoring the objects that are scaled to 0 into scene calculations and such. So that areas of the mesh far from the empty don't have points at all, while areas of the mesh close to the empty can be denser without any real performance cost compared to if I had just turned the density up by a flat value.
I've been fumbling along well enough figuring things as I go along with the new nodes, but I can't seem to figure out how to do this or what to plug into the density attribute of the "Point Distribute" node to have its value influenced by the distance of the controlling empty.
I'd rather not use a particle system for this, as the idea is to learn more about the new Geometry Nodes and what I can do with them.

Answering my own question after figuring something out on my own.
If you add a vertex group (named whatever you want, but in my case "proximity", and set the vert weight for all verts in the object to 1.0, you can add a "Vertex Weight Proximity" modifier BEFORE the "Geometry Nodes" modifier to use as a weight influence.
By setting the Proximity mode to Geometry, and setting the high value to 0 and your low value to whatever you want, you can influence the range of the effect.
You can edit the falloff by going into weight paint mode, and adjusting the minimum value of the Weight Proximity modifier and seeing the weight change on your object (it might have to be subdivided first a few times).
Controlling the density is as easy as adding the name of your vertex group to the "Density Attribute" section of the "Point Distribute" node in the Geometry Nodes, since Vertex Groups apply as attributes.


Control an object's specularity with distance (CYCLES) I've asked this question before for a previous version of my Earth project but, annoyingly, after returning to find the answer, it was for Blender Internal and not Cycles. I returned last night to start a new with Cycles instead and it's looking great however I need the specularity on the ocean to dissipate when the camera is further from the planet like in reality.

Blender Internal answer:
Control an object's specularity with distance

I want to achieve the same thing but in cycles however I'm not entirely sure how to accomplish this with the vastly different node tree I have in cycles.

The red highlights the node setup given in the link above for Blender Internal.

The blue highlights the specular map of my Earth.

I'm not sure how I can or even if I can use this to achieve this. I hope someone can help me with this small blunder as I'm no expert on nodes so some pointers would be great!

Thanks to all who help me with this question!

Managed to figure it out and not entirely sure how I missed it! Here it is for those who might want to know how. I used the same set up highlighted in red and plugged them into the Glossy BSDF shader. I had to reverse Subtract, Multiply in the setup nodes as the specularity would fade out upon closing in on the Earth and not moving away.

I also fixed up the cloud map as missed something out. Looks nice a populated with them now.


Different materials for each fluid inflow? How to assign a different color / material to each inflow object in one simulation (bake)?

In the following example we tried to mix two inflows and experience the mixing between the two fluids. However, as bake starts there is only one domain object as fluid (object!) which does not respect color / material assigned to inflow objects!

Unfortunately, I don't know of any way to do this with the main fluid simulator, however it is possible with blender's SPH fluid simulator.
Note that there is currently no way to convert fluid particles into a mesh from blender. There are some python scripts that do this, but these are mostly pretty slow. There are also a few patches, but it seems development on these has been dropped for the most part.
Some advantages of the SPH fluid simulator:

No domain bounds

Supports inter-fluid interactions

Supports force fields

To mix to different colored fluids:

Create two emitter planes (ShiftA> Mesh > Plane):

Add two separate particle systems to the planes in Properties > Particles:

Increase the Life time of the particles in Particles > Emission to be at least equal to the scene end frame:

Set the particle physics to Fluid in Particles > Physics:

Add an object to represent the fluid particles. It should be very low-poly, a 1 division icosphere works well (ShiftA> Mesh > Icosphere). Note that you will need one for each color:

Set the Shading to Smooth on the icospheres and move them to another layer (M)

Set the particle type to Object in Particles > Render and select an icosphere in Dupli Object:

In Particles > Physics > Fluid interaction press the + button to add an particle system interaction and select the other emitter plane as the particle system object:

With both planes setup this way, add another object (e.g. a floor plane) and make it a collision object in Properties > Physics:

Create separate materials for each of the icospheres.

Set the Size (in Particles > Physics) and Number (in Particles > Emission) for each particle system. Larger particles = lower resolution, smaller = higher resolution. Adjust these settings so as to make the particles appear as a fluid without making the simulation too heavy.

You may also want to set the cache step to 1 in Particles > Cache for each particle system to ensure accurate caching.

Result:

See the wiki for more information about each setting.