hole or not hole in prepared mesh for 3d printing?

As someone working in 3D printing, I can tell you that those tutorials are wrong, and making a hole inside a mesh to make it 'empty' inside is only going to create troubles.

Basically, to 3D print, your STL file goes through a program called a 'slicer', which will analyse and slice the mesh in layers before sending it to the printer for the actual printing layer by layer.

When the slicer analyses the mesh, it will identify the skin/walls of the mesh, determine what is outside and inside, which will also help it determine if supports are needed or not.

If, for example, you want to print a cube, making the mesh hollow inside means that the slicer will add support for the internal roof of the cube, support that you'll never be able to take out because it's a cube, and you cannot reach inside unless you break the cube open.

Plus, having mesh with 'holes' inside can sometimes confuse the slicer, especially if the walls of the mesh are thin, and prevent it from correctly interpreting what is inside and outside, or mess with the layers.

Besides, making a mesh empty is useless because all slicers have a setting called 'Infill' which determine the shape and percentage of the internal structure. Depending on your mesh, and how confident you are in the material being used, you can set it to 0%, meaning the printer will only print the walls of your mesh, up to 100% if you want to print a solid block.

So, to sum it up, making a hole inside a mesh is a bad idea, it will create problems, it won't really save you money nor time, especially since there is a setting in the slicer that does the same while ensuring proper printing.


Add a Curve modifier and, in this modifier, choose the Bezier Curve as the Object
You've changed the radius of the curve vertices, so select the curve, enter in Edit mode, select all, open the 3D view properties panel on the right of the 3d view (press N), and in Transform choose a Mean Radius of 1


Let the message set a property to value 1. Then add a property sensor: If property = 1 --> play action.

OR

Let the message set the state with the "State" actuator. In the another state, play the action triggered by an always sensor.

It will never play again ;)

I see you wrote "Vanish". If you want that the object disappears, use the "Invisibility"-Actuator instead of an action actuator and turn "Visible" off.


How can I turn nodes that made in shader editor to script?

If I understand correctly you want to turn your material into its equivalent python nodes. Arguably this is a bit too involved for a single SE question because there are a lot of use cases. Thankfully I tackled this some months ago for a personal project so I can share what I worked on.
You'll need to learn how to use a script.
How to use :
Select your object, select the material you want to copy, run the script. The material code will be added in a new text block.

"""
This scripts "serializes" the active material of the currently selected object
And creates a script readable by the Blender API to recreate said Material.
As any Blender script, it is free to use in any way shape or form.
V 1.1 - 20.10.23
Fixed NodeSocketVirtual error
"""

import bpy

from bpy.types import (
    NodeSocketShader,
    NodeSocketVirtual,
    NodeSocketVector,
    NodeSocketVectorDirection,
    NodeSocketVectorXYZ,
    NodeSocketVectorTranslation,
    NodeSocketVectorEuler,
    NodeSocketColor,

    NodeReroute,

    Object,
    Image,
    ImageUser,
    Text,
    ParticleSystem,
    CurveMapping,
    ColorRamp,

    ShaderNodeTree,
)

from mathutils import Vector, Color

ERROR = "~ ERROR ~"

def get_link_statement(link):
    """
    Build the statement to re-create given link
    """
    return f"""\
links.new({link.from_node.path_from_id()}.outputs[{get_socket_index(link.from_socket)}]\
, {link.to_node.path_from_id()}.inputs[{get_socket_index(link.to_socket)}])\
    """

def value_from_socket(socket):
    """
    Returns the evaluated value of a node socket's default value
    """
    # A Shader socket (green dot) doesn't have a default value :
    if isinstance(socket, (NodeSocketShader, NodeSocketVirtual)):
        return ERROR
    elif isinstance(socket, (
            NodeSocketVector,
            NodeSocketVectorXYZ,
            NodeSocketVectorTranslation,
            NodeSocketVectorEuler,
            NodeSocketVectorDirection)):
        return f"{[socket.default_value[i] for i in range(3)]}"
    elif isinstance(socket, NodeSocketColor):
        return f"{[socket.default_value[i] for i in range(4)]}"
    else:
        return socket.default_value.__str__()

class NodeCreator:
    """
    Helper class to programmatically recreate the passed node
    """
    # These props are internal or read-only
    # and aren't useful in the serialization.
    default_props = (
        "dimensions",
        "draw_buttons",
        "draw_buttons_ext",
        "input_template",
        "inputs",
        "internal_links",
        "isAnimationNode",
        "is_registered_node_type",
        "output_template",
        "outputs",
        "poll",
        "poll_instance",
        "rna_type",
        "socket_value_update",
        "type",
        "update",
        "viewLocation",

        "texture_mapping",
        "color_mapping",

        "filepath",

        "cache_point_density",
        "calc_point_density",
        "calc_point_density_minmax",

        "interface",

        "height",
        "show_options",
        "show_preview",
        "show_texture",
        "width_hidden",
    )

    def __init__(self, node):
        """
        Initialize the node inputs and outputs,
        and the different fields' default values
        """
        self.node = node
        self.input_default_values = []
        self.output_default_values = []
        if not isinstance(node, NodeReroute):
            for _input in node.inputs:
                self.input_default_values.append(value_from_socket(_input))
            for output in node.outputs:
                self.output_default_values.append(value_from_socket(output))

        self.type = type(node).__name__
        self.properties = []  # Could use an ordered dict instead.
        for prop_name in dir(node):
            if prop_name.startswith("_") or prop_name.startswith("bl_"):
                continue
            if prop_name in NodeCreator.default_props:
                continue
            self.properties.append((prop_name, getattr(node, prop_name)))

    def statements(self):
        """
        Build the chain of statements to programmatically recreate the node
        """
        statements = []
        statements.append(f"new_node = nodes.new(type='{self.type}')")
        self.properties = sorted(self.properties, key=lambda p: p[0])
        for props_tuple in self.properties:
            prop, value = props_tuple
            if isinstance(value, ImageUser):
                statements.append(f"""\
img_text = new_node.{prop}
img_text.frame_current = {value.frame_current}
img_text.frame_duration = {value.frame_duration}
img_text.frame_offset = {value.frame_offset}
img_text.frame_start = {value.frame_start}
img_text.use_auto_refresh = {value.use_auto_refresh}
img_text.use_cyclic = {value.use_cyclic}
img_text.tile = {value.tile}\
                """)
                continue
            if isinstance(value, ParticleSystem):
                # /!\ Make sure this is executed after node.object statement
                statements.append(f"""\
if new_node.object:
    new_node.{prop} = new_node.object.particle_systems.get('{value.name}')
                """)
                continue
            if isinstance(value, CurveMapping):
                statements.append(f"""\
map = new_node.{prop}
map.clip_max_x = {value.clip_max_x}
map.clip_max_y = {value.clip_max_y}
map.clip_min_x = {value.clip_min_x}
map.clip_min_y = {value.clip_min_y}
map.tone = '{value.tone}'
map.use_clip = {value.use_clip}\
                """)
                # Remove the 2 starting default points and only these :
                for i, curve in enumerate(value.curves):
                    statements.append(f"map_c = map.curves[{i}]")
                    for point in curve.points:
                        statements.append(f"""\
map_c.points.new({point.location[0]}, {point.location[1]})""")
                    statements.append("""\
removed_start = removed_end = False
for i in range(len(map_c.points) - 1, -1, -1):
    p = map_c.points[i]
    if not removed_start and p.location[0] == map.clip_min_x and p.location[1] == map.clip_min_y:
        map_c.points.remove(p)
        removed_start = True
    if not removed_end and p.location[0] == 1 and p.location[1] == 1:
        map_c.points.remove(p)
        removed_end = True\
                    """)
                statements.append(f"map.update()")
                continue
            if isinstance(value, ColorRamp):
                statements.append(f"""\
cr = new_node.{prop}
cr.color_mode = '{value.color_mode}'
cr.hue_interpolation = '{value.hue_interpolation}'
cr.interpolation = '{value.interpolation}'\
                """)
                for stop in value.elements:
                    statements.append(f"""new_stop = cr.elements.new({stop.position})
new_stop.color = {[ch for ch in stop.color]}""")
                # Remove the 2 starting default stops and only these :
                statements.append("""\
removed_black = removed_white = False
for i in range(len(cr.elements) - 1, -1, -1):
    stop = cr.elements[i]
    if not removed_black and stop.position == 0 and all([stop.color[i] == (0, 0, 0, 1)[i] for i in range(4)]):
        cr.elements.remove(stop)
        removed_black = True
    if not removed_white and stop.position == 1 and all([stop.color[i] == (1, 1, 1, 1)[i] for i in range(4)]):
        cr.elements.remove(stop)
        removed_white = True\
                """)
                continue
            if isinstance(value, ShaderNodeTree):
                statements.append(f"""\
ng = bpy.data.node_groups.get('{value.name}')
if not ng:
    new_node.label = \"Missing Node Group : '{value.name}'\"
else:
    new_node.{prop} = ng\
                """)
                continue

            if prop in ("hide", "mute", "use_custom_color"):
                if value:
                    statements.append(f"new_node.{prop} = {value}")
            elif prop == "text" and not value:
                continue
            elif prop in ("select", "shrink"):
                if not value:
                    statements.append(f"new_node.{prop} = {value}")
            elif isinstance(value, str):
                if value:
                    statements.append(f"new_node.{prop} = '{value}'")
            elif isinstance(value, Vector):
                if len(value) == 2:
                    statements.append(
                        f"new_node.{prop} = ({value[0]}, {value[1]})")
                else:
                    statements.append(
                        f"new_node.{prop} = ({value[0]}, {value[1]}, {value[2]})")
            elif isinstance(value, Object):
                statements.append(
                    f"new_node.{prop} = bpy.data.objects.get('{value.name}')")
            elif isinstance(value, Image):
                statements.append(
                    f"new_node.{prop} = bpy.data.images.get('{value.name}')")
            elif isinstance(value, Text):
                if value:
                    statements.append(
                        f"new_node.{prop} = bpy.data.texts.get('{value.name}')")
            elif prop == "parent":
                if value:
                    statements.append(f"""\
parent = nodes.get('{value.name}')
if parent:
    new_node.parent = parent
    while True:
        new_node.location += parent.location
        if parent.parent:
            parent = parent.parent
        else:
            break\
                    """)
            elif isinstance(value, Color):
                statements.append(
                    f"new_node.{prop} = ({value[0]}, {value[1]}, {value[2]})")
            else:
                statements.append(f"new_node.{prop} = {value}")
        for i, dv in enumerate(self.input_default_values):
            if dv == ERROR:
                continue
            statements.append(f"new_node.inputs[{i}].default_value = {dv}")

        for i, dv in enumerate(self.output_default_values):
            if dv == ERROR:
                continue
            statements.append(f"new_node.outputs[{i}].default_value = {dv}")

        if not isinstance(self.node, NodeReroute):
            for _input in self.node.inputs:
                if _input.hide:
                    statements.append(
                        f"new_node.inputs[{get_socket_index(_input)}].hide = True")
            for output in self.node.outputs:
                if output.hide:
                    statements.append(
                        f"new_node.outputs[{get_socket_index(output)}].hide = True")
#        DEBUG Print node location as a label :
#        statements.append("new_node.label = str(new_node.location[0]).split('.')[0] + ', ' + str(new_node.location[1]).split('.')[0]")

        return statements

def serialize_material(mat):
    """
    Returns the ordered statements necessary to build the
    Mateiral generation script
    """
    node_tree = mat.node_tree
    statements = [f"""\
import bpy
new_mat = bpy.data.materials.get('{mat.name}')
if not new_mat:
    new_mat = bpy.data.materials.new('{mat.name}')

new_mat.use_nodes = True
node_tree = new_mat.node_tree
nodes = node_tree.nodes
nodes.clear()

links = node_tree.links
links.clear()
    """]

    statements.append("# Nodes :\n")
    for node in node_tree.nodes:
        for st in NodeCreator(node).statements():
            statements.append(st)
        statements.append("")

    if node_tree.links:
        statements.append("# Links :\n")
        for link in node_tree.links:
            statements.append(get_link_statement(link))

    return statements

def write_material_to_text_block(obj):
    """
    Create or overwrite a text block with the same name as the material
    Which contains all the necessary statements to duplicate the material
    """
    if not obj or obj.type not in ('MESH', 'CURVE', 'VOLUME', 'SURFACE', 'FONT', 'META', 'GPENCIL'):
        return
    am = obj.active_material
    if not am or not am.use_nodes:
        return
    statements = serialize_material(am)

    text_block = bpy.data.texts.get(am.name)
    if text_block:
        text_block.clear()
    else:
        text_block = bpy.data.texts.new(am.name)

    for st in statements:
        text_block.write(st)
        text_block.write("\n")

    return text_block

def get_socket_index(socket):
    return socket.path_from_id().split(".")[-1].split("[")[-1][:-1]

if __name__ == "__main__":
    text_block = write_material_to_text_block(bpy.context.active_object)

The code is available there for grabbing
https://github.com/Gorgious56/Material2Script/blob/main/material_to_script.py


baking normal from high poly to low poly made with instantmeshes issue

The issue is within the exported low poly mesh,
Instant meshes generates sharp edges and custom split normals data to the new generated mesh.

The solution is simple:
In edit mode select all edges and click Ctrl+E and select clear sharp. If that doesn't smooth the object you can click the 'clear custom split normals data'  in the object data properties under geometry data.
Don't forget to check autosmooth angle and shade smooth/flat.

Hope it helps.


Material will not assign to selected vertices

The first material is assigned to the whole object by default , to un-assign some faces from this material you'll have to :

create another material slot ( with a material )
assign these faces to the new material slot


How to colour entire object based on its height

Achieving this with material nodes
I thought Generated and Object texture spaces differ and that can be used for this. Thanks to Robin Betts for figuring out the correct math.
Object's texture space goes from 0 to one in every direction on every axis from the origin of the object to the end of its bounding box in that axis, however Generated texture space matches the scale of global world space. If the origins of all objects are at their bottoms, their heights can be calculated by dividing the Z value of the object's texture space by the Z value of Generated texture space. The values can then be compressed to the desired range by dividing them by the height of the highest object. A Color Ramp node then can be used to remap the height values to colors:


Bone Heat Weighting: failed to find a solution for one or more bones

Use the decimate modifier, as Shady Puck mentioned.  But instead of Planar, select Un-Subdivide, and use 2 iterations. It looked pretty good to me (~29,000 -> ~14,000 polys).  But make your own judgement after trying that out.

If someone else could tell my why this works, I would be happy.  Even better, please edit this answer, so it actually sounds like a good answer.

After applying that Decimate modifier, I went into your 'rig' (did you mean to use 'metarig' to learn?) and selected the bottom-right four layers.  I had to clear the Pose constraints on the bones because they were all wacky, but once I did that, I selected those bones DEF bones and automatically assigned weights to the VGs, no envelopes required.


Can not find unlink object data in Blender 2.8

As of the official release of Blender 2.80, 'unlinking' of objects is called 'Make Single User'.

Select object(s)
Go to the 3d viewport menu: Object-->Relations-->Make Single User-->Object & Data
After selecting that menu item, a pop-up appears where you may choose Selected Object(s) or All


Multiple transparent planes with low Max Transparecy Bounces

The "Tree1" object is made by multiple overlapping planes. Their shading properties comes out from a sharp Mix of a Transparent shader and a Diffuse shader.

As there are multiple intesection and your Max Transparency Bounces is set to 8, light can't filter trough all the planes.

We can clearly see this by giving to the material a full Transparent shading.

More Bounces leads to the expected shading behaviour:

Now that the shader works as expected, you'll have no issue in Mist pass calculation:

Thought about Mist pass caluculation. I didn't find any evidence of the following lines in documentation, so take it as my (current) opinion, and feel free to discuss about

When Light reaches the max number of bounces stadted by the Light Path settings the simulation is "over". This means that the path tracer cosider the light information in the same way as the light would have reached the background. And as is considered "background", its mist pass value will be the higer possible (1=fullwhite).


Is there any option to select all objects in scene and then apply all the modifiers together for every single object?

This will do what you want: Applies modifiers for all selected objects:

import bpy
import bmesh

for ob in [ob for ob in bpy.context.selected_objects if ob.type == 'MESH']:
    b_me = bmesh.new()
    b_me.from_object(ob, bpy.context.scene)
    b_me.to_mesh(ob.data)
    b_me.free()

    for mod in ob.modifiers:
        ob.modifiers.remove(mod)

To add modifier (wireframe) for all selected objects:

import bpy

for ob in [ob for ob in bpy.context.selected_objects if ob.type == 'MESH']:
    mod = ob.modifiers.new(name='Wire', type='WIREFRAME')
    mod.thickness = 0.02 # SET THIS


Reduce/Remove Sub-edges in Skin Modifier

You can add a Decimate modifier below the Skin modifier, to reduce the number of faces created by the Skin modifier.


Transparent material turns black when unselected

Since you are using an older version (2.78) of Blender and there are screenshots only this is a little bit of an guesswork.
Try the setup of the attached nodes. Instead of the "Principled BSDF" node use the Material node of Blender 2.78.
Additionally check the alpha channel settings of the viewport and the material.


You do it the same way as everywhere else, by pressing S followed by the axis you want to scale on, i.e. X, Y or Z.

Additionally you can press S and then Shift + the axis you don't want to scale along, and thus scaling along the other two; So if you pressed S, followed by Shift + X, you would scale along Y and Z, but not X. This, however, only applies in the 3D View, not in the UV/Image Editor, as there are only two dimensions.


Like oenvoyage (in the comments) I'm not sure a curve modifier is what you're talking about either. For a "simple" "mine cart" animation on a curve I would think you would use something like a "Follow Path" constraint.

If you are using an actual curve modifier my solution here will probably not work.

But if it's simple object animation created using a constraint like I theorized you might use, or parenting or any other similar methods of animating that is not just simple keyframe animation you can always bake the action to keyframes so it should always export no matter what the destination program's compatibility or incompatibility with constraints.

With the object selected go to "Object/Animation/Bake Action"

In the new menu you will probably at least want to select "Visual Keying" which will make it bake (AKA turn into regular keyframes) all animation, like constraints and parenting. If you have constraints or a parent animating the object you can check the options to "Clear constraints" and "Clear parents," or just remove the parenting/constraints yourself when you're done. You also want to make sure the frame range selected encompasses your entire animation length.

This will take most any animation or movement and convert it into keyframes on the location/rotation/scale of the base object, so it should be reasonably simple to export it to any other application like Unity. However, you will lose all the control and ability to adjust the animation that non-destructive constraints and parenting offer you.


Viewport preview is not supported for bezier curve objects automatic texture coordinates except Object, at least for 2.7# series, this may change in future versions but for the time being it is a known limitation. Both Generated and Use UV for Mapping options are only visible while rendering in Cycles/Blender Internal, OpenGL support does not display these.

You also seem to misunderstand how to use those coordinates. If you activate Use UV for Mapping you must use UV type coordinates in your node setup, not Generated.


Is there a way to 'drive' lamps, similar to how you can 'drive' and control a camera in first person?

A quirk of Blender is that you can actually set any object to be the 'camera' and use the WASD movement controls while in Fly mode.

Select the object (e.g. a lamp) and press Ctrl+Numpad 0 to set it to be the camera. You will now be looking through the object like you would a camera object.
Press Shift+F to enter Fly mode and navigate freely.

The downside of this is that you will then have to reassign the actual camera as the scene's active camera afterwards (if you intend to render anything) either by selecting it and pressing Ctrl+Numpad 0 or by selecting it in the Scene panel in the Scene tab of the Properties Editor:


Howcan I apply the material changes I did for a cube?

change view mode from solid to material to see shaders in viewport


Cut angular section (pie section) out of cylinder

Below is a quick and dirty method using a circle and solidify modifier with operators.
import bpy
from math import pi

verts_total = 8
verts_fill = 7
my_radius = 1.0
my_location = (0.0, 0.0, 0.0)
my_rotation = (0.0, 0.0, 0.0)  # use radians
my_depth = 2.0

def make_pacman(verts_total, verts_fill, my_radius, my_location, my_rotation, my_depth):
    # create a circle mesh and create triangle fan fill
    bpy.ops.mesh.primitive_circle_add(
        vertices=verts_total,
        radius=my_radius,
        fill_type='TRIFAN',
        calc_uvs=True,
        location=my_location,
        rotation=my_rotation)

    obj = bpy.context.object
    # add solidify modifier to simulate cylinder
    mod = obj.modifiers.new("SOLIDIFY", type='SOLIDIFY')
    mod.thickness = my_depth
    mod.offset = 0
    # if full cylinder then done
    if verts_total == verts_fill:
        return
    # select vertices to delete
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='DESELECT')
    bpy.ops.object.mode_set(mode='OBJECT')
    for i, vert in enumerate(obj.data.vertices):
        if i <= verts_fill:
            continue
        vert.select = True
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.delete(type='VERT')
    bpy.ops.object.mode_set(mode='OBJECT')

make_pacman(verts_total, verts_fill, my_radius, my_location, my_rotation, my_depth)


How to simulate in blender, smoke coming out from a bottle or a flask?

Make the Flow object bigger and put above the glass and invert the gravity so the smoke will also flow inside and outside the bottle. May be you have to increase the smoke resolution or subdivison (in the domian) for a better result. Unfortunatelly EEVEE doesn't support hollow glass objectives, so you have to use cycles rendering to see what's inside the bottle.(If you choose cycles I recommend the 2.79 version because it's more stable). Or you can also make thicker smoke to cover those details.
I recommend a hdri for background what you can download here:
https://hdrihaven.com/hdris/
If you use hdris you dont have to use lights.

Edit:
I made a test scene:
https://drive.google.com/open?id=1Vksf8SVzUqXFqZcXheBDsJNDx1mamO4M
Don't forget to bake the smoke.
Enjoy!


Picking two points on the 3d model surface to measure distances

My favorite tool for measuring things is the measureit addon.

Once the addon is installed and enabled, simply enable Show in 3D view > Tool Shelf (T) > Measureit tab. Then select the vertices you want to measure and click Segment. You can edit and delete individual measurements in the Properties Region (N):


Adding more cuts not creating more round object when using curve modifier on specific object

Here is what I found-all that that unnecessary loopcuts were causing the issue. It is probably because you used mirror modifiers to make the barrel. Mirror modifier just make a duplicate of the mesh and mirrors it. It does not merge the vertices to the original mesh.
In your case the easiest way to solve it is by selecting all those edges (which you have beveled) except any one among them by  alt+shift + RMB and then delete them by pressing X.Dont forget to switch off all the modidifiers except curve modifier before selecting

(Select the edge and press Gtwice tp slide the edge)
Which will get u this:

To solve it in the proper way, you can apply the mirror modifier and box select the vertices and merge them with  altM > merge at center .(You wont even see the vertices cuz they are too close to each other).OR simply use the merge option in mirror modifier.


This question is geometrically unclear.

What do you expect as the final result?

Here are some variations of an answer, that all fit around the sphere.

Can you identify from one of the following?

Don't really have time to answer this, but see what you can glean from this demo. I'm going to have to circle back around to answer properly as time allows.

Quick hint I use Shift+Z when scaling.

My pivot is set to 3d cursor .

Snapping is on and set to Verts.

The rest is extrude and fill.


No

Unfortunately there's currently no Eval / Custom math node for Cycles as described in the question. Unless it's an OSL definition it has to be pre-compiled. Look through the OSL examples, you might find that it is capable of doing at least some of what you want.

See the specs: https://github.com/imageworks/OpenShadingLanguage/blob/master/src/doc/osl-languagespec.pdf

And suggested reading: Understanding the Cycles 'Script' node

But..

Node trees can be scripted and groups can too. I imagine it is possible, with sufficient willpower, to write a script or addon that translates a (Python like) expression with variables into a node-group with inputs and outputs. Perhaps something like:

# {materialname: material.001, groupname: NodeGroup}
sockets = {inputs: [var1, var2, var3], outputs: [var4]}
theta = var1 / 300
gamma = sin(theta * var2)
var4 = gamma * var3

and to the outside world that would look like a single node.

To make a useful implementation is not a trivial thing, but it could move away from pure python syntax to a more domain specific syntax to provide more convenience for specifying the types of inputs and outputs (Vector, Color, numeric..).


I just made the render use 100% of my resolution [...].

This is an important change, since a higher rendering resolution requires more memory. The error you are getting tells you that Blender could not get enough memory from your graphics card.

If you do not want to use a lower resolution, simplify your scene by using lower resolution textures for far-away objects, using lower subdivition levels, fewer particles or in general less geometry when you can afford it.

Also have a look at the simplify tab in the scene settings:

Another possibility might be to render your image in parts, like shown here or in the answer to this question.


Is there a way to stop Cycles Computing Transparency?

From my knowledge of cycles, I don't think this is possible.

Think of it this way:  If you disable camera ray visibility it simply ignores the object when calculating ray collisions.  But a transparent shader is simply that: a shader.  And Cycles will only look at a surface's shader if a ray has already hit the surface, meaning the calculation you are trying to avoid has already been performed.  In other words, Cycles has to perform the collision algorithm to find out where the ray hits the surface to know if it is transparent.

To ignore transparent parts of objects you would first have to go through every shader in the scene looking for the pure white 100% transparent parts so that it just so you can ignore them in the ray-tracing step.  This process would be very computationally expensive and would probably far out-weigh the saved time in the ray collision calculation.

With that said, I am by no means a complete expert on cycles, so if anything I have said is incorrect please let me know.


Seperate the trunk from the leaves as a new object. On the trunk clear Custom Split Normals Data under Mesh/geometry data. Join the meshes.

Custom normals are per-split-vertex normals and not face or vertex normals. Tools that deal with those will not work on per-split-vertex normals. Information about these normals are stored on a seperate data layer that usually doesn't exist on a mesh.

In Maya there is a possibility to "lock" normals. That is not possible to do in blender (yet?) but the current system seems to be solid and predictable in its behaviour.


Jagged edges when using Glare in Compositor

Combining cegaton and gandalf3's comments, I removed the useless Alpha Over node:

then switched the setting for the Glare node to "High":

This resolved the pixelation / jagged diagonal lines I was seeing:


Why are hair particle endpoints inhibited from getting close the the emitting object?

With your hair  selected go to particle edit mode and in your brush settings there is something called "Deflect Emitter".  Choose the distance you want or disable it for free editing, with no force field.


"Self Collision" is for the same object to collide with itself, not other objects/simulations.  Each soft body modifier acts as a separate simulation, they can't interact.

So, select all the softbody objects that will collide, then "Join" them (Ctrl+J) into one object.  Now the separate parts within the same object can use "Self Collision".

(Combined objects are not much more difficult to manage, just different.  You can still manipulate the separate parts within the same mesh like separate objects, just select a vertex of a part, then "Select Linked All" (Ctrl + L) to select the part for manipulation.

Or you can keep a copy of all the separate objects in a hidden layer that you manipulate, then join them when you're ready to simulate.  You may have to combine/finagle the materials some, but that's for another question. )

(Also, depending on what you are trying to accomplish, you may find "Cloth Simulation" to work faster and give better results than Soft Body, especially with self collisions.)


Is there a way to hide freestyle outlines on Mask objects

Blender's FreeStyle functionality is a rendering engine, which means that it is not object-based. You can only turn it off for the whole scene.

Take a look at this picture from the Blender Manual

The first box is your 3D scene with all its objects. Everything else in the process happens after the objects, their positions and materials are processed.


How do I just move the nose in, not squash it?

Disable Clipping in Mirror modifier. This will prevent vertices from cliping in the middle. After editing the nose, enable it back, cause it ensures middle vertices to be joined after applying the modifier.


Export to Unreal Engine without combining all the elements in one object

In Blender I put a moving part of the object at the center of origin and export the object separately. It works for me. Zero coordinate in Blender will be pivot point in Unreal


How to make cloth 'catch' a falling object, slowing its fall?

Here is an example, based on what you said, if I got it right:

subdivide a bit a cube, rise it on Z, set rigid body "active", a bit of bounciness, "mesh" collision shape
set a ground plane, set a group with the 4 corner vertices, set plane to cloth, with pin to the above 4 vertices group, set also rigid body "passive", with a bit of bounciness, set collision shape to "mesh"

it should behave like this:

here is the example file

Hth.

edit

As for comments, I noticed you asked something slightly more natural. Rigid bodies made the cloth stop the falling cube, but it seemed as their interaction was poor.

Although you didn't post any image, animation or example file, I hope now to understand what you wish, and have done another setup, but it does not use rigid bodies, it uses soft bodies:

Here is the result:

I've done it like this:

Plane has

cloth enabled, pinned to the 4 corner vertices group
collision enabled (default settings)
soft body enabled with "default goal strength" .98

Falling cube has also soft body enabled, with

soft body goal > disabled
soft body edges > stiff quads, shear 1
soft body edges > springs pull 0.99

And, here is another example file

edit 2:

since in comments you (finally!) unveiled your ultimate desire:

"I specifically wanted to achieve the effect of a (soccer) football being caught by a goal net."

I tried similar setups and... found that's is really hard, imho. I had some partial (weird) results using mostly softbodies instead of cloth, and you see them below, but although I'm not satisfied (all of them are really acting weirdly) I show them here below for completeness's sake. To partially justify my failures, I found this on this manual page: Deflection for softbody objects is difficult, they often penetrate the colliding objects.

Below you see I used a "force" simulation (with a abrief strong impulse behind the ball) to "kick" the ball into the net, this also could help or inspire you. Last, I would create a new question more specific, like "how can I realistically simulate a soccer ball caught in a goal net?"...

So, here are some results I got until now: I can post also .blend files if you need to experiment: it was fun, in the end, but I wish I found a very good end compelte solution...

late edit

here is the .blend file relative to the last example


First off, make sure that you have everything disconnected from the "Surface" node on material Output.

And as a side note, an easier on render time way to make an emission object glow is to do compositing.

In the render layers tab, you can check 'emission' under passes.

Then just overlay a blur of the emission pass like this:


EDIT:
I found a solution to this myself when I compared my older file with my newer file.

I unchecked the "manipulate around centre points only" box (the one with the three small dots and the arrows in the image below), then clicked on the menu to the left of that, and changed the pivot point from "3d cursor" to "median point". This worked perfectly to solve this problem!


Why is my mesh so tiny when I port it to UE4?

Oh, your problem is that the dimensions of your mesh are tiny! A mere 1.6074cm tall—this is why it is so small in UE4. I would scale the character by about 100 times. A quick way to do this is to type 'S' and then '100' on your keyboard. After which you should apply the rotation and scale at the very least. I usually also apply the transform. Note: make sure you are in object mode and apply the transforms to the armature and the meshes of your character. In Blender 2.79 you have to do it one-by-one.

If you have multiple meshes in blender it can be tricky to measure them all together. One way I do it is by clicking on the top of the character's head: the 3D cursor will be placed there, and then in the right panel you'll be able to see the height of your character. It should definitely be somewhere between 1m - 2.2m tall for a humanoid character.


What causes this deformation when switching to FK mode?

After you created a walk cycle as described in an earlier post: How should an animated character be moved while repeating a walk cycle?

If only takes a few keyframes where you move the legs and arms

Note that the movement has to be in place, no keyframes must be added to the root bone.

Create a curve (This example uses a bezier circle) and add a Follow Path constraint to the root bone.

In the NLA editor add your action holding the walk cycle and set the repeat value that it matches the length of the animation.


There is a script that will convert weights to vertex colors.  These can then be baked out to a map.  See Turn weight paint(vertex groups) into vertex paint? for script and instructions.


glossy surface when importing certains meshes

Check the Material Viewport Display, the Metallic value is 1, bring it back to 0:

Also, the material is 100% metallic, bring the value to 0 if you don't want any metallic effect:


Can I duplicate a mesh along curves if the curves have been moved?

I've noticed that when I apply scale to a curve that is used as a curve modifier by an object, this object always get bigger/smaller, so I guess the solution is either not to apply scale to the curve you use (or to only work its shape in edit mode which is even preferable as you will always stay at its original scale), or to scale it again and apply scale until the object is at its correct size, but this is not the good solution.


My Blender model has invisible insides when exported to unity

Maybe it is invisible in Blender also.Have you switched on Backface Culling?
If it works with this then you can add planes inside or you can solidify the external faces.


Try this:
DirectionVector.to_track_quat('X', 'Z').to_euler()

mathutils.Vector.to_track_quat in the docs


What is necessary to work with inset face mode?

In your image I can see that you are using Vertex Select. In this case, activate Face Select.

Inset Faces is a Face Tool. It needs you to select all the vertices/edges that make up a face.

You can use it via Vertex Select (or Edge Select) as well, however, you need to select the central vertex to select the tris (triangles or faces with 3 vertices).


Can I remove weights/vertex groups for specific vertices?

Remove vert(s) from vertex group.

In edit mode, select the verts you want removed from group. Click the remove button on the Vertex Groups Edit Panel to remove from the active group.

Here is a sample where all the vertices of the default cube are added to the "Group" group.  The bottom face is selected and its verts removed from the group.  I've turned on the show weights in the mesh display panel to make visualizing the group easier.


Well, you could select the bones that are over the others, or
interfering and send them to a second layer. Select the bones you want and press M, then in layer click the one you want to send them.


How to separate the selection of a duplicate mesh?

You need to go to edit mode for separate by 'P' to work. If you just want to separate the top portion in your screenshot, go to edit mode, select those vertices that you want to separate, press P and choose 'Selection'


Fluid, type liquid ignores domain when inflow

I learned that the fluid simulator domain is always square. I am treating the skull as an effector now but the liquid is falling through ignoring the obstacle completely. I've checked the normals of the skull and they are all outward. My scale is set in all objects.


How do I get rid of this text above my toolbar?

just pull up the info window...

Place the cursor at the line where the 3D window and the Info window meet. The cursor should change to a double arrow.

Pull the info window up.

Note, both above and below that header you get a "double arrow":

you don't have to drag the upper separation line

but the bottom line as shown below:


How to get uv_on_emitter for child particles?

Heres what you do:

if pindex >= num_parents:
   particle = psys.particles[(pindex - num_parents) % num_parents]
else:
   particle = psys.particles[pindex]
st = psys.uv_on_emitter(psys_modifier, particle, pindex)


Some parts of my mesh won't allow texture to be applied

I went in and re-UV-unwrapped it and it appears to be working now. Also the image I had in the UV editor was the wrong material from what I'd applied to that area. Not sure exactly what the relation is to the image in the UV editor vs. the one used in the background of the material, but this alignment appears to have worked


How do you bake out a world space/position normal maps?

An object-space normal map, on an object without any rotation or parents, is also a world-space normal map.  So you can just unparent, clear rotation, and bake an object space normal map if you want world-space normals.
When I want to output arbitrary data, I generally use emission.  Run geometry/position into emission for world space position.  Remember that position is in Blender units-- save to .exr (which supports floating point values) if it goes outside of 0,1 range, or remap.
If you want some other way to bake world space normals, consider remapping the channels of geometry/normal from -1,1 range to 0,1 range, then emitting and baking.  Unless your application expects them in the -1,1 range, in which case, don't remap them, just remember to save as an .exr to support the negative numbers.
Whenever you're baking any values like this, remember that you want to bake to non-color data:


Building Blender - single lib folder for many different builds?

OK, I figured it out my self.

There are couple of lines in CMakeLists.txt that set the path to the lib folder one level relative to the source files folder (carried by the CMAKE_SOURCE_DIR variable).
To make it work with my example folder structure simply adding one more level solved the problem:

    if(NOT DEFINED LIBDIR)
        # Setup 64bit and 64bit windows systems
        if(CMAKE_CL_64)
            message(STATUS "64 bit compiler detected.")
            set(LIBDIR ${CMAKE_SOURCE_DIR}/../../lib/win64_vc12)
        else()
            message(STATUS "32 bit compiler detected.")
            set(LIBDIR ${CMAKE_SOURCE_DIR}/../../lib/windows_vc12)
        endif()
    else()
        message(STATUS using LIBDIR  ${LIBDIR})
    endif()

My real folder structure was a bit more complex and the common lib location was off the branch with sources so I made it a bit more complicated:

    # added this near the top of CMakeLists.txt for easy reference
    if(WIN32)
        set(COMMON_LIBPATH "C:/some_complex_path/CommonStuff/Blender/lib")
    endif()

    ...

    if(NOT DEFINED LIBDIR)
        # Setup 64bit and 64bit windows systems
        if(CMAKE_CL_64)
            message(STATUS "64 bit compiler detected.")
            if(COMMON_LIBPATH)
                message(STATUS "Using common lib path: " ${COMMON_LIBPATH})
                set(LIBDIR ${COMMON_LIBPATH}/../lib/win64_vc12)
            else()
                set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/win64_vc12)
            endif()
        else()
            message(STATUS "32 bit compiler detected.")
            if(COMMON_LIBPATH)
                message(STATUS "Using common lib path: " ${COMMON_LIBPATH})
                set(LIBDIR ${COMMON_LIBPATH}/../lib/windows_vc12)
            else()
                set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/windows_vc12)
            endif()
        endif()
    else()
        message(STATUS using LIBDIR  ${LIBDIR})
    endif()

You have to edit the CMakeLists.txt file in each source code folder (e.g. the standard "blender" folder).

As I am targeting Windows this applies to, you guessed it, Windows.


How to add a displacement map on a plane using procedural textures with a layer mask

A solution not using the Displace Modifier:

In Cycles, using the Displacement Input Socket on the material Output, you can control the displacement with a combination of texture nodes.

In this example of a simple (subdivided and UV unwrapped) plane, the wave texture is combined with a voronoi texture using an image texture of the letter A as the mix factor. In other words: the voronoi texture will only displace the parts with the letter A.

Note that this is a true 3D displacement of the geometry, not just a bump map:

As of version 2.75, this is only possible using the Experimental Feature set in the Render controls

and enabling True as the Displacement Method for the mesh.


How can the Glass Shader be imitated using only other shaders?

What is missing is the Fresnel effect of the surface reflecting more light at higher angles of incidence.
You can use a fresnel node (Add node > Input > Fresnel) as the factor for a Mix node mixing the Refraction and Glossy shader to get this effect.

Mixed with only an Add Shader node:

Some examples with the above materials:


Yes, the render will be fine.  Make sure however that you bump up the quality back up to 100%, otherwise it will (just a guess) render an animation 72x128 pixels.  Playback FPS is just the realtime playback speed.  Do keep in mind that your computer may not progress through the render very quickly though.


One way would be to change the direction of the edge flow so there is a loop around the "hole". You can do this by selecting the corner vertices (in pairs) and merging them at the center.

You can then add an edge loop around the hole and pull it in to define the top of the edge.

If you want the inside of the hole to look "cleaner", add an edge loop in the center, and bevel it until the top and bottom edges are close to their counterparts in the hole. You might also want to select the bottom faces and inset them very slightly.

Final result is a clean cutout:


How to use a 2D video to make a skybox and reflect it in a mirror object

Another similar option that make less distortion on mirror (metallic), but some edges on glass ... For World shader is used video texture in Environmental node > Mirror Ball ... plus video object behind.


Physics: Rigidbodies sticking together and softbodies not retaining shape

So, I found a solution to the rigidbodies falling through the floor, though they still stick to each other (collision margins set to .1).
I made a new rigidbody with a much simpler cube with a few extra edge loops and increased the mass to 50, and the new simulation does not break into the environment. I am however still having issues with softbodies and the cars still return to base shape after impact.
Here is the link to the updated file
https://www.dropbox.com/s/qnsqfjojrw2star/CrashTest4.blend?dl=0


Why does Eevee render hairs wrong in Blender 2.9?

The viewport and the render being different likely has to do with the children settings. Change the number of children to be the same for render and viewport. If this doesn't work, check out the render and viewport display panels, then finally the Hair panel in the Render tab (as opposed to the PArticles tab).


Is there an Addon that positions 3D cursor at the origin of non selected object by clicking it in 3D View?

You don't need an addon to do that, you can achieve it with Blender's builtin key map editor.

If the default Shift + S > Cursor to Selected is not enough for you, then you can set up any desired key combination to call that operator for you in the key map editor. The operator you are looking for is view3d.snap_cursor_to_selected.

With this you can go to Blender user preferences with Ctrl + Alt + U > Input Tab > 3D view > 3D View global and add a new entry there with the Add new button at the bottom of the list

In the operator field to the left enter the view3d.snap_cursor_to_selected now assign any mouse action or key press as desired.

Depending on which mouse button you use for selecting I found out that using the same mouse button plus some modifier key can work very well.

For example I use Left Mouse button for selection, since in object mode the F is not bound to any action by default, I assigned Mouse Select > Press + F as modifier key to view3d.snap_cursor_to_selected so when I am selection objects all I have to do is press F key and click on an object and the cursor will snap to all selected.

Edit Check out the example image


Texture paint not showing in render mode

Ok so found out that i need to save the texture before rendering in UV/ImageEditor for the brush work to show up but i dont understand because i was able to paint in real time earlier, i even remade a texture so i am kind of lost, anyway i guess i am gonna have to work with saving between each stroke...


Export model to unity with multiple textures

As a Unity user myself i would say: avoid multiple materials on a single mesh at all times! You are adding unnecessary drawcalls! What you should look into is creating an Atlas, with some smart UV mapping you can avoid this all toghether. There are plenty tutorials for this online.

Otherwise, write a custom fragment shader, but that might be more work then you are looking for.


Exporting a shape made out of quads results in hexagons in obj file

I don't have any way of looking at an .obj file to see where your problem appears, but you have two spurious vertices on the edges of the bottom face which you can see in Blender if you turn off the bevel modifier. Not sure whether deleting those would sort your problem?


How to move only one side of a cube in object mode - equivalent of stretching the cube in that direction without moving other faces

You can just move the face in Edit mode:

If you want to do it in Object mode, put the 3D cursor on the face that is supposed to be the pivot point:

go into the Transform Pivot Point panel and choose 3D Cursor (or keyboard shortcut . to get the pie menu:

then scale on the axis you want (SX here):


How to load scripts into the Text Editor on startup?

Ok, I found a solution for this problem.  Thanks to all for providing answers.  I posed this as a scripting question since I could see no other way of solving my initial problem.  The problem is creating a library of often used scripts that are immediately available every time I open Blender.  This is to emulate Maya's Tool Shelf in which the user can save scripts as buttons in the UI.

The solution is to open a script in Blender's Text Editor - this creates a text data block for the scene, which is saved with the scene.  Do this on the fresh Default Blender scene to open scripts in the default New Scene, then re-save the scene as Default.
If you want specific scripts available for a specific scene, just open those scripts as data blocks for that scene and save it.

This is not quite a decent solution, since the entire script is saved within the blender file, which could add up to a lot of extra data, plus it exposes the script to unintentional changes.  A better method would be to save each script path in a run_script command as an individual text object.

import bpy

path = "/Users/user_name/Documents/Blender/scripts/modules/script_name.py"
bpy.ops.script.python_file_run(filepath=path)

Then you only save these few lines in the Blender scene file and run it from the Text Editor, and the script is isolated from changes or prying eyes.  It just won't work if the blender file is opened from within a different machine or file system.  Its just a convenient hack until a more elegant UI solution is invented by someone.


Points extruded in object mode but not edit mode how do I get rid of these lines

I seemed to have overlapped my points and duplicated them during edit mode and making them deformed in object mode.


How to make an empty follow a rigged mesh's movement?

To fix this:

Select your main mesh object.
Then shift+right click to select the small facial features.
Hit ctrl+J to join them together.
Re-Parent the mesh with the armature then they will move with the mesh.


Camera Solve Focal Length Automatically Set To 24

Motion tracking Solver does not automatically applies the settings of the Solved camera into your scene's camera unless you press Setup Tracking Scene (Movie Clip Editor Window, in the Solve Tab).

Blender's default camera has 24mm so I guess you are not using this feature. If not, you may apply the Camera Solver Constraint manually and then change the Camera properties too.


Which effect to use so my texture doesn't look so flat? (Cigar)

Here is the kind of node setting that you could use:
Mix a Diffuse with a Glossy, use the picture as factor of the Mix Shader, with a ColorRamp between to set the intensity.
Create a displacement picture of your texture with a software like CrazyBump or other, plug this image into the Height socket of a Bump node, and plug this node into the Normal sockets of the Diffuse and Glossy in order to give a bit of 3D relief.
It needs to be improved of course...


What is the fastest way to create an array of objects through a script?

Add a cube, then apply an array modifier in each dimension, and finally separate each part.

import bpy

bpy.ops.mesh.primitive_cube_add(enter_editmode=False, location=(0, 0, 0))
cube = bpy.context.selected_objects[0]
dimensions = [10, 10, 10]  # Rows, Columns, Levels

for i in range(3):
    mod = cube.modifiers.new('Array', 'ARRAY')
    mod.relative_offset_displace[0] = 0
    mod.relative_offset_displace[i] = 1.1
    mod.count = dimensions[i]
    bpy.ops.object.modifier_apply(modifier='Array')
bpy.ops.mesh.separate(type='LOOSE')  # Remove this line to keep all cubes in one object


How to make the shading the same across all faces?

You can do this by connecting the image texture without a shader. In the image below, the rocks in the foreground (the ones on the right) are connected through a traditional Principled BSDF, whereas, the ones in the background (the un-shaded ones) are connected as shown. You will have to control the brightness and whatnot manually (if needed) using Bright/Contrast Nodes, or ColorRamps, however, as these are completely un-shaded. You can still give the objects a bit of a "shadow effect" if you want by turning on Ambient Occlusion.


I hate to tell you this but the Mirror Modifier is grossly ignorant of the 3D Cursor up to the point of complete and perpetual denial.

It mirrors either around the object origin of the object it's assigned to or it takes the orientation and location of the mirror object if you configure it that way. Your screenshot makes it hard to see where the OO of the eyeball is, but I guess it's not on the centerline.

My guess: it's directly beneath the line created by the two eyeballs intersecting.

https://docs.blender.org/manual/en/dev/modeling/modifiers/generate/mirror.html

So you can either put the eyeball (its origin, not the mesh) in the middle of your head and then, in Edit Mode, move it to the side or you can keep the eyeball's object origin in its center and use either the character's OO or an empty for mirroring or you can put your 3D Cursor in the middle, select the eyeball and use 'set origin to 3d cursor' in the tools.


How to deform organic meshes according to parented curves?

Add a Bezier curve.
Line up your plant object with a curve object.
Add a Curve modifier to your plant.
In the modifier, under Object:, select your curve.
Select your curve in the viewport & go into edit mode.
Move the vertices around until you find a good pose.

Hope this helped :)


How to map a procedural brick texture to a sphere?

Enter Edit Mode on the Sphere Object, press U and unwrap using "Sphere Project".
In the Node Editor, press shift+A>>Texture>>Texture Coordinate and connect the "UV" Output with the "Vector" Input in the Brick Texture node. Finished!

I hope this helps you ;)


Replicate value stored in object into properties of new one

Set verts in invoke method
Set the value when the operator is invoked (run once). Give the new cylinder the operators value for self.vertices.
Demonstration of that change

    def invoke(self, context, event):
        obj = context.object
        self.vertices = obj["vertices"]
        return {'FINISHED'}

    def execute(self, context):
        bpy.ops.mesh.primitive_cylinder_add(
            vertices=self.vertices,
            align='WORLD', location=(0, 0, 0))
        obj = context.object
        obj["vertices"] = self.vertices
        return {'FINISHED'}

Some notes.
To match new cylinder transform to old would
mw = context.object.matrix_world.copy()

before new cylinder op, and assign it to new cylinder.
The poll method could be
def poll(cls, context):
    ob = context.object
    return ob and ob.name.startswith("Cylinder")

The poll method gets fired off a lot. Good practice not to use a try clause here.
The gizmo matrix basis could be
Matrix.Translation(ob.location)

However this is using local coords to make a global matrix and will result in "losing touch" with the cylinder if parenting or constraints are used to locate it.  Worth investigating using
Matrix.Translation(ob.matrix_world.to_translation())

Automatically set the custom property when cylinder added
Check out the way this answer https://blender.stackexchange.com/a/163258/15543 manipulates the newly created mesh primitive.  Recommend doing something similar here.
When the active operator is the add prim cylinder add the custom property.  In this case could poll for "vertices" in ob.keys()  (Maybe change name to cylinder_vertices)


blender kill particles not viewing in render

To prevent internal or viewport cache errors, save your particle cache to the disk before rendering. Enable Disk Cache under Particle Properties > Cache and click Bake all Dynamics:

Cache panel

Frame 7200 - 7325 cached to disk and rendered with Eevee

For several reasons but mostly because of the colour range provided by some of the available image formats, I suggest render your animation to an image sequence (preferably .exr) and compile the images into a video container like .mov, .mp4 or whatever afterwards.


You have dupliverts (Properties > Object > Duplication) enabled on the armature.

Disable them, and then everything works as expected:

An object with dupliverts enabled renders instances of itself on the vertices of child objects.

As your object has no child objects, it just disappears.


I'm not exactly sure if I understand your question correctly, but you can easily animate particle scale:
In your particle settings, under "Render" right-click on "Scale" and choose insert keyframe. Alternatively, you can click on the small dot right to the box.
Then, go forward in your timeline, insert a new value for "Scale" and again, insert a keyframe.

This may result in something like this:


This is what I did: tick "High Quality Normals" in the Render Properties


How to achieve a solid glass/emission material with certain refraction and color

One way to achieve it is what you already have setup, just mix a Glossy with an Emission Node and fake the effect perfectly. I could optionally ditch the Glass node if you don't need the transparency and want to simplify the setup.

If you want a more accurate and real material at the expense of more noise and don't mind the extra render time, then you can do it with actual translucency.

Mix a Glass and Translucent node and add an actual light source inside the map. This light source may be anything from an emission surface to an actual lamp.

You may also want to re-unwrap to improve you lamp UVMap so the texture is better distributed over the surface.


Why does part of my scene get cut off when going into camera view?

Try setting Clip Start to 0.01 or lower and End to 500 or higher. Does that solve the camera? What are the parts that are missing in the other tabs?  Do you have screenshots?


When I open my camera everything disappears

That's actually very easy to explain.
The "0" you are pressing is the shortcut for Layer 10! That means you are NOT switching to camera view, but actually changing the layer from 1 (which contains all your geometry) to 10 (which contains nothing). That's why you see ... nothing.

To solve it. Check layer 1.

Make sure you press either what is the equivalent of NUMPAD 0 on your laptop or check "Emulate Numpad" in User Preferences.

Now your Number Row will act as your Numpad.

A final option without any hotkeys:

I hope this solves it for you.


How can I make my interior scene better lighted?

As I said, there are techniques at your disposal to reduce noise (and by extension, render time) that don't involve relinquishing your shadows.  Here's an example showing how much Clamping actually affects shadow exposure.  I've used the Denoising filter (for simplicity) included with Blender 2.79 Candidate but there are more effective and more flexible ways of controlling noise as well.

Denoising settings for this render:

Notice also the wood texture outside the window, with an Indirect Clamping value as extreme as 1.00, it's affected as well, since it's technically not Direct light.

Full size (Click to enlarge):


If the pixels only occur after you import your video into iMovie and not in the rendered file on your computer, then it is probably an issue within iMovie rather than with Blender. You can try exporting the scene as PNGs which you can then string together at 24 per second if you are looking for a different format to use. If the rendered scene looks okay when you play it back on your computer, but pixelated upon import to your iPad, no changes in Blender are likely to fix that. Try asking this question in the "Video Production" or "Apple" stack exchanges and they may be able to help better than we can.


Like stated in the above comments you probably have more than one object selected, or you might have selected an object that is not editable (eg a light, camera, )Try pressing A a few times and then reselecting your mesh, If you believe it to be a  bug, Try closing blender, starting a new file and importing everything into your new file.


How to I subdivide a mesh so that it fits into a bounding box?

This slices a mesh object into axis-aligned parts (changing the active object):

import bpy, bmesh
from bpy import context as C

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

bm = bmesh.from_edit_mesh(C.object.data)

edges = []

for i in range(-10, 10):
        ret = bmesh.ops.bisect_plane(bm, geom=bm.verts[:]+bm.edges[:]+bm.faces[:], plane_co=(i,0,0), plane_no=(-1,0,0))
        bmesh.ops.split_edges(bm, edges=[e for e in ret['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])

for i in range(-10, 10):
        ret = bmesh.ops.bisect_plane(bm, geom=bm.verts[:]+bm.edges[:]+bm.faces[:], plane_co=(0,i,0), plane_no=(0,1,0))
        bmesh.ops.split_edges(bm, edges=[e for e in ret['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])

for i in range(-10, 10):
        ret = bmesh.ops.bisect_plane(bm, geom=bm.verts[:]+bm.edges[:]+bm.faces[:], plane_co=(0,0,i), plane_no=(0,0,1))
        bmesh.ops.split_edges(bm, edges=[e for e in ret['geom_cut'] if isinstance(e, bmesh.types.BMEdge)])

bmesh.update_edit_mesh(C.object.data)

bpy.ops.mesh.separate(type='LOOSE')
bpy.ops.object.mode_set(mode='OBJECT')

The separate operator is needed, but you could write the bmesh to a new mesh datablock and temporarily bind it to a new object and run this operator. Then unlink it from the scene and delete, keeping the sliced mesh. Bmesh syntax in short:

bm = bmesh.new()
bm.from_mesh(me) # or from_object(ob, scene)
#...
me2 = bpy.data.meshes.new("Sliced")
bm.to_mesh(me2)
#...


Lossless compression for video with audio

I couldn't get DNxHD to work (which isn't lossless, but very close to it), so I suggest the following options, which work for me:

Output Format H.264 (RGB)

Encoding Preset H264

Lossless Output (none of the values in the panel matter)

Audio Codec FLAC (bitrate doesn't matter again)

This will give you great quality at a relatively small filesize.


How do I change text on a panel row or hide it depending on the value of an EnumProperty?

Given a defined enumerated list:
proplist: bpy.props.EnumProperty(
    items=(("BoolProperty", "Bool", "Boolean"),
    ("BoolVectorProperty", "Bool", "Boolean"), # duplicate name, desc
    ("FloatProperty", "Float", "Floating Point"),
    ("FloatVectorProperty", "Float Vector", "Floating Point Vector"),
    ("IntProperty", "Int", "Integer"),
    ("IntVectorProperty", "Int Vector", "Integer Vector"),
    ("PointerProperty", "Pointer", "Pointer Property"),
    ),
    name="proplist",
    description="Selectable properties to add",
    default="BoolProperty",
    )

The items require an identifier (unique to the list), a name (potentially duplicated internal to a list), and a description (potentially duplicated internal to a list).

items (sequence of string tuples or a function) – sequence of enum
items formatted: [(identifier, name, description, icon, number), ...].
The first three elements of the tuples are mandatory.

As such any test should be performed against the identifier of the list.
Within the panel you can then perform logical test:
if items[props.proplist].identifier == 'PointerProperty':
    col.prop(props, 'test_str')
if items[props.proplist].identifier == 'BoolProperty':
    col.prop(props, 'test_bool')

And provide information based on the selection:
items = props.bl_rna.properties['proplist'].enum_items
col.label(text=f"item [ identifier ] : {items[props.proplist].identifier}")
col.label(text=f"item [ name ] : {items[props.proplist].name}")
col.label(text=f"item [ description ] : {items[props.proplist].description}")

An overall example script below:
import bpy

class TEST_PG(bpy.types.PropertyGroup):
    proplist: bpy.props.EnumProperty(
        items=(("BoolProperty", "Bool", "Boolean"),
        ("BoolVectorProperty", "Bool", "Boolean"), # duplicate name, desc
        ("FloatProperty", "Float", "Floating Point"),
        ("FloatVectorProperty", "Float Vector", "Floating Point Vector"),
        ("IntProperty", "Int", "Integer"),
        ("IntVectorProperty", "Int Vector", "Integer Vector"),
        ("PointerProperty", "Pointer", "Pointer Property"),
        ),
        name="proplist",
        description="Selectable properties to add",
        default="BoolProperty",
        )
    test_str: bpy.props.StringProperty(
        name="test_str",
        description="str",
        default="Junk",
        )
    test_bool: bpy.props.BoolProperty(
        name="test_bool",
        description="bool",
        default=True,
        )

class VIEW3D_PT_test():
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Test Panel"

class TEST_PT_sub_01(VIEW3D_PT_test, bpy.types.Panel):
    bl_idname = "VIEW3D_PT_test_panel_1"
    bl_label = "Test Panel 1"

    def draw(self, context):
        props = context.scene.my_property_group
        layout = self.layout
        box = layout.box()
        col = box.column(align=True)
        col.prop(props, "proplist")
        items = props.bl_rna.properties['proplist'].enum_items
        col.label(text=f"item [ identifier ] : {items[props.proplist].identifier}")
        col.label(text=f"item [ name ] : {items[props.proplist].name}")
        col.label(text=f"item [ description ] : {items[props.proplist].description}")

        if items[props.proplist].identifier == 'PointerProperty':
            col.prop(props, 'test_str')
        if items[props.proplist].identifier == 'BoolProperty':
            col.prop(props, 'test_bool')
        row = col.row()

classes = [TEST_PG,
        TEST_PT_sub_01,
        ]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Scene.my_property_group= bpy.props.PointerProperty(
            type=TEST_PG)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    del bpy.types.Scene.my_property_group

if __name__ == "__main__":
    register()


It's been a very long time since I read about fake GI but as far as I can remember, Fake GI and light domes are two different approaches to get global illumination.

The goal of both methods is to create sort of a "50% grey" effect that illuminates the whole scene in a similar way cycles does when you render out the default cube with no additional light source in the scene. Ideally there would be no shadows at all since the light comes from all directions. Additional lights will then produce shadows which aren't completely black.

afaik Fake GI would use a skydome with maybe a fancy HDRI image slapped on that emits the light, while light domes are dome-like structures build out of actual light sources - many light sources.

I don't know if those methods are really that much faster to justify the amount of pita they require in terms of workflow (compared to modern render methods, that is), but most of the results I've seen are quality-wise somewhere in between Blender internal with Hemi + additional light sources and Cycles. The point is that shadows are still "harder" thus more unrealistic.


Moving a vertex makes only half of the connected faces move in the right way

Your problem comes down to changing the internal triangulation done by Blender, as described by Robin Betts here: flipping internal triangulation
In your particular case: select problematic faces, Ctrl + T to triangulate, change Quad Method to Fixed Alternate, select the new edges and dissolve them:

If you want to make a script automatically fixing such quads, this could be a starting point: Select concave quads


You may have a look at Cell Fracturing, either the standard in-build one or the standalone add-on version. There are many great tutorials for it on YouTube, too.

Maybe you can adapt this tutorial from CGGeek? You only need to add a ground (rigid body, passive type), play with the shard settings (wood usually has a high number of long splinters) and maybe use an object to push the wood from behind instead of below. Also, no smoke sim needed, obviously.
https://www.youtube.com/watch?v=J70DijACZm0

Another (older) tutorial, could serve as a reference for settings:
https://www.youtube.com/watch?v=w_m81zF9WtY


What is blender's camera projection matrix model?

The following Python code builds a calibration matrix K commonly used in computer vision from a Blender camera. You can then use the generated K matrix to compare against your own.

import bpy
from mathutils import Matrix

def get_calibration_matrix_K_from_blender(camd):
    f_in_mm = camd.lens
    scene = bpy.context.scene
    resolution_x_in_px = scene.render.resolution_x
    resolution_y_in_px = scene.render.resolution_y
    scale = scene.render.resolution_percentage / 100
    sensor_width_in_mm = camd.sensor_width
    sensor_height_in_mm = camd.sensor_height
    pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
    if (camd.sensor_fit == 'VERTICAL'):
        # the sensor height is fixed (sensor fit is horizontal),
        # the sensor width is effectively changed with the pixel aspect ratio
        s_u = resolution_x_in_px * scale / sensor_width_in_mm / pixel_aspect_ratio
        s_v = resolution_y_in_px * scale / sensor_height_in_mm
    else: # 'HORIZONTAL' and 'AUTO'
        # the sensor width is fixed (sensor fit is horizontal),
        # the sensor height is effectively changed with the pixel aspect ratio
        pixel_aspect_ratio = scene.render.pixel_aspect_x / scene.render.pixel_aspect_y
        s_u = resolution_x_in_px * scale / sensor_width_in_mm
        s_v = resolution_y_in_px * scale * pixel_aspect_ratio / sensor_height_in_mm

    # Parameters of intrinsic calibration matrix K
    alpha_u = f_in_mm * s_u
    alpha_v = f_in_mm * s_v
    u_0 = resolution_x_in_px*scale / 2
    v_0 = resolution_y_in_px*scale / 2
    skew = 0 # only use rectangular pixels

    K = Matrix(
        ((alpha_u, skew,    u_0),
        (    0  ,  alpha_v, v_0),
        (    0  ,    0,      1 )))
    return K

if __name__ == "__main__":
    # Insert your camera name below
    K = get_calibration_matrix_K_from_blender(bpy.data.objects['Camera'].data)
    print(K)

Notes

I've tested this with cycles and many scenes, and it works.
The updated code is now well-tested with non-unit aspect ratio in different scenes.
Non-zero skew is not supported in blender AFAIK.
The principal point assumed fixed at the center of the image. If this is not so, this code needs to be updated to take camera shift into account (see How to set a principal point for a camera)
Lens distortion is taken into account separately, see my answer to Distortion Coefficients and Camera intrinsic of blender's cameras?
I'm ignoring your last column containing all zeros.
The code is written explicitly for documentation purposes. I apologize for the long names and extra variables but it really pays off for debugging careful parameter conversions.
To get the full "projection matrix which transforms 3D vertex to 2D image coordinates" you mention in the end of your question, see my answer to 3x4 camera matrix from blender camera.


How to achieve a retroreflector material in Blender Internal

It is possible.

Retroreflectors reflect the light back in the direction it came from without regard of their surface normal.

In principle you can do it like this with a node material:

The material only uses Specular light and the surface normals are overwritten wih the View Vector of the active camera. This ensures that a specular reflection is only seen when the light comes from the direction of the View Vector.

The Multiply node is optional. It can be used in combination with the compositor to simulate the glow you can see in the photos.

I used these Specular properties:

These are the test results from this material setup:

Same direction of light and camera:

Light has a bit different direction:

Light outside reflective angle:

Of course real retroreflective materials have some ambient reflections too. For brevity I left them out. It is easy to add some ambient components in the node material.


What are the differences between preview render hair and rendered hair?

The only differences as far as I can tell is the confusing steps variable in the render subcategory and the steps variable in the display category.
Once I make both of them two, the renders turn out exactly the same.


I want to move background image and not this red circle thing

You can't drag a background image. To move it use the numbers in the background image section of the properties bar (You can bring this up by pressing N in the 3D viewport).

Zooming has nothing to do with panning. To pan around the 3D viewport use Shift + MMB.
The little red circle thing is the 3D cursor. It is for doing operations relitive to a point in space.

As a word of advice, I highly suggest you watch some tutorials on the 3D view and interface before worrying about things like background images.


Why does my Armature deform so incorrectly?

In your armature, the lower jaw bone is too high, lower it. Also influence zone may be too big. Hence, lower jaw bone moves upper jaw and vice versa. If this doesn't work re-sculpt, in addition, the teeth but not as a separate object.Ctrl+J can mess things up as it is e.g. with texture mapping.


animate part of the way along Follow Path

Change your follow path constraint like this:

Then keyframe offset from 0 to 0.8

Result:
https://youtu.be/6IdUgpwBVgw


How to render small object, as pixel art, without losing any of the pixels (Cycles render)?

I would render at some multiple of the target pixel dimensions, and then take it into Photoshop.  Edit the original and/or the downsampled result to get the features you want.  For something that small, with just a few missing details, just paint it in using the pencil tool: turn anti-alised smudges into crisp (oversized) blocks; adjust the location of an edge so it downsamples nicely; etc.


Why does Blender 2.68 appear to still be 2.67b?

Because 2.68 is currently a release candidate and the renaming of the new version is not done yet.

If you look at the splash screen there is a number after the r.
It is not the same between the 2.67b and the 2.68 RC


Okay, I assume you've figured it out by now, but in Object Mode: look to the bottom left of the screen, you should see a dark grey box, if it says: "Global" click it and select the option that says: "Normal" I just had the same issue as you, but I figured it out. it SHOULD work now.

through looking at your picture, I see that it does say Global.


Can't make object invisible in render (Blender 2.8)

Filter button;

What you need is hidden there. Blender restricts to one by default, yet you have an option of six.

The Filter button typically sits at the top right of the Outliner, and looks like a kitchen funnel. It will bring up a menu of filter options, and if you mouse over each of the first six, you will know which button does what. You want 'Globally disable in renders' (The sony camera icon).


Basically that is the node setup for the wet material

[![enter image description here][3]][3]

so that is the result. the darker part is obviously wet.. with some part still holding water that causes reflections :P
i guess it helped... if not.. look for the how to make puddles tutorial by BLENDERGURU


If you mean less than perfect in term of the exact volume, than this is problematic for numerical reasons already. A treshold is needed at some point to determine which edges can be removed.

The order in which you use the operations play a major role. As you mentioned, the Decimate Modifier in Planar Mode is probably your best bet for this. Note that dissolving and decimating will be similar in this case, but I would try Decimate first and then Dissolve in the next step.

Also don't use Convert Tris to Quads before using Dissolve or Decimate, it will make the geometry more messy. It should be the last step and probably guided by hand. Selecting some important loops and using sharp/seem edges will help to get cleaner Quads. Check Compare Sharp or Compare Seam.

`Beautify Faces" might help, but might make it worse aswell. Trying can't hurt.

You might also play with the export settings and try a different file format in SolidWorks.


How can I move part of a mesh along the right orientation?

IMO, a convenient solution is to use two 3d windows so you can have multiple views simultaniously. The left window is oriented is in your picture, the other is an orthogonal view (left, front, top, bottom, back right). In the latter view (highlighted), use the red and blue arrow to move:


Try switching the viewport shading mode to Material Preview (Top right corner of 3D view window).
Also try Texture Paint mode (Top left corner of 3D viewport window or Ctrl+Tab in the 3D viewport).


Selecting all by type "Empty", going to Empty tab in Properties window and setting size to 0 with holding Alt helped.


Cycles not using transparency in decal texture?

In fact, the transparency of that logo wasn't ignored. The reason why the logo's background shows black is that you just see though it, and there's little light and nothing behind (inside the keyboard, actually).
In this case, all you need to do is simply mix it with a node group containing the same node setup as the keyboard material (the one located in the first material slot):


If I were you, I would try to look at the mesh from the top by pressing 7 on the numpad, and then U > Project from view. Then, scale down or up the parts of the mesh that curve the most.


How do I bake a texture using Cycles bake

With out more detail about the situation, it's hard to say how you might go about this if there are any special considerations.

Here are the basics:

UV unwrap your object.
Create a new image in the UV/image editor (Alt + N or Image > New).
Add a texture node to the objects material(s) and select the new image. If there are more than 1 material repeat this for each one of them (easier to copy that Image Texture node and paste it into all materials):

With the texture node selected, press bake in Properties > Render settings > Bake:

The color and shading on that object will be rendered to the image specified in the selected texture node.

If you switch to textured shading once this process is complete (for each object), the viewport will look something like this:

See the wiki for more detail about the various options.

If you want to bake multiple objects to the same image:

UV Unwrap your objects in such a way so that the UV maps don't overlap. An easy way to do this is by pressing Space> Smart UV unwrap or Space> Lightmap pack with all the objects selected.
Bake each object with Clear disabled so that the existing pixels in the target image aren't erased before the baked shading is overlayed.


Is Bridge Edge Loops in Sverchok possible?

Here's a less obvious alternative if you want to add faces / edges to skin a sequence of edge loops and interpolate the shapes.

Some of this layout exists just to generate the sequence of edge loops (shapes), the real work is done by Vector interpolate MK2 and UVConnect. This layout works under the reasonable assumption that the number of verts in each loop is identical and that the indices of consecutive shapes already line up (so there's no excessive twisting).

Here's a more practical example for naval architecture, using BezierCurve input

Here the Bezier Object is made from a certain number of "sub curves/splines", each spline in that example is represented by 13 vertices. The Objects-in Node just makes a flat list of the resulting vertices, that's why we List-Split on size 13 to get the individual spline data.

blend of the hull


After a great deal of rearranging code and learning what doesn't work, I've finally found the solution! The key turned out to be these two lines from the answer to the related question, (Using python to create a curve and attach its endpoints with hooks to two spheres):

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

# the mode_set() invalidated the pointers, so get fresh ones
p0 = curve.splines[0].bezier_points[0]
...

So all I needed was to add the line p = noodcurv.splines[0].bezier_points, before entering the loop. So this is the final code:

noodcurv = bpy.data.curves.new('noodcurve', type='CURVE')       #create a new curve
noodcurv.dimensions = '3D'                                      #set some settings
noodcurv.resolution_u = 2
noodcurv.bevel_object = bevob
noodcurv.use_fill_caps = True

bez = noodcurv.splines.new('BEZIER')                            #create a new spline
bez.bezier_points.add(len(coords)-1)                            #add points
p = bez.bezier_points                                           #for convenience
for k, coord in enumerate(coords):                              #set coordinates & handles
    p[k].co = coord
    p[k].handle_right_type = 'VECTOR'                           #or 'AUTOMATIC', 'ALIGNED', 'VECTOR'
    p[k].handle_left_type = 'VECTOR'

noodcurvobj = bpy.data.objects.new('noodcurve', noodcurv)       #create object
modnames = ['hook.'+str(k).zfill(3) for k in range(len(coords))] #create modifier names

for k, coord in enumerate(coords):                              #create modifiers & set Parent Object
    noodcurvobj.modifiers.new(modnames[k], type='HOOK')
    noodcurvobj.modifiers[modnames[k]].object = bpy.context.scene.objects['link'+modnames[k][4:]]

scn = bpy.context.scene                                         #scene variable
scn.objects.link(noodcurvobj)                                   #link to scene & activate
scn.objects.active = noodcurvobj

bpy.ops.object.mode_set(mode='EDIT')                            #change context

p = noodcurv.splines[0].bezier_points
for k in range(len(coords)):                                    #assign points to modifiers
    p[k].select_control_point = True                            #select point
    p[k].select_left_handle = True
    p[k].select_right_handle = True
    bpy.ops.object.hook_assign(modifier=modnames[k])            #assign vextex to modifier
    p[k].select_control_point = False                           #deselect point
    p[k].select_left_handle = False
    p[k].select_right_handle = False
    p[k].handle_right_type = 'FREE'                             #or 'AUTOMATIC', 'ALIGNED', 'VECTOR'
    p[k].handle_left_type = 'FREE'

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


How can I remove natural gaps on a 3D model with Blender before printing?

You could select all objects in edit mode, press space to search, and type in "Fill Holes". It depends on the model how clean the fill will be, but it might be printable then. The best way would be to go into edit mode and select inner and outer edge ring of each tooth with "alt clicking" and use "bridge edge loops" (when searching with space bar).


What are the most efficient workflows to create all quad junctions?

The easiest way that comes to mind currently is to remove  the critical faces, add some loop cuts, then create faces.

So for the second one, you would remove the critical face,
make a double loop cut with Ctrl R
then 2 then extrude the small edge in the middle,
and finally select the edge pairs to Fill them with F.

The same applies to the third and fourth with some changes. For
the first one: Remove the upper two critical faces, add the loop
cuts, fill the proper edge pairs, move the center vertex down.


Put together a bmesh "proof of concept" for this and haven't converted to operator.

It's not really locking edge length, rather finding the closest point on the edge from the vert, and rotating the vector made from that point to the vert, around the axis made by the edge.

To run the test code, in edit mode, vertex selection mode, select the 3 verts of the triangle ABC, with A selected last.  (thinking  using one selected vert that is part of a triangle face, and not a member of any other faces could be the way to go)

Run the script which adds a vertex to the "pivot point" calculated using mathutils.geometry.intersect_point_line(pt, line_p1, line_p2) then using the rotation matrix with edge as axis, adds a vert for the circular "fold" path, in 5 degree increments.

import bpy
import bmesh
from mathutils.geometry import intersect_point_line
from math import radians
from mathutils import Matrix

context = bpy.context
edit_object = context.edit_object
mesh = edit_object.data
bm = bmesh.from_edit_mesh(mesh)

# 3 verts selected in vert mode
e0, e1, v  = bm.select_history

# pivot point

pivot_point, pc = intersect_point_line(v.co, e0.co, e1.co)
bm.verts.new(pivot_point)

radius = v.co - pivot_point
for i in range(72):

    rotmat = Matrix.Rotation(radians(i*5), 3, (e1.co - e0.co))
    bm.verts.new(pivot_point + rotmat * radius)

bmesh.update_edit_mesh(mesh)

For the operator, which would move the vert by the rotation rather than displaying path,  would need a decision on how to choose vert / edge and setting the vert coord to the rotation, whether to make it modal, give it shortcuts etc.

Example operator here https://gist.github.com/batFINGER/dec833554fd7682bcf6621760389ab7a


Make Objects Appear and Disappear Blender 2.9

You can mix the material of your object with a Transparent Shader, using a Value Node sent through a Greater Than (Math) Node with the threshold set to 156 (your desired frame) as a Mix Factor. You can then give the Value Node the value of #frame (just click the field and type it in), which will make it provide the value of whatever frame you are at. Your object will be transparent up until frame 156, at which point it will become visible.


Some models doesn´t show up when rendering

Object Properties > Visibility >
Check all the render box is checked.
Also make sure all boxes in Ray visibility are checked.


Ok so I'm under pressure and I feel the need to edit.

I gave you the method to print a grid topology on your mesh because that's what you asked. But, unless you have good reason to use this kind of topology, it is actually not very good. You should better use this kind of topology (coming from a previous question of BSE), which use only quads, can easily be bent and modified with new edge loops, etc. In your case, if you want to keep your current mesh, you can first simplify it with some Checker Deselect and Dissolve Vertices, then fill with F and cut some edges with the knife:

Former answer:

What you can do is first fill your shape with a single face (F), create a plane, subdivide it to have a grid, delete its faces only, back to Object mode put it over the leaf object, Shift select the leaf, stay in top view, go in Edit mode, then Mesh > Knife Project. It will print the square grid on the leaf mesh.

Once filled, you could also give your face several knife cuts, it will create less faces.


Is it possible to use a slider toggle from FK to IK, in a armature?

For the former, it was never version specific and can still be done with later versions, people have desisted from doing so since there are several more efficient ways to do so.
The method I personally use and I think is most people use is a blend of constraints, drivers and a little scripting to create GUI components in the sidebars to toggle from FK <-> IK. I cannot say exactly when this became available but it is a core part of the application.


How to create normal texture with node setup?

Your model
Add a material to it
Open a view and select node editor
You'll see your material initial setup
Add an image
Add an texture / image texture node and assign your image to it. Make sure to keep this node selected for the bake below
Go to the render panel
Select normal and click on "bake"

You can also bake bump maps, here is a example using a noise texture :


keyword "layer" unrecognized in add_cube function

The parameter for primitive_cube_add should be layers not layer.

You will also get an error that layers should only have 20 values not 32. I'm not certain if older versions accepted this length variation, I know it fails in blender since 2.62

import bpy
from bpy import context
from math import sin,cos, radians

add_cube = bpy.ops.mesh.primitive_cube_add
layers = [False]*20
layers[0] = True

cursor = context.scene.cursor_location

radius = 5
anglesInRadians = [radians(degree) for degree in range(0,360,36)]

for theta in anglesInRadians:
    x = cursor.x + radius * cos(theta)
    y = cursor.y + radius * sin(theta)
    z = cursor.z
    add_cube(location=(x,y,z), layers=layers)


3D model photogrammetry in blender software

If I'm not mistaken, the only way to remove things like vehicles in a photogrammetry model, is to remove the vertices that the vehicle is made out of.
I would assume the photogrammetry model would be harder to read because it's not as clean as the other model and it has texture on 100% of it.


Choose Transform Pivot Point > Median Point for example, rather than 3D Cursor:


Custom scene properties mysteriously resetting

If you use the operator panel in the toolbar with register, changing a value in the panel will undo the changes made by the last call of the operator's execute method (including the change made to the scene's custom property which causes the update procedure and then gets reset to its previous value when the undo is performed) and run the method again with the new parameters given.

You could simply use another string property for the operator and assign it's value to scene.photoPath in the operator's execute method.

import bpy

class add_mesh_point_cloud(bpy.types.Operator):
    bl_idname = "mesh.point_cloud_add"
    bl_label = "Add Point Cloud"
    bl_options = {'REGISTER', 'UNDO'}
    bl_description = "Generate a point cloud from photographs"

    photoPath = bpy.props.StringProperty(
                    name="Path to photos",
                    description="Path to the folder containing the JPG photos"
                    )

    def execute(self, context):
        context.scene.photoPath = self.photoPath
        return {'FINISHED'}

    def invoke(self, context, event):
        self.photoPath = context.scene.photoPath
        return self.execute(context)

    def draw(self, context):
        layout = self.layout
        layout.prop(self, "photoPath")

if __name__ == "__main__":
    bpy.utils.register_class(add_mesh_point_cloud)
    bpy.types.Scene.photoPath = bpy.props.StringProperty(
                                    default = "LoremIpsum"
                                    )


You can access them through RNA without using annotations. Assuming you have registered your PropertyGroup you can access them like in the following example.

For instance the code below gives you access to the description of Eevee's render samples property.

bpy.context.scene.eevee.bl_rna.properties["taa_render_samples"].description


Scene showing black outlines with no object faces

At the first sight it looks like you have Viewport shading at wireframe enabled. But I can see it is is at solid. So it should render the faces.

I suggest to check Properties/Object/Display. Maximum Draw Type should be at Textured.

You can also switch to edit mode an see if there are faces (they should become visible when you select the surrounding faces).

Overall it might be a compatibility issue. Do you know what Blender version this file was save with? I think Blender is shows a warning when you open an old blend file. This warning should contain the version.

Be aware that blend data is not necessarily 100% compatible between blender versions. Subsequent versions usually convert fine but long jumps can cause such issues.

If so download that version and load the file there. If that is as you expect you need to find an Blender version that correctly loads the file, save it there and try the same thing until you reach your current Blender version.


I'm not familiar with Marmoset Toolbag, so I can't speak for that part. But there should be a setting in there somewhere that you can adjust the strength of your bump map. It is the settings in your 3rd screenshot I believe.

In blender it works like this at least, notice the first image has a high strength on the clouds, the second has a lowered value for the clouds.

I don't believe this is a question related to Blender however since you use a 3rd party renderer, and it's the renderer that handles bump maps and such.

Hope this helps.


You can do this by using the Linear velocity setting under simple motion. This will make your character's jump motion look much more realistic.

If you are using Character physics, you can simply use this setting.

You can change the settings for the character's jump speed and power in the Physics tab.

If you are using a dynamic object, or a rigid body object, you can use linear velocity along the z axis.


Is it possible to create a custom object type with Python API?

No, object types are hard coded in Blender's C code.

Typically developers of add-ons use Empty types and attach custom properties to them.


I'm not sure why you can't use the tool since duplicating brushes shouldn't affect their properties however, you basically made duplicates of the main brush and then made them permanent by ticking the F. To fix, hold Shift and click the X which will unlink the brush and set the number of users to 0. Select the red paintbrush icon and select the other duplicate(s) and repeat, also untick the F as well.

This is how your brush menu should look after. Notice the 0 beside the duplicate brushes and the F beside your original.

Now that you have unlinked the dupes, save your file and open it again (can use CtrlShiftO and select it at the top). Select the icon again and select your original brush(set).

Since datablocks are so key in Blender, I'd recommend reading on how to identify and know what is happening in the future as this applies to other areas such as materials, nodes etc. What does "users" means in term of datablocks?


You can specify the active camera with the Scene actuator, which has a "Set Camera" mode.


An easy way to get rid of a random vertex in the middle of an edge.
Select the offending vert and double tap G to do a vertex slide.  Move it all the way over to where it is in the same position as one of the vertices on the end.  Enable x-ray view and box select both of the vertices and do a Mesh -> Merge -> By Distance.
Extrude Manifold doesn't automatically generate good topology, unfortunately.  You have several faces here with more than 4 verts even getting rid of those two extra vertices.