Vertex paint strange artifacts on big object

Most of the tools that are asked to automatically operate on mesh elements (faces, vertices, edges) depending on their visibility on the current view have this issue.

You'll experience the same thing for example by circle/lazo/box-selecting a dense mesh while in solid-shaded mode, or using the gradient/paint tool while weight painting.

On the top right a box selction in Solid mode, while on the left a selection made in Wireframe mode.

I'm not qualified to tell exactly what's going on under the hood of the source code, so I'll suggest to take the following lines as my personal thought

As elements share more or less the same location on the screen because they are one next to each other, it is difficult for the software to exactly tell if one of them is there or not. From the pattern created, that shows a "quantization" of selection, I can guess that the algorithm is probably checking whether a element is falling inside one of the pixel cell of the selection/brush. Mix that with some numerical approximation and the result is that some of them are missed.

In addition you are doing that in solid mode, so the software has to take into account element's visibility and face's normal thereshold that make things usually harder.

My personal solution, when possible, is to paint/select while in "wireframe" mode or draw a shape and fix error from a closer view.

As currently (Blender 2.77) there is no option for going to a 3Dview-like wireframe mode (where you see behind solid faces, I mean, because wireframe mode for weigt &vertex paint means: "please, show me the wires"), you must look for custum build like this one where the creator has added an useful "limit selection to visible" option for vertex paint mode too.


Why does cycles render this scene as black, while evee renders it like I expect?

Thanks to Leander's comment:
The checkboxes in
Properties Panel > View Layer > Filter
were somehow disabled.


I don't know if there's a way to automatically find the perfect curve but you could try this with W > LoopTools > Bridge Edge Loops then play with the factors on the bottom of the Tools panel in 2.7 (or bottom left Adjust Last Operation box in 2.8), especially Segments and Strength.


Object preview not generated for large objects (bug?)

Wow, so I have reported the bug on developer.blender.org and it was fixed in about 3 hours!

Link with the fix details:
https://developer.blender.org/rB63482a5f2e2ad76989c2d2901c1f34f2f0cb59d4

I have compiled the current Blender build which contains the fix and I can confirm the big object has now it's preview generated correctly.

This means a future public version will have this fixed as well.

Big thanks to Blender developers for such prompt reaction :)


Is there a way to visualize the tris of a scene?

Selecting All Triangles

You can use the MeshLint add-on to select all the triangular faces in your mesh.

Another way is to select a triangular face, Select Similar ShiftG > Polygon Sides and this will select all tris.

Rotating Edges

If you have a mesh where the quads have been converted to tris you can "turn" or "rotate" the orientation of the edge within that triangulated quad.

For example, in the screen shot below there is a Suzanne mesh that has been converted to all tris using the Triangulate Modifier. In Edit Mode if we select an edge that bisects a quad we can then press CtrlE and from the contextual menu choose Rotate Edge CW or Rotate Edge CCW depending on whether you want Clockwise or Counter-Clockwise rotation (for a triangulated quad it makes no difference which you choose, the result is the same).

Further details

This operation can also be accessed from the menu under Mesh > Edges. It can be performed in all three selection modes (Vertex / Edge / Face).

If you plan to do this operation many times repeatedly it would probably be best to assign a keyboard shortcut to it. While the contextual menu is open you can right click on the menu items and assign shortcuts.

An example utilizing the Mac's "Command" modifier key:


How to get rid of fireflies coming from apartment windows?

I'm not sure that what you describe are fireflies but noise and pixelation resulting from rendering at a low resolution with low samples.

This is a render form your original file
just 100 samples at 50% resolution.
:

EDIT

Changing the glass of the windows to a node tree like this you can have transparency and reflections (look at the added emitter plane on the left).

Rendering with more samples at a higher resolution will give you a cleaner image.

For a deeper explanation on the nodes used please read this answer

Note the change with more samples and a higher resolution:

(click on the image to enlarge)


All previous Blender releases are can be downloaded here. Blender 2.79 was released for Linux, Windows and macOS.


How to smooth camera animation to have fluid feel?

A way to achieve camera motion with fluid non-synthetic feel is with softbody camera rig. This will do automatic easing of any motion and will save some graph-editor work.

Create a filled Circle with 3 vertices, subdivide it and delete the middle face:

Create new empty vertex group, don't assign any vertices to it, leave it empty:

Add camera to the scene and parent it to the 3 inner vertices (select Camera, select Mesh, enter edit-mode, select vertices, Ctrl+P):

Add Soft Body to the mesh object. These are the settings to take care of:

Friction: higher will be more lazy smoother camera
Damping: less means more camera jiggle and more overshoot

Its good to hide the Soft Body modifier visibility when animating. Always bake the softbody cache. This is a result of a simple linear-interpolation animation with just 2 keyframes, you can see how the soft body smooths everything:

Best it's in combination with follow path animation to smooth any paths and timing discontinuities. Use the Follow Path constraint on the softbody to animate the location (animate evaluation time under the curve) and Track To constraint or just keyframes for the softbody rotation.

The resulting camera motion will be the curve smoothed, so even when the curve itself is not C2 smooth the resulting animation will be. This can't be done in graph editor or with smoothing the curve with smooth modifier (it follows the un-smoothed curve)


Maybe this helps. Baking an Edge map Using Ambient Occlusion https://youtu.be/RhMEBKuPYXY


How can one add a new blank scene to the blender game engine

You can't.

Scenes are always loaded from a blend file.


How to Close Orthographic Scene Collection

Blender calls it  Quad View and it can be toggled with CtrlAltQ, or (Header) > View Menu > Area > Toggle Quad View


You are correct volumetrics are a bit different in EEVEE. For some reason, emission strength is required to control the volume. As you can see, I upped the emission strength, then plugged the volume into the emission color, to make it constrained to the cloud. Have a try. You might need to  play with the values a little to get it just right in your scene, but it's a start.


This is related to https://blender.stackexchange.com/a/87583/29586

The Vertex Colors are held as 8-bit sRGB values. This means that, say, 50% Red is not held as 0.5 - as the sRGB color space is optimised to make best use of the 8-bit values (see https://en.m.wikipedia.org/wiki/SRGB). This is similar to the Color Data/Non-color Data setting on an Image Texture node - but the Attribute node used to retrieve the 'raw' Vertex Color data (which will be held as 8-bit sRGB values) does not provide such a color space translation. You will need to manually convert those values as you have already discovered.


How to make the surface look smooth, i have used the modifiers

I have taken a sphere and added Subdivision Surface Modifier to it with the view 2 and Render 0

As you can see the sphere look smooth. But when i hit render i get this render

Flat or un-smooth sphere

Reason is the setting in the subdivision instead of Render value 0 make the same value of 2

And you will see the same result seen in the 3d solid view.


For basic scaling, you do not need the "Unit" settings. To scale a whole object, make sure you are in object mode (press tab key to toggle).


Using keyframes is the only way I know of to do this currently, but you should be able to get good results by allowing the rigidbody object to be controlled by the animating system, then switching control back to the physics system while maintaining momentum gained from the keyframe animation.
This can be done by animating the Animated option in Physics > Rigid Body.
See the wiki:

The most common trick is to keyframe animate the location or rotation of an Active physics object as well as the Animated checkbox. When the curve on the Animated property switches to disabled, the physics engine takes over using the object's last known location, rotation and velocities.

Also see this post
For example:

Enable Animated on your rigidbody object and insert a keyframe by right clicking on the check box and selecting Insert Keyframe:

On the same frame, add a location keyframe (or rotation if you want some angular momentum) to the rigid body object

Go to a later frame and insert another location keyframe

On the same frame, disable Animated and insert a keyframe by right clicking on the Animated checkbox and selecting Insert Keyframe again.

The motion from the keyframed animation will be carried over to the motion of the object as it is controlled by the physics system.
Result:

Note that while Animated is enabled the object will still interact with other rigid bodies, however its motion will be controlled by the animation system.


Moving user perspective in Blender with Python

You can use bpy.ops.view3d.view_pan() to do the same as Ctrl+Numpad #, e.g.:

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        override = {'area': area, 'region': area.regions[-1]}
        bpy.ops.view3d.view_pan(override, type='PANRIGHT')

The amount of the panning can't be controlled.

If you manipulate the view_matrix (or view_location etc.) directly, there's a lot more control. But you will have to calculate the proper matrices and vectors, and if something went wrong, you may end up with strange view or navigation reaction:

r3d = C.screen.areas[2].spaces[0].region_3d # region_3d of 3D View
r3d.view_matrix.col[3][1:4] # translation part of the view matrix

Have a look at the FPS Fly addon to see what can be done and how:
http://www.ewocprojects.be/fpsfly.html

AFAIK viewport navigation is a bit weird after use, as the addon might manipulate the wrong property to fly around. The C-implementation will be different.


If I've correctly understood your question, here is an answer. Actually you can't automatically create an edge loops (and therefore a bevel) through a ngon, because as it's a surface with more than 4 vertices, by definition it can't tell what other edge it is supposed to cut through.


If you want to model it as a one mesh you may achieve it beveling the Ico Sphere.

Add the Ico Sphere (Shift+A-->Ico Sphere) with the 3 subdivisions.

In Edit Mode (with edge selection type) select the whole mesh (A), press Ctrl+B, then V to bevel the vertices only. With a cursor placed in the middle of the mesh and a pivot center type set to 3D Cursor extrude selected elements and then scale them (E,S). Next change the pivot center type to Individual Origins and scale all tips with S.

Give the object the Subsurf Modifier. Select the edge loop at the bottom of the spike, click Select-->Select Similiar-->Face Angles. Then press Shift+E to crease them.


Animation Nodes: Trigger Action, Save Value if Frame Matches?

While I think it's possible to dynamically change the values of a node with a script, I assume the better option is to use a Script node to store an ID property, e.g. in the scene. For more complex data types than single float or int values you may have to define a custom bpy.propsproperty.

A script with a boolean for the reset as input and a single float for the time as output should work.

import bpy
scene = bpy.context.scene
frame = float(scene.frame_current)

if reset:
    scene['last_reset'] = frame

time = frame - scene.get('last_reset', 0.0)

N.B.: Interestingly, the ID property is only retained if the frame is manually converted to a float. If the float conversion is removed (frame = scene.current_frame), the property vanishes every time the reset flag is cleared.


How to tile a texture over a cube in cycles?

Basically it's a UV problem:

If faces A and B can be contiguous, at least one between B and E or A and E (my case) will not be seamless, unless you want this effect which is really fake:

Anyway, for the first option, in edit mode select those edges: AE, ED, EC, DC, AF, FD, FC; Mark as seams, U to Unwrap.

For the second option place your viewport as you want to see the cube, select all vertices and press U "project from view".

I noticed also that in your node system the coordinates mapping affects only one of the 3 textures, which generally is an error.


These black spots indeed are caused by incorrect topology, as well as inorrectly oriented normals and unsplitted faces.

Regarding house contour, which is called MASSA.

In original file faces from the house itself and from the windows are overlapping and closing each other. In the final version of the file the selected faces as well as ones closing other windows are deleted.

These are faces overlapping with themselves, at the same time they close windows. It may be better to recreate them; one way can be subdiving top edges of the house contour, and filling new faces based on new vertices.
Regarding the roof which is called DAK_ZWART. I think the face selected on the picture shouldn't be there as the window continues under it.

Tiles on the roof have overlapping geometry seen through them; it's caused by the bottom big face. Just delete it:

With above mentioned, either split normals of all the objects (I used Autosmooth option in Object Data tab, it can be Edge Split modifier as well, if you plan to export the mesh use modifier only) or set the shading to Flat to make house and other man-made objects look more flat and not too round. See How to smooth shade an object while retaining hard edges? for details.
The normals were recalculated (see  Why are some faces in my mesh darker?) and some double vertices removed for all the objects as well.


How to bring back first start Key configure preset selection?

On the top meny choose: File > Defaults > Load Factory Settings.
Or delete the userpref.blend file.
To find it, read this link:
Where is the startup file stored?
or read the manual page:
https://docs.blender.org/manual/en/latest/advanced/blender_directory_layout.html?highlight=userpref


Why does my PyDriver only update on frame-change?

Don't use bpy.data.*** because blender won't know to create a dependancy between the objects (this is why updates are not working properly),

Instead:

add a driver variable with the button Add Variable.
select object ID type.
then enter "e1" as the object name.
the location channels X axis are default.

Now you can use the variable name defined by the driver variable in place of: bpy.data.objects["e1"].location.x.


As you can see here, I have several texture materials. I'll convert everything just to a single texture.

First you will have to create a new 'UV Map'.
Now enter edit mode. See how my mesh is blurred and overlapping, just like yours.

With the new 'UV Map' selected, unfold the mesh using 'Smart UV Project'

Now in UV image editing mode, create a new texture where you will receive all textures. Opt for a resolution of 2048 or higher for better texture quality.
Now go to Scene> Bake> Bake mode and select 'Textures'

Click on bake and you will get all the textures of your character in that single image.
Now go to the Materials tab and delete all existing materials there, and create a new material.

Go to the texture tab and create a new texture and select the image you just created.
Everything is ready. All textures are rendered correctly.

Note that if any texture has alpha, it will lose transparency and will not have the expected result, as you can see in the hair and mustache.
I hope I have helped you and other people who are looking into this.


How to make permanent custom tab and removing some submenu in tab tools (T)?

What you are referring to as a submenu is the header of a panel. The template that you created includes a class that inherits from a Panel, the bl_category value in the panel class decides what tab the panel will be shown in.

Tabs only exist if there is a panel to be shown in them. When there are no panels to show the tab is removed. To make a tab permanent you need to have a panel to show in it that is always available, this may be a python script set to auto-run on startup that is saved to your startup.blend or an addon that is set to be enabled on startup, you do that by enabling the addon and then saving user settings.


Matcap materials as a material for render?

For Blender Internal it's as easy as making a material shadeless and mapping the Matcap texture with Normal mapping:

For Cycles you need to stack some nodes to get the correct mapping:

Note: In versions 2.76rc3 and earlier this doesn't work when Open Shading Language and CPU rendering is enabled. The Vector Transform gives invalid output. This is a bug that has been fixed in the latest builds.

Important Update: From version 2.76 we now must change the Vector Transform Node's vector type from Point to Normal. Apparently it should not have worked with Point before, but it did because not all location information was being taken into account - now it is.


Equirectangular sky texture in Blender Internal?

To make equirectangular texture enhance your scene in Blender Internal, create a texture for World Background and add your map in there.

Open World scroll, check Real Sky. Without this setting texture still will work but the view won't change if rotating camera. Then go to Textures tab to create a new texture for the world.
In the new texture properties leave it on Image or Movie, open equirectangular map.
In the Mapping scroll change coordinates to Equirectangular.
In the Influence tab uncheck Blend and choose Horizon. It's rather handy to look at Preview World scroll while changing these, as it will change according to steps done.

Note that as mentioned by @Mentalist in order to see your equirectangular map in the render you should also set Alpha Mode to Sky instead of Transparent in Render > OpenGL Render Options (if it was changed before).

If you'd like to make the map affect the scene lighting, enable Environment Lighting and set it to Sky Texture.

Also according to the post on BA, supporting of equirectangular maps in BI has been added rather long ago.


How to change shapekey vertex position through python

Shape key coordinates live in a bmesh "layer"

I have included a copy of http://web.purplefrog.com/~thoth/blender/python-cookbook/explore-shape-keys.html here:

import bpy
import bmesh

def dump(mesh):

    bm = bmesh.new()
    bm.from_mesh(mesh)

    for key in bm.verts.layers.shape.keys():
        val = bm.verts.layers.shape.get(key)
        print("%s = %s" % (key,val) )
        sk=mesh.shape_keys.key_blocks[key]
        print("v=%f, f=%f" % ( sk.value, sk.frame))
        for i in range(len(bm.verts)):
            v = bm.verts[i]
            delta = v[val] - v.co
            if (delta.length > 0):
                print ( "v[%d]+%s" % ( i,delta) )

dump(bpy.context.active_object.data)

Code for creating and populating shape keys can be found at http://web.purplefrog.com/~thoth/blender/python-cookbook/shape-key-fin.html and I have extracted the most interesting bit here:

def addShapeKey(obj, i, nKeys, z1, z2, dTheta, thetaLag):
    kn = "phase %d"%i
    sk = obj.shape_key_add(kn)
    bm = bmesh.new()
    bm.from_mesh(obj.data)
    sl = bm.verts.layers.shape.get(kn)

    for u in range( math.floor(len(bm.verts) / 3)):
        t = math.pi*2*i/nKeys
        bm.verts[u*3][sl] = vert1For(u, t)
        bm.verts[u*3+1][sl] = vert2For(u, t, dTheta, z1)
        bm.verts[u*3+2][sl] = vert3For(u, t, dTheta, z2, thetaLag)

    bm.to_mesh(obj.data)


Can displacement output be controlled by light?

You have a problem with your texture coordinates, add a texture coordinate node and a mapping node as vector to your texture used for displace


How can I get the color in the middle of a face using Python?

In the middle of a face is an average color of all the vertices. For triangle this means:

Col_RGB = ((R1+R2+R3)/3, (G1+G2+G3)/3, (B1+B2+B3)/3)

Where each vert has color in form of (Rn, Gn, Bn) for n in (1..3).


Probably clipping. Both Viewports and Cameras have near and far clip settings. For the Viewports, they can be found in the 3D View Properties Region, 'View' panel. For cameras, they are in the Properties editor, Camera Data tab.


You are not using transparency in any of your render layers.

Without an alpha channel the Alpha Over operation will not work!

Turn on Shading > Alpha: Transparent.


and the answer is No, you can not use cycles in bge, what you can do is create textures rendered in cycles and use them in bge with their respective uv map.


How do I get this bright colored yet plastic like reflective material

Use the Principled BSDF shader.

Play with the Roughness  and Specular settings.

Low roughness will make the surface "shinier" "mirror like", sharp or blurry reflections.

The specular control Specifies facing (along normal) reflectivity. In other  determine how the reflected lights seem to "expand" or "spread" on the surface, so that highlights will be reflected as large surfaces or dots or points.

Note that when it comes to reflective surfaces the shader doesn't do all the job, the type of lights and their placement on the scene need to be thought out as well.

Related reading: Why does an object with a glossy shader render in black?


How can a force be applied not to the center of a rigid body object, but to one specific vertex of the object?

Simulations which include moments of inertia (https://en.wikipedia.org/wiki/Moment_of_inertia)  and off-center forces can be created by combining objects though rigid-constraints, and applying forces through empties near each object. This animation shows the results that can be obtained. This simulates an object in space, without gravity, affected by forces applied at the corners.

In blender, objects behaves like point masses (https://en.wikipedia.org/wiki/Point_particle#Point_mass) located at the object origin.  To simulate moments of inertia, several object must be combined using rigid constraints. This screencast illustrates two cubes affected by forces and moving based on moment of inertia.

Note: There may be simpler ways to do this...

Procedure to replicate this animation (Blender 2.76)

Turn off gravity.

Create a slab for the object which moves.
Create 4 spheres. Place one at each corner of the slab.
Enable rigid-body physics for each sphere.

Enable rigid-body, fixed constraints to connect the spheres together.

Parent the slab to one of the spheres. At this point, all of these parts will move together.
To apply forces to a corner, do the following. Add an empty. Place it just below the origin of the sphere where the force will be applied. Parent the empty to the sphere. Enable forces for the empty. Set the forces to behave like a plane. Set the forces to a tube shape. Set the maximum distance and maximum radius for the forces to keep the effect local to the sphere. This can be done at each sphere. If forces are wanted in other axes, then rotate and empty and adjust its placement.

Use keyframes to animate the forces and drive the movement of the sphere.
It may be necessary to adjust the physics solver settings to ensure the rigid-body constraints behave properly.

The blend file for the animation is at:


Blender 3D objects are shaking in viewport when it's too far from center

Typical 3d systems use internally floating point arithmetics in single precision (ref: https://en.wikipedia.org/wiki/Floating-point_arithmetic). When floats get larger they (by design) get less precise. Hence you see these staggerings. Also other systems have these limitations.

I worked on a custom pipeline where everything was stored on disk relative to a specific point in the world. Per scene we had an offset that was applied during loading so that the center of attention was always near the origin. We did all this to overcome the limitations of floating point.

Systems that need to be more precise (like CAD systems) typically use double precision or do not use floating point arithmetics. But that will give you a performance penalty.


Bad Quality whilst exporting an animation

I also sometimes have videos smaller than full HD and when I open them in the player, the video player maximizes its window and makes the video display larger.
However, this is not a problem with Blender, but with the video player. Or maybe with the video format you choose. But if the file says it's 500 x 500 then it is all fine with the file. Maybe there is a setting in the player to play the video in original size.
What I meant by "it is not stretched to 1920 x 1080" is that the aspect ratio didn't change. It might be scaled to fit the height of 1080 and of course this might result in worse quality because not all software scales bitmap perfectly. But again: this is not a Blender problem. By the way, this is how it would look stretched to 1920 x 1080 and your object definitely isn't stretched like that:


Orbit around selection not working on some Objects?

First thing to try .. go to the object's properties > Viiewport Display panel, and check 'Bounds'. The view orbit is based on the selection's bounding box.. even one stray vertex will recenter it.


Reducing vertices breaks model when exported elsewhere

I figured out what was wrong in my particular case. Reducing the amount of vertices completely breaks the model if the model has shape keys. It's really annoying that Blender doesn't give you a warning about this, but basically, the solution is that you have to delete any existing shape keys before decimating or performing similar operations.


Display Audio Meters in Video Sequence Editor?

This is not a built-in feature, but you can get an audio-meter in the VSE by installing this (essential) VSE add-on: https://github.com/snuq/VSEQF


Linking Mist pass to OutputFile Node Image cannot be performed using Python API?

It's weird. Might be a bug. It does not work with the output specified by it's index, but if I name the output, it works correctly. Try using:

tl.new(n_image_rl.outputs['Mist'], n_depth_out.inputs[0])


Motion Paths

From the blender user manual

Editor: 3D View, Properties editor
Mode:   Object Mode
Panel:  Properties editor ‣ Object ‣ Motion Paths

The Motion Paths tool allows you to visualize the motion of points as paths over a series of frames. These points can be object origins and bone joints.
Motion Paths

To create or remove motion paths, it is necessary to first select the bones. Then:

To show the paths (or update them, if needed), click on the Calculate Path button.
To hide the paths, click on the Clear Paths button.

These are display only, to get them as actual object you'd need to convert them using a script, there's one in this blender artists thread

Unfortunately this won't work in blender 2.81, but with a slight modification it does, here's the updated version:

## path from -calculated- motion path

import bpy
ob = bpy.context.object
mp = ob.motion_path

if mp:
    path = bpy.data.curves.new('path','CURVE')
    curve = bpy.data.objects.new('Curve',path)
    bpy.context.scene.collection.objects.link(curve)
    path.dimensions = '3D'
    spline = path.splines.new('BEZIER')
    spline.bezier_points.add(len(mp.points)-1)

    for i,o in enumerate(spline.bezier_points):
        o.co = mp.points[i].co
        o.handle_right_type = 'AUTO'
        o.handle_left_type = 'AUTO'


Weight paint, I can subtract but can't add

Hit T to open up your brush settings. Chose the draw brush:

Set the Weight to 1, and the strength to 1. Also set the blend to Mix.

Click Images to view larger versions


Reflection is quad dependent and looks non realistic

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

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


Don't have H.264 as a video output format option

Choose FFmpeg Video and then it's available as codec. In 2.79 the Encoding panel has been improved, see the release notes for more information.


Each camera would need to be in a different view layer.
There can only be one active composite node on the compositor, that would be the output image set in the output section of the properties window.
If you need more than one output use file output nodes, add one file output node to each of the view layers you need


Were you hoping for something more like the following (frame 8)?

If you were, you needed to change the material, Material, from a Transparent BSDF to the following node setup. This is pulled from the Vfx Blender's YouTube video, How to kick a Fireball (blender tutorial) [HD] part 1.

As I understand it, it uses the Attribute nodes to determine what part of the cube's volume is smoke and what is fire. The ColorRamp obviously colors the fire, and the Math > Multiply node set to 9.000 determines how transparent the fire is (0 being clear). The Math > Multiply node set to 7.500 determines how transparent the smoke is (0 being clear).

Here is the adjusted .blend file (w/o textures because they didn't come through Google Drive):


Depending on your concrete situation, there are multiple possibilities, such as the "Start Deactivated" checkbox, or you can keyframe the "Dynamic" checkbox


Blender freezes when trying to bake normal map

Ok,
I downloaded your file, baked a 2k normalmap and it took me less than 5 min (Macbook Pro).

So, I could not reproduce the behavior you mentioned and the only thing I changed was to reduce the preview subdivision of your multiresolution modifier on the highpoly mesh.


Blender text editor and the 'insert' key

You pressed the insert key on your keyboard. It's traditionally above the delete key. This is common behavior, and will do the same thing in other applications as well. Pressing this will toggle between 'insert mode' (normal mode) and 'overwrite mode.'


How to check if an object at on a specific position/how to get the position of an object

I actually found out now, if someone needs to know, this is how I get the positions:

import bge
import GameLogic as g

cont = g.getCurrentController()
own = cont.owner
pos = own.position
x = pos[0]
y = pos[1]
z = pos[2]

and this is how I check for them:
if x = 3.0 and 2.5 and y == 3 and z == 2.5:
    print("The object has the coordinates (3.0|2.5|2.5)")


Change orientation of object while following path in game engine

I suggest to use two objects.
Sledge
The base is the sledge that plays the path following animation.
Duck
The Duck is parented to the sledge. When hit it plays the flip-back animation.
As it is parented to the sledge it will still follow the sledge movement.


Place objects on the center of the ground plane and maintain structure via python script

A way to do it:

Loops overs selected meshes to get each individual center in world coordinates
Then calculates overall center
Loops again over them to shift their vertices considering the overall center

The script:
import bpy
from mathutils import Vector

# Choose the axis you want to center on
center_x = True
center_y = True
center_z = False

# Get objects
objects = bpy.context.selected_objects

centers = []

# Loop over meshes to get their centers
for obj in [o for o in objects if o.type == 'MESH']:
    world_matrix = obj.matrix_world
    vertices = obj.data.vertices
    # Get object center in world coordinates
    center = sum([world_matrix @ Vector(v.co) for v in vertices], Vector()) / len(vertices)
    centers.append(center)

# Calculate overall center
center = sum([c for c in centers], Vector()) / len(centers)

# Keep axis you want
center.x = center.x if center_x else 0
center.y = center.y if center_y else 0
center.z = center.z if center_z else 0

# Loop over meshes to shift them
for obj in [o for o in objects if o.type == 'MESH']:
    vertices = obj.data.vertices
    world_matrix_inv = obj.matrix_world.inverted()
    # Calculate the shift in object coordinates
    delta = world_matrix_inv @ center
    # Shift vertices
    for v in obj.data.vertices:
        v.co = v.co - delta


Newbie Question: in Blender 2.8 Adding Armature options missing?

You need to enable Rigify to see them.

Click on "Edit" -> "Preferences..."
In the new window, click on "Add-ons"
In the search bar at the top right, type in 'rig'
You should now see "Rigging: Rigify"
Click the checkbox next to it and close the window; now you should see those extra options

Note: I ran into the same problem; this solution was based on help from the Gabbitt 3D Discord channel.


Can't get transparency right for God Rays

Holograms are essentially like reflections, which are purely additive light without any occlusion.
Try using the set alpha command to your image with zeros occlusion set in the alpha buffer. The RGB will then end up becoming a pure emission when composited with an Alpha Over.
Note that using proper camera encodings will take the effect even further along.
Good luck.


why does world background appear very dark when rendered?

It looks like you might have set the clamp settings set too low.
Try increasing them until you find a good balance between highlights and fireflies (I typically use something like 2, but you might be able to get away with 1).

You can probably leave Clamp Direct at 0, since direct bounces typically don't result in fireflies.


Is there a better way to make addon working on both blender 2.80 and 2.79?

Two separate addons

The code in question and your answer has versioning for one part of the changes from 2.79 to 2.80, ie annotations in property groups.

I would suggest writing  two addons, one that works in 2.79 and one that works in 2.80. (As opposed to having versioning code ad hoc in each py file.)

Distribute as an addon for that version. If using github a branch is often used.

If wish to distribute as a single addon that works in both, suggest putting each in a subfolder of the root folder of the addon, then in the addons __init__.py check once for version and import modules from that version folder.

See this post on fake modules for some cool trickery https://stackoverflow.com/a/27476659/5317130


Why is it creating two vertices in the same spot?

In Blender, sometimes you can create faces or edges without knowing. For example, if you tried to extrude a face, (shortcut E), but then you canceled the operation with escape, you might not notice, but a new face have been created over the one you was selecting, and its now in the same position!. This might be how the problem that you have was started.

One solution might be in the Mesh> Cleanup> Degenerate Dissolve menu found in the 3D view header while in edit mode.


Keyframe object's active material from material slots

Mixing/Switching Material in the node editor is probably the best solution for you.

Create two distinct materials. We will switch/fade between these two.
Create a third material: "mix". Activate nodes for this material (marked red).
In the node editor, create one material node with the first material and one with the second material. Connect them to a MixRGB node.
You can animate the material influence with the Factor slider of the MixRGB node in the third material.

After keyframing the Mix node, they keys will show up in the dopesheet.

  You can still assign the first two materials to other objects.
  You can add more mix nodes in the "mix" material to switch between more materials.
  The material keyframes don't update in the viewport, but will render correctly.


Can elements of a collection be moved up or down?

The order is alphabetical, but you can use it as an advantage.
I frequently use codes at the beginning of my objects names to determine their order, like:

"AAA Cube"
"AAB Sphere"
"AAF Empty"

This way those object will always be at the top of their collection


delete one by one the vertices of a curve?

You don't actually want a python script to delete points on your curve. If you delete the points on the curve they will be gone, you will need to create new points or reload the blend file if you want to run your animation a second time.

I think animating the curve's bevel factor is closer to what you want.


How to set a starting point when the parenting of objects should start

Child of constraint

It behaves in a similar fashion to parent.  You can move the [child] or the target parent. By having a total of two constraints, one for each hand, you could move the glass from hand to hand.  Set keyframes to control start and
finish of control.  Of course employing paths will bring smooth motion.


Is cycles fresnel node physically correct?

Nothing is physically correct, it's all approximations. (raytracers don't even implement the wave nature of light...). But you're correct in that Cycles' fresnel node is not as close an approximation as it should be. I'll let Lukas Stockner, one of the Cycles' devs, explain: https://blenderartists.org/forum/showthread.php?390686-Alternative-to-Cycles-for-Blender-users&p=2996756#post2996756

tl:dr: the true fresnel result for a non-smooth surface requires you to calculate it with the direction the ray reflects from the microscopic imperfections of the surface. But this direction is not yet known when the mix shader is evaluated, so Cycles is forced to calculate fresnel for a smooth surface.

There are various tricks to approximate the correct result that make things a little more accurate: https://youtu.be/pNiVB7tRG68 It's not perfect, but on average it will give the same result a correct shader will, so it usually looks fine.


How to get the same UV islands to occupy the same place on the texture?

As far as i know, there is no vanilla functionality that allows to pack all UV islands on the same place, essentially stacking them on each other.

There is an addon that comes with Blender though that can help a bit.The name is Magic UV, and it comes with it's own Pack UV function:

The needed preparation is not too complicated if you do not have to many of those same islands:

First of all, you will have to make sure they are all averaged out:

(this will ensure that the islands are all having the same size in the UV editor, if they are the same size on the object.)
Now you adjust the snapping option to vertices

Now you have to go through all same islands.(single face or group of faces can be an island, what matters is the island is the same as the one you want to stack on top)
Select an Island and while moving it, hold Ctrl to snap on a vertex that makes the islands stack exactly on top of the other. Repeat until all same islands are stacked up.
Select all UV islands with A
Then finally go in the UV menu and use the above mentioned UV Manipulation->Pack UV function. Adjust the parameters to better suit your needs.

Here a visual demonstration:

Happy Blending


Does Blender provide a web-compatible codec-container combination that allows for transparent backgrounds in videos?

I've found that container=WebM and codec=WEBM/VP9 seems to do the trick (though Safari doesn't support VP9 at this moment in time).


How to make a .mtl file from .obj file ?

Well, when I export mesh to OBJ format, it also creates an MTL file.

Google said that:

  MTL file is an auxiliary file containing definitions of materials that may be accessed by an OBJ file.

If possible, you need to Import to Blender and then Export to OBJ. MTL file will be generated automatically.


Sculting is a very calculation intensive task. For speed reasons it has been developed in the core of blender using the C language. Implementing the tools you describe in sculpting is possible, but not using the python API. Gladly Blender is OpenSource so you will be able to get the sourcecode and change it to your likings.

Python Alternative:

As in your description the topology must be the same it sounds like sculpting is more the UI/workflow and not the tool (using sculpting the topology does not have to be the same (Dynamic topology). Implementing such a feature inside the 3d editor using python seems to be an good alternative.

You could even store the values in a Weightmap and use this data to calculate the new mesh. Getter the interactivity will be the challenge.


Copy existing property from e.g. Properties window to a custom panel

Of course, you can reuse all python properties at least. 'Right-Click' the property and choose Edit Source, this will open up the associated .py file in the Text Editor:

'Resolution' adapted:

def draw(self, context):
    scn = context.scene
    rd = scn.render

    layout = self.layout
    row = layout.row()
    sub = row.column(align=True)
    sub.label(text="Resolution:")
    sub.prop(rd, "resolution_x", text="X")
    sub.prop(rd, "resolution_y", text="Y")
    sub.prop(rd, "resolution_percentage", text="")


How to import ".off" object file using python code

You are under a misapprehension that you can not use the import OFF addon you posted.

Get the name of the operator by mousing over the import menu bpy.ops.import_mesh.off(...)

Typing the operator in the python console and using autocomplete CrtlSpace exposes the parameters (Same as those in the UI).

bpy.ops.import_mesh.off(filepath="", filter_glob="*.off", axis_forward='Y', axis_up='Z')
>>> bpy.ops.import_mesh.off(

Simply pass the filepath of an OFF file to the operator in your own code.

Eg: to import with default settings.

filepath = "some/path/to/file.off"
bpy.ops.import_mesh.off(filepath)

This can be done for pretty much all import / export addons.


How do find all instances of a mesh via Python?

For all meshes and their instances, you can loop over the mesh objects and collect objects that correspond to the same mesh using a dictionary:
import bpy
from collections import defaultdict

result = defaultdict(list)

for obj in [o for o in bpy.data.objects if o.type == 'MESH']:
    result[obj.data].append(obj)

for mesh, objects in result.items():
    print( "Mesh " + mesh.name + " has " + ", ".join(o.name for o in objects) + " object(s) for instance(s)")

Or, to find instances of one mesh:
import bpy

obj = bpy.data.objects['Cube']

instances = [o for o in bpy.data.objects if o.data == obj.data]

print(instances)


I'm trying to make a vertex group on one side of a model, but the selection keeps mirroring on the other side too. How do I stop this?

The Mirror Modifier is a non-destructive action within Blender. Meaning the changes are virtual and the results do not make any permanent changes.

(This is just a UV sphere with half the vertices deleted and then a Mirror Modifier added.)

When you edit one side of the Mesh a representation of the same change is shown in the mirrored vertices.

If you want the vertices to exist independantly of the Modifier then you must click Apply.

Now the Modifier is applied any changes apply to only the selected vertices.

The same is true of Vertex groups. As the geometry only exists in one place (i.e. the left) when the Modifier is working. As soon as you apply it you can affect any of the now real vertices.


Displacement works by using existing geometry on the object.

It looks like your building has very little geometry, so only the small amount of existing vertices are moved causing this bending effect. To fix this, just select all of the edges in edit mode by pressing A, and subdivide a few times to create more geometry. As a little note, displacement often works best when the faces on the object are mostly squares.


The transform properties display LOCAL coordinates.

The values for location, rotation and scale are local coordinates.

They will also be the global coordinates if camera has no parent, or all its ancestors have Identity  matrix world (0 loc and rot unit scale) (and there are no constraints involved)

To display the global location of an object snap the 3d cursor to the object. (ShiftS Cursor to active) The 3d cursor is always in global coordinates.

In cases where you can set the global location of camera, move the 3d cursor and (ShiftS Active to Cursor)  Note if there are constraints (for example copy location) then these will override any transform property settings.

Can get the global rotation from the console with

>>> C.object.matrix_world.to_euler()
Euler((0.7297371029853821, -0.4792802035808563, -0.5616455078125), 'XYZ')

that's in radians. In degrees

>>> [degrees(a) for a in C.object.matrix_world.to_euler()]
[41.8108561551659, -27.460732869353954, -32.179917180138155]

Displaying in the UI.

Cube rotated locally in y 45 degrees. Parented to empty.  The global rotation is displayed below the local. (The Cube is pinned to properties, as the empty  parent is rotated)

Bare bones example script for 2.8 to put  global rotation euler 'XYZ' on transform panel.  Didn't add a setter, hence the disabled look.

import bpy
from mathutils import Vector
from bpy.props import PointerProperty, FloatVectorProperty, IntProperty
def global_rotation_euler(self):
    ob = self.id_data
    return ob.matrix_world.to_euler() # ob.rotation_type

from bpy.types import PropertyGroup
class GlobalCoords(PropertyGroup):
    x : IntProperty()
    rotation_euler : FloatVectorProperty(name="Rotation",
            default=(0, 0, 0),
            size=3,
            subtype='EULER',
            precision=3,
            get=global_rotation_euler)

bpy.utils.register_class(GlobalCoords)

bpy.types.Object.global_coords = PointerProperty(type=GlobalCoords)

def draw_global_coords(self, context):
    ob = context.object
    layout = self.layout
    col = layout.column()
    col.prop(ob.global_coords, "rotation_euler")

bpy.types.OBJECT_PT_transform.append(draw_global_coords)


Cycles option to merge multiple renders instead of one big render?

The reason why the low sample image merging works, is that

  the 1000000 watt pixel will have to be 1, which is much easier to average with the corresponding pixel from another version of the image

(quoted from the article you linked to).

In other words, it clamps all of the bright pixels at one when you write it out to an image format like a PNG. This means, though, that if you wrote to an image format with an extended range, like HDR or EXR, this method wouldn't be effective.

When Cycles samples a pixel, it basically averages together the values of possible paths the light could take, not really any different than what you would do by averaging together low sample images with different seed values.

Therefore, all you are really doing is just what Cycles does anyway. When you write out to images like PNGs or TIFFs, you are clamping the bright pixels. You can get the same results, with more control, even, by adjusting the Clamp Direct and Clamp Indirect values.

When the clamping value is anything other than zero, Cycles will make that the maximum brightness of any pixel that it samples. This means that clamping can check for über-bright pixels every sample, not just every 128 samples, or however many you are using. This also allows you to clamp indirect and direct samples separately. This is useful, since indirect sampling is usually more noisy than direct sampling. Don't make your clamping values too low, though, or your image will become dark, which can make it grainy.

Example

Average of 4 images, each with 128 samples, total rendertime about 1 min 20 sec:

Single image with 256 samples, Clamp Indirect at 3 and Clamp Direct at 5, total rendertime 40 sec:

There is a better reduction of fireflies through clamping instead averaging together differently seeded images. Plus, the clamped one had a faster rendertime, since it had half the samples. You'd be better off clamping.

Here is the Blender manual page on clamping.


'Open on mouse over' is for menus.

This option allow to open a menu, just because the mouse cursor is over it.

If the option is not checked, you need to click on menus to open them.

Most of things are documented in Blender. If you keep the mouse cursor above the option, you'll have some explanation

:


Since the texture you are trying to use is a B&W image, not a purple (tangent space) normal map, you should be using a Bump Node instead of a Normal Map Node. Connect the wave texture to the Height input of the Bump Node, and then connect the Normal output of the Bump Node like you would with a Normal Map. Additionally, I often find the contrast between black and white on many of the generated textures to be too strong to make a realistic bump map on it's own. I find that using a MixRGB node, to mix the results of the generated map with white (or black), helps to soften the impact of the texture and make the resulting bump map look more realistic. This can also be done by controlling the strength factor of the Bump Node, however I feel this way gives me more control, especially when using multiple generated textures at once.


Ni (optical_density)

The code lives in scripts/addons/io_scene_obj/export.obj (line 92+ ). You could comment out these lines:

if hasattr(mat, "raytrace_transparency") and hasattr(mat.raytrace_transparency, "ior"):
    fw('Ni %.6f\n' % mat.raytrace_transparency.ior)  # Refraction index
else:
    fw('Ni %.6f\n' % 1.0)

The .obj exporter will automatically add the Ni as soon as you assign any material to the object.

Could be worth updating your C++ obj file loader, at least to ignore the Ni command if material is set, because it is a valid part of the .mtl specs


Bones Deforming Mesh that it's attached to

For some reason you've scaled your bone on its Y axis (Z global axis when the bone stands up) when you were in Pose mode. You need to select it in Pose mode and press altS to reset the scale. The parented mesh will come back to its normal proportion by the way...

If you want your bone to be longer than it is, you need to scale it in Edit mode, not Pose mode, which is made for animation. If you think that the Octahedral display mode is not convenient, you can switch to B-Bone mode for example, then you can change the bone thickness with
ctrlaltS and drag.


You can make use of the Brush Mask textures with either a cloud, stucci or musgrave procedural texture set to View Plane, and Rake and Random in the texture mask brush settings in the tool bar. Using this, select your color under your brush with S and then set your brush blend mode to 'multiply' and lower the strength a bit. You can knock in some textured spots, and then switch your blend mode to 'screen' or 'add' to break this new textured area up with some illusion of depth. If it gets too strong, switch back to 'mix' blend mode and tone it down.

Using photo textures as a reference is actually best here, looking at the kinds of patterns that occur with the oxidation. Sometimes you just get pits showing up from under the paint, sometimes you have a whole area of voronoi-like shading aroudn deep wells. As the painter, you are the one in charge here.


Why has Blender started not responding with every brush stroke I make

Delete the Subdivision Modifier on your main body. Your vertex count is high enough for smooth sculpting.


Finding python operator for every tool within Blender

If you pull down the main menu an area appears which shows the log of invoked operators (I don't know the name of this area).

There you can find operators which are not displayed in tooltips.


How to lock an object so is always showing the same face when rotates

I think this can be achieved with drivers as well.
Drivers
You could add a driver to the rotation direction around the axis of the pedal, and then have it driven via Scripted Expression by the rotation of the gear object.
The expression should be "-var" since the pedal turns in the opposite direction with the same angular velocity.
Also, because the pedal is most likely a child of the gear, make sure Space it set to World Space (otherwise it won't work)
Constrains
Another way is to is to do it using constraints and empties. You could add an Empty at the location of the pedal origin (or pivot or turning axis), and add an empty exactly below it on the ground.
Add a Damped track constraint to the pedal with Ground Empty as the Target, and set it to the X axis. Add a Copy Location Constraint to the Ground Target and with the Pedal Empty as a target, and check the boxes next to X and Y (but not Z).
You need the extra Pedal Empty because it won't work if you target the pedal itself directly (probably because the constraint on pedal is targeting the Ground Empty and it causes a direct loop).

Left is with drivers. Right with constraints.


Idle Chit-chat

I have come up with a way of doing it that has many steps, but turns out a nice result.

How to Do It

Start by selecting a single vertex of your sphere in Edit Mode and keying Ctrl + L to select the rest of it. Then key P and click on Selection. This should seParate your sphere from the cube mesh. Tab into Object Mode.

Now select the cube and go to the Object modifiers tab in the Properties panel. Add a Boolean modifier. Set the settings to the following. Substitute the name of your sphere mesh for where it says ""

If you key Z to enter wireframe mode, your meshes should look something like this.

Apply the Boolean modifier by clicking the Apply button.

Make sure you are in Orthographic View (toggle with Numpad 5). Key Numpad 1, Numpad 3, or Numpad 7 until you are looking at the side of the two meshes like this.

Tab into Edit Mode, toggle Z into wireframe view, and Box select these verticies.

Key X and select Verticies. Tab into Object Mode. Key R, then Z, then 90 to rotate the hole in your cube away from the sphere.

Select the sphere and go to the Object modifiers tab in the Properties panel. Add a Boolean modifier. Set the settings to the following. Substitute the name of your cube mesh for where it says "".

If you key Z to toggle wireframe view, your meshes should look something like this.

Apply the Boolean modifier by clicking the Apply button. Select the cube and key Alt + R. The hole on the side should go back to facing the sphere.

Select the sphere mesh, then Shift + RightMouseButton select the cube mesh. Key Ctrl + J to join the two. Tab into Edit Mode. Key A once or twice to select all of both meshes, key W, and click on Remove Doubles from the popup menu.

Here is a finished .blend file with the two joined meshes.


How to mirror an object along with its local transform orientation?

Mirror Rotation too

While performing the scaling upon the 3D cursor as pivot, you are basically mirroring both the Location (e.g. from X to -X) and the Scale of the object. The only trasformation not affected by the operator is the Rotation.

I don't think that currently (2.77) there's an operator capable of doing all in one shot, but for the provided example it can be done manually by multipying the X-rotation channel value by -1 as shown in the image sequence below:


How to save still renders straight to disk like animations?

Yes, this is supported.

"Write Image" - it's an optional parameter of the operator, and can be set in the key-map editor.

(Preferences > Input > search "render")

In my case I have the shortcut for Render set to CmdR so it looks like this:

Just make sure to specify a file name:


Game engine lights not pointing to same place as in a render

Try using GLSL shading instead of multitexture.

Multitexture shading shades the mesh per vertex. Since your object doesn't have many vertices where the lights should be illuminating, the results are misleading.

If you subdivide your mesh a lot, multitexture gives a more predictable result, but not as nice as GLSL:


modeling repeating patterns onto a curved surface

Create a Mesh Cylinder and set the number of Vertices to 6, then add a Solidify Modifier.

Then add an Array Modifier with Merge checked

Add a second Array Modifier and set the Constant offset (and Merge)

Add a Curve, here I have added a Bezier Circle, set to non-cyclic, rotated 90 on the X and scaled up.
Add a Curve Modifier to your Cylinder stack and use the new Curve as the Object.

Obviously you can set the curve relevant to your requirements but that shows the basics.


There is a way that you can setup your screen to make it faster:

Try adding the vertex group to the Solidify modifier and set the max thickness.
Then you can either select some vertices and set the number directly or go into weight paint mode and paint in thickness.


Animation rotation of an object around another boject's fixed vertices

Yes this is possible.
It helps to be aware of a couple of things.

You can rotate an object around one of the 3 main world axies, by pressing R and then either X, Y or Z.

You can rotate an object around one of its 3 internal axies, by pressing R and then either X, Y or Z twice. (if you tilted an object a bit the world axies and the internal axis no longer align)

In order to rotate your bay door object around the red highlighted edge, you have to place the origin (a pivot) somewhere on this edge and align this edge with one of the 6 aforementioned axis and then make this orientation it's normal state, so to say, by applying the rotation.

So select your door in the 3D viewport, rotate it in a way so the red edge is parallel to a world axis (the X-axis for instance). Then (also in the 3D viewport) go to Object > Apply > Rotation.
Lastly rotate and move it back into its place on the plane. Now if you press R and then X twice, the door should rotate around the red edge.


Render Layer Z in orthogonal and perspective projection

Quote from blenderguru

  View Z Depth and View Distance are very similar and most of the time it doesn’t really matter which you use. But to be thorough: the Z Depth is essentially a plane in line with the camera, and the Distance is literally the distance from the center of the camera emanating radially outwards.

This is for input, not for output but I assume that since the terminology is the same it should do the same calculation.

This brings me to the second question. You could use the above mentioned input on a separate render layer with a material override,


How are RGB values changed on an existing object?

I just found out how with the present configuration (it looks like there was also a texture that had been applied):

Select the object.
Press Object button in properties.  ("Type of active data to display and edit:  Object")
In that same pane, scroll down to and maximize Display.  Current RGB is under Object Color:.

This can be done in either Object Mode or Edit Mode.


How to animate a bone from it's current position - no matter which one - to a specific one?

If you want to have a better control over the animation you should use a Dope Sheet Editor.
In example below I rotate the arm bone and hand bone. The motion starts from 'idle' position and ends in 'bent' position. The yelow dots in Dope Sheet Editor window represent the keyframes.

If you want for example to reverse this motion you go to the last keyframe, hover the cursor over the Dope Sheet Editor window, press S and input the value -1. Now the motion starts from 'bent' pose.

The last thing you may do is to place the animation at the begining of the timeline. You can make it by pressing G button, while hovering the cursor over the Dope Sheet Editor window.


alter paths for boost libs in Blender's CMake to use my system boost

Hm, it is strange it downloaded boost.

If you are looking to change the CMake file, then go to line

find_package(Boost bla bla COMPONENTS ${__boost_packages})

Before that line, insert:

SET(BOOST_ROOT "path/to/boost/")
SET(Boost_NO_SYSTEM_PATHS YES)

With this, it should look for boost only in the specified BOOST_ROOT directory. You might need to move these commands to the upper-most levels of the if's.


How to push object straight in game engine

Your collision bounds on both objects are a sphere. Under the Physic tab check the button for "Collision Bounds". Now assuming you two objects are cubes, the cube collision bounds will work fine.


You need to apply scale to the object before beveling to get a nice result. Go to object mode, select the object you want to bevel, then go to Object > Apply > Scale.

In edit mode, select the edge not face or vertex that you want to bevel, then press B.


How to hide a mesh on render, but keep hiding polygon it was hiding?

Set the pass index of the shirt to 1 (material tab>settings>pass index). Enable material index for the render layer (render layers tab>passes>material index). Go into the compositor (top bar where it says default, change it to compositing). Select use nodes and set up this node setup:

For the top image input on the Alpha Over node set A: to 0.


Toggle Edit Mode and set Spline Type to Bezier.

Tool Shelf T > Tools > Curve Tools > Set Spline Type:

Here is an explanation from the Blender Reference Manual:

  Mesh objects that consist of a series of connected vertices can be
  converted into curve objects. The resulting curve will be a Poly curve
  type, but can be converted to have smooth segments as described above.


FileNotFoundError: [Errno 2] No such file or directory - Blender Python API

I think based on the Error that open is trying to load the file from the Blender project as a directory, but the project is a file and doesn't have this subdirectory "Text". You could probably fix this by using an absolute path and store the "sim_log.txt" in the same directory of the blender project. To get the absolute path you could use os.path.join(os.path.dirname(bpy.data.filepath), "sim_log.txt")


Increasing frame rate without speeding up the cloth simulation

In Blender 2.78, the speed for a cloth simulation can be adjusted here (Physics tab for a cloth object):

I did a quick test with a flag running at 24 FPS (normal speed), then changed the FPS to 60 which caused the simulation to run at a higher speed (unrealistic). Changing the "Multiplier" to a lower value reduced the speed while keeping the 60 FPS. If you change the FPS from 24 to 60 (2.5x) you need to have a multiplier of 1/2.5 = 0.4.

It seems the "base factor" is 24.

See the 2.78 release notes for more details.


Plugin to add several video clips with cross fades between them all?

I have finished the script. The script can be found on GitHub here: https://github.com/MrSprite/VSEC

I have not added sorting by file size or date yet, but all other features should be there!
Let me know if it works!


How can I remove a node group from my startup file?

Steps:

Open up a new Blender file (aka. the startup file)
In the Outliner, select "Data-Blocks" from the drop-down menu
Find the "Node Groups" section, which should contain the node groups that you are trying to remove
Expand one of the node groups and uncheck the "Fake User" field
Repeat this for all the node groups that you want to remove
Save the file as the start up file, close and open a new Blender file

The node groups that do not have any users will not be saved and thus will not be there when the startup file is loaded. If you have multiple node groups to remove and they have dependencies upon each other, then it may be necessary to save the startup file, close, open new, and save again a couple of times. Each time, the node groups without any dependencies (leaves) will be pruned and eventually you can remove all unwanted node groups.


Animation nodes - effector pushes and attracts with falloff on multiple objects

Welcome to StackExchange. This is very easy to do :)

Step-1: Put all the objects into a separate collection. Then, select all the objects and open the N-panel, click the option From Current Transforms under AN-tab. It will store the initial transforms of all the objects,

Step-2: Add the Collection Info node and select the collection in which you stored the objects (in Step-1). Then connect objects to the Object ID Key node
and in the search option select the Initial Transforms option,

Step-3: Then add an empty (I have renamed it as Effector). To move objects away from the Effector, we have to calculate the directions which are pointing toward the Effector (empty) from the objects' location. We can do that by subtracting the Effector's location from the locations of the objects. For further control, I have added another Vertex Math node (with Multiply mode) to restrict the motion of the objects in XY-plane by making Z = 0,

Step-4: Next, add the Offset Matrix node to offset the initial locations of the objects along the directions which we have calculated in Step-3, and also you can offset the rotations as you like,

Step-5: Final step is, add the Object Controller Falloff node to control falloff of Offset Matrix node, adjust of falloff node as you like,

By the way you can also combine the different falloffs.

Blend File:


How to create an equilateral triangle base prism

If you are talking about a triangular prism, ShiftAto add a Cylinder object, then F6 to set the Vertices number to 3.


how do i change 24 fps to 60 fps without affecting the speed?

There is a time remapping option to remap your speed under the Render Dimension panel:

After the remapping, you need to calculate the end time by your self.
And also, you can directly "scale" the animation inside your time line as you do in 3D View (press s). As 24 to 60, press 2.5 in your numpad should give you a correct result
The keyframe and animation is kind of complicate and give various option to tweak and customize the result. Give it a try and if still having problem, list more detail on what you've encountered with clear figure or good structured text description.


Is it possible to get rigid body objects to move randomly in space?

This is possible. The solution contains multiple steps though (long answer).

Requirements:

random starting location and rotation
rigid bodies
no gravity
random initial velocity

In my example this resembles and asteroid field.

Setting up objects

Create a large domain. Add a particle system to it, emit randomly from volume. Check the Rotation option and set them to random values. In the Render section use a dupli object. I randomized the scale as well for more variety.

Convert the particle modifier, then hide or remove it. The objects have been created, each with their own location, rotation, scale. Apply the scale if you wish. Ctrl+A

Create the rigid body world in the Scene properties panel. I deleted the dupli object. Select the large domain object and make it a passive rigid body with mesh boundaries. Hide it temporarily.

Select all the particle duplicates, with one as the active object. Make it an active rigid body. In my case the objects are cubes.

Copy the settings to all selected.
This will take some time. Use few objects or be patient. After the operation all objects are rigid bodies confined to the walls of the domain object. Running the simulation with Alt+A will result in the objects tumbling onto the domain floor.Solve this, by disabling Gravity in the Scene Properties Panel.The object will now (mostly) stay as they are. They're rigid bodies which will collide physically.Unfortunately, we can not give rigid bodies a starting velocity.

Setting up an initial velocity

Rigid bodies don't have a starting velocity. But since their  can be keyframed and because rigid bodies calculate their movement on previous frames, we can achieve this with keyframes.

In this example, the cube has two location keyframes on frame 1 and 3. Its animated rigid body property is keyed to ON on frame 2 and to OFF on frame 3. Hence the speed of frame 2 is the input for frame 3 and following.

To animate all particle object over the span of two frames, I will use a python script.

The script will do the following:

get all selected objects (our particles)
get the start frame
for each object:

  key the first frame of the scene (location and rotation)
  translate and rotate the object randomly
  key the location and rotation to the third frame of the scene
  key the animated property to ON on frame 2
  key the animated property to OFF on frame 3

I will use the following modules.

import bpy
from random import random
from random import uniform
from math import pow
from math import pi

We will need a function to generate a random vector. Let's setup a threedimensional array with random values, the normalize it and multiply it with a given length (pLen).

def genRandVec(pLen):
    #setup random translation vector
    t = [random() - 0.5 for x in range(3)]
    # normalize the translation vector
    t_len = pow(pow(t[0], 2) + pow(t[1], 2) + pow(t[2], 2), 0.5)
    t = [x / t_len for x in t]
    # multiply it with the length
    t = [x * pLen for x in t]
    return t

Next up is a function which will move and rotate an object with a certain randomization. We will get the parameters:

obj          the input object
t_amount     the maximum amount of translation
t_var        the amount of variance in the translation [0 ... 1]
r_amount     the maximum amount of rotation
r_var        the amount of variance in the rotation[0 ... 1]

A random value of the variance is input into the genRandVec function. Then location and rotation_euler of the object are altered.

def randLocRot(obj, t_amount, t_var, r_amount, r_var):
    t_rand = uniform(1-t_var, 1)
    t = genRandVec(t_amount * t_rand)
    obj.location = (t[0] + obj.location.x, t[1] + obj.location.y, t[2] + obj.location.z)

    r_rand = uniform(1-r_var, 1)
    r = genRandVec(r_amount * r_rand)
    # because radians are confusing
    r = [x*pi/180 for x in r]

    obj.rotation_euler = [obj.rotation_euler[0] + r[0], obj.rotation_euler[1] + r[1], obj.rotation_euler[2] + r[2]]

With these functions we can easily assemble the required steps.

def randomTwoFrameMovement():
    # get scene variables
    sel = bpy.context.selected_objects
    scn = bpy.context.scene
    startFrame = scn.frame_start
    keyInterp = bpy.context.user_preferences.edit.keyframe_new_interpolation_type
    # set interpolation type
    bpy.context.user_preferences.edit.keyframe_new_interpolation_type ='LINEAR'
    # counter
    i = 0
    for obj in sel:
        i = i + 1
        print(str(i) + " / " + str(len(sel)))
        obj.keyframe_insert(data_path='location', frame=startFrame)
        obj.keyframe_insert(data_path='rotation_euler', frame=startFrame)
        randLocRot(obj, 0.2, 1, 2, 1)
        obj.keyframe_insert(data_path='location', frame=startFrame+2)
        obj.keyframe_insert(data_path='rotation_euler', frame=startFrame+2)

        obj.rigid_body.kinematic = True
        obj.keyframe_insert(data_path='rigid_body.kinematic', frame=startFrame+1)
        obj.rigid_body.kinematic = False
        obj.keyframe_insert(data_path='rigid_body.kinematic', frame=startFrame+2)

    # set interpolation type back
    bpy.context.user_preferences.edit.keyframe_new_interpolation_type = keyInterp

Select all particle object and call randomTwoFrameMovement(). Then, simulate the Rigid Body World.

The Calculate Mass tool is very useful. Setting the rigid body dynamics to 0 Damping results in a more space-like feeling.

 Higher Resolution


repeating hole pattern or texture on surfaces (climbing wall drill holes)

You could try particles. However this is destructive and you have only little control over the positions of the holes.


I want parts of a scene to be invisible in final render but still be visible in reflections and light bounces

Use the Shadow Catcher feature available in versions 2.78.5 or higher. You don't need to do much.

Set the surrounding elements be a shadow catcher in Cycles Settings> Ray Visibility.

The rendered image will have the shadow and reflections and a transparent background.

Then just overlay the rendered image onto your background using Alpha Over:

For other ways to do this.

Using a Layer Mask.

In this example the monkey is in layer 2 and the environment in layer 1. In the layer settings Layer 1 is used as a mask layer.

Make the surrounding elements invisible to the camera using Ray Visibility.

Make the surrounding elements use a material that is transparent to Camera Ray using Light Paths.

Give the material for your object a Pass Index number, enable Material Index in the render layers, and use the Material Index as an ID mask to Set an alpha channel for the rendered image in the compositor.

(click on the image to enlarge)

Give the Object a Pass Index number, enable Object Index in the render layers, and use the IndexOB as an ID mask to set an alpha channel for the rendered image in the compositor.


Follow Active Quads will work in this case, but you need to pay attention to a few things to get a clean 90-degree unwrap.
In this method Blender takes the active face and lays out other selected faces around it, following its shape in UV space (not in 3D space). In other words, it is important how your active quad looks in the UV space.
If your mesh doesn't have a UV map (you didn't unwrap it), the active face is mapped to the size of UV space (a perfect square/rectangle) and other faces are placed around it accordingly.
But if your mesh already has a UV map, the active face is not mapped to the size of UV space, but rather its existing shape in UV space is used.
For example, if your UV map looks like this (notice the shape of the active quad):

the result of unwrapping with Follow Active Quads will look like this (notice how selected faces are following the shape of the active face):

To get a nice grid, you have to turn your active quad into a perfect rectangle in UV space. You can do that by editing the vertices manually, by resetting the UV map (U > Reset), or by using Lightmap Pack unwrap (U > Lightmap Pack > OK). I usually use Lightmap Pack unwrap in cases like this. It's fast and it fits all the faces into UV space (they are smaller, so after using Follow Active Quads the unwrapped grid isn't huge).
The result of using Lightmap Pack will look like this (notice the active face turned into a perfect rectangle).

Now it's OK to use Follow Active Quads - you should have a nice 90-degree grid:

To sum it up, here's your workflow:

Select all faces you want to unwrap.
Use Lightmap Pack unwrap (U > Lightmap Pack > OK).
With active quad selected use Follow Active Quads (U > Follow Active Quads).


A plane has only 4 vertices. It is an object that cannot exist in the real world as it only has two dimensions (in this case in X and Y) It has no depth on the Z axis.

On the Z axis it has a value of 0. Multiplying 0 by any number will always yield 0, so scaling will have no effect.

Blender does not behave like sketchup, or other software, that will create new geometry just by scaling on one axis.

The way to get thickness out of a plane is to Extrude the geometry:

Select your plane, enter Edit Mode (press  Tab)

Select the face (or vertices, or edges) press  E  and move the cursor on the axis you want the newly extruded geometry to go.

If you exit to Object mode again, you will see that your object has now a value for the dimensions in the Z axis.


Does blender release the memory when a render is finished?

Certain things like image textures are cached after a render, so they don't have to loaded from disk if you render again. That can be disabled in the Render Properties panel(But i wouldn't recommend it unless you are really low on RAM):

As previously mentioned, after a rendering, the system memory usage is definitely higher, but there is no runaway memory leaks, so you can just keep rendering again and again without having to worry about Blender running out of memory.

For the GPU renderer, data on the GPU RAM are freed as soon as the render is done.

"Free RAM is wasted RAM". As long as your system has enough RAM that it's not swapping to disk, I wouldn't worry too much about it.


How to adjust how a mesh looks in-between shape keys?

Shapekeys are not a very solid alternative to rigging. The way shapekeys work is by exclusively translating each vertex from the Basis to the shapekey. The shortest way to do this would be by translating each vertex in the way you see in your "in-between". Shapekeys should only be used for things such as facial expressions, correcting armature deforms, etc.  In short, the inbetweens cannot be controlled, you're going to have to rig that finger if you want it to move correctly


Help with joining parts of a model using boolean modifier

The problem was non-manifold geometry as mentioned in comments. After making mesh manifold Boolean modifier worked properly.


Blender Game not rendering models correctly, normals recalculated and flipped,

I figured out what was going on after a few hours of trial and error, the issue was that the faces that weren't displaying had more than 4 vertices, once I triangulated the faces everything worked fine. The issue with some other textures disappearing depending on different culling and normal settings was due to the object being scaled in the negatives on the y-axis, blender doesn't like that apparently.


Select the teeth (RClick), select the jaw (Shift+RClick), Ctrl+P to parent them, select "object" in the menu. now if you move/rotate/scale the jaw, the teeth will follow


How to achieve a similar effect (rocks)?

You could do it this way:

Create a plane, subdivide, play with the Fractal value in the Operator box, flatten it on the Z axis.

Extrude to create the cliff, extrude again to create a cliff on the cliff, create some horizontal edge loops:

Enable the Proportional Editing option and move some vertices. Don't give any Subsurf modifier or Smooth Shading to keep a low-poly look:


Use a pointer property

Can set up a pointer to any blender ID type objects, in this case bpy.types.Object instances of which can be found in bpy.data.objects collection.

Assign the property to class

import bpy
from bpy.types import Object, Scene
from bpy.props import PointerProperty

Scene.target_obj = PointerProperty(type=Object)

Test.

>>> C.object
bpy.data.objects['Cube']

>>> bpy.ops.object.duplicate()
{'FINISHED'}

>>> C.object
bpy.data.objects['Cube.001']

>>> C.scene.target_obj = C.object
>>> C.object.name = "Foo"
>>> C.scene.target_obj
bpy.data.objects['Foo']


Is there a way of having Blender reset the 'origin to geometery' automatically?

Scripting

Test run, Shift select 3 objects, extends middle to "kiss" outer

Test script:

Select 3 objects, extends the active (middle) to the outer objects.  Click the "run script" button to run.

import bpy
import bmesh
context = bpy.context

def kiss_faces(ob, target):
    mw = ob.matrix_world
    mwi = ob.matrix_world.inverted()
    v = mwi @ target.matrix_world.translation
    if v.length < 1e-5:
        return
    f = sorted(ob.data.polygons, key=lambda p : (p.center - v).length)[0]

    pt = target.matrix_world.inverted() @ ob.matrix_world @ f.center
    hit, loc, norm, idx = target.closest_point_on_mesh(pt)

    if hit:

        d = (ob.matrix_world.inverted() @ target.matrix_world @ loc - f.center).length * f.normal
        for i in f.vertices:
            ob.data.vertices[i].co += d
        ob.data.update()

o = context.object
a, b = [o for o in context.selected_objects if o.type == 'MESH' and o is not context.object]
assert(o == context.object)

kiss_faces(o, a)
kiss_faces(o, b)
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')

Note script above for 2.8, for 2.7x, hit CtrlF in blender text editor and replace all occurrences of  ampersand @ with asterisk *


Transparent plane working on EEVEE but not cycles

Don't add the translucency after the transparency.
Use transparent at the very end of the chain.


Move scene objects according to camera path

Object Constraint Follow Path for Camera
Object Constraint Copy Z Rotation for Camera.001
Object Constraint Copy Location for Mesh objects in negative

Bright orange Camera is active for rendering.
Camera on path can be any object. Mesh Objects are parented to Empty.


Is there a way to paint/remove part of this texture?

You can use this Robin Betts' answer and limit the width of the stripes with a mask
Then you can adjust gap and stripe length independently :).


This is not blur, this is noise, due to insufficient amount of ray bounces, if you take a look at the reflection, it's not blurred, the white and black pixels making the noise are because of the rays are not able to collect enough data because they are set to low bounce values.
Try one of two things:
First: instead of using Glass Shader, use an Add Shader to connect a Glossy Shader and a Transparent Shader, you might need to tweak the parameters of both shaders to meet your requirements, keep in mind this will not give you any refraction, but it should eliminate the noise and keep the glossy reflection. If you don't like what you get with an Add Shader, you can use a Mix Shader instead, and add an Input Node called "Layer Weight", use Fresnel as a Factor, then you can tweak the Blend in Layer Weight Node in order to get the effect you want.
Second: Go to Render Panel, under Light Paths menu, change the Integrator Presets into Full Global Illumination.
Aside from that, if you are planning not to use any kind of roughness in the Glossy Shader, put it to "Sharp" instead of "GGX" or "Beckman" this will tell Cycles not to calculate roughness, so changing roughness values will not do a thing, also if you still need some roughness, my advise is to use Ashikhmin-Shirley method instead of "GGX" or "Beckman", it gives better results, specially when the roughness is less than 0.7.
Hope this helps, Happy Blending!


Connect two cubes without creating overlapping edges/faces

To follow your approach, you could:

K with C to constrain to the horizontal and Z to cut through.. create loops on both sides,
In Face Mode, Select the inside faces, and CtrlE  Edge menu > Bridge Edge Loops

But, if your desk is mainly symmetrical, I would make only one side, and work on that, under a Mirror modifier, with 'Merge' checked.


Remote rendering over internet (separate networks)

There is a nice trick to setup a local renderfarm without any external software:

  I found this to be working very reliably for me: Make your blend file ready for rendering, with all the settings, with the whole frame range you want to render. Make sure that in the Render Output settings, Overwrite is ticked off and Placeholders is turned on. Your blend file should be on some shared folder, where all machines can access it and can write rendered frame to the same output folder. Then, you can open this same file on each machine and run "Render Animation" command. The Overwrite/Placeholders combo is the key here. Before starting to render a frame, Blender checks if it is rendered already. If it exists, blender checks for next frame. Upon starting a render, Blender creates placeholder file immediately, so it prevents different computers from rendering same frame. Over a local network, this works perfect.

Source: https://blender.community/c/rightclickselect/H3dbbc/


I'm guessing that the issue you have is clipping.

You can change that in the Camera a properties:

Set it to something low this will allow your camera to get closer to your model.


Linux Ubuntu 18.04 - Sculpting performance (dyntopo) is terrible in comparison to Windows

This is not normal. The entire Blender Animation Studio is running Linux, with many machines using NVidia GPUs. All the Open Movies were made on Linux.


The laplacian Lightning generator produces a set of Mesh objects. At its most basic setting, using two empties (origin and ground).

You can use the Single Mesh tickbox to make sure it's all one mesh, you lose flexibility, but the sake of example that method is probably handiest.

You can add a skin modifier to the mesh. By default the skinned edges is probably not the right size, you enter edit mode on the mesh, and go to vertex selection mode, select all vertices, then ctrl+a to scale down the radius of the skin.
Alternatively convert it to a Curve object (it will convert each edge to a straight section Curve type)  (alt+C > Curve From Mesh)

Both solutions will render fine in Cycles.

For the animation, perhaps you might use a Build Modifier and tick reverse. Remember Light is a really fast phenomenum, often all we see is the trail of air burning and extinguishing rather fast.

Ultra Slowmotion:

I think it might have been better to subdivide the generated mesh a few times..now it exhibits jumps..

Credits to gandalf3 for this one:

Alternatively

(unless you need to generate a tonne of different strikes) Why not trace a photograph and use artistic discretion to 3d spatialize it, and animate that strike:)


This is the simplest way I know of merging UV maps in Blender:

Separate all the polygons of the head to a new object.
Delete the 'body' UV map from the head object.
Rename the 'head' UV map of the head object to 'body'.
Delete the 'head' UV map of the body object as you don't need it.
Merge the head object back onto the body and all the UVs will now be in the 'body' UV map.


MultiGPU Blender setup - Running Blender on one and rendering on another

You can assign your GPUs for rendering and display separately.
Just go to your User-Preferences, and in the System-Panel under Cycles Compute Device assign your secondary GPUs as render device, and disable the card that runs the display for rendering.


duplicate the mesh in edit mode and flip normals using python script

Then you get this error

'NoneType' object has no attribute 'copy'

This means, that you try to get attribute from object 'NoneType'. NoneType is nothing.  So you want to get something from none. Why dup_object is None? You will get 'NoneType' when try to get object, that doesn't exists. I guess there is no object with name ""object"". Why name is "object"? - check this.


How can I scale these objects without breaking their relationships?

Instead of CtrlA->Apply Scale, I needed CtrlA->Scale to Deltas.


You could try resetting the normals for the faces, in Edit Mode, select all the faces, go to Mesh at the top selection bar or press Alt + N, then set Normals from Face.


How to use loopcut_slide operation without any UI?

bmesh bisect does exactly this...but its not automated like bpy loopcut so make sure to select all the faces you need to cut and you'll need to provide the cutting location & direction yourself.
import bpy
import bmesh
import math
import mathutils

bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False)
bpy.ops.mesh.primitive_plane_add(enter_editmode=False, align='WORLD', location=(0, 0, 0))

def bmesh_loopcut(bm,face_list,direction_axis,center='auto'):
    for f in bm.faces:
        f.select = False
    bm.faces.ensure_lookup_table()
    for f in face_list:
        bm.faces[f].select = True

    edges = [e for e in bm.edges if e.select == True]
    faces = [f for f in bm.faces if f.select == True]

    if center=='auto':
        weights = [f.calc_area() for f in faces]
        weighted_centres = [f.calc_area() * f.calc_center_median() for f in faces]
        cutting_point = sum(weighted_centres, mathutils.Vector()) / sum(weights)
    else:
        cutting_point = bpy.context.scene.cursor.location
    geom = []
    geom.extend(edges)
    geom.extend(faces)

    result = bmesh.ops.bisect_plane(bm,dist=0.01,geom=geom,plane_co=cutting_point,plane_no=direction_axis)

# Make a new BMesh
bm = bmesh.new()

obj = bpy.context.object

ob = obj
me = ob.data
bm = bmesh.new()
bm.from_mesh(me)

face_cut=([0])
bmesh_loopcut(bm,face_cut,[1,0,0])

bm.to_mesh(me)
bm.free()
me.update()

```


How to render an image with holdout material in Cycles 2.8?

You need to enable World background transparency.

It's in Render Tab > Film > Transparent
Check ✔ Transparent and you're done.


Image Texture Node : separate image file as a socket - to make it more reusable - in Eevee

Any reason you couldn't encapsulate the image texture node within its own Node Group?

Then, each instance of the group can get its own coordinate space, and you only have to enter the node group and change the image texture once to update it in all locations.


why are my cloth objects not acting properly

After I investigated this scene, I found that your mesh was not properly baked.  All you need to do is select the waving yellow flags, go to the cloth settings in the physics tab, scroll down, and click on bake.  (see image below)

After it is done baking, your simulation should work fine.  If you encounter further problems, let me know and I'll be happy to help!  Hope I've been helpful to you! : )
(PS, if this answer worked, please mark it as accepted)


You can add another loopcut and bevel it.

Add a loopcut to the upper part
Add a Bevel modifier (limited to that loop)
Scale the loopcut down and adjust the bevel

I limited the bevel by Weight, but you can also use vertex group


How to make diffuse render pass have transparent background?

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


Help with using Boolean modifier to subtract from a cube

The easiest solution i can think of which avoids doing many many boolean operations is to use a Metaball as dupli object instead of the Nurbs-Ball you are using. Metaballs will automatically "Stick together" and form a nice single combined volume (Which you can easily use for later boolean operations). If you go into edit mode and do the scaling of the metaball surface tension, you can get something like this:

When you are happy with the result you can select the parent object ("barium") make duplicates real (Ctrl+Shift+A), convert the metaballs to mesh ("Curve to mesh", Alt+C in Blender 2.79b) and then do a boolean operation: (for some reason you need to apply a remesh modifier and triangulate the resulting mesh for the boolean to work properly... see images)

Happy Blending! :)


I think the fireflies are mostly due to your lights being ONLY at 60, this is a very small number for filmic, it produces a small amout of light rays hence you get the fireflies.
What I did was crank up the lights to about 3000 to get plenty of light in there, that got rid of majority of the fireflies, I also added a weak sun lamp to add some extra ambient light.
Than I went to the compositor and used curves to bring the render closer to the draker moody lighting (I assumed that's what you ware going for)
Either way the settings can be tweaked in the compositor as you please, the scene is not over exposed by any means so you can take the curves node off if you prefer it brighter. I'll attach the modified blend file:

Keep in mind that firefly free does not mean noise free, if you don't want to use the denoiser be perpared to render each frame at like 4000 samples or higher (even than I don't know if you'll get rid of all the noise)
Here is a render at 512 samples:

Before compositing

After compositing

As you can see there is no firelflies but still plenty of noise.

Using the denoiser for animation is not as bad as people make it out to be, it mostly gets lost in compression. I've rendered out a section of your animation at 128 samples and half the resoulution with the denoiser on: https://youtu.be/Rs4SdF9vNUU

There was some flicker but it mostly looked like film grain and in this youtube clip most of it got lost in compression anyway. If you up the samples to 256 or 512 it will definitly look fine, maybe not perfect but it's better than rendering for a month.

In the end it's your animation so you can do whatever you want with it, either way the fireflies are fixed.


How do I convert a 3D scanned mesh into a useable/editable model?

Within your Artec Studio software I would export it as a .wrl to preserve the color data. Then in Blender turn on VRML2 import under addons/Import/Export. The import the .wrl. If you don't need color data export as an .obj


Looking at your 1st picture, your Curve is overlapping each other.

So your 3rd picture looks like having a double faces.

Better still, instead of using Bezier Curve + Curve Modifier, use your Bezier Curve to get the kind of Curve you are expecting from Curve Modifier and then Extrude.

After Extrude, you can do the thickness.


Material doesnt come up in texture list for UV

You can't use the uv editor for assigning materials.  All you need to do is go into edit mode, select what you want to color, click the material you want to assign it, and click assign.


I just wanted to add to moonboots tip, which i think is good but i think can be a little clearer : )
1)
Select you object in Edit Mode. Use Ctrl + R to add edge loops (mouse wheel to increase/decrese the number of edge loops). Then mouse click, slide (if needed), and click again to confirm. If you put two edge loops close to each other you have a loop of faces, which can be the basis for your ridge.
Alt + mouse click a face in the loop to select the whole loop. (if it selects faces in a perpendicular direction, click closer to another edge of the face)
With your faces-loop selected, press Alt + E and choose Extrude Faces Along Normals, and extrude the ridge.
Instead of a Subdivision Surface modifier (that moonboots proposed) i would use an Edge Split Modifier, since I believe the section of the ridges on such a nozzle is square. An Edge Split Modifier will help pronounce this while the rest of the nozzle stays smooth.
2)
Alternatively you can Alt + mouse click a single edge loop. The press Ctrl + D to duplicate it. Press P to Separate By Selection.
Select the new edge loop object in Object mode. Press Alt C to Convert, and choose Curve from Mesh/Text.
Then go to Properties > Object Data Properties > Bevel, and set the Depth to some thing more that 0, and set the Resolution to 0.
Finally go to edit mode, select all the vertices, press Ctrl + T to rotate or tilt the vertices 45 degrees.
This way you can give all the ridges the same section size by giving them the same Bevel Depth value.


Limit Rotation to keep tip of rotating bone within a circle when rotating diagonally?

A limit rotation constraint is never going to be very good for this, because 1) there isn't really any such thing as 3D rotation in 2 simultaneous axes; and 2) the nature of Eulers and aliasing means that even if you're careful about your angles, the angles you input are not necessarily going to be the angles that get limited.  (Think about how 180, 0, 0 is the same orientation as 0, 180, 180 and it becomes more clear that there is more than one way to reach any particular orientation, so Blender just picks one, which isn't necessarily the one you want.)
There are other techniques for what you want here-- for example, if you damped track a marker with a floor + limit distance (inside) constraint, you can constrain the rotation to a particular circle.  Or, you could do a single-bone IK, locked in Z and limited only in X, leaving the Y free.
But for you, especially since you're interested in non-circular shapes, I'd do it with a shrinkwrap constraint setup:

We start with a "root" bone (which, for an eye, would be your head bone).  The angle limits are actually defined by a mesh-- here, a slightly edited UV sphere.  This angle-limiting mesh is parented (bone relative) to the root bone.  Obviously, you want it disabled in renders, and perhaps shuffled off to some collection full of control doodads that you don't want to always have to look at.
The control bone is parented to the root bone.  The control bone has a child bone, SW, which has a shrinkwrap constraint targeting our mesh object.  (Setting this to "target normal" mode, and our mesh object to smooth shaded, will help interpolation.)  Then finally, our deform bone, which is parented to the control bone, damped tracks the SW bone.  That lets us define our angle limits with any arbitrary mesh we want.  Where can the bone point?  Wherever there's something for the SW bone to shrinkwrap to.
Notes:

Meshes are actually made out of flat faces of course.  Your interpolation and the extent to which your mesh actually represents a circle depend on its vert density.  Feel free to give the angle-limiting mesh a few levels of subdivision.  Because it will never get any other modifiers, and is bone parented, that subdivision only ever has to be calculated once; and shrinkwrapping a single point to a target, even a very high vert count target, is fast-- I haven't been able to make enough verts to notice any slowdown from a shrinkwrap constraint :)

A sphere, centered on Control, with the same radius as the length of Control, means that SW won't ever much move closer or further than control.  But try it with a circle instead, and see how the difference in shape changes the interpolation from on edge to the other.  This can be useful, but the main thing is to just know that it exists.

Obviously, feel free to change the shape of your angle-limiting mesh any way you'd like.  Starting with a sphere, cutting it with a knife operation, and then deleting one side lets you define the angle limits with your knife operation.