Copying ANIMATED keyframes from active to group (Ridged body) I have a scene set up with fractured objects and ridged body physics. What I am trying to do is set up the physics to start later in the scene using keyframes on either the ANIMATED or the DYNAMIC options. I am running into a problem where I can set up the keyframes great on the active object, but when I hit COPY FROM ACTIVE to apply to the rest of my fractured group objects, the keyframes don't move over with the rest of the data. Is there an easy way to send the keyframes to the rest of the selected objects?

Yes, what you need to do is use copy animation data. Do this by selecting all your objects, the active should be the one you want to copy the key frames from, hit Ctrl-L>Animation Data to copy the keyframes.

Note: This will copy all animation data, so if you have other keyframs like location or scale, this will be copied two


How can I make an object visible, only where it intersects with other objects? Apologies for the title, this question is somewhat difficult to ask.
I am currently trying to create a 3D render of a blimp for a project. The aim of the project, without Covid, would have been to implement computer vision systems on the blimp so that it can autonomously navigate an indoor space. As this is now impossible, as part of our hand-ins, we need to make a video showing what it "could" do. As part of the video I am trying to show the field of vision of the cameras mounted on our blimp. Imported from Solidworks is a shape that represents the camera's FOV. I have parented this to the blimp so that it follows its movements. I have currently made this object transparent by reducing the alpha value in an attempt to demonstrate where the cameras can see, i.e. the giant pink mess in the pictures.
My goal is to make it so that this object is only visible on the walls/floor, where it intersects. This would be a better of the camera FOV, it would allow for more intuitive understanding of where on the walls/floor it could see. This is important, as the camera needs to be able to see a certain amount of beacons on the wall for the computer vision to work.
Things I have already attempted:
I have tried using a shrink-wrap modifier to wrap the shape to the surfaces. This does not have the desired affect as it distorts the shape.
I have also tried using a Boolean intercept with the required surfaces. This made a horrible mess.
Any help is greatly appreciated, the images attached show what I currently have and what I'm trying to get:

This is what I currently have, a big translucent object that represents the cameras field of view.

This is the affect I'm trying to achieve, except on all walls and the floor, I made this using shrinkwrap, but as said it distorts the object.

For this case, could you just use a UV Project modifier on the room, with the camera as its projector?

The room's mesh needs to be Simple-Subdivided sufficiently for the interpolation in the UV-mapping to approximate the geometry well.
The projection can be given its own UV Map, which we can call up in the room's material. The aspect ratio of the projection modifier has to be set to that of your camera.

Somewhere in your shader tree, you test the room's UV coordinate in the projected UV map, for both X and Y between 0 and 1.

Here, the shader just switches color, but you could mix that with the existing material of your room.
For more than one camera, duplicate the set-up, with a UV Project modifier for each camera.
You may have to go a bit further, if you want to exclude parts of the room behind the camera, or parts of the view occluded by intervening objects.. see here.. but I'm sure this case would be simpler than that one, if it needed elaboration.


Should i run SLI or not? I were given two 580 GTX evga cards and thinking of putting them to use. Should I use SLI or not? I know that sli makes two card work as one etc. Hear some say SLI is not good for cycles, better to run them without the bridge.

any advice?

Short answer: turn it off when rendering with cycles. My video card is almost the same as yours (evga 590gtx, its a dual proc card, so the computer detects it as 2 video cards) and runs faster with cycles when not on SLI mode.


UV mapping - Unwrap greyed out I'm using Blender 2.71.

After adding armatures to my model I cannot unwrap or show a uv map. I've done it before on a different model and with the same one. But now I cannot unwrap it at all and the texture won't even show. When selecting all in edit mode the option to unwrap is greyed out.

I was following this tutorial to add armatures if this helps: https://www.youtube.com/watch?v=PPbSGUPj72w

This is because you have no faces.

To add faces, select everything with A and press F:


Keyframed animation from csv using animation nodes I'm rather new to blender but would like to try to animate flows (in my case movements of animals between herds) using data in a csv file with the following structure:

movement#,Start_time,Origin_x, Origin_y, Destination_x, Destination_y

I've seen an excellent answer (here) with animation nodes to animate objects, but in the example, the location was available for each time step. Wouldn't be possible to do this with keyframes linked to location? The minimum "start_time" of the file could be set to 1 and the end keyframe could be a fixed value added to that or a calculated distance adjusted value in another column in the csv.

I've tried my best to develop it from the other example I mentioned, but I'm probably too "Green" on blender to make it work.
The goal is to animate several hundreds of movements using light streaks, but I'll get to that once (if) I manage to do the basics. Any help would be appreciated!

You create a loop and parse all the numbers, create an origin vector and a destination vector. Then in another loop, you use an Animate Vector Node to animate between both vectors, you subtract the parsed starting frame from the time and set the duration to the parsed duration. Use the output vector list to locate your objects and you are done. You can also cache the parsed loop for a performance boost.

Now animate and you will see the animation:

If you have an animal and you want to instance it and locate the instances, you could use the Object instancer node:

There is of course more to this, but it may be complicated for you at this stage.

Here is the file:


I need to snap a the face of an object without changing the relationship of the origin point to that object I have a unfolding object here I created using the Origamify add on. this add on allows me to fold and unfold this object and I need to keep that. If I move the origin point folding mechanism no longer works. So far I can snap the object to the plane but it won't snap flat it only snaps at a 90 degree angle, or the original angle the object was created at. If I'm only unfolding a cube that's not a big deal because I can manually rotate the object. But if I have a more complex model with a complicated angle from the object to the origin point, I can't get the flat series of objects to snap to the base plane.
https://youtu.be/ZLkyWGQ-_2I
this videos show the intended result. basically I need a way to snap one plane to another where the entire object rotates according to moving planes movement.

A number of ways of doing this, but here's one that should preserve all the relationships in your origami. It looks from your picture as if all the folding parts of the model are separate objects, with their origins on the folds, all parented to a static part, with its origin off-plane.
In brief: parent the existing origami-hierarchy to another object aligned to, and in its plane. Then snap the new parent.
Not so brief, and assuming the worst case, with the origami and the target plane both skew to the world and their own object-axes:

With the T > 3D Cursor tool active, and its N > Tool tab options set to 'Surface Project' and Orientation 'Geometry', drag the cursor to somewhere on the static section of your origami.
-ShiftACreate an Empty there, and in its adjustment panel, set its 'Align' to '3D Cursor'
CtrlP parent the static section to the Empty.

If the plane you are aiming at is skew to the world, create a Transform Orientation from its face in Edit Mode by selecting it and clicking the little '+' in the Header's Transform Orientation dropdown. (You won't need to, if the target plane is in World XY.)
With the Empty selected, Header > Object Menu > Transform > Align to Transform Orientation, with the newly created orientation selected. Your origami should now be aligned to the plane.
Snap the Empty to the plane, any way you choose
AltP un-parent your origami from the Empty, with 'Clear and Keep Transformation'.

This really is the worst case: if your origami's local axes are aligned to their planes, or the target plane is aligned to the world, you can skip some of these steps.


Get number of particles with Python I'm troubleshooting a large particle system and for that I'd like to get the total number of particles. Is there a Python command that I can use to retrieve it?

I expect this number to be the same as the number of vertices used to generate the particle system (and to be no larger than the number of particles specified in the Particles Properties tab), but I need to confirm to rule out one possible source of error in the model.

Many thanks in advance if you know the answer and care to share it!

In case you mean the number of live particles, rather than the total number of particles, you can get it thus:

o  = bpy.context.object        # Active object
ps = o.particle_systems.active # Active particle system
nLiveParticles = len([
    p for p in ps.particles if p.alive_state == 'ALIVE'
])

For the general number of particles, you can simply print:

print( len( ps.particles ) )

This will likely be identical to the number you've specified in your particle system settings, which you can also access here:

print( ps.settings.count )

So if your object is a mesh, and you want to test whether the total particle count or live particle count equals the number of vertices, you can just assert these conditions, and get an assertion error if any of them is false:

>>> assert len( ps.particles ) == ps.settings.count, "Total number of particles equals PS settings"

>>> assert len([ p for p in ps.particles if p.alive_state == 'ALIVE' ]) == len( o.data.vertices ), "Number of live particles equals number of vertices"
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
AssertionError: Number of live particles equals number of vertices


mirrored mesh not showing up in edit mode Basically, I have added a mirror modifier to my mesh but it is only showing up in object mode and I was wondering how to make it show up in edit mode too

In the Properties Window > Modifiers Tab > Mirror Modifier look for the button on the top that reads Display Modifier in Edit Mode, the one with the cube with four vertex highlighted.


How to properly light a scene that's both indoors and outdoors I'm creating an architectural rendering and I would like the inside of the house to be visible, yet, I want the windows to be closed because that's what I was asked.
The problem is, with Sun strength set to 5 the insides look very dark if seen from the outside (see swimming pool area). If I want the inside to be illuminated like in the first picture, I have to set the sun strength lamp to 20.
The lamps on the inside have not been touched between renderings, but they don't seem to be enough.

I have clamp direct set to 0 and clamp indirect set to 4.
2000 samples.
Filter Glossy set to 1
The glass material is set like picture number 4
Background (enviroment) has a strenght of 1.2

Is there a way to achieve the same light from the inside and the outise in just one rendering?

(Also any advice on how to make the sky look better is higly appreciated)

On a bright sunny day, the exterior will always be much brighter than indoors by several magnitudes. In the real world, photographers deal with this by adding and hiding light sources and making the interiors brighter until they get an image with a dynamic range that is within the limitations of the imaging device and the artistic intentions they are after.

There is no reason why you couldn't do the same, with the added bonus that in 3D rendering you can create light suorces that are invisible to the camera...

Create light sources the size of the windows and place them in a way that they don't block the incoming light, but suplement it. That way you'd still feel that the light is coming from outside the window, but in reality is coming from a light source inside the room. It is very important that you do not try to make the interiors as bright as the exteriors, it would break the illusion of realism. When you are indoors the exterior should feel a bit brighter and when looking at things from the outside the interior would be a somehow shaded (why would you want to buy a house that offers no escape from the intense sun light?)

A very important step towards realism is to create your scene with a much wider dynamic range, so that you can still keep values that are like those in the real world. But the trick is in how those values get displayed in the final image. The default sRGB color transforms for blender will severely limit the way light values can be displayed, try using the Filmic BLender transforms.


What is the difference between the 'Symmetry Mirror' and 'X Mirror' options when weight painting? Can anyone describe the difference between the options shown here?
Note: When the  X Mirror radio button under Options is toggled, is does not toggle X Mirror under Symmetry.

I can get you part of the way there, but I have the same question as you with regard to the ones I don't know. Any further input is therefore very welcome.

The Weight is the setting which controls the degree of influence that your brush will have in assigning vertex weight values. Setting to .5, say, would mean that you want the vertex weight values that will be added via weight painting to be able to reach a value as high as .5, but never go higher. It sets the upper-most limit for the weight values, so that you will never get higher ones from  painting.

The Radius setting is simply the size of your brush.

The Strength is the setting which determines the rate at which an applied brush stroke will have whatever affect it will have, as determined by other settings. The higher it is, the less duration is needed (and less pressure if you use a tablet) before its full effect can be finally realized.

The Falloff: Cursor has to do with how the brush's effect will evaluate in space. There is the ability to have a brush which only affects the surface of an object, in a kind of 2D painted-on way, or alternatively, it can affect the object as if the brush itself were a 3D sphere, affecting anything within its zone of influence. As to which of these two behaviors comes along with the Cursor option, I'm not sure.

The Mirror option under the Symmetry section is one I definitely know about, as it caused me grief in the beginning. What it does is mirror painted weights. However, it doesn't copy vertex weight data to any other vertex groups. Instead, it copies vertex weight data to the other side of the mesh, but that data will still be part of the currently targeted vertex group. Meaning that you will get influence from whatever bone corresponds to the vertex group you are currently targeting not only on this side of the mesh, where you want it, but on the other side of the mesh also, where you almost certainly don't want it. I don't use this option, and I don't know why anyone would.

Auto-Normalize, I have to guess about a bit. I think it is possible to have all your vertex weights add up to a value of 1, meaning that any changes in weight painting are only possible by altering the ratios of all weights, such that they will all still add up to one in total, no matter how they are changed. My guess is that this setting allows normalization to be an "always on" feature. But I'm not an expert on this. I don't yet know why normalization is even used, nor why it is useful. I'm still trying to wrap my head around it. Sorry I can't tell you more.

Now, X-Mirror is almost certainly what you actually wanted when you first selected Mirror under the Symmetry section. It does what you usually want from symmetry. It copies the vertex weight data from the currently targeted vertex group and adds it to the corresponding vertex group on the other side of the mesh. This is a real time saver, as it means you can mostly only weight paint one side of your mesh, and get mirrored weight values automatically. It only works if you have corresponding vertex groups already in existence, of course. But you likely will, since most folks always bind their meshes using the With Automatic Weights option.

Topology Mirror is the one setting that I have absolutely no clue about. Nothing I have read, stumbled upon, or actively researched has helped me get any idea what it is, or when I would use it. I feel like I should at least have a word or two on the subject by now. But I don't. Not even after reading the Blender manual. So I'm hoping someone can help us both out here.

That's all I know. Hope it helps.


Import Rhinoceros 5.4.1 to Blender 2.8 I wanted to export .OBJ file to keep layers from Rhino in Blender. But when importing to Blender nothing shows and layers don't work either. Here are screenshots of export process:

Model in Rhino:

Settings used to tessellate the model into polygons:

OBJ export settings:

result in Blender:

I also tried it in Windows enviroment and nothing changes. Another weird thing is that the .OBJ file is 920MB in size.

Thanks anyone for any advice in advance

Data Transfer always involves two components: An export process and an import process. Both of them need to be aligned with each other to produces a correct result - or at least a desired one. Now, we don't have your source files available, but let's tackle your comments bit by bit:

Another weird thing is that the .OBJ file is 920MB in size

This is basically buried in your tessellation settings. Your model is an architectural one, meaning it spans across a dimension of roughly 100 meters. Rhinos internal units however deal with sizes of millimeters or centimeters (to be checked within your Rhino settings), and the tessellation refers to that. The defaults are crafted to objects at the size of a coffee machine would tessellate nicely. You're feeding something considerably bigger to it, so the settings for tessellation can be lowered to compensate for that. Especially the minimum edge length seems to be far too fine from where I stand. As soon as objects are curved, this will result in very dense triangulation.

But when importing to Blender nothing shows and layers don't work either

The first part is a misconception. Check your own screenshot and have a look at the right on the Outliner area:

You'll notice that there are a bunch of objects. Generally that means that data has been transferred, just you don't see it. And this leads to the second part, which is:
OBJ sucks at what it actually CAN store

OBJ has no definition in the file format for layers, as has been mentioned in the comments already. You will only get as far as achieving at least that things come in as more than one object (which is the case for you already), but that's about it.

Worse than that, OBJ has no means of storing units. That means, when you try to store a vertex located at (1.0, 0.0, 0.0), OBJ will happily write down the numbers, but not what 1.0 actually means. Millimeters? Meters? Feet? Inches? You won't know. So what breaks in your scene is that Rhino exports the numbers very likely as millimeters, but Blender on the import side interprets that same raw numbers as meters. This results in your scene scaled up by a factor of 1.000, too big to see it in the viewport.

The worst part however is that the OBJ importer in Blender has no Scale setting either, which you could use to apply that unit compensation. Blender 2.82 does have it for the exporter, but not for the importer, for reasons that are beyond me. So the only thing you can do on the Blender side is to scale down the scene using the 3D Cursor as the origin by a factor of 1.000. Maybe you have said unit compensation on the Rhino side.


How to get the texture and color of a peeled and cross section of banana? Something like in the photo I want to create a composition of banana, I have made one with it's peel but having difficulty in giving texture and the color to the the cylindrical cross section.

This is a slice made to be slightly larger than the tube, two different materials.

tube has UV maps for smart unwrap for the sides and end and project from view for the straight end projection

Scaled up the slice on the y axis to prepare to use as booltool cutter

Set a booltool difference and then an error shows, to fix I swapped UV maps in the main tube image material


Adding Delay in Constraint Is it possible to add something like a delay to a constraint (e.g. Transform or Copy Loc / Rot) or to a driver?

For example, a driver should copy the rotation of a target which it had 10 frames ago. At the moment I'm using a scripted expression for copy rotation.

bpy.data.objects['Armature'].pose.bones['Bone'].rotation_euler.y

But this, of course, is only the rotation in the actual frame. I would not use any keyframes.

You can use a conditional if statement in the Driver expression which waits for a specific frame number before evaluating as true.

So for example, here a Camera is tracking an object (Sphere-X) based on a Driver but I don't want this to kick in until frame 130 (until then I want the camera to stay at 200 on the x-axis):

Using the expression:

var if frame>130 else 200

Based on a ternary conditional operator:

valueIfTrue if isConditionTrue else valueIfFalse


image.new() is not working with parameter "color" as per 2.82a API, the color parameter is not accepted by image.new()

a work around with #bpy.data.images["texture"].generated_color = (1, 1, 1, 1) in the next line would achieve the same.


How do you make objects appear in a blender scene at specific times? I am creating a blender animation that involves an explosion. I created the explosion object in a separate blender file, but if I import the object into the main scene, It just plays the explosion animation at frame 1. But I want the explosion to happen at frame 245. Is there a way to make the object come into the scene at that specific frame, or can I at least keep the animation paused until then? Or am I thinking along the wrong lines entirely?

Note: I cannot just create the explosion within the main file because it gets all dragged out and it stutters. It works fine when I import it, it just happens too early.

While you can animate the visibility of an object, I think you are more interested in adjusting the timing of the animation. Using the dopesheet you can select the keyframes of your animation and move them along to start at frame 245.

Similar tot he 3dview you can use A to select all keyframes and G to move them. After grabbing the keyframes you can also type in the number of frames you want to move them.

You may also be able to render two separate animations and join them together in the VSE


Easily setting numerical values for geometry, like Lightwave's Modeler does I'm moving from Lightwave to Blender, and there's something that's super easy in Modeler that I can't work out how to do in Blender.
In Modeler if I have geometry selected and hit i I get the info panel which gives me position and other info on any / all of the selected geometry.

This is particularly useful if I want to set a bunch of verts to a particular position, on any or all of the axes—I can just type in a position (or weight value) and apply it to all selected vertices. Is there any way of seeing or editing vertex info directly  in Blender?

Even without the info panel it's a one-step operation to assign a value to any selected geometry, I hit v and get a set value dialog. This works for verts, edges and faces. Does this exist for Blender?

You can edit the positions of single vertices using the properties panel which can be toggled by pressing [N], then under the item tab you can see the XYZ coordinates. You cannot see each verts position individually but you can change them all at once.
Another useful tip is that if you want to  bring a vert to the same plane of another you can select the verts you want to move, and then the one on the X Y or Z you want it to be, and set the transform pivot to active. Then just press [S] to scale the [X], [Y], or [Z] button that correlates and then 0.
(Will add example gifs soon)


Python: How to Save UV Layout With Specific Background Color? select_obj(some_obj)
bpy.ops.object.mode_set(mode="EDIT")
bpy.ops.mesh.select_all(action='TOGGLE')
bpy.ops.mesh.select_all(action='TOGGLE')
# how to set background color of this image?
bpy.ops.uv.export_layout(filepath='uv_layout.png', size=(1024, 1024), opacity=1)
bpy.ops.object.mode_set(mode="OBJECT")
bpy.ops.object.select_all(action='TOGGLE')

The image looks like this (it has a transparent background):

However, I want to achieve a colored background like this:

I've tried to import PIL and do the image manipulation with this module, but it seems as if it isn't included in Blender.

It is not that hard to overwrite the function provide by the module itself (it is still in Python scope):
import io_mesh_uv_layout
from io_mesh_uv_layout.export_uv_png import *

def new_export(filepath, face_data, colors, width, height, opacity):
    offscreen = gpu.types.GPUOffScreen(width, height)
    offscreen.bind()

    try:
        bgl.glClearColor(0.0, 1.0, 0.0, 0.9)  # Here, a green, 0.9 alpha background
        bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
        draw_image(face_data, opacity)

        pixel_data = get_pixel_data_from_current_back_buffer(width, height)
        save_pixels(filepath, pixel_data, width, height)
    finally:
        offscreen.unbind()
        offscreen.free()

io_mesh_uv_layout.export_uv_png.export = new_export  # Directly overwrite it

In your addon, you can provide a color picker(from a color float property) for user. And after updating the value, patch the original export function on the fly. There shouldn't be any tricky part and no performance issue at all.

A more complex method is to modify the uv layout export itself:

Which needs to modify the operator itself, kind of tricky but more flexible to use:
 (Comment included)


I can't click on my object in any mode can't click on any object in any mode
I have just started blender and I have not made anything. I have been trying to make some dice. My functions work, but I can't click on anything in my scene. This annoying target follows my mouse around.

I am using Blender on rollapp
version 2.79

I reckon you are clicking with the wrong button. Use the Right Mouse Button (often abbreviated as RMB).

The annoying target is called the 3D cursor if you are talking about this.

This fellow will act as a kind of landmark and can be moved by clicking Left Mouse Button (often abbreviated as LMB).

If this feels uncomfortable, you may remap it at the user preferences.
This may help.

Also, if you have an experience in other 3dcg softwares, such as MAYA, using remapping presets maybe useful. They are accessible at the Splash Screen.

However, I recommend you NOT to remap the mouse buttons. Blender has some wonderful mouse button shortcuts and if you innocently remap buttons, you will lose them. Besides, you will get use to them.

Finally, if you are intersting in why blender adopted this peculiar UI, I've heard that this system reduces stress on the index finger. Indeed, I find my index finger exhausted on some other 3DCG software.

Good Luck


Clear UV seams not clearing seams I want to clear UV seams on a object and remake them myself, but neither UV Mapping > Clear Seams nor UV Mapping > Reset Seems to work. Please see attachment images.

This is my mesh before i do UV Mapping > Clear Seams:

This is my mesh after I did UV Mapping > Clear Seams. Seams still present:

How do I fix this problem? I can't clearly cut my mesh while those seams are around.

Here is the scene:

I think this model was originally created in 3Ds Max.

There were no seams in the model the edges were marked as sharp so the only thing you have to do to clear those Ctrl+ E > Clear Sharp.


Random Distortion-Like in Final Image | Rendering Problem in Blender i already rendered several scenes in blender and this is my first time to encounter this. After the compositing, the rendered image looks weird, some kind of distortion or something. I can't find any answer on google. Is it a bug or something? I use blender 2.83.
Note: the model is a very simple mesh.

I've read some comments above and try their suggestion, and the problem is that i have a very low sample count. The solution is of course to increase the sample count. Thanks to them.


GPU rendering on AMD Radeon HD 6800 series My graphics card is AMD Radeon HD 6800 series. Can it rendering on GPU? And if it so, how to do it? Rendering animations on CPU it's veeeeeeery for a long time. 1 frame ~ 7-15 minutes & it's only 100 samples.

Update:
Here are the official list of AMD card that Blender supports for OpenCL. It does not have Radeon HD 6800.

OpenCL Supported Devices

It is likely that Blender does not support HD 6800 for GPU rendering.

I am going to assume the following:

You are using Blender 2.76 (latest as of 14/03/16).
You are using Cycles Render.

To use GPU render on Cycles Render, you need to enable OpenCL in Blender.

To do so, you need to:

Go to "User Preferences" (Ctrl+Alt+U)
Go to "System" tab.
Under "Compute Device", click on "OpenCL".
In the scroll box, choose your GPU.

When you render the next time, select GPU.

Images are linked from:

Enabling GPU rendering for Cycles?
https://www.blender.org/forum/viewtopic.php?t=25173


Is it possible to delete linked Mesh Data? I need to get rid of every multi user block data but there is too many of it so i can't do "make single user" for every model. I want only worldspawn_16740 to stay.

Not directly. I have written a script that imports and exports meshes, when the unlinked data hits a critical amount of objects (around 50k) Blender slows down like crazy. I ended up restarting it for each cycle. All I found out - and I talked to a lot of people, even at Bcon - that's not supported. I would love to be proven wrong, though.
However you can delete them by re-loading your file. Make sure there is a 0 in front of your datablock. Every datablock that has no users (materials, images etc. as well) will be deleted on closing the file. So if you delete every object that has the according mesh attached, the datablock will be deleted next time you open the file.
I don't know what you want to achieve by using 'make single user', but selecting a couple of objects and then the one with worldspawn_16740 last, pressing CRTL L -> link object data will have the same effect as deleting the objects in regard to their meshes.
EDIT: Looks like more ppl had the same problem and as so often the devs listened. In Blender 2.8+ you can do this:

I know that doesn't help with batch setting the users to 0, but I'm just happy I found this.


2.8 Shortcut to turn on/off "Emulate 3 Button Mouse"..? Could use some insight please, I am not sure how to properly formulate this question (brand new to 3D and Blender 2.8). After reading up on various forums there maybe a way to reprogram a keymap shortcut for the ALT key?

I prefer having the "emulate 3 Button Mouse" checked for general tumbling/navigation so I don't have to use the MMB when zooming or nudging viewport but when  "emulate 3 Button Mouse" is checked it nukes the ability to employ the ALT key for selecting edge loops/rings.

I found that Left Double Click works although selection is limited and does not do half of what is available as far as selecting/deselecting goes... Hmmm?

Sorry for long scenario here, not sure if there is a workaround. It's be nice though.

Thanks in advance.
:)

Blender's keymap requires an operator to execute when the shortcut is pressed. Currently there is no operator to toggle the Emulate 3 Button Mouse option from the preferences, but this can be solved by writing a little add-on.

The following add-on creates an operator that allows to toggle the preference option and can therefore be added as a shortcut into your keymap. Copy & paste the script into a file and save it with the .py file extension.

bl_info = {
    "name": "Toggle 'Emulate 3 Button Mouse'",
    "author": "Robert Guetzkow",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "Edit > Operator Search",
    "description": "Operator for toggeling the 'Emulate 3 Button Mouse' option.",
    "warning": "",
    "wiki_url": "",
    "category": "Preferences"}

import bpy

class PREFERENCES_OT_toggle_emulate_3_button_mouse(bpy.types.Operator):
    bl_idname = "preferences.toggle_emulate_3_button_mouse"
    bl_label = "Toggle 'Emulate 3 Button Mouse'"

    def execute(self, context):
        context.preferences.inputs.use_mouse_emulate_3_button = not context.preferences.inputs.use_mouse_emulate_3_button
        return {"FINISHED"}

classes = (PREFERENCES_OT_toggle_emulate_3_button_mouse,)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()

You can install the add-on in Edit > Preferences > Add-ons.

Once it's installed you will have to enable it. You can find it in the Preferences category.

Then switch to the Keymap in the preferences and add a shortcut referencing the operator from the add-on. You'll have to decide what key binding you'd like to use.


Creating Wind/Dust storm effect animations with cycles? Currently i am into still images, but i am starting to get into animation and i was wondering is there a way to create a dust storm like effect with the particles moveing so that it could give the appearance of flight? and is there also a way to create the effect of the fast spinning Propeller. Thanks Guys

Firstly, I would like to mention that the plane looks amazing :D

For the propeller, you could use motion blur and rotate the blade extremely fast. You could also simply download a photo from the internet and rotate it every few frames.

The dust/wind, that is going to be more complicated...

You will need to create a plane and give it a particle simulation. Disable the gravity and give it some Brownian for more effect. Stretch the particles for motion blur (or just enable it under Render Settings).

For added effect, Create a massive cube and give it a Volume Scatter node for the Volume, whilst disabling the Surface node.

Since I had nothing better to do, I created a .blend ;)

Didn't focus on the material that much...


How to get rid of these displacement artifacts? Got a big plane, sculpted some hills, put a displacement modifier on the plane, the coordinates are a uv map for just the hills. Now there is these nasty artifacts at the borders of the whole thing. Also notice how high the strength is, usually you have to set it lower than 1.

Is there an easy workaround to get rid of the artifacts or do I need to sculpt it?

What is the reason for the high strength of the modifier to see results of the displacement?

The sculpted hill. The selection is the uv map which the modifier gets applied to. (one won't see the back of it)

The displacement map. Don't worry about the upper part it's from a hill somewhere else.

If I understand you correct, it is the sudden drop in the terrain and the jagged edge that you want to avoid. You must smoothe the edges of the heightmap.

The transparent portion of your texture is treated as white. So it goes quite abruptly from dark to white.

One way to do this is in photoshop.

Duplicate the layer.
Smooth the bottom layer. (the smaller blur radius the better result)
Merge the two layers.
Repeat this until the entire image is filled.

It is handy to make this an action (a macro or a script) in photoshop. It can easily be recorded.

Halfway step:

Final result:


Define properties as annotations for dynamic property group I'm trying to figure out how to generate a dynamic property group class, but I keep getting the annotations error: Warning: class PropBools contains a property which should be an annotation!. And following this error, I get the following printed line for each property: assign as a type annotation: PropBools.******.

Here is the code I have so far. I can show details about the list of data if it will help at all, but I don't think it will influence the error I'm getting.

PropBools = type(

        # typename
        'PropBools',

        # base class
        ( bpy.types.PropertyGroup , ),

        # dictionary of bool properties
        {
            ft.ID : bpy.props.BoolProperty(
                default         = False,
                name            = ft.Name,
                description     = ft.Desc,

                ) for ft in prop_list_data
        }
    )

Is it possible to do this without throwing the warning/error? Has anyone successfully generated a dynamic property group since the annotation requirement update?

Edit: I found Blender 2.8 - Field property declaration and dynamic class creation , which may be the only solution. Here is the same code, updated to define an annotations dictionary:

PropBools = type(

        # typename
        'PropBools',

        # base class
        ( bpy.types.PropertyGroup , ),

        # dictionary of bool properties
        {
            '__annotations__' :
            {
                ft.ID : ( BoolProperty,
                {
                    'default'       : False,
                    'name'          : ft.Name,
                    'description'   : ft.Desc

                } ) for ft in fuse.Type.Index
            }
        }
    )

You can even unpack dictionaries of extra parameters into it (this is a different dynamic class):

PropValues = type(

        # typename
        'PropValues',

        # base class
        ( bpy.types.PropertyGroup , ),

        # generate dictionary of override properties
        {
            '__annotations__' :
            {
                ft.ID : ( ft.Prop.Func,
                {
                    'default'       : ft.Default,
                    'name'          : ft.Name,
                    'description'   : ft.Desc,

                    # specify our property event function for updates
                    'update'        : ft.ValUpdate,

                    # unpack dictionary of keyword arguments to this property function
                    **ft.xop

                } ) for ft in fuse.Type.Index
            }
        }
    )

No warnings or errors using these yet, so seems promising.

Edit: This works great. The problems listed below were caused by an issue in the property list data, which was causing a silent error, which prevented ALL of the properties from registering, making the dynamic class appear empty. After finding and fixing the silent error, everything appears to be working.

However, the properties don't exist as they typically would in an instanced property group (of either dynamic class). Attempting to access a property using the syntax my_prop_group["id_name"] throws an error as if it doesn't exist. (A silent property error was causing this).

I'm not sure if I need to manually assign each one to default values (my_prop_group["id_name"] = DEFAULT).

Not sure if I need to include the entire dictionary of properties along with the __annotations__ dictionary of the same properties. Printing dir(*) of non-dynamic property groups seems to indicate that they should have both defined (silent error was causing properties to not register).

Hi your post is the closest to the issue that I'm having, and it seems like you've resolved your problem, I'm just not sure how the structure of your class can relate to the structure of the class in my problem that's throwing the error
I keep getting these annotation-type warnings which I understand are common but not breaking for addons that have compatibility 2.8 and 2.7, however, when trying to run blender in the background it becomes breaking.
Warning: class WM_OT_import_modal contains a property that should be an annotation!
c:\Users\Willard\Desktop\blender\2.82\scripts\addons\sketchfab_init_.py:1648
assign as a type annotation: WM_OT_import_modal.gltf_path
assign as a type annotation: WM_OT_import_modal.uid
You are using the latest version(1.3.1)
ERROR (wm.operator): c:\b\win64_cmake_vs2017\win64_cmake_vs2017\blender.git\source\blender\windowmanager\intern\wm_event_system.c:1486 wm_operator_invoke: invalid operator call ‘WM_OT_import_modal’

Below is the class in the addon throwing the error.
class ImportModalOperator(bpy.types.Operator):
    bl_idname = "wm.import_modal"
    bl_label = "Import glTF model into Sketchfab"ltf)
    bl_options = {'INTERNAL'}

    gltf_path = StringProperty()
    uid = StringProperty()

It would seem I just need to assign the properties: “gltf_path” and “uid” as type annotation to fix my error. But I can not conceive how to do this


Computer Crashed - entire scene replaced with Default Cube Running 64 bit Ubuntu Studio 14.04, GTX 970 using NVIDIA 352.93 with CUDA 7.5 with an AMD 8 core processor. I've had problems with the computer freezing up during graphically intensive moments, I suspect I am due for a reinstall of Ubuntu.

My blender-related problem is this: I was working on a landscape scene, and the computer crashed, so hard it wouldn't load from the motherboard screen for several resets. I've just gotten the computer to restart, and after navigating back to my blender file, Blender throws me a "File Format is not Supported" error, and instead of a landscape, I have a default cube, with default lighting, and the default BI engine in both the main blender file, and the .blend1. It also seems to have propagated to my Dropbox, so every instance of this file that I am aware of loads just the default cube. I have also attempted to load last autosave--there is nothing in the tmp file, and load last session--Blender tells me that quit.blend does not exist.

I've sunk about a week into this thing, is there any hope of recovering this file?

Can  you please try to see

File - > Recover Auto Save

As shown below:

May be listed here for you, Ubuntu may be slightly different.

I hope it will help you :)


How to quickly jump from one entry box to another? Is there a way to quickly jump from one input box to another? For example, in the retopoflow menu, is there a way to go from the source object to the target object box with a button instead of manually clicking it? Usually you could use tab for things like this online but it doesn't seem to work in this case. I was just curious because I'm trying to speed up my workflow for retopology with many objects.

The eyedropper button next to each setting activates an operator, which means you can connect it to a keyboard shortcut.

In the preferences under Input you can add a new keyboard shortcut. I would suggest adding it under 3DView/ObjectMode. By scrolling down to the bottom you will find an Add New button which you click and then you fill in the details.

For the operator name, which starts as none, enter cgcookie.eye_dropper, then the target_property will become available where you enter source_object to set the source and target_object for the target. Then choose the shortcut settings you want to use for each. By clicking the Save User Settings button, the shortcut will be available every time you start blender.

Here I set ⎇ AltW to set the source object and ⎇ AltE to select the target object.

Now you can press ⎇ AltW and click an object to set it as the source object and ⎇ AltE to choose the target object.


Clean Up Imported Geometry If importing Geometry (FBX) to Blender it will import triangulated, which doesn't work with Displacement / Subsurface Modifier. Is there any quick way to clean up imported Geometry without redrawing it? Clean Up from Mesh Menu doesn't work. Remesh Modifier also doesn't work. Second Image shows what happens using Limited Dissolve.

No, there is no quick and easy way to fix imported CAD models that have messy and triangulated geometry.
You can try to make it better, but in most cases geometry made in CAD applications is messy to start with and triangulated on top of that. Even though you can see some suggested solutions working on really basic geometry, most of the time models you really need tend to differ a lot from a triangulated cube. Messy geometry typically coming from CAD or solid modelling software packages is usually a lot more difficult to work with when you need to make bevels on it, select and edit parts of it, mark seems, or UV unwrap the models since you cannot use any of the modeling or selection tools related to geometry loops or rings and the topology density is unevenly distributed. It is very easy to get lost in it while trying to fix it and spend way more time working on it than you would if you chose to remodel it from scratch and to end up not only with more time wasted but with a lot lower quality result as well. It is really worth considering to just use this kind of geometry as reference for remodelling it all.
In addition to that, you might come across some automatic retopology solutions out there like for example zRemesher in ZBrush or Quad Remesher and while these seem to be and in a lot of ways are really amazing and miraculous tools, and can indeed be a great help and save many hours of work, they are still unable to solve a lot of cases, so remodeling by hand unfortunately is still very often the only solution.


No audio output in rendered video file I am trying to render a video (that is not a .dvd file) with audio using Blender. So far, I haven't had any success; all of my rendered clips have had the audio missing from the playback. I've tried a couple of different encoding and output options but nothing has worked so far (except for a .dvd file that I rendered originally).

What are my options for rendering a video with working audio?

Open a Properties Pane.
Scroll down until you see the "Encoding" dropdown tab.
You'll see Audio Codecs. If "None" is selected, there will be no audio.
Here is an example.


How do I use Proxies when compositing strips? I am trying to make a video by combining three different sources.  The main source has a monologue and runs in the background.  At certain times, the other videos pop up on the screen.  I need to sync the mouth movements in the small clips with the background video.

The two overlays have no audio.  The audio tracks were deleted.
The two overlays have transforms (offset and crop) applied.
The two overlays are applied as Alpha Over blends.

Everything shows up just fine when rendered, but it has proven incredibly difficult to lip-sync...so I am trying to use proxies.

Proxies are generated and the base video works fine, but neither of the composite strips appear in the preview.

I have tried turning on all options I could find: prefetch, cache composite, cache raw, strip cache, per strip, per project - and have not found a combination that allows me to see the overlays with the background video.

I even tried swapping one of the overlays onto the first video channel (2 - channel 1 is the background clip's audio), but then nothing appeared in the preview.

Oh, and when looking in the file system, the proxy files for each video is present.

Even if I have to hide the background clip, I can lip sync just using the over videos and background audio.

Using Blender 2.82.

In the original approach, Offset and Crop were applied to the strip.  This approach did not work.
However, it does work when Offset and Crop are applied to a transform.  Click on the strip, then in the menu, choose Add -> Effect Strip -> Transform.   This then creates a green transform block for the strip (in the next channel).  By applying the Offset and Crop to the transform and then regenerate the proxies, everything worked as expected.


Select boundaries of uv islands in 3d viewport I need to select edges of all uv boundaries similar to how i can select all seam\sharp edges with shift-g menu.
I was thinking of solution where you (using python) iterate through all vertices(or edges) and select only those that have more than one projection in uv space.
Can you help me with API or other solution?
p.s. i need this to get rid of sharp edges that somehow appeared inside of my uv islands

as a workaround found this option, not a perfect solution if you already have edges marked as seams and you need them. hope to see the proper answer


Fastest way to move vertices with python I'm still a python beginner and I'm writing a script/addon that moves vertices of a mesh following a "long" calcul every time frame changes. Something like :

import bpy

def MoveVertices(scene):
    obj = bpy.data.objects['Cube4']
    '''creating a copied mesh (.to_mesh) here to retrieve vertices positions later
    '+ setting some variables
    '''
    for v in obj.data.vertices:
        '''long calcul to find the vector
        ' like 20 lines of code some if statements and calculus
        '''
        v.co += vector
    ''' setting some variables + removing tmp mesh (.remove)'''
    return {'FINISHED'}

def register():
    bpy.app.handlers.frame_change_post.clear()
    bpy.app.handlers.frame_change_post.append(MoveVertices)

def unregister():
    bpy.app.handlers.frame_change_post.remove(MoveVertices)

if __name__ == "__main__":
    register()

What happens of course is when there is a lot of vertices the system starts to slow down a lot. I know for performance sake I should write in C/C++ and do a custom blender build but I was wondering if there isn't a more efficient way to move bunch of vertices in "real time" with python.

Here are my questions :

does a straight loop through all vertices like I'm doing is the best
way to go concerning calcul speed?
would using bmesh help in that matter?
what about slicing the amount of vertices and launching the calcul
in parallel for each chunks (with a modal timer operator) ? Would that be an idea ?
is there something I'm missing in the python api that could help ?

Thx a lot for your help.

foreach_set() is actually very fast but not usable in my case because I'm not always going through all vertices in all cases.
It seems that the "for" loop is the best way to go.

Using bmesh actually is a little faster because it doen't refresh the scene each time the script changes the location of a vertex.

Thx @CoDEmanX and  @MikePan for the help.


Blender Game Engine dynamic text wordwrap I want to display some text that change dynamically when I select another item. Displaying the text is working, but I'm wondering if there is a way to make the text multilines and/or wordwraping it so the text don't shows on only one line.

I saw some explainations on the web but these informations are over 8 years old.

It can be done by adding some "\n" in the string, but i would like to do it automatically like any textbox in most of UIs.

Can you guys help me on that issue please?

You can easily achieve it by using the Python standard library's textwrap module. I've written this article about text alignement in BGE some time ago, you may find it useful (it's in brazilian portuguese, you may try to use Google Translate on it). Here I will explain about left alignement, but in the article I explain about center and right alignement as well. Example file with all the modes provided below.

Left aligned text

With this simple setup:

The following code:

import bge
import textwrap

def main(cont):

    # Objects
    own = cont.owner

    # Sensors
    sensor = cont.sensors[0]

    # Properties
    text = 'The Blender Game Engine is a component of Blender, a free and open-source 3D production suite, used for making real-time interactive content. The game engine was written from scratch in C++ as a mostly independent component, and includes support for features such as Python scripting and OpenAL 3D sound.'

    #### INITIALIZE ####
    if sensor.positive:

        # Max number line characters before line breaks
        line_size = 35

        # Left alignement
        own.text = textwrap.fill(text, line_size)

It results in:

Example file


Rendering Blender animations on a server: more RAM or faster CPU or both? For my project Blender is used to take .STL files, and render a GIF animation (first - several jpg are created and then merged together in an animation).
This is all done using a server cron (daily). Obviously, I can't use GPU that can speed up things a lot.

I'm thinking about moving this blender-specific task out of the main server (so it won't make CPU nearly 100% while blender is working), so the application will work independently.

I'm using DigitalOcean for hosting, and it has standard droplets (like, containers or virtual machines) and optimized. Optimized has better CPUs (they are faster). But for the same price Standard droplet has more RAM.

So the question is: what is better for blender to work faster - to have more RAM with ordinary 2 or 4 vCPU (they have slower speed) and 4 or 8 Gb RAM, or better speed but for 2 vCPU and perhaps less amount of RAM (4 Gb)?

And how to optimize the server for blender speed? Any tips that can be applied in my server-related use case?

Note: I assumed that you are just running a single blender render instance on the system at the same time.

Depends on the complexity of you scenes. If these are rather simple scenes than not that much of RAM is needed. Adding more RAM will then not increase performance. More RAM will only increase performance when the machine is going to swap on disk.

If the complexity of the scenes are known, then the Amount of RAM can be received from blender easy (see top bar). Add some percentage slack and you will be fine.

If you still want to render more quick, then just add more CPU's. Blender is optimized to scale very well by just adding more CPU. It does not have noticeable overhead on memory.

Another way to increase performance is to optimize your scenes. There are a lot of topics and tutorials on area's where you can win speed.

So to answer short: Find RAM needed for the complexity of your scenes. Then just add more CPU's.


Separated objects following the original one When i try to separate objects it all works out fine, but when i wanna move the object and keyframe the motion of it moving from the original one the original one just follows it. I tried uparanting, but it doesn't work. How do i solve this? Is this a bug or a feature?

Because when you separated the 2 objects they kept the same animation, and if you change the animation for one it will change it for the other, several objects can share the exact same animation. What you can do is:

Go in the Dopesheet, switch it to Action Editor

Create an new animation from the previous one (Create New Action), or remove all animation (X button).


Animation on keyframe and timeline How do you loop an animation inserted between, for example, keyframe 1 and 20, through out the whole 250 frames on the timeline?
How do you animate a torus on repeat?

When you add keyframes they are stored in an Action to let them repeat add the action as an Action Strip to the NLA Editor and set the repeat property (in the property panel N) to the number of repetitions. Note that the Action Editor is mode of the Dopesheet Editor.


how to view 3D viewport material preview with background? I'm in the shading layout, looking at the 3D viewport. I switch to preview material mode, and turn off Lighting->Scene World. The background shows only a lightly gradiented multi tone color. Is there a key to change this to display the hdri background?

There's a simple workaround.
Put a plane with Glass BSDF material in the background and the HDRi will show.

No need to adjust or enable anything. It just works.


Overlapping walls: edited mesh doesn't recalculate array modifier results Trying an old Blender Guru tutorial 'how to create a high-rise building' I came upon a change I needed to make to the length of the original wall mesh. After setting the length of original mesh I applied a mirror modifier, array modifier to get four walls (offset is an empty that i rotate) and an second array for getting the 14 floors of the building. However the two left windows of the original mesh were to small (rectangular and not square). I tried to change the length by grabbing the right side of the mesh (selected). The thing is now the walls are overlapping instead of getting a larger building as a result of expanding walls. What are possible solutions?

My blend file can be found at: PasteAll

The mirror modifier works by taking into account where the geometry is in relation to the object origin (the orange dot at the centre of the model). The array modifier that controls where the walls are depends on the chosen Empty, which is at the same place as the object origin.

All you have to do is select all the geometry in edit mode and move it on the 'Y' axis (green), away from the object origin (by pressing G, Y) and both the Mirror modifier and the Array modifier will update.


Is it required to attach objects together as one? I'm not done with youtube tutorials and I don't think they will mention it. Do you need to attach all parts together? for example the limbs to the body? I'm gonna use it to make a video game.

It depends on how far you are in designing the object, at the end you want to have as much objects attached to one another and the least amount of vertices so it'll be easier to handle for the engine.
At the beginning you can do as you want so you can edit certain parts better (for example if you have a t-pose it would be nice if you could move the arm away so you can edit the side of the body).


Python to get and iterate loose mesh bodies Say for example i have an object made up of 3 (or more) cubes, loose meshes.
I wanted to use script to iterate each loose mesh (cube).

Is it possible to loop through each loose body and store them in an array, then do something with them in a for loop?

Separating objects based on disconnected geometry ("loose parts") can be accomplished through the operator bpy.ops.mesh.separate(type="LOOSE"). This operator attempts to separate all selected objects by loose parts. After its execution all separated objects, will be selected. If an object is initially selected, that doesn't contain loose parts, it will also be selected after the operator is finished. Therefore, you can access bpy.context.view_layer.objects.selected and get the resulting objects.

Depending on what you intend to do with the objects, you may not want to store references to the objects in a list. If you e.g. modify the collection or view layer, these references may become invalid and accessing them could crash Blender. The safest way is to store the unique names of the objects and access them by name when needed. This is explained in the Gotcha chapter of the API docs.

  TL;DR: Do not keep direct references to Blender data (of any kind)
  when modifying the container of that data, and/or when some undo/redo
  may happen (e.g. during modal operators execution…). Instead, use
  indices (or other data always stored by value in Python, like string
  keys…), that allow you to get access to the desired data.

import bpy

# Separate the selected objects by disconnected geometry
bpy.ops.mesh.separate(type="LOOSE")

# Get the selected objects
separated_obj_names = [obj.name for obj in bpy.context.view_layer.objects.selected]


Render Function - rename filename So close yet so far (I think)

A function within an addon am creating is suppose to rename the file ouput using tokens. This is based on the Oscurart tools.

The projects consists of markers on every frame with different binded cameras. The rendered image name needs to consist of a Marker and Camera.

def replaceMarker (dummy):
    global renderpath
#Set Tokens variables
    cameraCURRENT = bpy.context.scene.camera.name
    markerTIMELINE = []
    for marker in bpy.context.scene.timeline_markers:
        name = marker.name
        markerTIMELINE.extend([name])
    markerCURRENT = markerTIMELINE[bpy.context.scene.frame_current-1]

    tokens = {
        "$Marker":markerCURRENT,
    "$Camera":cameraCURRENT
        }
#Replace filename output
    renderpath = bpy.context.scene.render.filepath

    bpy.context.scene.render.filepath = renderpath.replace("$Marker",tokens["$Marker"]).replace("$Camera",tokens["$Camera"])
    print(bpy.context.scene.render.filepath)
#Clear list to repeat sequence
    markerTIMELINE.clear()

The function does not replace the marker and only uses one camera name.

Am I suppose to more this to the init.py?
How can I call the function between every frame?

Thanks

EDIT
Question to circumvent the issue, it is possible to access the Metadata in fileoutput and use it to rename the file?

So sorry for the very late reply. I found the answer in another thread and with some help.
But below is the Render Function I am currently using.
    bl_idname = "render.colorways"
    bl_label = "Render list"
    bl_description = "Render colorways with marker in filename"

    # Define some variables to register
    _timer = None
    shots = None
    stop = None
    rendering = None
    path = "/tmp/"

    # Set up the handler methods
    def pre(self, scene, depsgraph):
        self.rendering = True

    def post(self, scene, depsgraph):
        self.rendering = False

    def cancelled(self, scene, depsgraph):
        self.stop = True

    def execute(self, context):
        # Define the variables during execution. This allows
        # to define when called from a button
        self.stop = False
        self.rendering = False

        # Get all markers in a list and assign them to shots variable
        itemmarkers = bpy.context.scene.timeline_markers.items()
        self.shots = []
        self.shots.clear
        for m in itemmarkers:
            self.shots.append(m[0])

        #don't know why but I need to begin 1 frame before the start
        bpy.context.scene.frame_set(bpy.context.scene.frame_start - 1)

        self.path = context.scene.render.filepath

        bpy.app.handlers.render_pre.append(self.pre)
        bpy.app.handlers.render_post.append(self.post)
        bpy.app.handlers.render_cancel.append(self.cancelled)

        # The timer gets created and the modal handler
        # is added to the window manager
        self._timer = context.window_manager.event_timer_add(0.5, window=context.window)
        context.window_manager.modal_handler_add(self)

        return {"RUNNING_MODAL"}

    def modal(self, context, event):
        if event.type == 'TIMER':
            scn = context.scene

            # filename prefix ans suffix
            firstpart = bpy.context.scene.TextInputProps.nameprefix
            lastpart = bpy.context.scene.TextInputProps.namesuffix

            # No frames in the list or user hits ESC
            if True in (scn.frame_current >= scn.frame_end, self.stop is True):

                # We remove the handlers and the modal timer to clean everything
                bpy.app.handlers.render_pre.remove(self.pre)
                bpy.app.handlers.render_post.remove(self.post)
                bpy.app.handlers.render_cancel.remove(self.cancelled)
                context.window_manager.event_timer_remove(self._timer)

                # Reset the output path
                scn.render.filepath = self.path
                return {"FINISHED"}

            elif self.rendering is False: # Nothing is currently rendering.
                                          # Proceed to render.
                # Get the marker from the list
                marker_name  = self.shots[scn.frame_current]

                #Create filename variable
                if firstpart == "" and lastpart == "":
                    finalfilename = marker_name
                elif firstpart == "" and lastpart != "":
                    finalfilename = marker_name +"_"+ lastpart
                elif firstpart != "" and lastpart == "":
                    finalfilename = firstpart +"_"+ marker_name
                else:
                    finalfilename = firstpart +"_"+ marker_name +"_"+ lastpart

                # Assemble the file path and filename
                scn.render.filepath = os.path.join(self.path, finalfilename + "." + scn.render.image_settings.file_format)

                # Call the render operator
                bpy.ops.render.render("INVOKE_DEFAULT", write_still=True)

                # Set the next frame
                scn.frame_set(scn.frame_current + 1)

        return {"PASS_THROUGH"}

There is one issue, in the render process certain frames don't save. Perhaps optimizing the loop the statement in the def modal would help.
I hope this helps.


Understanding mirroring and inverting an object When you look in the mirror you see your face flipped left to right. What you don't see is your skin turned inside-out. That would be horrific! Now if we take the gorgeous Suzanne (Monkey) and tab into Edit Mode, and then enable the Normal direction indicators:

we see all faces and vertices are facing outward:

Now, if I chop off half of the mesh, set the Pivot Center to 3D Cursor:

and select all A. Then duplicate shift+D and mirror ctrl+M along the X axis, the faces and vertices on the mirrored half are facing inward:

This could be a programing error, or a bug, or maybe theres a very good reason for it. It can be quite irritating to have to keep flipping the Normals:

I know that the Mirror Modifier doesn't have this problem, but what about ctrl+M, can anyone please enlighten me on this?

The mirror tool (CTRLM) actually inverts the model by scaling it -1. This will flip the model, but will also invert the normals.

Here's what the docs say:

  The mirror tool in Edit mode is similar to Mirroring in Object mode.
  It is exactly equivalent to scaling by -1 vertices, edges or faces
  around one chosen pivot point and in the direction of one chosen axis,
  only it is faster/handier.

I'm not exactly sure what the mirror modifier is doing, but I'm assuming it copies the vertices location along the axis and puts it in the negative location. Here's what the docs say:

  The Mirror modifier automatically mirrors a mesh along its local X, Y
  and/or Z axes, which pass through the object’s center (the mirror
  plane is then defined by the two other axes).


Loxodrome script not running The code below throws an

AttributeError: 'bpy_prop_collection' object has no attribute 'link'

How does context.scene.objects.link(loxodrome) look in Blender 2.8?
import bpy

from mathutils import Vector
from math import radians, sin, cos, tan, sqrt, floor

context = bpy.context

def loxodrome_points(spirals, revs, angle_step=10):
    a = 1 / spirals
    degs = floor(360 * revs / 2)
    segs = [radians(d) for d in range(-degs, degs, angle_step)]
    points = []
    for t in segs:
        den = sqrt(1 + a * a * t * t)
        x = cos(t) / den
        y = sin(t) / den
        z = - a * t / den
        l = Vector((x, y, z))
        points.append(l)
    return points

points = loxodrome_points(10, 10)
#loxodrome = bpy.data.objects.get("Loxodrome")
#if loxodrome is None:
if True:
    loxocurve = bpy.data.curves.new("loxo", 'CURVE')
    loxocurve.dimensions = '3D'
    loxocurve.resolution_u = 2
    spline = loxocurve.splines.new('NURBS')
    spline.points.add(count=len(points) - 1)

    for i, bp in enumerate(spline.points):
        x, y, z = points[i]
        bp.co = (x, y, z, 1)

    loxodrome = bpy.data.objects.new("Loxodrome", loxocurve)
    context.scene.objects.link(loxodrome)

Figured it out quite quickly.
The last line has to be substituted by:
context.collection.objects.link(loxodrome)

That's it!


Is there a VNC (remote desktop) software that can successfully launch Blender..? Is there a VNC (remote desktop) software that can successfully launch Blender..?

I tested a few (Linux server and Linux client). For example X2Go. Works for all other software except Blender.

Only Blender 2.79 in software-gl mode launches. Blender 2.79 and Blender 2.83 (both in normal and software-ql mode) crash.

I guess it is the VNC software's fault. Here is X2Go's crash report:

  backtrace

  ./blender(BLI_system_backtrace+0x1d) [0x6989e9d]
  ./blender() [0xc1548f]
  /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7f601308ef20]
  ./blender(_Z33GHOST_X11_ApplicationErrorHandlerP9_XDisplayP11XErrorEvent+0x11) [0x17304f1]
  /usr/lib/x86_64-linux-gnu/libX11.so.6(_XError+0x11a) [0x7f60142d18fa]
  /usr/lib/x86_64-linux-gnu/libX11.so.6(+0x3d82b) [0x7f60142ce82b]
  /usr/lib/x86_64-linux-gnu/libX11.so.6(+0x3d8d5) [0x7f60142ce8d5]
  /usr/lib/x86_64-linux-gnu/libX11.so.6(_XReply+0x240) [0x7f60142cf830]
  /usr/lib/x86_64-linux-gnu/libXi.so.6(XListInputDevices+0x84) [0x7f6014086d44]
  ./blender(_ZN15GHOST_SystemX1120refreshXInputDevicesEv+0x5f) [0x1731a3f]
  ./blender(_ZN15GHOST_SystemX11C1Ev+0x453) [0x1732193]
  ./blender(_ZN13GHOST_ISystem12createSystemEv+0x35) [0x172eda5]
  ./blender(GHOST_CreateSystem+0x9) [0x172dc29]
  ./blender(wm_ghost_init+0x2d) [0xee800d]
  ./blender(WM_init+0x275) [0xed4135]
  ./blender(main+0x2a3) [0xb4bf53]
  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7f6013071b97]
  ./blender() [0xc11c0c]

There are MANY Open Source remote desktop applications out there. Somebody may know which OSS application works or which one works after some tweaking..?

I've used blender successfully with RealVNC.


Viewport pivot point changed from scene objects to around viewport camera origin I am starting to learn using blender, and at some point I managed to do something to the 3D view camera.

Usually the camera orbits around an object, but now the rotation seems to happen (atleast very close to) around the "camera's origin". Neither the input setting in "User Preferences", the pivot point selection nor Ctrl-Alt-Shift-C (as suggested on some forum) do anything to the issue.

It sounds like you centered the view on the camera.
Here are some ways to set the view center:

ShiftB or 3D view header > View > Zoom Border (Note that this will also zoom to fit the view to the defined border)
Select an object/vert/face/spline etc. and press Numpad . (period) to center the view to the selection.
Press ShiftC to center the view to the world origin (default). Note this will also center the 3D cursor.

If none of these work, then it sounds like you have Locked the view pivot to the camera object (ShiftNumpad .). See if there is any object  selected in the Lock to object option in 3D view > Properties region (N) > View > Lock to object:

You can remove this lock by clicking the X next to the object name, or pressing AltNumpad ..

CtrlShiftAltC is a shortcut for snapping object origins. (it does not affect the view)


Ubuntu Blender Installation, Python sys.path broken I have installed blender on three Ubuntu machines using the following commands:

sudo add-apt-repository ppa:thomas-schiex/blender
sudo apt-get update && sudo apt-get install blender

according to this (http://ubuntuhandbook.org/index.php/2016/10/install-blender-2-78-in-ubuntu-16-04-14-04/)

Note that these are networked machines that I only have command line access to. Two of them work perfectly and one raises the following error when trying to import numpy in a blender script:

  File "/usr/lib/python3/dist-packages/numpy/core/__init__.py", line 6, in <module>
from . import multiarray
ImportError: cannot import name 'multiarray'

To diagnose this I have printed the sys.path of blender python on the machines that work, and get this:

>>> for p in sys.path:
...     print(p)
/usr/lib/blender/2.79/scripts/addons_contrib
/usr/lib/blender/2.79/scripts/addons
/usr/lib/blender/2.79/scripts/startup
/usr/lib/blender/2.79/scripts/modules
/usr/lib/blender/2.79/python/lib/python35.zip
/usr/lib/blender/2.79/python/lib/python3.5
/usr/lib/blender/2.79/python/lib/python3.5/plat-linux
/usr/lib/blender/2.79/python/lib/python3.5/lib-dynload
/usr/lib/blender/2.79/python/lib/python3.5/site-packages
/usr/lib/blender/2.79/scripts/freestyle/modules
/usr/lib/blender/2.79/scripts/addons/modules

On the machine that is failing to import numpy, the blender python sys.path is:

>>> for p in sys.path:
...     print(p)
/usr/share/blender/2.79/scripts/addons_contrib
/usr/share/blender/2.79/scripts/addons
/usr/share/blender/2.79/scripts/startup
/usr/share/blender/2.79/scripts/modules
/usr/lib/python36.zip
/usr/lib/python3.6
/usr/lib/python3.6/lib-dynload
/usr/lib/python3/dist-packages
/usr/share/blender/2.79/scripts/freestyle/modules
/usr/share/blender/2.79/scripts/addons/modules

So, for some reason, when I install blender, on this machine, it is using an external python3.6, when it should be using the python3.5 that is packaged with blender. Note that I can't even find a python directory in the installed blender. I have uninstalled, and reinstalled, My python path is unset. How can I diagnose and fix the blender installation on this machine?

We can't support unofficial builds, as there are too many of them with too many unknowns. If you really want to use this PPA, ask the person who created it for help. If you just want to use Blender on Ubuntu, download the Linux version from the Blender download page.


Animated oil spill on ocean surface I'm about to help a client do an animation explaining an invention cleaning oil spill or other floating debris from the surface of the ocean.

Any ideas would much appreciated as to how this could be approached. My thoughts so far is to maybe use dynamic paint to somehow make the oil spill. Maybe use a fluid sim as the brush. Since I've not been able to use the ocean modifier as a canvas maybe I should shrink wrap a subdivided plane onto the ocean and use that as the canvas and bake out an image sequence. Maybe this can be reversed and used as a factor between my ocean shader and oil shader.

What I'm aiming for is the oil spill to be removed almost like it had been sucked away by a vacuum cleaner.

Am I missing something obvious?

An added bonus would be if the solution could be used with Eevee.

Final

Maybe something like this will be enough for you. It is fairly simple and made only with nodes. Rendered in EEVEE.

Overview

Ocean

It's a simple Plane with Ocean modifier and animated Time value. From 1 to 5 trough 150 frames.

Material

I've used "two parts" material. First one is shrinking circle (distorted) and second is main distortion. At the end of the node setup I've used Color Ramp to select ocean and oil colors.

Shrinking is made by animating Mapping Scale.


How do I create a driver with a random value and apply that driver to multiple objects? I have a few rocks in my scene. Lets say the scene is in space and I want to add some random rotation to the rocks. Since there are a few of them, I don#t want to go to every rocks properties and apply a driver by hand.

So my question is:

How do I create a driver that creates a random but laminar rotation on all axis and how can I copy that driver to multiple objects?

Thanks in advance

You don't need a driver to accomplish this. Simply select all the rock elements you want to affect. Then use the Randomize Transform command and edit the XYZ Rotation values in the side panel.

This will give you a randomized starting rotation for each rock.

Now, with all the rocks selected, click CTRL+A and choose Apply Rotation.

Now we want to add a driver to the XYZ rotation values for each rock. We want this value to be constant throughout the animation. We can do this by using a multiple of the frame number.

First, select all the rocks and add them to a group named "ROCKS".

Then open up the text editor and run this script:

import bpy
import random

for obj in bpy.data.objects:
    randomSpeed = random.randint(1,20)*0.001

    for group in obj.users_group:
        if group.name == "ROCKS":
            for i in range(0,3):
                fCurveOb = obj.driver_add("rotation_euler", i)
                drv = fCurveOb.driver
                drv.type = "SCRIPTED"
                drv.expression = "frame*" + str(randomSpeed)
                drv.show_debug_info = True

This will set the XYZ rotation values to increment each frame. You can increase the rotation rate by increasing the 0.01 value.


Animating running lights Hello Blender Community,

what would be the easiest way to animate a chain of lights for a Christmas tree? I'd like them to show different patterns (running up, running down, blinking alternating every second light, and so on...) and sync it to some Christmas song. And at best it would be possible to change the color for differently grouped lights. These groupings would be dependent on the selected pattern/mode.

I'm just searching for a way for not having to creating a lot of material/object-data instances and modifying each brightness values individually over and over in the graph/NLA editor. Ideally I imagine having some simplified controls like pattern/mode, speed, step, ... And in the timeline or NLA editor these would simply be triggered synchronously to the music.

I'm not sure which rendering engine I might take. My PC is not the fastest, so BRE would be better. But if cycles can make it significantly simpler, I'd be ok with using that instead. For the light type I think an emitting material will do great. There is no need for much detail.

I'm not afraid of using some math. However I think python might be a bit overhead. Please correct me if I'm wrong.

In the provided example it seems the light groups are driven straight from the midi file for the instruments. You can load such file in the MIDI Driver addon and assign each instrument channel an animation Action for example (like turning a group of lights on and off).

Alternatively you can use animated texture to drive the light's emission. The bulbs should be mesh lights for this purpose.

Create a texture strip with as many pixels as you have bulbs. Unwrap each bulb into it's corresponding pixel.

Animate the texture strip in a loop to create whatever color and motion pattern you desire. It's easy to do in AfterFX or similar app.

Also simple animations like switching between odd and even bulbs could be also driven with lamp objects using drivers and #frame keyword to drive the light's strength. Drivers can be copied easily between many bulbs. This approach is not that flexible though.


LWO import in 2.7x ( macOS) ? I don't see Lightwave object in import menu and I was wondering if the support has been dropped. I still see the python script for lwo format in addons folder, but it doesn't seem to work. I tried from 2.79 to 2.70,versions work on current macOS (Sierra). 2.69 won't launch under current OS. I don't have a PC to test it.

Thanks in advance.

Euisung Lee

Open the System Preferences (ctrl+Alt+U) and in the addon section enable the Import Lightwave Objects Addon

An option to import LWO will appear on the file menu.


sculpting horizontal crease on a cube shape I am new to sculpting, and I am having problem with creating a "brick" pattern on one of my objects.
When I try to add vertical creases to create an effect of bricks being next to each other it works only vertically. When I try to draw it horizontally it creates vertical lines one under the other...tried using "Dynotopo" and subdividing the object but it didn't help.
Any advice ?
Google drive with the files

You need to apply the scale and it seems to work fine:


hardops addon in blender 2.69 ubuntu 14.04 enabled hardops 007 addon just fine when my imac was running osx Yosemite
i try to install it now here on ubuntu and i keep getting these errors... all of my other plugins work just fine.

why ubuntu why!!!!!

problem solved. simple updated needed. just make sure hardops 007 is updated with blender 2.77 should work fine no special thing needed here.


How to select a tool and it's Mode/properties, by hotkey? Is it possible to select and setup a tool, by hotkey, or from python ?
For example :
Keymap.py
("wm.tool_set_by_id",
    {"type": 'BUTTON4MOUSE', "value": 'ANY'},
    {"properties":
        [("name", 'builtin.select_circle<<<< (wait_for_input="False", mode="SUB") >>>>'),
        ],
    },
)

(the example target is a Select Circle -Operator with Subtract -Mode)

Similar to Enable/disable 3D cursor tool properties from python
You can set the active tool using bpy.ops.wm.tool_set_by_id(name="builtin.select_circle") and use ToolSelectPanelHelper class to get a reference to it. Code based on Operator Simple template:
import bpy
from bl_ui.space_toolsystem_common import ToolSelectPanelHelper

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    def execute(self, context):
        # Set the cursor tool
        bpy.ops.wm.tool_set_by_id(name = "builtin.select_circle")
        # Get the tool
        tool = ToolSelectPanelHelper.tool_active_from_context(context)
        props = tool.operator_properties('view3d.select_circle')

        # Print all properties
        print (dir(props))
        # [...'mode', 'radius', 'rna_type', 'wait_for_input', 'x', 'y']

        # Set the properties
        props.mode = 'SUB'
        props.radius = 50

        return {'FINISHED'}

addon_keymaps = []

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

    # Add a shortcut
    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D')
        kmi = km.keymap_items.new(
            SimpleOperator.bl_idname, type='C', value='PRESS', ctrl=True, shift=True)
        addon_keymaps.append((km, kmi))

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

    # Remove the shortcut
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()

if __name__ == "__main__":
    register()

Press CtrlShiftC to enable the Cirle Select along with your custom tool settings (mode and radius in this case).


Blender 2.8 - Object index pass in Eevee I need to isolate filters on some objects in the compositor and Blender 2.8 does not have the options to setup object/material passes in the View Layers. Is there anyway to achieve this in Blender 2.8 and for EEVEE?

In 2.8, Cycles there is something called the cryptomatte node. Unfortunately, at the time of writing this, it is not implemented for Eevee.

I found a solution by creating view layers, then evaluating the depth in both. View layers are like 2.79's render layers, so you can exclude objects from being rendered in each.

Next, I evaluated depth in both view layers. Since one of the view layers is missing the object, you can use a greater than or lesser node to create a mask.

Here's a video on view layers: https://youtu.be/BBuD64KhxeY?t=1502

I imagine 2.8 Eevee will gain cryptomatte in the future.


Smoothing doesn't work on all edges I am new to Blender, and I try to build cloth model. So far so good, staring from cylinder to the low-poly collar.

Still, I am confused after shade-smooth as some edges are smoothed as expected, and some aren't.

I change Mesh's Normals auto-smooth angle to 180d, but still not work ;(

Any suggestion ?

have you tried to merge vertices or to recalculate the normals?

First go to edit mode and select all vertices by pressing A.

To merge vertices, press Mesh -> Clean Up -> Merge by Distance.

This merges Vertices whose distance is below an adjustable treshold. If two Vertices are stacked on each other, smooth shading still works, but it interpolates the normals between these two points and so it looks like a hard edge.

To recalculate the Normals, press Mesh -> Normals -> Recalculate Outside or use the shortcut Shift-N.

This fixes the problem, that two faces might face in opposite directions an so blender is not able to interpolate between them.


Get the total time spent working on a file I'm working on commissions and it would be wonderful to know how much time I spend with each file. Not because I charge per hour (yet), I'm merely curious.

It would be nice to track how many minutes with activity each file has (simply having it open in blender shouldn't count). It should be totally automatic.

Does anyone know of such a plugin or a way to go about doing this inside Blender?

There's an addon that keeps track of the actual time you spent working on the project.

http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/System/Project_Timer

  The time spent working in the blend file is recorded, and stored in
  the blend to continue from the next time it is opened.

  If you stop work for longer than 30 seconds, the timer stops counting
  and reverts back to the time of your last action, minimizing idle
  time.

Edit: Download link seems to no longer work, here's the last version of the add-on I could find: Download (unzip, install py file).


Prevent arm from twisting when moving it foward What type of constraint would I use to fix this?
I've tried limiting rotation but it didn't seem to do anything

In Properties editor ‣ Bone there is a special section named Inverse Kinematics. You could adjust this on the bone you want to fix instead of adding a constraint.

https://docs.blender.org/manual/ja/dev/rigging/armatures/posing/bone_constraints/inverse_kinematics/introduction.html


Is there a way to hide all the origins in the 3D view? Is there a way to hide the selected object's origin in the 3D view? By default all unselected object's origins do not show, but even after deselecting everything with A A it still shows the active object's origin.
I know the Only Render checkbox will hide all the origins, but in this case it hides too much.

For Blender 2.8 and above:

You can hide the Origins for the active Objects and all Objects in the Overlay Menu.


Boolean modifier not applying So I was having some issues applying a boolean to a cylinder in another project, and after troubleshooting and come to no solution I decided to see if I could get it to work on a blank project with the cube that spawns in when you open a new project. It still wont apply the boolean modifier. I did try removing doubles and recalculating normals.

EDIT:
This is the project I am having trouble with. I am trying to use a cylinder to cut a headphone jack hole in the bottom.

I was thinking of using the modifier incorrectly and not selecting my target. The object you want to carve a shape out of needs to have the modifier applied, then the dropper will select the carving object to take the shape out of the one with the modifier on it. Thanks for helping!


Metal shader way too dark What am I doing wrong? I have tried twice with this specific pbr, it comes out super dark. Am I missing something?
I have tried to make completely serperate textures as well, with the same result. Is it the object, the lighting (everything else is lit fine)?

pbr shaders need an environment to look more properly. It's one of the key parts in physical based rendering method.
Here is a metal shader under different environments:

to the left we have no environment (black), blender jungle in the middle and blender default room environment in the right.
A quick fix for this would be to add a good environment texture that matches your presentation of the area or comes close to it.
you can start looking for one here: https://hdrihaven.com/


Good AMD GC but only find "SCRAPPER" where there should be a compute drop down menu I have been trying to get my AMD Radeon card to finally be recognized by Blender. It was working beautifully then I installed the Sensei Format and all of a sudden I lose my ability to render with GPU.

I was using Blender 2.79 and had to downgrade to 2.78c to get the OpenCL option to enable but now Under it all I get is Scrapper.....

I have GPU selected in the settings to the right. It used to be grayed out even before. Now it is not. But where did all my card options go in the drop-down window. It was replaced with Scrapper.... when I turn scrapper on, and hit render whilst using GPU, Blender crashes

Here is My DXDiag:

Windows 7 Professional 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_ldr.170512-0600)
           Language: English (Regional Setting: English)
System Manufacturer: Hewlett-Packard
       System Model: HP Compaq Pro 6305 SFF
               BIOS: Default System BIOS
          Processor: AMD A4-5300B APU with Radeon(tm) HD Graphics    (2 CPUs), ~3.4GHz
             Memory: 8192MB RAM
Available OS Memory: 7630MB RAM
          Page File: 3577MB used, 11681MB available
        Windows Dir: C:\Windows
    DirectX Version: DirectX 11
DX Setup Parameters: Not found
   User DPI Setting: Using System DPI
 System DPI Setting: 96 DPI (100 percent)
    DWM DPI Scaling: Disabled
     DxDiag Version: 6.01.7601.17514 32bit Unicode

Here is my UP...

The answer is simple. Scrapper is the code name for the GPU Device used on my card. The reason Blender crashes when it begins to load the Kernels, is because my graphics card only has 512MB Memory. So when the loading starts, It uses up the entire 512MB of memory, then crashes when it realizes it needs more and can't get it (so-to-speak). My card is supported, I just need to get  one with more memory. :D


Noise on glass in cycles I cannot get rid of noise/fireflies in my glass shattering scene, rendering with cycles. I've tried all of the following suggestions:

Increasing Samples (up to 4000, still tons of noise)
Filter Glossy (from .5 to 20, still no fix)
Increasing Clamp (to 5)
Increasing light source (emissions doubled, still tons of noise)
Denoising (from .25 to 1, it works but makes the image too blurry)
Caustics (turned off and on, makes no difference)
Light Path Bounce min/max equal (both set to 8, that helped but did not fix)
Multiple Importance Sampling (turned on for all tests)

Is it possible I really need to go up to 10k samples? Or, maybe there is something wrong with my glass texture, which is just "Glass BSDF" with Roughness at .1 and IOR at 1.45?

EDIT: Everything follows almost exactly a tutorial by Blender Guru found here

Here are my renders:

EDIT: Here's the render without the emission planes and with on sun light source instead. Any ideas?

I went with the following settings, which seemed to do the trick.

Removed the emission planes and replaced with a sun light source
Changed the color management to "Filmic" since that is supposed to be better with dynamic range
Used denoising to eliminate most of the grainy look
Increased the resolution of my animation to 1080p (not sure if that made a difference, but it looks better to me)


Snap cursor - wrong positioning with three vertices Again, I have a quite strange problem: my cursor snaps to the wrong position when used with three vertices.

For testing purposes, I made an equilateral triangle:

As on the third figure, when all three vertices are selected, and I use Snap > Cursor to Selected, the cursors snaps out of center. In all other cases, snapping is correct. It snaps to the middle of two vertices, and to the center of four vertices, and Blender correctly transforms the origin to the center of mass, if told to.

Even more strange: If I reload factory settings, the snapping works as intended. So there must be some mysterious setting saved with the blend file. There are no double vertices or zero faces. I'm at a complete lost here. Please advise.

It's stated pretty clearly in the Blender manual, but if someone omits this source it'll be here:

  The Cursor to Selected option is also affected by the current Pivot Point. For example:

  With the Bounding Box Center pivot point active, the Cursor to Selected option will snap the 3D cursor to the center of the bounding
  box surrounding the objects’ origins.
  When the Median Point pivot point is selected, Cursor to Selected will snap the 3D cursor to the median of the object origins.


How do I add a Panel to the Rigid Body Panel? I'm trying to watch the coordinates of an object as it moves during a simulation, and to this end I want to add a new Panel to the Rigid Body Panel, like this:

class PHYSICS_PT_rigid_body_worldmatrix(PHYSICS_PT_rigidbody_panel, Panel):
    bl_label = "Rigid Body Coordinates"
    bl_default_closed = True

    @classmethod
    def poll(cls, context):
        obj = context.object
        return (obj and obj.rigid_body and
                obj.rigid_body.type == 'ACTIVE' and
                (not context.scene.render.use_game_engine))

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

        ob = context.object
        rbo = ob.rigid_body

        row = layout.row()
        row.prop(ob, "matrix_world", index=12, text="X")
        row.prop(ob, "matrix_world", index=13, text="Y")
        row.prop(ob, "matrix_world", index=14, text="Z")

This works if I put the code into startup/bl_ui/properties_physics_rigidbody.py, but not if I put it into a script file and try to load it.  It can't find PHYSICS_PT_rigidbody_panel, even if I add this line:

from bpy.types import PHYSICS_PT_rigidbody_panel, Panel

Any ideas how to access class PHYSICS_PT_rigidbody_panel?

Also, when I run it by editing the system files, it still has some issues.  It doesn't update in real time during the simulation; I have to move the mouse into the properties window.  I'd also like to see the numbers displayed in scientific notation if they are extremely small.

Any suggestions?

The PHYSICS_PT_rigidbody_panel class is only present in the properties_physics_rigidbody.py script - it is simply a base class to provide common properties to the other panels in that script.

The step you are missing is bpy.utils.register_module(), with the properties you need for the panel you get the following -

import bpy

class PHYSICS_PT_rigid_body_worldmatrix(bpy.types.Panel):
    bl_label = "Rigid Body Coordinates"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "physics"
    bl_default_closed = True

    @classmethod
    def poll(cls, context):
        obj = context.object
        return (obj and obj.rigid_body and
                obj.rigid_body.type == 'ACTIVE' and
                (not context.scene.render.use_game_engine))

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

        ob = context.object
        rbo = ob.rigid_body

        row = layout.row()
        row.prop(ob, "matrix_world", index=12, text="X")
        row.prop(ob, "matrix_world", index=13, text="Y")
        row.prop(ob, "matrix_world", index=14, text="Z")

if __name__ == "__main__":
    bpy.utils.register_module(__name__)


Animation Nodes: How to create splines from two different points in order to create procedural telegraph poles? I've reached the limit of my ability with AN and need some help creating procedural telegraph or telephone poles.

This is what I've managed so far:

I've managed to generate splines from the origin of each pole. The origin is at the top of the pole and not the base. Each pole is randomly generated with random heights and rotations. Each new pole automatically creates a wire using spline from points. The whole system animates in nicely based on distance to a Null object. The Wire Sag is done using a subprogram - I'm open to better ways of doing things - I would love the wires to swing or bobble as they appear but for now, let's stick to the main question.

Here is my Node Setup:

This is what I'm trying to create:

With a view to creating more complex wire systems for Pylons.

What I have already tried is Offsetting a duplicate of the spline but that doesn't observe the random rotation of each pole.

Any help would be appreciated. Thank you.

Updated:

With the help of Omar's answer, I've updated my node tree as seen below:

And this is the result. The wires are too thick but it's just to illustrate the result.

The Rotation To Direction node can be used to get a vector pointing along the local x axis of the objects, This direction is then added to the location of the object giving you point one, the inverse of that vector is added to the location giving you point two. You now have two points per object, use them in your node tree.


weird behavior of sheepit renderfarm Recently I notice the weird behavior of sheepit renderfarm client. It appears when the client works within a couple hours.
"Project to check rendering capabilities" For half an hour render time?! I know its sound paranoid but its looks like mining.

This is perfectly normal. It displays the last rendered frame while rendering another one. You can see the name of the currently rendering project - it is not the test project that is rendering.


Adaptive subdivision surface UV reflection problem I need a help. I tried to make a wire mesh rope with UV and subsurf but there was something wrong with the reflection.

As you can see, after rendering, it looks like the reflection is changed in the middle of UV map:

This is the UV map and nodes:

Here is the modifier:

Anyone who knows why this happens? How can I have the right reflection on the surface?

After spending hours more, i got what i wanted finally.
only what i did was cut off the area causing problem. ^^
- cut off UV texture
- cut off faces

But i still wonder why.


Rigged model deforms on one side and doesent on the other like in the title i've rigged a model with X-Axis mirror so i thought it would be fine, but when i pose the model, it works diffrent on both sides

Here's what i mean:

Also if it helps, i've used the Human(Meta-rig) armature and adjusted it

There's the file:

Switch to Solid mode. Select your armature and in the Properties panel > Object > Viewport Visibility, enable In Front. Select your mesh and in the Properties panel > Modifiers, choose the metarig as Object of the Armature modifier. Select the armature in Object mode, then shift select the mesh, switch to Weight Paint mode. Select the right upper arm bone, you can see that it influences the forearm mesh, same thing for the forearm bone which affects the upperarm mesh, they should not. So in the 3D View N panel > Tool tab > Brush, choose a Weight of zero or a Blend > Subtract, in the Options disable Front Faces Only and enable 2D Falloff, begin to paint until it looks like the left arm.