Why is the assigned material larger than the selected faces?

You experiencing this problem because of the Subdivision-Surface modifier.
When you add in a default sub-surf modifier, it just displays the modifier in the edit mode (as well as in the object mode) but won't show the change in geometry that the sub-surf modifier makes. Here is an example with respect to your model:

Notice how the geometry change when the subdivision surface is switched on.
To solve your problem just make Loop cuts with Edit Cage on.(the icon in the circle):


Convert a 3d model into a simple 2d model

One way of doing this:

Set up your scene with an orthographic camera facing the model you want to "flatten".
In the User Preferences, under Add-ons, search for svg and enable Render: Freestyle SVG Exporter and Import-Export: Scalable Vector Graphics (SVG) 1.1 format.
Under the Render properties panel, check to enable Freestyle and Freestyle SVG Export, and under Output set the path to somewhere intuitive (I used the desktop).
In the Render Layers panel, under Freestlye Line Set, uncheck the "Edge Types" Sillhouette, Border, and Crease, and check only the edge type External Contour.
Render the image and an SVG will be placed on your desktop. Under File > Import select Scalable Vector Graphics and select the file on your desktop.
At the center of your scene, the flat monkey head is imported as curves. To clean up the imported svg, I took these measures:

Select all of the curves and use Ctrl + J to join.
Convert to mesh with Alt + C.
In Edit Mode, select all vertices and remove doubles.
Select all vertices and make an N-gon Face between them with F. (Not a clean solution, but should work for most 2D-object purposes.)
In object mode, set geometry to origin with Shift + Ctrl + Alt + C

Now you have a flat model of your mesh, with only the minimal amount of vertices and no extraneous faces or geometry.


Make sure your braid curves all have the same number of points. Go into edit mode, and in the viewport under display overlays, turn on statistics. It should show you how many point you have per curve. Delete a bunch so that your point count per curve matches and you should be good to go.


Why can't I display an EnumProperty in a UIList?

I must add all de properties into de UIList class
# -------------------------------------------------------------------
#   Drawing
# -------------------------------------------------------------------

class CUSTOM_UL_items(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        split = layout.split(factor=0.3)
        #split.label(text="Index: %d" % (index))
        custom_icon = "OUTLINER_OB_%s" % item.obj_type

        split.label(text=item.name) #item.name
        split.prop(item, 'obj_name', text="",  icon="MESH_CIRCLE")
        split.prop(item, 'obj_radio',text="Radio: ")
        split.prop(item, 'obj_ejemplo', text='')
        split.label(text="Escala: " + item.obj_escala)
        split.prop(item, 'obj_simetria', text="Simetria", toggle=False, slider=True, icon="CHECKMARK")

        split.prop(item, 'obj_esquina', text="Esquina", icon="CHECKMARK")

        split.prop(item, 'obj_borde', text="Borde", icon="CHECKMARK")

def invoke(self, context, event):
    pass


Extruding a form along a curve + rotating it

To rotate the vertice of a bezier curve: ctrl T, you can also see and change the Tilt value in the 3D properties panel (activated with N) on the  right of the 3D View. alt T to come back to its previous value.


Distribute an cylinder to a hexagonal grid with python

This will do the trick (EDITED to also generate ellipses):

import bpy

rowLen = 10 # Number of cylinders per row (along X)
colLen = 10 # Number of cylinders per column (along Y)
xDist  = 4  # Distance between cylinders in X
yDist  = 2  # Distance between cylinders in Y

ellipseRatio = 1.5 # X/Y ratio (cylinder xScale)

for i in range( rowLen ):
    y = i * yDist
    for j in range( colLen ):
        x = j * xDist if i % 2 == 0 else (j + 0.5) * xDist

        bpy.ops.mesh.primitive_cylinder_add(
            vertices      = 24,
            radius        = 1,
            depth         = 5,
            end_fill_type = 'NGON',
            location      = (x, y, 0)
        )

        o = bpy.context.object # Newly created cylinder is the active (context) object
        o.scale.x = ellipseRatio

Change the xDist and yDist to control the distance between cylinders in X and Y.
Change the rowLen and colLen to change the number of cylinders in each row or column.

The number of vertices, radius, depth and end fill type are specified within the bpy.ops.mesh.primitive_cylinder_add operator as parameters.


Python - Script to Assign Materials based on Mesh Name

Please try running this and let me know if there are any errors: (I just hope I understand your requirement correctly :)

import bpy

for obj in bpy.data.objects:
    objName = obj.name
    mat = bpy.data.materials.get(objName)
    if(mat != None):
        if(mat.name not in obj.data.materials):
            obj.data.materials.append(mat)
            obj.active_material_index = len(obj.data.materials)-1
        else:
            obj.active_material_index =  [*obj.data.materials].index(mat)
    else:
        print('No material available for', objName)


Difference between played and rendered animation

Found the solution!
After completing the rendering of the scene you should free the bake of the objects by using: bpy.ops.ptcache.free_bake_all()

Hope that help to other ones as well.


Trying to figure out how to make a gun animation with multi part gun

This is a broad question indeed, but sounds like proper parenting is all you need. Parent all your objects to logical groups of objects, like sleigh, magazine and so on. Create an empty around your gun, and parent gun, sleigh, magazine and all other to this empty.


At what point should an edge loop terminate?

Face loops only works with quad polygons which always have two opposing edges. A face loop does not depend on the shape of the quads face, it will always follow the opposing edge to the next face.

Edge loops are a bit more sophisticated. If you loop select a free edge (one that only touches one face) the loop will try to find other connected free edges. This depends on the angles of the edges. If you loop select a closed edge, it will try to find the opposing edge at any vertex, which works fine if four edges meet but not if five or three meet.


Copying specific frames from one action to another ( python )

Numpy action slicer.
Script to roll thru the fcurves of an action and create a new one based on a new frame range. A condition to shift the frames of the copy is added.

I know I can copy the entire action and just delete the peripheral
frames

The rub here is that copying the action using Action.copy() will AFAIK bring along all the fcurve modifiers and other stuff I have not added in here.
Test script, added a timer wrapper for testing.
import bpy
import numpy as np

def time_it(func):
    import time
    def wrapper(action, start_frame, end_frame, **kw):
        print("-" * 44)
        print("In:", action.name, "frame_range", action.frame_range[:])
        print("Fcurves", len(action.fcurves))
        print("Keyframes", sum(len(fc.keyframe_points) for fc in action.fcurves))
        t1 = time.time()
        copy = func(action, start_frame, end_frame, **kw)
        t2 = time.time()

        print("Out:", copy.name, "frame_range", copy.frame_range[:])
        print("Fcurves", len(copy.fcurves))
        print("Keyframes", sum(len(fc.keyframe_points) for fc in copy.fcurves))

        print("Elapsed time", (t2 - t1))
        print("-" * 44)
        return copy
    return wrapper

@time_it
def action_slice(action, start_frame, end_frame, shift=True):
    copy = bpy.data.actions.new(action.name)
    copy.id_root = action.id_root

    for fcurve in action.fcurves:
        kfs = np.empty(len(fcurve.keyframe_points) << 1)
        fcurve.keyframe_points.foreach_get("co", kfs)
        kfs = kfs.reshape((-1, 2))
        _fc = copy.fcurves.new(
                fcurve.data_path,
                index = fcurve.array_index
                )
        _fc.keyframe_points.add(0)
        _kfs = kfs[
                np.logical_and(
                    kfs[:,0] >= start_frame,
                    kfs[:,0] <= end_frame
                    )
                ]
        if shift:
            _kfs[:,0] -= (start_frame - 1)
        _fc.keyframe_points.add(_kfs.shape[0])
        _fc.keyframe_points.foreach_set("co", _kfs.ravel())
    return copy

action = bpy.data.actions.get("Jumping")
action_slice(action, 100, 300, shift=False)
action_slice(action, 100, 300)

Test run on CMU mocap file 01_01 Jumping.
Output.
--------------------------------------------
In: Jumping frame_range (1.0, 551.1978149414062)
Fcurves 96
Keyframes 264192
Out: Jumping.017 frame_range (100.19960021972656, 299.9988098144531)
Fcurves 96
Keyframes 96000
Elapsed time 0.1481459140777588
--------------------------------------------
--------------------------------------------
In: Jumping frame_range (1.0, 551.1978149414062)
Fcurves 96
Keyframes 264192
Out: Jumping.018 frame_range (1.1996002197265625, 200.99880981445312)
Fcurves 96
Keyframes 96000
Elapsed time 0.14278960227966309
--------------------------------------------
>>>


Blender 2.8 cycles on GPU compute just shows pink and purple noise?

Two things;

1: You used textures that you didn't pack into the file. That shade of magenta means the texture is missing. Find the textures and reload them.

2: You're going to need WAY more than 32 samples to get something usable. Start with 100, move up from there to get a more clear image.


What is the difference between a subdivision surface modifier and a multiresolution modifier?

There will be quite a difference in peoples workflow, but I would suggest something like this.
Start by making a high poly mesh. Then after you have modeled, sculpted and are done with the high poly mesh, move on the the low poly mesh. When you have established how your character will look, you can much better make a low poly mesh that will "fit" your character.


Hair Particles - How to make them stand straight up

Go to your particle object's original instance, enter edit mode and rotate it accordingly.
Generally speaking if your object as no rotation or if you apply it's rotation, it should be "laying down" in the XY plane (don't ask me why I also find this extremely annoying and counter intuitive) for it to be "standing up straight" in the particle system.

Alternatively in your particle system in the Render Panel activate the Rotation option if you do not want to alter the objects shape and prefer to rotate it in object mode, and the adjust the particles rotation in object mode.

You can then use the options under the Properties Window > Particles > Rotation Phase Random or Initial Orientation Random to add variation to your particles.


I believe this boils down to the way Blender displays pixels. It attempts to blend them together to make low-res textures less obvious.
You can set how Blender blends pixels together in the material node editor, on the image texture node.
By default, Blender sets pixel blending to "Linear." This blending mode will result in the blurry effect you want to get rid of.

Setting the  blending mode to "Closest" will allow for the sharp pixels I assume you are after.
Hope this helped!


Translate track marker 2d position to empty in 3d space

For the one who didn't see the video in comments:

Reconstruction > link empty to track


I opened blender and when I went to scale my cube the module doesn't show up


I'm trying to scale only one loop in edit mode but when i select that loop and try to scale, it scales the entire mesh. What should i do?

Disable the Proportional Editing mode button (blue sphere icon on the horizontal menu bar on the bottom of your 3D View).


Creating a specular map using point lights?

I checked on youtube, and so far, I found this one :

https://www.youtube.com/watch?v=_PPTG1waeZ8


Your code works for me in 2.69, but there might be timing issues (grid_scale accessed but the view has not finished changing).

To get all 3D Views' grid_scale as a list, use:

grid_scales = [area.spaces[0].grid_scale for area in bpy.context.screen.areas if area.type == 'VIEW_3D']


Softening the color of the line gradually

Here are 3 ways to do it in Cycles Render:

With Mist: First go to your Render Layers menu > Passes > enable Mist. Now select your camera, go to the Object data menu > Display > enable Mist. Go to World menu > Mist Pass, and play with the length of the mist. Go to the Compositing, plug the Render Layer Mist output into the Factor of a Mix shader, and the Image into the top Image input of this Mix shader, then plug the output of the Mix Shader both in the input of the Viewer and the Compositer nodes. You can change the color of the mist with the bottom Image square of the Mix shader. You can add a Math node between the Render Layer and the Factor to change the mist intensity.
https://www.youtube.com/watch?v=CxNeMMZs_sM
With Volume Scatter: Create a box and increase its size until it contains your scene. Now in the Object menu > Display, choose Maximum Draw > Wire. Give it the following material: a simple Shader > Volume Scatter node plugged into the Volume of the Ouput. Lower down the node Density to something like 0.0X or 0.X. You can also add a Volume Absorption shader and mix it with the Volume Scatter in an Add Shader, so that the light is also absorbed.
https://www.youtube.com/watch?v=AXjE-t6dFZ8
With a Gradient Texture: Create a plane, assign it a material. Mix a Emission (white) and a Transparent in a Mix shader. In the Factor of this Mix shader, plug this node chain: Texture Coordinate that has its Object output plugged into a Mapping shader that has its Z Rotation 90°, that is plugged in a Gradient Texture node, that has its Color output plugged into a ColorRamp shader, that is plugged into the Mix Shader. Put this plane in front of your camera, behind your character, and play with the ColorRamp so that it fades your ground.


Texture painting isn't showing up on mesh

I have no problems painting with your file as is(just changed color) and I am on OSX El Capitan as well. I opened your file after download with 2.78a and just changed the color of the brush and started painting.


Zoom to selection in Python gives RuntimeError

Operators need a certain context to run from, so you can override this so it can be run from the text editor or wherever depending on the area you need it executed from:

import bpy

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        for region in area.regions:
            if region.type == 'WINDOW':
                override = {'area': area, 'region': region, 'edit_object': bpy.context.edit_object}
                bpy.ops.view3d.view_all(override)

Read more in the docs and see this related question for more info.


Perhaps what you like in these pictures is that the materials are somewhere between plastic, modeling clay and skin, which I guess is a mix between glossy and translucency. You could try with this: Mix Diffuse and Glossy nodes, with a Fresnel as factor, and mix this with a Subsurface Scattering which will give the translucency and lightness. For the second picture maybe he used an Image Texture for the skin (blushed cheeks), that he plugged into the Diffuse.


Organize imported objects by auto-generating similar named Collections and sorting

You can do it this way. The code is fully commented but ask if something is not clear enough.

import bpy

#Get the collection the objects are
original_collection = bpy.data.collections['Collection']

#Get the root collection
scene_collection = bpy.context.scene.collection

#This dictionary will contain the collections that will be created
#The key is the object's name
dictionary = {}

#Loop over the objects
for obj in original_collection.objects:
    name = obj.name[0:10] # Get the root name (the way you need to)
    collection = dictionary.get(name) #Look if there is already a collection
    if not collection:
        #If not create it
        collection = bpy.data.collections.new(name)
        #Link it to the scene
        scene_collection.children.link(collection)
        #Keep it in the dictionary
        dictionary[name] = collection
    #Link the object to the new collection
    collection.objects.link(obj)
    #Unlink it from the original one
    original_collection.objects.unlink(obj)


Blender 2.8 render contains bad stripes?

The problem is in Cloth and Subsurf being in the wrong order in the modifier stack: Cloth must come before the Subsurf. For some obscene reason, this doesn't show in the viewport, not even in the render preview in the viewport, but it does give  horrible results in the final render.


You can't make objects of different types into a single object, but you can make a group of "siblings" (children of an Empty) and duplicate them all together. This method doesn't create instances but whole new objects: they will still be editable individually (at the cost of being all simultaneously in memory).

Add an Empty

Select all the objects and then Shift+Select the Empty. Do CtrlP and Set Parent to Object

Duplicate the bunch (ShiftD) and Move (or rotate, or scale) the new Empty. Indeed, the duplication is smart enough to transfer the "Parent" relation to the new Empty

You can select a group (for example if you need to delete it or duplicate further) by selecting the Empty, then doing Select > Select More/Less > Extend Child or just Shift]


The closest this that exists that I am aware of is a prototype that led to Eevee (Clement Foucault's pbr viewport branch):
http://www.clement-foucault.com/#blender_pbr / https://github.com/Hypersomniac/blender-shader

It has a bunch of nice improvements on the old viewport but is still very much a prototype. It is also based on an older version of blender than 2.79 (still in the 2.7Xs though).

All that said, I'd recommend trying to persevere with 2.8, and pin down exactly what you don't like / become familiar with the changes. Dislike can often come just from a lack of familiarity, it may only need a few settings tweaks and a bit of practice to be fine.


Make sure your viewport is set to texture view.


For anyone else that comes across this, I don't think PNGs are the culprit. Instead, if you change the interpolation from Linear (default) to Closest, it should look about as close as it can to Cycles.


The are two main ways to make a rope in the BGE. Soft bodies, and ridged body constraints.

The ridged body constraint method.
This is the method Phymec uses in videos like this. I have not gotten good results with soft bodies, so I will focus on the ridged body constraint method.
This is very easy to set up, just add a sphere, model it in to a capsule and add a Rigid Body Joint constraint.

Then string many of the capsules in to a rope, with the next always having the target of the one before it. Set the Pivot to be in the middle of the two capsules (turn on Display Pivot to see where the pivot point is).  Also important turn on Linked Collision; if not on the rope will try to break apart where ever it is intersecting.


Movie sound/music editing : better solution than VSE?

There is an add-on for exporting the audio to Ardour: http://blendervelvets.org/en/blue-velvet/
And if you export the video as one file, it can be added to Ardour too, so you'll be editing the audio in a DAW while watching the video in sync. However, Ardour is only free, if you know how to build it yourself, or you'll have to pay "something".

Alternatively, there is an EDL export add-on(text-file), which will allow you to export info for one video track and four audio tracks, but ex. Davinci Resolve will not import audio from EDL files - in D.R. EDL files are only used for conforming video edits. https://github.com/tin2tin/ExportEDL

Third option add-on-wise is to use this add-on to roundtrip single audio clips in ex. Audacity: https://github.com/Joeboy/blender-addons/blob/master/open_strip_source.py This one does not work right away on Win 8, because you'll have to manually add the full path for audacity.exe. I might add some more functionality to this add-on, to make it more user-friendly.

Jack could be used on Linux to control an external volume monitor: https://audaspace.wordpress.com/2010/02/21/jack-transport/

Last option is to export each channel as a stem audio file(just one file pr. track with beep for sync) and import those in a DAW and make cuts where needed.


How do you merge linked or appended objects into a single layer?

An object can be present in more than one layer.

In the Relations section for the object you can select which ones to use.


While not specific to luxrender, some steps you can do to help with scripting.

Find an interface item that performs the task you want to perform or displays the value you wish to change in your script.

Look at the tooltips for the item, the data path or operator path is shown for most items.

Right clicking on an item allows you to "Copy Data Path". Another option is "Edit Source" which will open the script responsible for drawing the item and will even place the cursor on the relevant line for you. Remember that some names used in the scripts will be variables that have been defined earlier in the script.

For example the Render button tooltip will show you bpy.ops.render.render() that is the python line you put in your script to start rendering.

The render menu at the top will show you bpy.data.scenes["Scene"].render.engine which is a way to access the render engine for a scene named "Scene". Another way to access the same data is bpy.context.scene.render.engine While bpy.data.scenes[] allows you to access a specific scene, bpy.context.scene gives you access to the current scene.

So if bpy.context.scene.render.engine equals 'LUXRENDER_RENDER' and you call bpy.ops.render.render() then Luxrender will perform the rendering (as long as you have the luxblend25 addon installed and enabled)


Unwrap U one segment (polygon) of the road and use UV Squares -> To Grid by Shape, or make it rectangular manually
Select rest of the polygons and lastly this unwrapped segment so it becomes the Active quad
Unwrap -> Follow Active Quads

Then all the road mesh will be unwrapped based on that one quad mapping.


To add multiple materials to an object which I believe will help, do the following:

Select different faces.

After preparing your various materials, select a material and press "apply."

Tadaa!

I really hope that helps. :)


Blocking 3D audio in Blender Game Engine

There is no inbuilt way, but with python you could easily script a visibility check between the source and camera and use that to fade the volume.


When you create a Follow Path constraint, it automatically gives the curve an Animation Generator modifier. If you want to control this animation manually you need to delete this generator in the Graph Editor > properties panel (N). Then you'll be able to give some keyframes in the Properties panel > Data > Path animation > Evaluation Time value of your curve.

You can test: when you change the Evaluation Time value, it moves your object along the curve. So put your cursor where you want in the timeline, move the object where you want along the curve with this Evaluation Time value, then put your cursor over the Evaluation Time and press i, then create a second keyframe wherever you want on the timeline, and the object will interpolate.


How can I mirror an object once in positive and negative X/Y axis?

The simplest way is to use a mirror modifier. With your object selected, in the Properties panel, click the Modifiers button. It only appears when an object is selected, and looks like this:

In that menu, click the dropdown that says 'Add Modifier' and select 'Mirror'.

There are several options here. You can check X and Y, and depending on how your objects are supposed to look, you might want to enable some of the other options. You'll want to experiment a little to find the settings you want.

You can also use the eyedropper on the bottom right of the modifier box to select an object to use as the center for the operator. Here, I have selected a small sphere I placed at the center, and used it to mirror a Suzanne head on the x and y axes:

Modifier panel:

Result:


Bind location of empty to vertex (after shapekeys)

Well I found a solution, took me a while.
Since other people might get into this as well, here is the solution:

On the object with shapekey select a vertex, create a vertex group for it.
On the Empty use a Child-Of constraint, select the object and the new vertex group.

Note its even possible this way to copy rotation of that vertex as well.


How to fix strange behavior of vertexes? (picture)

Your vertices are weighted on bad bones.

The selected vertex should have 1 for Bone1.035 and nothing else. This can be seen in Edit mode in the N panel. From there you can change the weight values (in this case, 1 for Bone1.035 and remove with X bone3.044).
The other vertex needs to have only bone3.044.
Once this is done, place your vertices where they should be and they'll do what you expect.

You're life would be easier with better bones names (Something like Arm1.bone1, arm1.bone2, Arm2.bone1 ...)


Ensure to disable transparency on opaque objects.

This does not only speed up render. It avoids sorting conflicts (that is what I think happens in your case).


Looks like a result of setting Render Properties > Film > Filter Size to 0, try changing that setting.


What's the order of constraint evaluation among multiple objects?

The problem not the order of the constraints as much as the cyclic dependency between your objects' constraints. Blender even warns against it in the system console (in Windows, open through the menu Window > Toggle System Console):

Let's see What is happening when you have a dependency cycle of this kind of constraint. First it's best noting that generally, when you add a copy location constraint to an object, you can no longer set the constrained object's location manually. It will get its location values ONLY from the target object.

Let's say we started with these Z positions:

A = 5
B = 3
C = 0

When we add a copy location constraint form A --> B, A will move to from 5 to 3 since its copying its location from B.

A = 3
B = 3
C = 0

Now let's add another constraint from B --> C.
B moves from 3 to 0, and since A is copying its location from B, A also moves to 0 (this is the same as if both A and B copied their location directly from C).

A = 0
B = 0
C = 0

Currently the only non-constrained cube is C, so you can still move it wherever you want, and the other two will follow it wherever it goes.

But now you add another constraint, from C --> A.
A has a value of 0, which it copies from C. C has a value of 0, which it will now copy from A. Since all cubes are now constrained, you can no longer set their location manually, due to the copy location constraint taking over. And since both A and C have 0, and B copies its location from C, all are stuck in 0 forever and ever ;-)

Bottom line, cyclic dependencies are a bad idea, and if you add a Copy Location Constraint to an object, you can no longer control its location manually.


I found a method that works to some extent, it is not perfect but I think it is the best that can be done with the topology.

Duplicate the mesh

we will use this to create a seamless version

Delete the faces where the cutout for the seat is

this is the geometry that is causing the problem

Select the edges at the ends of the hole and use the Grid Fill tool, Ctrl + F

The grid fille we fill the hole with some nice polygons, these will not look distorted

Add a subdivision surface modifier to the mesh

Select the mesh with the topology for the hole
In edit mode select the faces at the hole and a few faces and around it as well

Add the faces to a vertex group.

Add a shrink wrap modifier to the mesh with the hole

Select as the Target the mesh without the hole
Select as the Vertex Group the vertex group we created in step 8

Final Result


How do I fix the edges that runs around my cube from becoming really long when scaling on an axis?

If you want to stretch the cube without deforming the edges, you need to modify the mesh itself in Edit mode, because if you stretch it in Object mode will also change the edges width, so switch to Edit mode, press AltZ to have transparency, select the vertices of one side, and move them along the axis you want:


Final result:

Overview:

As far as I know there is no way that Blender could generate normal map from diffuse map.

There is similar approach to what is going on in software like Substance or Quixel but it is painfully manual and not such fun.

In those apps you generally paint by stacking materials on layers and mask them one by one; and this you can do in Blender as well.

Steps:

You will need both Diffuse and Normal texture for both materials and created texture for painting Mask.

Node setup:

Texture Paint:

Set Slot to Image, choose your mask and start painting.

Final thoughts:

This is not ideal method especially when you need more layers/masks, this is why more and more people looks at software mentioned above (including myself).

There is another approach I can think of. You can paint your diffuse, then export it and generate Normal map in chosen app, then load it to Blender.

Blend file (textures packed):


What's the fastest way to change textures for 100 objects?

You can replace the filepaths using python and then reloading the images:

import bpy
for img in bpy.data.images:
    img.filepath = img.filepath.replace('.jpg', '.png')
    img.reload()


How to make a rig like curve handle with control points

It's probably not the best solution.
so I used 3 armatures
-first we need to uncheck lock object mode so we can select our bones from different armatures

-then parent two control points to the main one

-then using object constraint not bone one
copy reversed location of other control point bone from other object
and set offset to true so we can have some initial distance from middle bone (in object mode) like set first armature 1 unit ahead middle and second armature 1 unit behind middle

and very important part that makes all this work:
setting target to pose space and owner to world so there will be no dependency
but if we translate middle bone because both of controls are moving there will be dependency and glitching
also rotating middle bone because of setting owner to world break it
here is my results:

So please let me know if you come up with another idea.


How do I clean up unintended mesh inside a mesh?

Your mesh is really a mess.

I think the method I show here can help you with it.

In Edit mode, wireframe view, use the border select to select the up and bottom parts.

Hide them or invert the selection.

In case you use HIDE: Select all the rest and separate it (do not delete it because you can need it later ).

Now the interior is a separated mesh.

See the image below.


Is it possible to build blender scripts in external editor like Atom

When I was doing this with sublime, I added a "build system" to sublime, essentialy "run this shell code on save", that would run a new headless (or not if directed to) blender instance that ran my script. It was slow but it did allow me to leverage an ide for writing my scripts. It's a bit like setting up a testing framework, and I would recommend additionally setting up a testing framework too so you can know if your script is working and still working without manually, visually inspecting your script results, if possible.


Python isn't hard to start learning, try this tutorial. You can use the python console in blender if you don't have python already installed.

You don't need to create a database as you can walk through all files in the directories and just use the filesystem as a todo list. This is the basics of what you want to do but you may want to make some adjustments, you will at least have to swap bpy.ops.import_scene.obj for the smd importer that you have.

import bpy
import os

for root, dirs, files in os.walk('/path/to/smd/files'):
    for name in files:
        if name.endswith('smd'):
            # delete everything
            bpy.ops.object.select_all(action='SELECT')
            bpy.ops.object.delete()
            # adjust this to match the import smd operator
            bpy.ops.import_scene.obj(filepath=os.path.join(root, name))
            # export as fbx
            bpy.ops.export_scene.fbx(filepath=os.path.join(root, name+'.fbx'))

You can paste this into blender's text editor, edit and then click the run script button.


Do you happen to have a constraint applied to the object - eg constrain the scale to no bigger than a value?

For the hollow wireframe part - you may be wanting to toggle x-ray mode Alt-Z or the button next to the wireframe shading.


Principled BSDF image texture isn't appearing

You are plugging a shader node (the Principled BSDF node) into another shader (Diffuse BSDF node). This is not how Cycles' shaders work. You should remove the Diffuse BSDF and things will start working.

Blender tries to imply you shouldn't do this by colouring the node sockets differently. A green output (indicating a 'shader') shouldn't be plugged into a yellow input socket (colour data). However, a green shader output socket should be plugged into a green input socket.

You can read more about node socket types here:

What is the meaning of the color of the node sockets in the node editor?


In 2.9 there will be the Compound Parent shape, explained here by CGMatter, that may make things even more accurate, for the moment here is a solution with Convex Hull that works:

First, don't keep your vertical cylinder.
Also, join the trim of the basket to the basket, for the moment it is another object without any physics. If you join it to the basket it will be taken into account
In the Properties panel > Scene > Rigid Body World, increase a bit the Steps Per Second value up to 100, I don't know how it works exactly but it looks like it helps to simulate physics more accurately.
Select one of your lemon, in the Properties panel > Physics > Collisions > Shape, choose Convex Hull instead of Mesh.

Keep this lemon selected, select all the other lemons, for example with a ShiftL (Select Linked) > Material, and in the header menu > Object > Rigid Body, click on Copy From Active (by the way if all your lemons are the same you could have linked-duplicated them with AltD, but you can simply make a ShiftL > Object Data and all the objects share the same mesh).
Play the animation, it should work fine:


Looks like there are 2 problems:

1) the object seems to be non-manifold, that means Voronoi + Boolean might fail there, resulting in those unwanted white shards at the element boundaries. You could try Voronoi+Bisect+Fill instead, but note the filling algorithm isnt reliable there. Means it could look odd in some places. (like missing inner faces).

2) the textured shading with blender internal might be buggy with FM as well. You could try to check the material view instead. And... due to the unwanted extra shards, the internal shard order of the FM object might get messed up (just a guess) and thus the texture assignment goes wrong then too. But if possible, could you share the blend file so I can take a look ?


Timaroberts solution will not work because RGB encoded data is relative. That is, for every RGB colour space, the hex values will be different and therefore, without knowing what colour space a hex value is relative to, all degrees of accuracy including floating point representations will be wrong. Never, ever let someone tell you that using a different numerical representation such as hexadecimal or floating point values with many digits of accuracy will solve your colour confusion. No such approach can, and is rooted in misinformation.

This is a simple question to a long and winding path down colour, pixels, and management thereof.

There is also typically no "Blender Representation" but rather different views on the reference data. In this particular instance, the colours in the reference space are scene linear, and the viewport and UI elements may or may not be linearized values depending. There can also be a discrepancy with how OpenGL approximately renders a face versus the actual render.

You are also confusing a display referred imaging application (GIMP) to an application that uses an internally scene referred model (Blender Cycles) which will cause no end of fits for your poor brain.

TL;DR How a colour is stored / encoded as an RGB triplet has different forms and reasons. Within Blender, there are many, many different and diverging views of this reference data which may not align with each other or one's (seemingly reasonable) expectations.

Some answers that might help to illuminate the complex issues at hand:

Colour shift when viewing render outside of blender
When to use sRGB and when not to?


Color codes in image do not match the material

First, "colour codes", aka hex values, have no absolute meaning. The values, whether stored in hexadecimal, integer, or float, represent an encoded value with respect to a given colourspace. Frequently, with display referred imagery downloaded from the web, this is sRGB. In a plethora of many other contexts however, it is not sRGB, hence the values have no absolute meaning.

Second, it sounds like you are having issues with a understanding the conversion of a display referred image to a display linear version, via an inversion of the encoded values transfer curve. There are a few posts here regarding that. The TL;DR is that the RGB values will represent linearized (display linear in cases where you are using an encoded PNG or JPEG, for example) values.

Third, bear in mind that while some values are labeled "Diffuse Colour" in shaders for example, they represent nothing of the sort, but rather a float ratio from zero to one of reflectance with angle math, also known as an albedo. Here, "Diffuse Colour" is a misleading term, and may have imagers conflating an albedo for an intensity triplet.

Finally, bear in mind that file formats are not created equally, nor are their implementations consistent across applications and libraries. A file format can store a variety of different imaging alpha channel encodes, colour spaces, and encoding formats.

The solution would be to take your encoded colour values and linearize them. If you are using an emission shader, bear in mind that in scene referred terms, there is no ceiling value and the dynamic range is from zero to infinity.


What you need to do is push down your actions in the NLA windows and make the second action follow the first one. Maybe follow some tutorials on NLA because you may be a bit lost at the beginning, for example keep in mind that if you have an action playing in the Dope Sheet it will override the NLA actions.


When I render, it just shows the render and it says it's finished, but there's nothing there

Overview:

  First of all, I don't know anything about Video Editing in Blender.

First option:

It seems that you have some Strip (4.) added to the project and this is blocking/muting rendering.

Go to Video Editing.
Select Strip (if you see transparent render result hit ESC).
Erase Strips.

Or modify it accordingly to your project.

Second option:

If you don't use VSE at all and made this Strip by accident you can always turn of Sequencer completely:


Yes, you can, here is how:

Export your model from zbrush(id recommend a .obj).in blender you can open the .obj useing (File>Import>Wavefront Obj)

Now your model is ready for animation.

Note:
In zbursh it is important that you do not export a raw sculpt, since that will not work for animation in any software. Always retopoligize it.


Hotkey (or other quick way) to insert a keyframe for only one component of a vector-valued property?

One of those times when you discover the answer right after asking. Hopefully this helps others.

You just need to right-click the single value you want to add a keyframe to and select "Insert Single Keyframe".


Start with a plane that has the proportions of your lamp, enter edit mode and do loop cuts CtrlR so you end up with as many vertices as you need lights.

Set instancing to Verts.

(for versions 2.79 or older) Set the duplication to Verts.

Add a spot lamp on the same place as your plane.

Select your lamp, then shift-select your plane and press CtrlP and select Parent to Vertex

You have now an array of lights!

To have the array follow your plane's rotation select the lamp and add a copy rotation constraint.

Note that the object doesn't necessarily have to be a plane, it can be any shape you want and it doesn't even need to have faces, as the lamps are controlled by vertices.


rigging problem connecting two bones at the tail

This may sound like a bit of a cop-out, but you don't have to.

If you want those heads to stay in the same position, use a Copy Location Constraint, instead.


You can slide edge loops by double tapping  G. Then use Alt or C to make a loop go beyond the edge limits.

You can find more options here under "Edge Slide"
https://www.blender.org/manual/modeling/meshes/editing/edges.html


How to make a large library with bookshelves in Blender?

The solution here I think would be particle systems.

Model a few different book shapes, apply a few different book cover textures and you should have enough variation to make it seem believable.

You can then use some sort of emitter object running along the length of your bookshelves with a particle system to quickly distribute the books

Manually modeling thousands of books would be cumbersome and unpractical, but modelling a few variations, like say 10, with a few different textures , like say other 10 and you already have 100 possible different combinations of books.

You could also look into randomizing the textures procedurally, which would add even more perceived variation with little additional effort. If you are using Cycles the Random output socket of the Object Info node may help.

There are also a few book generation addons, both commercial (here and here) and free that could help if you want to automate the process.


How to change from wireframe, to solid or rendered shading mode?

Click one of the little circles in the top right of the 3D viewport - these are the preview modes (Left to right: Wireframe, Solid, Material, Rendered)

You want solid, I think.
You can also press Z in the 3D viewport and pick "solid" from the pie menu that appears.

For more info read the manual page (yes, there is a manual and has lots of useful information).
https://docs.blender.org/manual/en/latest/editors/3dview/display/shading.html


Toggle 'deform' bone property for all selected bones

In edit mode select the bones you want to change and press ShiftW (on windows) and you get "Toggle Bone Options" -popup. There you can alter the deform option for all the bones selected.

Tested with Blender 2.75


Get Geometry Position in shader before armature is applied?

Figured this out a minute after posting, the Generated output from the Texture Coordinate node works fine for this:


This is one way to align verities (or straighten edges ) according to two of them (without moving these two ) :

select these two points (in this case the ends )
create an edge between them
set the manipulator to Normal
set the pivot to Active Element
set selection to Edge
select all where the created edge is the active one
hit S then Shift+Y and again Shift+Y, after that type 0 and hit
Enter
delete the edge you created


The way Todd is completely right,but you can go even complex for scratches,like using the pointiness feature in blender,here I used two different scratches texture to do the material,check the node tree for more information.


Getting x,y,z coordinates of objects in blender API FOR MULTIPLE OBJECTS

Take this image :

bpy.context.active_object only gives a reference to the active object in the given context. This is Cube.002, with the light orange outline.
Cube is selected, but it is not the active object. (dark orange outline).
When you type bpy.context.selected_objects in the blender console you get an unordered list of all the selected objects.
>>> bpy.context.selected_objects
[bpy.data.objects['Cube'], bpy.data.objects['Cube.002']]

In python you can iterate through a list of objects with a for loop. (Documentation) Your code, which is valid for one object, can be translated for a list to :
import bpy

for obj in bpy.context.selected_objects:
    if obj.type != 'MESH':
        continue
    # Sidenote : Use @ instead of * for element-wise multiplication in matrices
    vcos = [ obj.matrix_world @ v.co for v in obj.data.vertices ]
    findCenter = lambda l: ( max(l) + min(l) ) / 2
    x,y,z  = [ [ v[i] for v in vcos ] for i in range(3) ]
    center = [ findCenter(axis) for axis in [x,y,z] ]

    print(center)

Result :


Python looks in the list returned by sys.path.

import sys
print(sys.path)

It looks in each directory in the sequence, and the first mention of the module you are trying to import is where it will attempt to import from. You for some reason had numpy in /scripts/modules, and it looks like it was perhaps from an older Python version. Blender comes bundled with numpy for quite a while now, so no need to install it into modules.

On Windows machines, Blender stores the numpy in

2.77\python\lib\site-packages\numpy

on Linux it seems to be

python/lib/python3.5/site-packages/numpy

or

/usr/lib/python3/dist-packages/numpy/


Normal map curved edges with black shading

This is caused by the fact that the normal color (let's say R: 127, G: 192, B: 255 -> aka a normal pointing up at about 45° when you view the bitmap normal map in image editor) which defines the particular little space on the actual polygon which is also pointing upwards, let's say at a 88° angle compared to the camera view vector. The resulting angle of the vector pointing up for that little tiny space on the polygon is then 88° based on geometry +45° based on normal map which is far more than 90° and thus looks black since the ray as far as Cycles is concerned basically goes into the polygon.

Normal Map used in the above picture:

One way to "fix" this is by using fresnel to gradually reduce normal map strength at grazing angles. This won't help you in Game Engines I suppose but as far as I've seen they handle this little problem well as I only encounter it in rendering engines.


You can achieve this using a second UV map (Cycles).

Use the "+" button in the UV map list: this will create a copy of your original (selected) UV map.
Arrange the UVs as you need in this second UV map.
Keep the first UV map as rendering target (the camera button on the right is still active for it)
Select the second UV map (this selection will indicate this second UV map will be used as bake target, the same way the target image node needs to be selected)
Bake


I messed up with my transform manipulation tool settings

Set the orientation back to global and you should be fine. I rarely ever use widgets, though.


Repeating an operation (similar to screw)

You can always resort to F3 to view the history and repeat extrude region and move alternating with resize. it will always extrude the same distance and resize the same percentage relative to the size of the face that's been extruded.

F3 > extrude region and move, F3 > resize and repeat.


Screen Full Area Opens a new Screen

A couple of prints in the following show that the context screen and henceforth area, after calling the bpy.ops.screen.screen_full_area() operator are not the same.  Change the override dictionary accordingly.  (btw running view all without the override core dumps my blender (ubuntu 18))

import bpy

context = bpy.context
for area in bpy.context.screen.areas:
   if area.type == 'IMAGE_EDITOR':
       override = bpy.context.copy()
       override['space_data'] = area.spaces.active
       override['region'] = area.regions[-1]
       override['area'] = area
       bpy.ops.screen.screen_full_area(override, use_hide_panels=True)

       print(context.area, override['area'])
       print(context.screen, override['screen'])
       print(context.window, override['window'])
       override['screen'] = context.screen
       override["area"] = context.area
       bpy.ops.image.view_all(override, fit_view=True)
       break


Objects in outliner out of order when importing?

Short answer: They are not out of order/it is not supported in Blender.

Long answer: they are sorted, just not in the way you would expect.

They are sorted in purely alphabetical order, from a cold computer perspective 1comes before 2 so Object11 alphabetically speaking comes before Object2

What you are expecting is Natural Sort Order, which is not widely supported in software, and must be explicitly coded to do so, which is apparently not the case in Blender Outliner.

That is why using leading zeros in your digital names (files, objects, data values, etc.) like Object.001 is always a good idea.

How to work around it :
Make sure in the outliner View Menu > Sort Alphabetically is ticked.

If you really want them to be sorted use a third party addon like Name Panel to manually rename the objects and add leading zeros.


Artefacts when exporting model with holes to keyshot

Solution to this problem:

Select all inner edges and bevel them. Dont forget that you should bevel all of which I highlighted with pink,red and blue to avoid dissapointments in texture and strange reflections when importing to keyshot

Bevel all outer edges, including sides, top and bottom edges highlighted with PINK, dont worry about ORANGE ones, we dont need them.

This step is important because Keyshot doesn't like Ngons and Quads, so always do this step.

UV unwrap with smart UV project

Shade smooth an object and turn on autosmooth

And then you should end up with quality model without any strange artefacts or reflections ready for adding texture in Keyshot.

Hope this helps someone in the future!


How can I map two dissimilar objects to the same UV border?

Nathan, in fact it's more often the other way, meaning if you have two UV islands of the same model that share the same texture space it's much harder to avoid visible seams, even if those UV islands are exact copies of each other. It's quite impossible to have no visible seams at all if the two UV islands are only somewhat similar.

The next big disadvantage of sharing texture space is that it's nearly impossible to paint away the seams, since you'd paint both parts instead of one.


Multiple Objects don't move correctly in same armature

Thanks for your support, I did it.

I think it were in fact, the vertex weight, since there still was weigth from nearby bones on the skull and the jaw bone. I resetted the whole groups and edited the weight of every bone for the skull and the jaw, so it's mainly on 100% for the resperctive bones and 0 for the others.

Upper teeth and eyes weight was set 100% only to the skull bone and lower teeth was set 100% only to the jaw bone.

Thanks again for your help!
Johann


How do I make an ocean of independently moving objects?

Use a particle system for your objects instead.

Create you ocean with whatever method you like (Ocean Modifier I suppose).
Add a particle system to it, make it emit from vertex and turn on Use Modifier Stack.

Under the Render settings make it use a group, then point it to a group containing all your objects. If you want them ordered just leave settings as is, if you want random positioning just tick the option Pick Random

Turn on the Unborn and Died option so all are visible.

Turn off the Random option (right bellow Vertex) so only one object is used per vertex, then check in the 3D View header under Object Mode how many vertex your object has, then adjust the particle count to match it exactly, so no wholes or overlaps happen.


How can I make a flat, spiralled surface?

In Object Mode add Shift-A a circle (Mesh/Circle)

Change to Edit Mode Tab make sure you're in vertex select mode.
Extrude and Scale E,S,0
Change to Face select (see image below)
Click a random face, select all A
From the menu pick Select/ Checker Deselect

Create another material and assign it to the selection
Add loop cuts Ctrl-R RMB

With the inner faces select you're there
Set proprtional editing O and rotate R

You might want to select the outer edges and extrude them to add the on colored border as in the reference image.

Result with some tweaking:


That's the 3D view clip. I'm not sure why it is there, but you can resize your mesh/object and it will be fine. Or, you can press "N" to open up that right window and adjust the clip size to stop cutting through your object.

I hope this helps.


How to straighten out multiple selected edges to one axis?

I missed the last vertex but anyway.

Just select all the vertices and then hit S to scale then tap the direction you want to scale. In my case Y. Then tap  0 on the number pad.


I had the same issue, but I'm good a pushing buttons.


I think the quickest and probably easiest thing for you to do is as you said cut the joints in Blender and instead of making a hinge system make a pin system. So basically what i am saying is have like 2 parts with 2 holes which align in the right position and then just slide a 3D printed pin/Cylinder into it. This would allow you to move along a certain axis. However if you wanted something that could be rotated fully then i would suggest a ball and clasp type system. Now this could be trickier for the fingers but would almost certainly work for the hand to arm joint.

Hope this helps!


Get the value in a GUI field? (Redo panel)

What you access via bpy.types is just the type / class, what you are after are the properties of an instance of that class.

It would be best to store the user data in global properties, but if you really want to access the active operator's properties (that's what is shown in the redo panel), use bpy.context.active_operator:

>>> C.active_operator
<bpy_struct, Operator("TRANSFORM_OT_translate")>

>>> C.active_operator.properties['value']
<bpy id property array [3]>

>>> C.active_operator.properties['value'][:]
(0.17133378982543945, -1.7650548219680786, -1.7467097043991089)

>>> C.active_operator.value
Vector((0.17133378982543945, -1.7650548219680786, -1.7467097043991089))

Note that Macro properties need to be accessed in the following way:

>>> C.active_operator.properties.keys()
['OBJECT_OT_duplicate', 'TRANSFORM_OT_translate']

>>> C.active_operator.OBJECT_OT_duplicate.linked
False


There are two ways to render an animation in blender:

Render as Video
Render as Image Sequence

My suggestion is to use the second method (Render as Image Sequence) for having a list of benefits:

you'll have all the single frames not compresses (best settings are saving single frames as PNG or any lossless image type), so if you need to edit something later on you can do it
you'll decode the video after, so you can always change the compression and format (just use ffmpeg to get quicker and best results) (if you just render the animation as video in Blender and if you select a compression too low, you cannot fix that later)
if your computer crash you'll have the single frames (if it crashes while rendering the video, I fear you'll get a corrupted video in the best scenario, you'll get nothing in the worst scenario)

Your file (or files) are in the folder you specified as OUTPUT (in the output properties).
It can be also in the TMP folder. In this case you need to find out where the TMP folder is on your pc by typing %tmp% in your windows search bar


use this circle equation and chose a radius "max R = 0.5" :

Coordinates node group :

and for fading on the sides i used a sin function :

render :


How to recalculate bone roll in action keyframes or in pose mode

If you set the roll good for one pose, it will be messed up for a different pose, so I don't think it's a good approach: better set up the rig in edit mode so that every bone is parallel to the view plane (use "keep offset" instead of "connected"), then lock two rotation axis so that only the one needed is allowed. In this way you will never have planes deformations.


The cause of the problem is the use of asymmetrically named pair bones. Try to change the right hand bone name to "Hand.R".


When doing simulations in blender the results will be cached as you play through the animation. Most simulations will only keep the cache data in RAM until the blend file is saved, when you will get an option of saving the cache to a folder located next to the blend file.

While each simulation has it's own variations, the most common simulation cache options are -

By ticking the Disk Cache option the simulation data will be saved to a folder called blendcache_caching, if you give a name to the item in the list by Ctrl clicking it will be used as the beginning of each filename otherwise a random number will be used to distinguish each simulations data in the cache.

There are some exceptions to this. Rigid body caching is only saved within the blend file. Smoke and fluid caches are always disk based. Fluid, dynamic paint, and ocean modifier simulations use their own cache folder that you can rename if you wish.

While the Disk Cache option is only available after you first save the blend file, fluid and ocean caches will initially be saved within /tmp or c:\tmp on windows if the simulation is run before the file is saved. These temp file caches can be manually moved and adjusted in the cache settings if you bake before saving.


Gradient texture is your friend:
https://blender.stackexchange.com/a/49351/88382

You can also play with lights, since it seems that in one of the reference images the colors of the metaballs come from colored lights.

(if you need to have a single objects instead many objects you can join them. I think that metaballs btw are considered a single object in blender, so the colors are applied to the full object, not to the single meta-primitives - so please share screenshot or blend file to fully understand the problem)


It seems that the order is as follows (in order from weakest to strongest):

Startup .blend settings (does not override anything)
--factory-startup will override all startup .blend preferences (including auto exec), but the default setting for auto exec is disabled (disallowing auto execution globally).
-y (--enable-autoexec) enables -Y (--disable-autoexec) disablesBoth these options override the startup .blend auto exec preferences (including when used with --factory-startup) allowing auto execution. Note that it does not edit the preferences (even temporarily), it just allows execution.
Running a script with -P (--python, --python-text, --python-expr) will execute the script immediately ignoring auto-execution settings. It is possible to enable auto-execution from such a script.


How to make a particle system where particles don't emit light?

Particle systems don't emit light by default, only if you add an emission material to it.

That looks like a Halo particle system, which renders as "blurred dots" in Blender internal.

Try disabling the Halo option under the Properties Editor > Particles > Render > Halo to something else like an object or group.

Alternatively add a new material to the object, set it to Halo type and assign it to the Particle System under Properties Editor > Particles > Render > Material menu. Control it's settings to match whatever effect you desire.


Copying weight painted faces from one .blend file to another

You can append the correct weighted model into the wrong weighted blend file, then just rename its vertex groups accordingly to the names of the new armature's bones.


Can I influence the direction in which fire and smoke dissolve?

Smoke and flames will drift upwards because there is a temperature difference between the smoke/flames and the surrounding air by default, and heat rises.

You can sort of disable this by setting the temperatures to be equal.

Domain settings

Set the Temperature Difference to 0 in the smoke domain settings:

This is all that is needed to make the smoke/fire stop drifting upwards, however more is needed to make it emit in all directions. I think you already have this part, but I wasn't sure so here it is anyway.

Since you are simulating a star, you may not want the smoke that is emitted with the flames by default (even when the flow object is set to only Fire)

You can disable this by setting Smoke to 0 in Domain Settings > Smoke Flames > Reaction:

Particle settings

You probably already know about the particle settings, but:

You can emit particles in all directions by using a sphere and increasing the Normal value which sets the starting velocity in the normal direction. This setting is in Particles > Velocity > Emitter Geometry:

Also ensure you disable Gravity for the particle system (As already mentioned by Mike Pan)
This can be done in Particles > Field Weights > Gravity:

Smoke Flow Settings

Select your particle system as the Flow source, and enable Initial Velocity so that the fire is "flung" by the particles (In other words, the fire will be emitted with the velocity already gained by the particle).

Depending on the speed of your particles, you may also want to increase the number of Subframes.

Result


The "register" class function (how to declare)

A class method takes at least one argument - the class itself. Here, register (and its counterpart, unregsiter) do not take anything else, so you must declare them this way:

    @classmethod
    def register(cls):
        pass

    @classmethod
    def unregister(cls):
        pass

You have a good example of their usage in Cycles' propertie.py file:

class CyclesRenderSettings(bpy.types.PropertyGroup):
    @classmethod
    def register(cls):
        bpy.types.Scene.cycles = PointerProperty(
                name="Cycles Render Settings",
                description="Cycles render settings",
                type=cls,
                )
        cls.device = EnumProperty(
                name="Device",
                description="Device to use for rendering",
                items=enum_devices,
                default='CPU',
                )
        # ... and so on adding properties to cls

    @classmethod
    def unregister(cls):
        del bpy.types.Scene.cycles

That way, you can embed the definition of your propertygroup and handle its container’s creation and deletion inside the class, instead of having to create/delete bpy.types.Scene.cycles in the global (un)register funcs.


F-curves ignore custom "transform orientation"

Because the fcurves (like PGmath has indicated) are in global-space, you might be able to get done what you want with a small work-around:

For each piece of your sphere, add an empty at the center of the sphere and parent that one piece to it. Then rotate each empty such that the sphere-piece is directly below the empty. Apply the rotation to the empty, then manually rotate the empty back so the sphere-piece is back to its original location/orientation.

Any subsequent changes to the z-rotation of the sphere-piece should cause the rotation you are looking for. If you need an example .blend, I might be able to put one together and post it later today.


Blender show array instances as wireframe

There are some options. Create a linked duplicate with Alt D. Give it a copy location and copy rotation constraint with your actual object as target or just parent it. Disable rendering and selectability for your fake object in the outliner.Set the object Type of the array object to Wireframe or Boundbox in the Display panel of the Object Properties.

Now you have a fake object that won't bother you much and the whole array set to wireframe. Not ideal if you want to edit the object but going into Local Mode with Numpad/ temporarily gets rid of that, too. Or you don't make it unselectable and hide it.

Or you can put a Decimate or Remesh modifier on top of it all that doesn't get rendered. That way your Polycount gets reduced as well.


Dynamic topology has an option to enable smooth shading, enabling this turns on smooth shading for the entire mesh.


how to "randomize the color "of arrayed object

A possible way to do it is to use UV offset from the array modifier (as mentioned by Gorgious, random per island is not implemented for Eevee).

From that we can use UV texture coordinates:

Get X (U from UV) value
Multiply it (just to tune randomness)
Get cell value to have one color per arch
Use Voronoi texture to have randomness (easier to tune than noise texture)
Eventually map range to tune the result
Plug it to a colorramp containing the colors you want


Boolean modifier difference between curved objects not working well

select your cylinder.005

go to edit mode

select only the end circle of your cylinder

press CTRL-E -> extrude along normals

make it a bit longer with mouse

same procedure on other side

result: (boolean to exact)


You can achieve this effect using the compositor by extracting the world position, splitting out the 'Z' coordinate and detecting where it crosses a repeating threshold.

First, we need to capture the world coordinate at every point in the scene. For this you can use the following material :

This takes the Object coordinate and converts it into World coordinates, returning the RGB color of the coordinate in world space. This will be used to extract the Height of any point in the scene.

If you need to render the scene normally as well as capture the contours you can use the Render Layer 'Material Override' setting to add a render layer specificaly for this.

In the compositor we now need to extract the 'height' information (the 'B' channel corresponding to 'Z'), split it into bands, and detect the edges. This can be achieved as follows :

The Modulo function is used to split the height into bands (the following Divide re-scales the result so it still spans the 0.0 to 1.0 range). This then passes to a simple edge-detection stage where the image is offset and compared (via Subtract) with a neighboring pixel. If the result of this indicate a large difference then it is deemed to be an 'edge'. By performing this comparison in each direction (once in X direction, once in Y direction, and both doubled up with Absolute) and combining the result we can detect the edge where the modulo jumps from Low to High.

Adjusting the Band, Thickness, Threshold Value nodes allows you to fine tune the banding.

This can produce the following result :

Blend file included

A similar setup can produce the same result from Blender Render. Here are the required material nodes :

Note the use of a Mapping node to shift the values in the Z direction. This is due to the limitation of Blender Render to not render values less than 0.0 - the negative values all become limited at 0.0. In my case, adding 500 moves all the coordinates in the scene to above 0.0.

Additional...

As for the dark areas shown in your supplementary image :

The issue is in how the edge detection is working with the values you have chosen for Threshold and Thickness. Try increasing the Thickness and/or lowering the Threshold until the banding disappears. The edge detection is very simplistic - it only looks for a single contrasting pixel in each direction, excluding diagonals. If the edge is very narrow it's easy for the edge detection to miss the edge - adjusting the settings should help... or a more capable edge detection algorithm - or even render at a higher resolution.

To answer your query regarding the Absolute maths node missing socket, the missing node is simply hidden for clarity since it is not used for Absolute operations. Unused sockets can be hidden by selecting the node and hitting Ctrl+H. The same action can be used to re-show hidden sockets.


Is it possible to increase the dynamic range of 'External Quick Edit'?

I did come with a procedure which uses EXR files

Goal

To be able to create >8 bit color depth when creating texture camera projections

Procedure

Blender v2.7.6.2, GIMP v2.9.3

I created an example file to illustrate the workflow

Make 32 bit texture (UV-Tex) for the UV texture
Set Cycles as your renderer
Set Output for render to OpenEXR Float(Half), RGBA
Set lights, cameras
Create material for your model
Create a texture node for baking, set it to UV-Tex, leave active (with orange border)
Bake
Save result of baking to EXR file
Clean UV-Tex for projection
Select a camera, render, save result as EXR Float(half) RENDER
Edit EXR to suit your needs
Switch to 'Texture Paint Mode' Display object as 'Texture'
You should have 'External' tab now in the toolbox in 3D view.
In the Node view go to the texture node, and upload EXR RENDER file
(This step is important, if you don't make it active in node editor, and try to project EXR image you will get "RuntimeError: Error: Image data could not be found")
Switch Texture node back to UV-Tex
In "External" menu click "Apply Camera Image" select RENDER file
UV-Tex should have your projected EXR image now

All is working fine, however the very last step degrades the image to 8-bit depth, even if the final file is 32 bit. I am trying to figure out if it can be fixed, and will update this post, if I'll succeed.

ADDENDUM The Issue had been solved in Blender master branch and high definition projections should be possible from that moment on, Thanks Campbell!


In UV Editor, is there a way to set rotation of selected mesh to 0 (reset/align to view)

You can use UV Squares addon for that.

Enable it in User Preferences by Ctrl+Alt+U > Addons > UV Squares.
If you don't have the addon, save this to your blender-folder/scripts/addons and refresh the list.
Then you can find it in the Image/UV Editor in the left panel T > Misc tab.
Just select the rotated cube unwrap and press To Grid by Shape:

Note: This works only if your UVs are quads.


How do I enable the Flip Active/Selected Bones options?

The operator properties are disabled when global undo is disabled

As for the menu variations, that would be to reflect the way the operator performs. Most of the select_mirror operators change the selection to be items on the opposite side, this can even lead to no active vertex in the selection. But the pose mode select_mirror operator will select the mirrored bone unless both bones are already selected when it will only change the active bone and not alter the selection.


How to select and merge vertices into separate triangles?

Switch to edge select mode (CtrlTab> Edge)

Select the edges you want to cut. Border select works well (B), or you can select a couple edges like the ones you want to select and press ShiftG> Face Angles.

Press W> Subdivide and turn up the smoothness in the redo panel.

Note
I very much recommend working with quads instead, and using a triangulate modifier to non-destructively triangulate the mesh in realtime.


How to switch between editors with shortcuts

Yes.

There are several screenlayout presets which are selectable from the info header:

You can also cycle through them with ⎈ Ctrl← Left arrow and ⎈ Ctrl→ Right arrow.

You can also define your own presets by clicking the + next to the drop down and then arranging the screen how you want it.

In order to keep your presets whenever you start up blender, you'll have to save the startup .blend by pressing ⎈ CtrlU. Note that this will save everything as default, including user preferences, view orientation, objects, materials, etc.

There are also shortcuts to turn the current editor under the mouse into another editor. For example, press:

⇧ ShiftF2 for a Logic editor
⇧ ShiftF3 for a Node editor
⇧ ShiftF4 for a Python console
⇧ ShiftF5 for a 3D view
⇧ ShiftF6 for a Graph editor
⇧ ShiftF7 for a Properties editor
⇧ ShiftF8 for a NLA editor
⇧ ShiftF9 for an Outliner
⇧ ShiftF10 for a UV/image editor
⇧ ShiftF11 for a Text editor
⇧ ShiftF12 for a Dope sheet


I'd like to know how to overlay a hue shift effect on an object

Use a hue/saturation node to shift the hue, and then remix that with the original image using a mixrgb node, the mix factor being the mask image.  Looks like this:
 (Color mode for the mask actually should be 'Non-color')


Most nodes should not.

Cycles works under a scene referred rendering model, which means that there is no notion of white or black, but merely a range of values that traverse from some low value to a theoretically (within the quantization limits of 32 bit float) infinite range of light.

As such, all nodes should never clamp, or they will not deal with the scene referred data correctly.

Some by design might map such as the Range node. The Colour Ramp sadly is based on a fixed 0.0-1.0 range which greatly diminishes it's usefulness with modern renderers.

The precise answer to the best of my knowledge, is that there is no comprehensive listing. This is something anyone could map out however via the wiki with a table and a little help from contributions.


Join 2 faces with different shapes together

Drop the bottom face of the octagon down to the same z location as the plane.
Then delete the faces on the plane and bottom of the octagon.

You can then select the edges of the bottom of the octagon, as well as the edges of the plane, and F to create a face (which would be an n-gon)...

Then with the face you just created selected, press Ctrl-Fto bring up the face menu and select "triangulate faces"...

This will result in triangle faces connecting the outer edge of the octagon to the inner edge of the plane.

If you are not happy with triangular faces, you can select the faces in question and use Ctrl-F > Tris to quads

Edit: you may have to join the objects first by selecting both, pressing spacebar, and searching for "join"

EDIT 2: Upon testing my explanation, it didn't work for me as intended... i will leave it there for posterity but ill post the way i did it that DID work.

1: extend the bottom face of the octagon down JUST BELOW the face of the secondary mesh

2: ensure that only the octagon is selected and add a boolean modifier to it [Properties Window > Modifiers > Boolean]

3: Set the "Operation" to "Union" and the "Object" to the mesh in question.

4: Apply the modifier

note that the boolean modifier will create a copy of the "Object" you selected and work with that, so you may need to delete the unmodified mesh that is left behind from the modifier...

good luck, and sorry if my first answer didn't work =(


Can I manually edit the points along a path or curve in the blender UI?

In Edit mode, press N or click View -> Properties to open the properties panel. Then, under Transform you will have Control Point. This is the coordinates of the currently selected point. If you have several points selected, it will change to Median and editing the values, will move all selected points so that their median is located at the specified coordinates.

By Properties panel, I'm refering to the area that I marked with red edges in the image below. If it's not visible, you need to open it, either by pressing N or by clicking View -> Properties


You need to model the part you want removed as the "tool" for the boolean modifier.
In the image, if I Boolean Difference the arch from the plane, it creates a cutout of the arch in the plane as you can see on the left. If you only want the inside part of the arch to be removed from the plane you have to model that part as the tool for the boolean modifier, as on the right.


Problem with casting rays from the camera into the scene for each pixel

A solution when you render in 3D View. Maybe something in here will be handy for you. This comes from transforming mouse coords to 3d so maybe its a bit more general than you need.

Getting camera frame corners in screen space (2d):

import bpy
from bpy_extras.view3d_utils import location_3d_to_region_2d

cam = bpy.context.scene.camera
frame = cam.data.view_frame(bpy.context.scene)

# Its in local space so transform to global
frame = [cam.matrix_world * corner for corner in frame]

# Transform into screenspace
region = bpy.context.region
rv3d = bpy.context.region_data
frame_px = [location_3d_to_region_2d(region, rv3d, corner) for corner in frame]

Now you know where exactly the camera frame is and how its panned or zoomed etc. Now you can start firing rays from every pixel in that frame like so:

from bpy_extras.view3d_utils import region_2d_to_origin_3d
from bpy_extras.view3d_utils import region_2d_to_vector_3d

def 2d_to_ray(context, point_px):
    region = context.region
    rv3d = context.region_data

    ray_origin = region_2d_to_origin_3d(region, rv3d, point_px)
    ray_vector = region_2d_to_vector_3d(region, rv3d, point_px)

    return ray_origin, ray_vector

Now you have a ray vector with origin all in global space for every pixel of camera frame. Here is also how to intersect such ray with a plane (I am using a parallel plane to camera view located at 3d cursor):

def ray_intersect_plane(plane_normal, plane_point, ray_vector, ray_origin):
    '''Does not work in Ortho view'''
    t = plane_normal.dot(plane_point - ray_origin) / normal.dot(ray_vector)
    return line_point + t*ray_vector

# This camera location will work also when there is no camera
# It will work for view-port rendering too
rv3d = context.region_data
cam_loc = rv3d.view_matrix.inverted().translation
cam_look_at = rv3d.view_location
plane_normal = cam_loc - cam_look_at

location = ray_intersect_plane(plane_normal,
                               bpy.context.scene.cursor_location,
                               ray_vector,
                               ray_origin)

If you want to know the pixel dimensions of current area (where the mouse is) for the view-port rendering you do it like this:

regions = bpy.context.area.regions

width = next(region.width for region in regions if region.type=='WINDOW')
height = next(region.height for region in regions if region.type=='WINDOW')

A solution when you render with F12

Don't transform the camera frame points to 2d space. Use the 3d global frame corners and render resolution to interpolate all the render pixels in 3d space.

From camera location and these 3d pixels get your rays. Else is similar.


The Composite Node(or the Render Result) outputs to the image editor and is your final render and is where you save from. The viewer node is used as a backdrop for the compositor. It's not intended for a final render but rather to preview the render result allowing you to more easily adjust compositor settings.

Also in the compositor make sure you check Use Nodes and Backdrop. The backdrop is used to see what is inputted into the Viewer node.

Viewer Node: https://docs.blender.org/manual/ko/dev/compositing/types/output/viewer.html

Composite Node:
https://docs.blender.org/manual/ko/dev/compositing/types/output/composite.html


Is it possible to re render a single pass and not the whole scene again?

It appears that the answer is no, however I'm not sure why this wouldn't be possible for some passes such as Object Index, Material Index, etc.)

As a workaround, render only one sample (you can also render at a lower resolution while testing).

To combine with the original render you will have to save the render to the hard drive (you may want to use exr to preserve other passes) and then load it back into the compositor with an Image node.


Problem is gone after scaling up shaky objects and then scaling up all the stuff in the world to match the proportions accordingly.

And the problem was not just clipping flickering since it caused real distortion, which was also visible in rendered view.

Thanks Everyone for the attention.

UPDATE: The real problem was the huge distance from the center of the project (grid).
So if you are having similar problems - try moving problematic stuff near the center.

Peace


Is there anything like Meshmixer's "Make solid" in Blender?

Remesh Modifier is Blenders equivalent of Make Solid in Meshmixer. But the results are unpredictable most of the time so I suggest you stick to Meshmixer for that operation.


How to customize a material without duplicating it?

There are not that many options how to input unique data of each object into a shader node tree.

There are vertex colors, hacking UV coordinates as numerical input, and outputs of Object Info node. There is also an option of scripting a custom Cycles node.

Because you need float in range <0, 1>, using the Object Index seems feasible. It's an integer with max value of 32767, which scaled into 0-1 range gives you 1/32767 of precision (0.00003), which is not bad. This is how you'd use it inside your material:

This is the property to animate for each object:

Just multiply your value with 32767 and round it.


Background grid warping when zooming in User Persp

This is a normal wide-angle perspective distortion. To reduce it, you need to look at your subject through a longer lens from further away.

Bring up your right-hand panel (hotkey N) find the 'view' section, and change the 'lens' length to a higher number, and track back using the middle mouse wheel.

The longer the lens, and the further away you pull back the camera, the more closely the view will approximate to orthogonal, just as in real-life photography.


need double helix mesh to follow bezier curve

The curve modifier is a bit of a tricky one, as it requires you to spend a bit more attention to the orientation of the source object. To start with, make the local axis of the object which you want to bend visible in the Object tab / Display section:

In your case, the positive Z Axis is pointing up the direction of the Helix, and this is the direction which you want to deform. Next, Handle the origins. The Origin of the Helix should be at the starting point of the deformation. If it is not, you need later on to locally translate it along its local Z axis to match up the curve (in your file it was centered on the object). If you place it like in this screenshot, you can skip the translation step:

The highlighted axis are the one from the helix, the dark ones the axis of the curve you provided.

Then, make sure that the origin of the curve is at the origin of the helix. You can snap them together using the commands in the Shift S menu:

Now add the curve modifier, and set the deformation direction to Z:

As lemon rightfully anticipated, the curve radius is too small to get nice deformation. Ease out the curve a bit more to fix it.

Blend File is here:


Move object by a given distance on rotation of another (bolt & screw)

Sounds like you need to set up a custom driver based on the rotation of the screw. This video is on corrective shape keys but is a good introduction to the use of drivers in animation
https://www.youtube.com/watch?v=6mrceZ6fe-o


How do I combine an animation with two different fps'?

The NLA Editor
Could consider dropping the actions into the NLA editor and scaling them to match.
For example sake have two actions 100 frames of an 100 frame per second action  and 24 frames of a 24 frame per second action. At there designated frame rates each would last one second.
As noted in question if scene frame rate is 24 FPS the 100 frame action goes for 100 / 24 (approx 4 seconds), or conversely if at 100 fps the 24 frame per second lasts 24 / 100 seconds.

Among a few ways to animate time in the NLA editor can simply scale the length of one to match the other.
Drive the strip scale.
Better still can add a driver using the scene frame rate
Setting up the driver, right click in the scale property box and choose add driver

Add a single property variable, name it "fps" and point it to scene.render.fps by choosing scene and crunching render.fps as the data path. Now for the 24 frame per second action make the driver expression
24 / fps

copy the driver, paste into the 100 FPS strip scale property. Change the expression to
100 / fps

Now the two strips will match length, eg at 24 fps the 24 fps is 24 frames long and taking up 1 second, as is the 100 fps and vice versa.

Please note, could associate an fps with the action and use it in driver expression.  Also for the correct fps the scene.render.frame_base property should be taken into account, eg at 23.98 fps the fps is 24 and the base is 1.001, ie actual frame rate = scene.render.fps / scene.render.fps_base.


Go into edit mode, and press A to select all the vertices. Press the spacebar and type in "Triangulate Faces," and that should fix the problem.

Blender sometimes has problems calculating bent rectangles (technically known as quads), because they can be made out of two triangles bent one out of two ways. Take this plane for example:

It can be made of either these triangles:

Or these triangles:

As you can see, both versions use the same exact vertex locations, but achieve completely different effects. However, Blender doesn't know which one to choose. In your case, Blender gets confused and decides to basically fold the weird looking face in half, instead of making it concave. By using "Triangulate Faces," you are basically asking Blender to turn each face into a specific set of triangles, so that way it doesn't get confused about the possibilities. In the end, your cube should look like this:

I hope I helped you, and let me know if you have any questions.

Happy Blendering,
Graves Broderick


How do i remove objects within another object's collection?

The 'connector' object is not actually a collection. Most probably, the other four objects are parented to the connector object, thus causing them to be shown under this object in the Outliner.
In response to your second question, the objects are actually getting moved to the Scene Collection, but they remain where they are greyed out simply to display the hierarchy (as they are still parented to the 'connector' object). Scrolling down to the bottom of the Outliner should find the four objects in the Scene  Collection.
An alternative way to move these objects is to press M.


Is there any way to offset curve and filling space between with mesh to make a ring?

I would recommend using the Taurus mesh to start with. You then can select the top and bottom ring of the Taurus to make it look like this.
I Created more rings using cntl+r so I could use smaller sections.
This isn't to complicated but the tutorials by: Blender Guru might help as they go over the basics and he makes a lot of objects. If you need tutorials that is.
https://www.youtube.com/watch?v=JYj6e-72RDs&index=2&list=PLjEaoINr3zgHs8uzT3yqe4iHGfkCmMJ0P
Final Image(I changed two or small things but this isn't really detailed so it isn't attractive.)
Edit: I forgot to say then you can extrude from a plane and make it connect off of multiple extrudes.


Need help exporting rendered animation in video format

You need to choose video format in Output settings and then render Animation. You have variety of options for video such as bitrate, codec etc.


How do I get the Layers tab to show in the Properties menu?

The screenshot you added in the comments is from an old version of blender. Since 2.67 the render layers have their own tab in the properties.


Your problem probably stems from trying to copy the armature in pose mode. Switch it to object mode and select both - armature and mesh. Copy it and paste to another file.
Second way is to append the cowboy from its file to the file on which you working by going to File>Append (or SHIFT+F1)finding the file, opening it, then folder Objects and choosing cowboy object. It will bring the cowboy object along with it's parent (in this example armature).


After adding a material, add two textures. The texture(s) lower on the list will be applied over the previous texture(s):


You do not need such setting at all. The default (no level trigger, no Level, no Tap, no Invert) will do it's job as is.

How does it work?

State A)

When you press the key the state actuator to State B gets activated. The state changes to State B)

State B)

When you release the key ... nothing happens.
When you press the key the state actuator to State A gets activated. The state changes to State A)

What happens with Tap?

Tap means that the next frame the sensor evaluates False even if the measured event is still present (Tap makes the sensor lie). Evaluating False results in a deactivation of the actuators. The state actuator runs one frame only ... and ignores deactivation completely.

Therefore it works the same way as without Tap.

What happens with Level?

Level means the sensor triggers the controller on state change (additionally to the evaluation changes true/false false/true).

This is problematic. When you press the key it is unlikely you release it within the 1/60s. This means when entering a state the sensor will trigger the controller (with true) and activate the state actuator which switches to the other state.

This way you get constant state changes until you release the key. So you are playing random generator. If that is you goal ... well done. If not ... better disable Level.

What happens with True Level Triggering?
This makes the sensor triggering the controllers when evaluating True all the time. This forces the actuators to get activated as long as the key is pressed. This results in constant state switching.

In difference to Level, you can delay the switching by setting the Frequency parameter (Freq:) to a value greater than zero.

What happens with False Level Triggering?
This makes the sensor triggering the controllers when evaluating False all the time. This forces the actuators to get deactivated as long as the key is not pressed. As deactivation gets ignored .. it just wastes some processing time.

Usually this is not necessary.


Connect vertices where they would meet, not fill?

You might want to try the tinyCAD addon.

Select the two extruded edges then choose w->TinyCAD->VTX Auto and you will get a vertex joining the two where they would intersect.


How to remove mirrored weight painting only?

I looked at my vertex groups and I at one point must have made a right foot variant before I had removed the bones from the right side. I will remove the right vertex groups, symmetrize the bones, then go from here: How can I mirror weight painting?
Unless there is an easier solution that is posted.


Animation Nodes - Have Text Appear Word By Word Instead Of Letter By Letter

Split text into words. then slice text list based on frame and combine back to single text.


Ben, no the mirror modifier only produces symmetry across a plane; there is no way to rotate. One approach I used to model a tire was to model a strip across the entire width of the tire, and use an array modifier around an empty to arrange the instances of the array around the center point. The bit of the tread I modeled is outlined in white.

.

I should note that I only modeled the raised parts of the tread, and not the side wall or base; these were a separate object.

This technique worked, but the results were unsatisfactory because I was modeling a real tire, and it turned out that the different strips around the tread did not have the same size; the left three parts of the thread occupied a smaller part of the radius (1/48th of the radius, as I recall) than the right two parts (1/40th of the radius), so what I wound up doing is modeling the tread pattern as two different bits, the three left in on bit, the two right in the other, and applying the two different segments around the body (the sidewalls, and base of the tread), as in the illustration, where I've rotated the tire body, and highlighted the two segment arrayed object for illustrative purposes.


How to create a object/mesh that can change colour during an animation

You can do this by giving your object a material, and in that material, using a Value Node with #frame as a value, connected to the hue modulation of a Hue/Saturation/Value Node.
When you enter #frame into the value node, it will change color and change to 1.0 - this is normal, it will change along with your frame when you animate. I find the default rate of change too fast, so I usually multiply it by some low value to slow it down. When you connect it to the HSV Node, you must also input SOME color (default white will not work). I used an RGB Input node so I can easily change the "base color". Connect this to an emission shader, and then to the material output. When you press "play" the color will change with the frame number.


Changing shortcut to change views doesn't work. Is it possible? How?

It's a conflict with Hide Collection. It has all numbers assigned. Because I tried combination with numbers alt+1 alt+2 ... to change views.


I believe some of your face normals are flipped OR you have overlapping faces / really rough topology, OR you need to unwrap your model more cleanly without UV distortion and maybe even increase the UV texture resolution.

To fix normals: Tab for Edit Mode, then A to select all. Ctrl+Shift+N to recalculate normals (untick "inside").

Fix overlapping geometry: a quick fix might be Re-Mesh modifier. Be sure to save an alternate version before flattening ("applying") a modifier because it is destructive.

UV Unwrap quick fix: Edit Mode, select all faces, U "Lightmap Pack" or "Smart UV Project". Make sure your UV image texture is a large enough resolution and that your UV islands have enough margins between to prevent overlap.


How do you add thickness to a circle mesh?

A mesh>circle has no faces, so it is not renderable.

Also, without any faces it cannot be used with the solidify modifier to give thickness.

You might want to use a curve>cirlce instead, so that you can control the thickness with the bevel setting.


If a lamp is too dim to add any significant lighting to other objects (except for very close ones), including it in MIS just wastes computations for no real purpose. If you are using branched path tracing, it will sample all lights on every sample (with MIS). So you want to make sure it is only spending time doing samples that might return something other than 0 (or close to it). If you are using the simple progressive path tracing mode, it only samples one lamp per sample. So if a lamp won't contribute much, you don't want it to use MIS because it might steal the sample from a more useful lamp.

tl;dr: disabling MIS is a way to tell Cycles "this lamp is too dim to illuminate much of anything, don't waste your time trying".


Running Script and rendering from command line with external script

You are running blender twice, the first time it opens the file and runs your script then it closes the file and quits. The second time it opens the file and renders the animation. Without saving the blend file in the first run, the render step will start with the same data as before the script was run.

Blender processes command line arguments in order given, that is you can do it in one step by running the script and then rendering.

blender -b oop-blender-demo.blend -P model.py -a

Another option is to have the script do the rendering by adding

bpy.ops.render.render(animation=True)

Using save_as_mainfile() you would want to give it a filepath parameter. The save as operator saves a copy of the current blend file using the filepath parameter, without it you can't be sure where the copy is saved. If it did work, you will want to open the saved copy to render rather then the same original file. Normal system security settings are in effect, so the inability to save a file may come from the system preventing you from writing to the current directory or path .

Instead of saving a copy of the file you may want to use bpy.ops.wm.save_mainfile() which does a normal save of the current file rather than saving a copy.


In Edit Mode CTRLE and click 'Clear Sharp'


One way would be to use the Oscurart Tools addon.
It can align origin points between multiple objects.

Enable the addon ✓ in Preferences > Add-ons

Select your objects (order matters) and RMB > Oscurart Tools > Distribute

Each cone has origin point in it's tip. After aligning, all the origin points are in line.
(The blue line is just for illustration)