Make fresnel visible only from a side of the mesh in eevee

For those interested, I have achieved what I wanted with a matcap setup, the problem is that its not easily editable and I have to put a new image file every time I want to make adjustments, I'm still open to now if theres a way to do it with a fresnel node
[


How to Solidify a mesh so I can use it´s measurements to build the object it in real life?

I don't know if I got it right. Do you want to measure the object to ensure that it is not over the limit? (for example, to ensure that an object is not going through the wall)

In this scenario, you can measure the bounding box of the object and compare whether it is exceeding the limits. See this example:

[in this example, the Monkey needs to fit inside the box, this box have 0.8cm and the Monkey needs to be smaller than that. See the "Dimensions", this shows the measurements of the bounding box, so with these values, you can be sure that the Monkey is smaller or not]


How to smooth a curved surface without it looking like a paper plate?

You will automatically have these artifacts with this kind of topology (if you leave the top without any edge loop along the rim), because the subsurf won't leave enough faces to interpolate correctly between the slice and the top. So create a bevel or at least an inset to fix the problem:


You change the scale of the object, right? It will make the whole object being transformed. While bevel, as an operator, only work in mesh edit mode. It wont consider the scale of the object. (Ctrl+A can apply the scale)

And almost every operator(Redo Last operator) will give you a floating dock to tweak your option in the left-bottom corner. If it doesn't appeared, try hitting F9 (F6 for Blender 2.79 and below).

And if you want more control over the bevel, try out bevel modifier:

You can custom a lot of effect with edge weight, one should always consider using modifier unless the task is not complicate and don't need further modification.


Custom Split Normals Data broken by Subsurf?

I was able to get around this by baking a normal map from a version of the model with the data transfer modifier on to a regular version of the model without it. Both had subsurf. I then used this normal map in the object's material.

I baked the normal map in Blender Internal as Cycles was giving me artifacts and horribly pixelated results, but I do not know if that matters. I may just have been using the Cycles baker incorrectly. I am using it in Cycles without issue (tangent space for the bake.)

I am still looking for any other solution, as use of a normal map isn't always possible, such as when using normal editing Addons.


Removing artifacts from transparent textures

In the textures tab you should check the box that sais Alpha and drag it al the way to the right to make the Alpha of the texture 100%. Then go to the material that uses that texture and set the transparancy to 0 so that the material isn't shown but the texture is.


How to plot Pasta Shapes with Volumetrics?

I'm open to correction, but unfortunately, the formulae in your (I'm jealous,) book are expressed in the wrong domain for a renderer like Cycles. They're parametric surfaces.
That is to say, in the book, a surface is expressed as a function of parameters i,j in certain ranges. Given i and j, a point on the surface (X,Y,Z) is generated.
Cycles starts from the other end. It says: "Hey, I've been given this point P in XYZ space, and told it's interesting. What are its properties? Where should I fire a few more rays?" It will have been told to look at that point because it's an intersection of a ray  with a triangle, a set step through a volume, or suchlike. Cycles can't iterate through i and j, and generate points in 3D space. You get what you're given.
That's not to say you can't make volumetric pasta. Most pasta is pressed through a die - in those cases, all you have to do is work out how to make a 2D mask in XY that's the shape of the pasta's profile, saying 'Yes' if the point you're given is inside the mask, and 'No' if it's outside.
In the case of your cylindrical Penne, that's just asking if the shading-point is close enough to a given radius in XY with a Compare node, and also that the absolute value of Z is less than where you want to chop it off top and bottom:

All these masks are used to drive the density of Volume shaders thus:

So here's your Penne:

.. but that wouldn't hold much sauce, so you can play with the profile:

.. and cut the ends off with a slant:

.. for Penne Rigate:

Or you can make, say, a cross-shaped mask around the X and Y axes, before rotating the whole space around the Z axis, by the Z height, to get Fusilli:

etc. etc. A great idea for Nodevember.


Horizontally align objects in front or side 2D views

Snap Shift+S the cursor to vertices that will align it where you want the object to be (e.g., four corner vertices that are equally spaced apart vertically and/or horizontally).
Snap Shift+S the object to the cursor position.

Note: this assumes that the origin is at the center of the single plane. If not, you could set the origin to the center with Shift+Ctrl+Alt+C (origin to geometry) or go into edit mode, select the vertices you want to move and do Shift+S (selection to cursor (offset)).


Well , I hope this gif explain better , I mean the root bone is the main (first) parent , and the non root is the child , [bone] is the parent and [bone.001] is the child .


How to duplicate Weights to different Bones WITHOUT painting?

If you have the bones named as Leander suggests (i.e., a left and right side naming convention and all needed bones in place), you can delete one half of your model (the half with the weights you want to copy), and then add a mirror modifier. Move the bones on the mirrored side around to see if it's working correctly, then apply the modifier. The only time this won't work is if you have shape keys on the model, since you can't easily remove modifiers on a model with shape keys.


Emphasizing Cycles Render Ambient Occlusion

I recommend you render the AO pass and do it in post-production for more control.
1. Enable the AO pass in render layers.

2. Open the node editor, enable Use nodes and do the following:

The RGB Curves node controls the contrast and the darkness of the AO, which can be helpful.
The AO pass is a Grayscale image so you need to multiply it with the render result.

Additional Explanation
In Cycles, the Ambient Occlusion option in the World tab is technically an additional homogeneous direct lighting (almost like adding an additional solid white world background lighting). However the Ambient Occlusion in Blender Internal can act as additional shading (like Multiply blending in image editor programs or in the compositor). The AO pass in Cycles is basically the shadow data only, which you can use the get the Blender Internal behaviour back, or use in other ways.


How can I delete polygons with negative y coordinates?

What you're asking for is this:

Using ops

import bpy

# if named..
# obj = bpy.data.objects['IcoSphere']
obj = bpy.context.active_object
me = obj.data

# must be in object mode, to refresh face selections and data
bpy.ops.object.mode_set(mode = 'OBJECT')

faces = me.polygons
for f in faces:
    f.select = (f.normal.y < 0.0)

# to remove using this method we switch to edit mode, and back after removal.

bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.delete(type='FACE')
bpy.ops.object.mode_set(mode = 'OBJECT')

This is essentially a scripted walk through of what you would be doing if you inspected each face normal and selected only those that had a negative y coordinate, then at the end it would delete the selected faces.

There are other ways to do this, but this might give some insight. This is the after shot:

Using bmesh

See:

TextEditor -> Templates -> Python -> Bmesh Simple
bmesh.ops docs.

warning, the context parameter of bmesh.ops delete is a little undocumented, but is described here

import bpy
import bmesh

obj = bpy.context.active_object
me = obj.data

bm = bmesh.new()   # create an empty BMesh
bm.from_mesh(me)   # fill it in from a Mesh

faces = [f for f in bm.faces if (f.normal.y < 0.0)]

bmesh.ops.delete(bm, geom=faces, context=5)

# Finish up, write the bmesh back to the mesh
bm.to_mesh(me)
bm.free()  # free and prevent further access


How can I reflect a transparent background?

You need to use a Transparent shader, and a Glossy BSDF shader, combined with an Add Shader, not a mix shader.

Using the Add shader gives a perfect result:

Nodes:

Result:

Although you should normally use a Mix shader (greater realism) this is a perfect use case.

Here is a comparison of the two methods:


Ateks, this is a simple example with blender render, explaining what Zac said above in comments:

simply switching to cycles (in this case) gives a similar basic material, and works the same:


Translate/Scale/Rotate along single axis using MMB jumps around erratically

MMB is a shortcut to pushing X,Y,Z, don't hold any X,Y,Z key at the same time, just use MMB until the constraint is active, then let go of MMB. This should keep the movement constrained to the axis your mouse move along.


Problem rendering a video (Cycles / Node Editor / VSE)

You first need to check the "Transparent" check box, under the subsection "Film" of the tab "Render" (the icon is a camera), on the "Properties" panel.

Then you need to connect the "Alpha" output from the RenderLayer to the "Fac" (Factor).

And, finally, where I have blue, you would connect your video.


C4D mograph like behaviour in Animation Nodes

You have to use ID Key node. It basically allows you to recover positions from objects previously stored. Use it instead of the object transform input.

Positions are stored on the viewport.

See this documentation.

http://animation-nodes-manual.readthedocs.io/en/latest/user_guide/nodes/object/object_id_key.html


How to set a different theme for Edit Mode?

There is a way to (sort of) accomplish this with python scripting, but it's probably not as clean as you would hope and personally I would not recommend it.
You can change between preset themes in a python script by loading in the presets directly from your install path, something like this:
bpy.ops.script.execute_preset(
   filepath="C:\\Program Files\\Blender Foundation\\Blender 2.91\\2.91\\scripts\\presets\\interface_theme\\blender_dark.xml",
   menu_idname="USERPREF_MT_interface_theme_presets")

And you can check which mode you're currently in with the read-only bpy.context.mode property. This will be 'OBJECT' for object mode and one of several 'EDIT_*' values for edit mode. You can check the Python API Docs for a full list of these values.
The hard part is then determining when to execute this script. As far as I'm aware, Blender does not provide a way to register callbacks for modal changes. This essentially leaves two options:

Change your keyboard shortcut(s) (the Tab key by default) to execute your script rather than change modes, and have your script change modes with:
bpy.ops.object.mode_set(mode='EDIT')   # or 'OBJECT' for object mode
There are several downsides to this, such as that your script still won't execute when you change modes with the interface (dropdown in the top left or the pie menu), and you lose Blender's prediction of what mode you want to enter (based on what mode you're in, previous mode changes, etc.)

You can leave your script always running in the background, searching for mode changes in a loop and changing the theme when it detects one. This is not only incredibly ugly and inefficient, but will also make you lose the respect of any reputable programmer.

Personally, my recommendation would be to just develop the habit of either checking what mode you're in by glancing in the top left, or guaranteeing it using the pie menu (Ctrl+Tab). The latter takes a fraction of a second once you get the hang of it.


Problem with Curve Modifier in Animation Nodes

Start by evaluating some points on the spline, add and subtract a normal vector to get vertices on both sides, and the compose a mesh out of those vertices using the polygon indices of a grid:

Then you replicate that mesh along a circle as follows:


You can use a Halo material and Trail Particles to do this.

Use a turbulence force field to create the random motion. (You can also use the Brownian value in Particles > Physics, but I liked the motion created by the turbulence force-field better)

Set the Trail count up. 700 may be a bit much if you have a lot of particles, and unnecessary if your particles don't move very fast.

Use a Halo material for the particles:


Why can't I remove the light blue weight paint from my mesh?

Add extra geometry and then subtract and then remove useless geometry.


How to capture leftmouse up event by python?

As mentioned in the document, the Event.type will tell you which key or mouse button sent the event and the Event.value specifies if pressing or releasing happened.

So you can do something like below in the modal method of an operator for example:

Here ctx is the current context in Blender and the evt is bpy.types.Event instance

def modal(self, ctx, evt):
    if evt.type == 'LEFTMOUSE':
        if evt.value == 'PRESS':
            print('LMB Pressed')
        elif evt.value == 'RELEASE':
            print('LMB Released')
    return {'RUNNING_MODAL'}

A thorough example of using modal event handler is at the link below.

https://developer.blender.org/diffusion/B/browse/master/release/scripts/templates_py/operator_modal.py


This happens because the Bone.012 has weighting in the body as shown below:

Automatic weighting helps you assign weights but sometimes manual weight adjusments is needed especially when in this case Bone.012 is kind of the closest bone to this area.

To fix this select your armature switch to pose mode then select your mesh and switch to weight painting mode. Then select Bone.012 and set Weight to 0.0 as shown below and paint the areas of the body to remove the weighting from it.

Keep painting with 0 weights until no vertices are assigned to this bone as shown below:

Updated .blend file can be found here:


I've found issues with SVG or illustrator when the shape is filled but is not a closed curve or when the shapes have overlapping lines or fills.
On the other hand, for such a simple shape you could import the image as background and trace it as a curve directly in blender.


Made without Booleans, this sort of topology stands up to pretty close scrutiny, (if you don't mind the holding loops around the tower).

The extra vertical loops in the cylinder that help define the curvature of the arch were created by selecting the relevant edge-rings, and using CtrlE > Subdivide Smooth.

The arch can be formed  by selecting its central vertice(s) and in Proportional Edit, GZ, raising it/them in Z.

Then an inset and extrusions to create the holding perimeter and the thickness of the window, and an extra edge loop to hold the sharpness of its bottom corners.


How to change description in an operator depending on the option assigned in the UI?

Operator description method

Combining answers from Changing tooltip for menu entries which use the same operator

Since 2.81 An operator now has a description(cls, context, event) classmethod. The properties of the operator are available thru the event object.  See print methods in script below to expand members available via context and event passed to description

The string returned from this method is used as the operator tooltip.  Remember this can be multiline too.

Secondly if an enumproperty is used for the options then the multi button layout is taken care of.  Unfortunately the description is seemingly unused. (No matter. Easy enough to use in description method)

import bpy
from  bpy.props import EnumProperty

class MY_OT_ops(bpy.types.Operator):
    ''' Enum Example '''
    bl_idname = "my.ops"
    bl_label = "My ops"
    bl_options = {'REGISTER'}

    zzz : bpy.props.IntProperty()
    def items(self, context):
        items = (
            ('OPT_ONE', "Option One", "I am ONE"),
            ('OPT_TWO', "Option Two", "I am TWO"),
            )
        return items

    options: EnumProperty(
        name="Options",
        items=items,
        )

    @classmethod
    def description(cls, context, event):
        '''
        print("event")
        for p in dir(event):
            print(p, getattr(event, p))
        print("context")
        c = context.copy()
        for k, v in c.items():
            print(k, v)
        '''
        opt = getattr(event, "options", "Something")
        return f"Choose {opt}"

    def execute(self, context):

        if self.options == 'OPT_ONE':
            print('I did something')
        if self.options == 'OPT_TWO':
            print('I have done something different')

        return{'FINISHED'}

class LayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "Layout Demo"
    bl_idname = "SCENE_PT_layout"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

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

        layout.operator_menu_enum("my.ops", "options")
        col = layout.column()
        col.operator_enum("my.ops", "options")
        layout.popover("SCENE_PT_layout", text="Pop Over")

classes = (MY_OT_ops, LayoutDemoPanel)

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

if __name__ == "__main__":
    register()


deleting a fraction of vertices from a point cloud mesh

This script will remove random vertices on the active object in Object Mode.

import bpy, bmesh
from random import randint

bm = bmesh.new()
bm.from_mesh( bpy.context.object.data )

fraction = 0.5
count    = int( len( bm.verts ) * fraction )

removeIndices = []

# Add more unique indices until list is as big as $count
while len( removeIndices ) < count:
    randIdx = randint( 0, len( bm.verts ) - 1 )
    if randIdx not in removeIndices:
        removeIndices.append( randIdx )

bm.verts.ensure_lookup_table()
randVerts = [ bm.verts[ i ] for i in removeIndices ]
for v in randVerts:
    bm.verts.remove( v )

bm.to_mesh( bpy.context.object.data )


this method may not give you a good mesh but it looks OK :

add a Edge split modifier before the solidify modifier
set the solidify modifier offset to 0.0
other modifiers are added to smooth it out

here is a cross junction :

solid view

after Bevel and Subsurf modifier :


How to get precision when rotating / positioning textures?

Edit1:
For conveniance I build a Group-Node that does the centering, and also allows to plug in Rot_Vectors.
This was done by combining the help from:
    Cycles mapping node - rotation pivot
    How to add a socket for mapping node?
    Can I make a custom node from a group and have that available in other projects?

This is how the node is used:

This is the inside of the node, with the Translate and Rotate node from gandalf3:

And here an optional Driver Setup to controll your rotation with an gameobject in the scene. Maby you could build yourselfe a GameObject that Visualizes your Rotation in the Viewport if you want to go further.

Edit_0:
If there are no other reasons you dont want to use a mapping node i would recomend the material view for visual comfort.

The reason you dont get any rotation value in a panel as you get in Object-Mode is that there are no objects, just verts in the u-v-coordinate system those are represented as vector2 -> u and v. Its the same in Edit-Mode, there the vers are also just points as Vector3. Rotation can be done as an operation but to store those blender oughta be node-based and also produce temporary objects of specifiec groups of verts that had been rotated.

I would recomend you to unwrap you upper and lower face together so they are exacly ontop each other and "rotated" the same and use a mapping node in Material View.

maby an option: orthogonal upsidedown camera to your coin and "Project from View" as unrwaping so your uv is axis-aligned


How can I add color to the hair particle system considering I have a vertex group that it's dedicated on the right side of his head?

So, the problem with the particle system is that yes, you have to assign in the Particle Properties>Render in the material slot the ''Emitter'' and add another material slot for your sculpture or the other object so it differentiates one from another ''Emitter'' and ''Hair'' respectively.
Note>(Even if you do this with one material slot, that won't work, so in your sculpture put two materials instead of one)
I think the software should make that differentiation from a default perspective, but yeah...Maybe in later versions, they will fix this. I'm using 2.91
How do I make hair particles color independent from emitter?


Why is it important to apply transformation to an objects data?

Short answer: it depends.

Applying transformation can be important but it mostly comes down to what you do intend to do with the objects.

Looking at this from a simplistic viewpoint, ideally it wouldn't matter and everything would work just fine even when scaled/rotated.

A good rule of thumb is:

  Apply rotation and scale to your models unless you have a reason not to.

Transformation is split up into translation/rotation/scale, generalizing on Blender's support:

rotated objects (well supported)
translated objects (well supported)
scaled objects (well supported)
non-uniform scaled objects
negative scaled objects

The last 2 can cause issues with modifiers, constraints and some tools. Even though for basic operations it works fine, there's rarely a good reason to have negative scale.

Considerations:

Most modifiers are applied before scale. So the effect of a bevel or solidify could be squashed with non-uniform scale. Armature and hook modifiers are an exception to this rule.
Negative scale will flip the object's normals (when an odd number of axes is flipped).
Most edit mode tools such as smooth-subdivide won't take non-uniform scale into account.
Rotation and scale can cause problems with armatures, especially when exporting to different formats.
Rigid body physics doesn't support scaled objects well (this could be seen as a bug, nevertheless as it stands it's not working well).
Scale applied after parenting will be applied to children, if you have complex parent/child setups - it's less trouble if you only scale objects when necessary.
Extreme scale values >1000.0 or <0.0001 (a large object scaled down or a small object scaled up) can cause floating point math precision issues when in edit mode, also for other calculations.

Areas scaled/transformed objects are fine:

Static scenery (maybe you want to have different sized rocks). Objects which don't move or interact with other objects via modifiers, constraints etc.
When it's intentional - an object stretches (animate scale with a bouncing ball).


Proper way to show users error info in the UI for addons

Found this an answer via TynkaTopi on the #blendercoders IRC channel:

Blender operators have a method called report() which will perform the functions noted above. You only need to pass it a TYPE (an enum, see the docs) and a MESSAGE (a string explaining the error). It flashes a popup dialog with a warning icon/message at the mouse location, prints the error message in the info header, and adds it to a text datablock containing recent reports, apparently.

I also made sure to return {'CANCELLED'} from my operator after reporting when the error occurred.

API:
https://docs.blender.org/api/current/bpy.types.Operator.html?highlight=report#bpy.types.Operator.report

Example:

self.report({"WARNING"}, "Something isn't right")
# return {"CANCELLED"}


I suggest to

Join the objects into one object / mesh (select all cubes in Object Mode, CtrlJ)
Enter editmode, select all A (if not already) and Remove Doubles (in W menu)
Deselect all A
Select > Interior Faces
Delete > Only Faces X


How to know what object the snap function is targeting (in Python)?

The problem here is that snapping is an interactive operation, so to what is snapped to is known inside of the transform operator somwhow. But operators don't expose their internal working data, and bpy.context.active_operator.properties doesn't contain enough to find out (in particular if closest snapping is used, it may move your object to the same location for different snapping locations).

You can find the snapping co easily for snap to active, but it won't tell you which object nor which geometry element it used.

Would a scripted snapping modal operator help? Probably much slower than the built-in snapping, but that's probably the only way to know what is snapped to (requires a lot of final bmeshes in memory I guess).


How to animate two objects going apart from eachother

You need to keyframe your objects. In the timeline go to frame 0 and set your objects so as the door is shut, then select each object, press I > Location. This defines the start of the animation. To get the door to open, in the timeline set the current frame to 50 (if you want your door to open in 2 seconds) and repeat the first process excepted this time you must set the door open before adding the keyframes. Play the animation: the door opens.


First make sure you are in blender render:

Then in the Properties Editor click on the blue icon that looks like a golbe, that is the world editor, there you'll find Blend Sky


Image texture (UV Map) blend with procedural rough material

Ok, I think I got the solution without bake normal maps. I'm happy of the result (sort of). Thanks rjg for the hint.

Before

After


X-Axis pose flip does not work properly in part of armature

Ok, it seem a problem with roll of your UpperArm_L bone, it isn't mirror of its counterpart.

Go to edit mode of your armature.
Select the UpperArm_L Bone.
Click the Bone tab.
set the Roll from -162.7d to 39.86d.
This would offset all child bones, do the above changes to roll for Forearm_L(35.73d), then WristIK_L(49.01d), then Wrist_L(50.17d) copy the negative of Right side roll. (Do it in said order)
All set to go.


Hinge bone armature.
In the second part of this answer I wrote a script to make an armature, can be used here
import bpy
from mathutils import Matrix, Vector
from mathutils.geometry import intersect_point_line
import bmesh
context = bpy.context

def hinge(armob, ob, pb, face):
    arm = armob.data
    # add a bone from edge center to face center
    face.select_set(True)
    edges = [(l, f) for l in face.loops for f in l.edge.link_faces if not f.select]

    for l, f in edges:
        e = l.edge
        b = arm.edit_bones.new(f"Hinge_{f.index}")
        b.parent = pb
        pt, dist = intersect_point_line(
                f.calc_center_median(),
                e.verts[1].co,
                e.verts[0].co,
                )
        b.head = pt
        b.tail = f.calc_center_median()
        vg = (
                ob.vertex_groups.get(b.name) or
                ob.vertex_groups.new(name=b.name)
                )
        vg.add([v.index for v in f.verts], 1, 'ADD')
        hinge(armob, ob, b, f)

def make_armature(ob, face_index):
    me = ob.data
    bm = bmesh.from_edit_mesh(me).copy()

    face = bm.faces.active
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.armature_add()
    arm = context.object

    mw = (
            ob.parent.matrix_world.copy() if ob.parent
            else ob.matrix_world.copy()
        )

    ob.matrix_parent_inverse.identity()
    #ob.matrix_world.identity()
    ob.parent = arm
    ob.matrix_parent_inverse = ob.matrix_world.inverted()
    ob.vertex_groups.clear()

    arm.matrix_world = ob.matrix_world
    bpy.ops.object.mode_set(mode='EDIT')
    b = arm.data.edit_bones[0]
    b.tail += face.calc_center_median()
    b.head += face.calc_center_median()
    hinge(arm, ob, b, face)

    bpy.ops.object.mode_set(mode='OBJECT')
    for pb in arm.pose.bones[1:]:

        pb.rotation_mode = 'AXIS_ANGLE'
        pb.rotation_axis_angle = (0, 1, 0, 0)
    ob.modifiers.clear()
    mod = ob.modifiers.new(
            "Hinger",
            type='ARMATURE',
            )
    mod.object = arm
    bpy.ops.object.mode_set(mode='POSE')
make_armature(context.object, 0)

With the mesh in edit mode, select one face, Run the script, creates an armature, with root bone at that face.

Now with the armature in pose mode Shift select the two bones going same way to fold. Can Alt change the property of one to change same property  all selected. Type in 180 to fold in half.

Now the slightly tricky bit because the script wasn't designed to do this... Shift select the two bones going the other way. Change the axis of one by negating the X axis (1 -> -1) this will ensure both spin the same way for this fold. (Alternately one to 180 and one to -180 degrees, will do same.)
Now same as before press  Alt and change the angle, and rotate to 180.


Buttons fall off & shirt opens during cloth simulation

The best way is to make the buttons same object with the shirt, select all the buttons, then select the shirt, in that order, so the shirt is the active object, then press Ctrl + J.
The cloth simulator doesn't understand that those buttons are supposed to keep the shirt closed, you need to weld the open vertices where the shirt is open. In order to keep the visual of the shirt, you should do that in modeling, as you did for the collar for instance.


How to export an animation into unity (sound baked to an f-curve)?

You should try FBX (it bakes animation, so it should work, provided you are not doing too exotic things). Collada (DAE) is the other format that supports animation, but not sure it’s natively supported by Unity.


The values are scene referred.

You require a view transform to map to the display referred range.

If you choose to use the sub-optimal sRGB EOTF, you are losing a heck of a lot of dynamic range. You can use a much wider dynamic range for the scene referred to display referred transform if you wish. Ultimately it is always a creative decision.

See Render with a wider dynamic range in cycles to produce photorealistic looking images for more information.


Re-start animation if message is sent again?

Disable the continue option on the action actuator and put the script between the sensor and the action actuator :

when the sensor send a pulse the script will be triggered
if there is action being played on layer 0 the script will stop stop it
the script passes the pulse to the actuator

cont = bge.logic.getCurrentController()
own = cont.owner

if own.isPlayingAction(0):
    own.stopAction(0)
cont.activate("Action")


My particles are vanishing after 250 frames, not sure whats going on. (Lifetime is set to 350)

Did you modify any of the settings for the second time? Like did first you set lifetime to 250 and later to 350? It that's the case, you should set current frame to 0 and replay it with AltA

Another possibility is the clipping: set the End value of clipping to a higher value or start value to a lower value (you can tab the panel with shortcut N


I would like to make a water cube however I would only one plane/surface to have the water simulation active

Ok! Sounds like fun.

Create your cube to set it to be a fluid simulation bound. Fill it with fluid using another cube and gravity should hold the side and bottom faces flat. It may need a few frames at the beginning to settle.

In theory, the simulation should bake and only the top surface has room to move. If there are any inconsistencies, use the boolean modifier to clean up the sides.

If you want the fluid to flow over the edge that is a whole nother step of complexity that I feel you haven't asked for. If this is what you want please update your question using the edit button.

If you are confused about any of the topics I have brought up and are not in italic, I will help you. Any in italics are easily found on the internet so please don't ask.

Not meaning to be rude but no need to repeat what is already freely available :D

Good luck with your project and I hope I helped,

BFB


Update Edge Info when using script in Edit Mode

I'm trying to guess why you need to stay in edit mode. If it isn't critical you can add,

bpy.ops.object.editmode_toggle()
bpy.ops.object.editmode_toggle()

(both lines) before the call to update. This is essentially doing in code what you do manually in the gif - flipping from object back to edit mode to update the display of length values.

Updating the 3d view is also covered in this answer here


The Multires modifyer doesn't like to work with Ngons. So redo the eye openings without using any Ngons, only quads.


How to make anime/toon like procedural wind texture, blender 2.9 eevee

You can create a curve, give it extrusion in the Properties panel > Object Data > Geometry > Extrude, then give it a material that is a mix between a Transparent and an Emission node with a Texture > Musgrave Texture as factor (in Eevee don't forget to choose Alpha Blend in the material settings). In the Mapping node, stretch the texture on one axis:

You can blur the borders with a second ColorRamp:

Then use the Location values to move the streaks:

As for the ring around the ball, create it with a Geomtery > Bevel > Object instead of an Extrude, and choose a oval or a rectangle as Object. And for the material, from what I see in your animation, enable both the Show Backface and the Backface Culling options in the material settings to get the right transparency:


Materials intersection problem (Archimesh addon)

Thanks @Carlo for the advice. I just had 2 rooms at the same place that caused z-fighting.


The imported object does not become the active object in the scene

Active object is the one on which the actions in 3d view are performed. For instance, if you press tab the mode of only the active object changes. There can, however, be multiple selected objects. Left click an object in outliner to make it active, deselect everything and you will still be able to tab the object into edit mode (as it is active but not selected).

Excuse me if this all is known piece of info but since you said "I tried bpy.ops.object.select_all(action='DESELECT') before importing the new object but it didn't work and the active object is still another object in the scene.", I guess you are thinking that by deselecting an object you would also negate its active state.

So the answer to your question is:
The imported object is selected but not active by default. To make it active,

deselect all the objects before you do the ops.import_scene.obj and do bpy.ops.object.select_all(action='DESELECT')
make the selected object active explicitly. Since the imported object will be the only one selected, you can simply do bpy.context.scene.objects.active = [ob for ob in bpy.data.objects if ob.select == True][0]
or better as suggested in the comments do:

bpy.context.scene.objects.active = bpy.context.selected_objects[0]


How to position the default blender cube given coordinates, direction Z vector and direction Y vector using python?

make a 3 x 3 rotation matrix with X, Y and Z axis as columns. Blender matrices are in rows, so will transpose rows to columns. The X axis is Y.cross(Z).

Make the matrix a 4x4 transform matrix and set its translation to coordinate

Note Added a scale factor so location 1000 -> 10. To avoid clipping. Set to 1 or remove.

import bpy
from mathutils import Matrix, Vector

context = bpy.context
scale = 0.01 # 1000 is a long way away

x, y, z, l, m, n, p, q, r = -500, 200, 1000, 1, 0, 0, 0, 0, -1

y_axis = Vector((l, m, n)).normalized()
z_axis = Vector((p, q, r)).normalized()

x_axis = y_axis.cross(z_axis).normalized()

M = Matrix((x_axis, y_axis, z_axis)).transposed()

M = M.to_4x4()

M.translation = scale * Vector((x, y, z))

#test
print(M)
print(x_axis, y_axis, z_axis)
bpy.ops.object.empty_add()
mt = context.object
mt.empty_display_type = 'ARROWS'
mt.matrix_world = M

or to  add a cube

#test
bpy.ops.mesh.primitive_cube_add()
cube = context.object
cube.matrix_world = M


Visualize radioactive gamma rays & their absorption in materials using cycles

There are volumetric materials in Blender which can visualize such rays.

Blob with hole and radioactive stone inside (volume absorbtion with volume scatter):

You would "measure" the intensity with pixel value on the surface i guess

But I have an impression from your question that you would like to simulate the absorption or even measure it, you will not get any precise scientific result from Blender, only artistic. Blender does not work with real scientific units (except from dimensions) and its calculations take shortcuts to get better performance, its not precise.

That's why that specialized software is so expensive, it actually simulates it all.


Cycles: How can the camera position be removed from the Light Path node's Ray Length

If you think about it, it's pretty easy; The way Booleans (true or false, not the modifier) are represented inside Blender by either 1 or 0; So if you do "1 - is Camera Ray", you will get ,basically, is NOT Camera Ray; if you multiply the Ray Length with is Not Camera Ray you will get the length for all rays except for the Camera ones. You could choose another Ray, and multiply it with Ray Length, to basicly get the length of that Ray.

Also note there's a Ambient Occlusion node.

After the part inside the box, you can use the rest of your material.


How can I "normalize" the scale of what seems to be either an infinitely large or infinitely small object

Normalize dimensions.

Look at the dimensions in N panel and choose the largest eg for (1, 2, 3) is 3. Then scale by 1 / 3 = 0.3333 to make the largest dimension 1. If the dimension is (0, 0, 0) there's nothing can be done.

Script to do this, scales such that largest dimension of selected mesh objects is set to max_dim.  (Used 2 as default to correlate with cube sphere etc)

import bpy

max_dim = 2

context = bpy.context

mesh_obs = (o for o in context.selected_objects
        if o.type == 'MESH' and o.dimensions.length)

for o in mesh_obs:
    o.scale *= max_dim / max(o.dimensions)


How to change the duration of an added game object in multiple empties simultaneously?

Assign the "template empty" to a new group "Plane.Adder".
Move the "template empty" to an hidden layer, or scene (does not need to be active), or file (and link the group from there).
Add any number of instances of group "Plane.Adder" -> Plane.Adder.001, Plane.Adder.002 ...

When you change the duration at the "template empty" the instances inherit this change.


What is the best practice for moddeling complex structures? Using a single mesh, multiple meshes or multiple objects?

You can make things as separate objects, if you'd like. When you do so, use parenting.
You can still do it as one mesh, its up to you how you want to go about things. Eventually, you'll use bones and you'll need to use parenting then.
https://www.youtube.com/watch?v=o5f18T7Rjmc
https://www.youtube.com/watch?time_continue=73&v=GS452KMVWKA&feature=emb_logo


What options are there for high quality transparent file types?

PNG TGA TIFF openEXR and JPEG 2000 are the image formats that blender can render to that support transparency.

Here they all are in order from best to worst.

PNG

Universal support
4 channels
Only sRGB color space
8 or 16 bits per channel
small file size, with little compression to image quality.

openEXR

Good support among 3D, image editors, compositors, and editor programs.
Multi channeled, can store an unlimited number of channels.
Any color space
up to 32 bits per channel
Large file size, variable amount of compression.

TIFF

Very good support among 3D, image editors, compositors, and editor programs.
Multi channeled, can store an unlimited number of channels.
Many color spaces Grayscale, RGB, CMYK, CIE Lab*, YCbCr
up to 16 bits per channel
Variable file size, variable amount of compression.
Older, openEXR has become the mainstream replacement of TIFF.

TGA

Very good support (because it is old)
4 channels
sRGB
only 8 bits per channel
Large file size, variable amount of compression.
Older, openEXR has become the mainstream replacement of TGA.

JPEG 2000

Very good support
4 channels
sRGB
up to 32 bits per channel
very small file size, however with compression to image quality.


What would prevent me from selecting verticies of active object in edit mode? (v2.82 is it a bug or my ineptness)

Overlays were disabled. Click on the overlay button to make selection and other things reappear.


Also, as to texture size - you will need to select all and scale down to fit inside that main square that represents the image area. Add an image and choose UV Grid or Color Grid instead of Blank, and you will see the way the mesh UVs overhanging the edge 'repeat' across the image, especially if you paint on the texture.


How to select a strip in the video sequence editor?

Selecting is done with  RMB. Also make sure you click more in the middle of the strip, as the ends of a strip can be selected separately.


Blender viewport frozen(can't perform operations)

Concerning my question : shortcut hid collection , but it was visible in local view


Using onboard video for monitor to save GPU ram?

The answer is yes. I was able to reduce my total gpu cost! almost 440mb going from 2 monitors on the gpu to a single on the motherboard. I also found I could split parts of my scene, into separate blends files by apending them into a new scene rendering as an openexr multi layer to save all my compositor data, and compositing the two scenes together in the final version. This cut my gpu memory cost in half.


To know you've subdivided, you can look at your multiresolution modifier and it will say how many subdivisions you have done and will give you options for what to show for Level Viewport, Sculpt, and Render. It should also look smoother now that you've subdivided and have twice the amount of geometry.
Symmetrize does the same operation as mirror modifier, but you can turn mirror modifier off while with symmetrize you can only go back with Undo.


Downloaded DAE that's inside out, unable to export properly

The problem you have, is with the model it self. I have downloaded that Voldemort model and imported to Blender as DAE. Changed to Blender Render, and set the viewport mode to Material. There I can see exactly your triangles as material. What WorldWind will show you is exactly what you have under Blender Render's viewport material.  if you rotate your model, you can  notice that you have a non well structured model (you have planes and edges that intersect themselves) To fix this model, you should retopology on him, and build a single object, after this, you will want to bake the texture of the old model to the new model. Exporting the retopologized model, you should have no problems loading it into any other software. You may consider to download/search 3D models in other sources, like this: http://tf3dm.com/3d-model/lord-voldemort-13066.html. Then you just need to add an armature/rig the model and deform it to the pose you want, and export as DAE, so your software might read it (this process will be really faster than retopology the model and correct it, and retexturing it).


Grid/ smart fill but with only 3 "rails"

You can have something close to what you want with a bit of tweaking with the CtrlE > Bridge Edge Tool:
Select the vertices on the 2 sides, don't select the top one:

Bridge, tweak the parameters on the Operator box so that it looks the way you want:

Give some corrections on the bottom and top:


Create Shortcuts for Particle Edit Brushes?

I expanded gandalf3's example:

import bpy

items = [
    ("NONE"  , "None"  , "Don’t use any brush"         , 0),
    ("COMB"  , "Comb"  , "Comb hairs"                  , 1),
    ("SMOOTH", "Smooth", "Smooth hairs"                , 2),
    ("ADD"   , "Add"   , "Add hairs"                   , 3),
    ("LENGTH", "Length", "Make hairs longer or shorter", 4),
    ("PUFF"  , "Puff"  , "Make hairs stand up"         , 5),
    ("CUT"   , "Cut"   , "Cut hairs"                   , 6),
    ("WEIGHT", "Weight", "Weight hair particles"       , 7)
    ]

class PARTICLE_OT_select_brush(bpy.types.Operator):
    """Select a particle brush"""
    bl_idname = "particle.select_brush"
    bl_label  = "Particle Select Brush"

    brush = bpy.props.EnumProperty(
                name = "brush",
                default = "NONE",
                items = items
                )

    def execute(self, context):
        context.scene.tool_settings.particle_edit.tool = self.brush
        for region in context.area.regions:
            if region.type == "TOOLS":
                region.tag_redraw()
        return {'FINISHED'}

class VIEW3D_MT_particle_edit_select_brush(bpy.types.Menu):
    bl_label = "Particle Select Brush"

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

        layout.operator_context = "INVOKE_REGION_WIN"

        for item in items:
            layout.operator(
                operator = "particle.select_brush",
                text = item[1],
                ).brush = item[0]

def register():
    bpy.utils.register_class(PARTICLE_OT_select_brush)
    bpy.utils.register_class(VIEW3D_MT_particle_edit_select_brush)

def unregister():
    bpy.utils.unregister_class(VIEW3D_MT_particle_edit_select_brush)
    bpy.utils.unregister_class(PARTICLE_OT_select_brush)

if __name__ == "__main__":
    register()

    #register keys via script
    #might be better done via user preferences
    #see image below

    wm = bpy.context.window_manager
    km = wm.keyconfigs['Blender User'].keymaps['Particle']

    keys = ("ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT")
    for item, key in zip(items, keys):
        kmi = km.keymap_items.new(
            idname = "particle.select_brush",
            type = key,
            value = "PRESS",
            )
        kmi.properties.brush = item[0]

    kmi = km.keymap_items.new(
        idname = "wm.call_menu",
        type = "TAB",
        value = "PRESS",
        ctrl = True
        )
    kmi.properties.name = "VIEW3D_MT_particle_edit_select_brush"

You can bind keys to call a menu or directly choose a specific brush.


Add an Empty and patent all the objects to it. Then scale the empty.


How to use emitter for generating thick forest so that trees would not intersect?

I would suggest to disable Emit in Random order.

Particles in this case are emitted from faces. Every faces has it's own id. With the Random opton enabled you are asking Blender to pick a Random face id to generate the next particle.

In this case, where your simulation does'n run trought time, means that is very likely to have a particle create in the same place of another.

Let's say you have 100 faces. First random id is 1, so a tree is generated in Face1. Than pick another id, randomly..it may occour to pick the same id..1, so the generated tree will be overlapped to the previous one. It may seems that you have a low probability to pick the only 1% that is already came out, but you have to consider that for each particle cration iteration, the number of "free" ids lower, so when you are at half of the particle cration, you'll have 50% probability of overlap.

If this effect is not very strong is because you have also Random distribution option enabled.

With that, you are asking to position randomly the created tree on the face. So , despite they are created on the same face, the might have different location. On th other side, it may occour that two tree of born in adiacent faces, let's say along the common border, will be very near, causing overlap.

Particles generation is not aware of where other particles have previously been generated (it would be very high computing demanding for large numbers), so for now it is not possible to have a random distribution without any overlaps.

One possible workaround can bw to subdivide your mesh till the faces are almost the size of the trees XY bounding plane. Now you should have about 2000 faces in the "forest area". If we put without a tree in the center of each faces we would be able to create about 2000 trees without any overlap.

This obiuvsly resamble more to a plantation than a forest, but by lowering the amount of trees and the use of voronoi density map:

you should be able to dampen the "grid" effect a bit.


i think you are selecting the whole group for selecing that empty. currently that red area is activated. just press the green area to select just the empty and press x and delete and it should work fine!


Object used for particle render getting direction flipped when particle system applied to target with curve modifier

Look at https://blender.stackexchange.com/a/172271/35559 for some updates or possible fix.

Meanwhile, not really sure what's happening but even on a simple non cyclic curve, you can see the beltlink flipping orientation as it moves along the Y axis as soon as it reaches a curve control point (which is aligned and "flat"). May be a bug, something linked with the way curve control points are impacting the Array Modifier...

For some reason, it does not behave that way on all control points.


Changing Clip value solved my problem!

The models were very large, I needed to increase the clips to view the models without limitations of view, but soon after I diminish them and that's where it began to cause problems.


Try the 'Inset' command, which can be accessed using the I key when in Edit mode. This will create a face nested within the current selection.


What is albedo and how to use it and how to prepare materials for games?

IMHO there is no single right or wrong way in how to prepare materials for games. Sometimes the engine dictates what you should prepare and often you just follow personal preferences.

Your project might also require different types of spec maps, for dry and rainy weather, for example. Cavity maps can produce all sorts of fancy effects like dirt, dust, worn edges, snow on top of rocks...

I am a big fan of model recycling. Sometimes it's only a single part of a mesh, a fancy cycles material, but I also reuse complete models with textures. To get the necessary flexibility I bake huge textures and  separate maps - sometimes even for cavity.

Albedo is basically the new diffuse ;-) Since many people started baking all kinds of effects into their diffuse maps it just seems to make sense to give the plain color without lights, ao, whatever a new name. Basically it's a "normalized" version of the "modern" diffuse map.

Edit: You might watch Joel Burgess's GDC presentation about modular level design in Fallout 4. It's a great source of what can be achieved by reusing meshes with different material setups


I'm not currently using a computer that can run Blender (school), and I've only spent only a few weeks in Blender so far, but here's my two cents:

One thing that might be wrong is that the keyframes don't have rotation.  Make sure that you're doing LocRotScale instead of LocScale.  If you go to the bottom-right area of the timeline editor, you should be able to set the box to default to LocRotScale when you press I if you want.


Documentation on Cycles BVH traversal and intersection algorithm

The wiki page for Cycles' BVH links to three publications that it implements. Below you can find the links to the papers* as well as the abstracts.

(*) The links are different from the ones in the wiki, because one of them returns a 404 and another one is very slow.

Stich, Martin, Heiko Friedrich, and Andreas Dietrich. "Spatial splits
   in bounding volume hierarchies." Proceedings of the Conference on
   High Performance Graphics 2009. ACM, 2009.

  Bounding volume hierarchies (BVH) have become a widely used
  alternative to kD-trees as the acceleration structure of choice in
  modern ray tracing systems. However, BVHs adapt poorly to nonuniformly
  tessellated scenes, which leads to increased ray shooting costs. This
  paper presents a novel and practical BVH construction algorithm, which
  addresses the issue by utilizing spatial splitting similar to
  kD-trees. In contrast to previous preprocessing approaches, our method
  uses the surface area heuristic to control primitive splitting during
  tree construction. We show that our algorithm produces significantly
  more efficient hierarchies than other techniques. In addition, user
  parameters that directly influence splitting are eliminated, making
  the algorithm easily controllable.

Wald, Ingo, Solomon Boulos, and Peter Shirley. "Ray tracing deformable scenes using dynamic bounding volume hierarchies." ACM Transactions on Graphics (TOG) 26.1 (2007): 6.

  The most significant deficiency of most of today’s interactive ray
  tracers is that they are restricted to static walkthroughs. This
  restriction is due to the static nature of the acceleration structures
  used. While the best reported frame-rates for static geometric models
  have been achieved using carefully constructed kd-trees, this paper
  shows that bounding volume hierarchies (BVHs) can be used to
  efficiently ray trace large static models. More importantly, the BVH
  can be used to ray trace deformable models (sets of triangles whose
  positions change over time) with little loss of performance. A variety
  of efficiency techniques are used to achieve this performance, but
  three algorithmic changes to the typical BVH algorithm are mainly
  responsible. First, the BVH is built using a variant of the “surface
  area heuristic” conventionally used to build kd-trees. Second, the
  topology of the BVH is not changed over time so that only the bounding
  volumes need be re-fit from frame to frame. Third, and most
  importantly, packets of rays are traced together through the BVH using
  a novel integrated packet-frustum traversal scheme. This traversal
  scheme elegantly combines the advantages of both packet traversal and
  frustum traversal, and allows for rapid hierarchy descent for packets
  that hit bounding volumes, as well as rapid exits for packets that
  miss. A BVH-based ray tracing system using these techniques is shown
  to achieve performance for deformable models comparable to that
  previously available only for static models.

Dammertz, Holger, Johannes Hanika, and Alexander Keller. "Shallow bounding volume hierarchies for fast SIMD ray tracing of incoherent rays." Computer Graphics Forum. Vol. 27. No. 4. Oxford, UK: Blackwell Publishing Ltd, 2008.

  Photorealistic image synthesis is a computationally demanding task
  that relies on ray tracing for the evaluation of integrals. Rendering
  time is dominated by tracing long paths that are very incoherent by
  construction. We therefore investigate the use of SIMD instructions to
  accelerate incoherent rays. SIMD is used in the hierarchy
  construction, the tree traversal and the leaf intersection. This is
  achieved by increasing the arity of acceleration structures, which
  also reduces memory requirements. We show that the resulting
  hierarchies can be built quickly and are smaller than acceleration
  structures known so far while at the same time outperforming them for
  incoherent rays. Our new acceleration structure speeds up ray tracing
  by a factor of 1.6 to 2.0 compared to a highly optimized bounding
  interval hierarchy implementation, and 1.3 to 1.6 compared to an
  efficient kd-tree. At the same time, the memory requirements are
  reduced by 10–50%. Additionally we show how a caching mechanism in
  conjunction with this memory efficient hierarchy can be used to speed
  up shadow rays in a global illumination algorithm without increasing
  the memory footprint. This optimization decreased the number of
  traversal steps up to 50%.


Blender addons are called also 3d party plugins?

A third-party software component is a reusable software component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. Blender is an example of this.

So it has 3rd party plugins because it's a 3rd party software. Another way of saying these are Blender add-ons because it's more particular. Having two different names for the same thing is normal.


Every time I click an ico sphere appears

If you are using version 2.8 and if you are referring to the 3D Cursor, you can hide it in Overlays > 3D Cursor (uncheck).


Fuse cc to Blender 2.8 flipped normal issue

All you gotta do is disable Show Backface in settings of every material, and it will look perfect.


How to put together a driver with python

This is a general function I use in many of my scripts for adding drivers. You're welcome to implement it in your own script. It's pretty general and supports inverse relationships between properties (if one property goes up, the driven property goes down by the same amount), and also adding functions to the scripted expression (such as sin, cos, max, round, radians, etc).

def add_driver(
        source, target, prop, dataPath,
        index = -1, negative = False, func = ''
    ):
    ''' Add driver to source prop (at index), driven by target dataPath '''

    if index != -1:
        d = source.driver_add( prop, index ).driver
    else:
        d = source.driver_add( prop ).driver

    v = d.variables.new()
    v.name                 = prop
    v.targets[0].id        = target
    v.targets[0].data_path = dataPath

    d.expression = func + "(" + v.name + ")" if func else v.name
    d.expression = d.expression if not negative else "-1 * " + d.expression

You can then use it to link you empty and cube's Z scale this way for instance:

cube  = bpy.context.scene.objects['Cube']
empty = bpy.context.scene.objects['Empty']
add_driver( cube, empty, 'scale', 'scale.z', 2 )

I do have to say, though, that if you want to link the empty and the cube's scale, all you need to do is parent the cube to the empty, no driver is required.

cube.parent = empty


Is Blender right for me? - A photographer creating 3d renderings

At Blender Conference 2015 Piotr Zgodziński gave a talk about this very topic: From photographer to 3d artist, a personal journey - Piotr Zgodziński. worth the 30 minutes.

I will try to answer the question where it can be done so objectively, but a simple yes / no is unrealistic. If you are going to get into 3d modelling and rendering, then it's a matter of learning a few different skills which are often specialized in industry. Whether you have time to learn the important subtleties of each will decide if it's a cost effective venture, because it will be judged by the end result.

It will take approximately the same amount of time regardless of what software package you finally decide to use. At the minimum you'll want a combination of these skills:

Modelling
Texturing / Materials
Lighting / Rendering

You probably intend to specialize on non animated objects and scenes (a chair with lights is a scene) and that means there's a lot that you don't need to learn to get stuff done. There's also a lot you can re-use between scenes that you only need to set up once (like a good virtual lighting stage, or materials) and then tweak depending on the project.

All these things can be outsourced and it's worth considering.

Modelling

Blender has superb modeling tools, definitely adequate for creating models for product rendering like furniture, fixtures, anything you might find in a home improvement store catalog. At its heart Blender is an Artistic package, not a CAD tool with ultra high precision needed for Civil engineering (and you won't need that for rendering anyway).

Texturing / Materials

Texturing: The core of this is UV unwrapping, which conceptually works the same over all 3d software, it's not traditionally an automated process. Making a UV map of your object is what lets you define (using seams) which surfaces are distinct from others.
Materials: The core here is the Node system, a modular approach to defining materials and how surfaces respond to light. It's similar for all node based software; you get a collection of nodes with a few parameters and you combine them into larger complex organizations. Just like + - / * % can be combined to describe just about any mathematical concept.

Lighting / Rendering

As a photographer you have an advantage here regarding the so called physically based render engines. Blender's own Cycles render engine is an option, but it's not the only one. We compiled a list of external renderers to choose from. You mentioned Chaos Group's V-Ray renderer, it's on that list too.

At a certain level of proficiency people (consumers) can't really tell if a product is rendered at all, or even if they can then only few people would have an easy time betting on which render engine was used.

Some packages have comprehensive specialized training, Blender is no exception: Search and you will find Free or Paid training.

See our resources page for links intended to help learn Blender.


Dolly Zoom breaks orthographic view (Blender 2.8)

I solved this issue by using the view3d.zoom tool instead of the view3d.dolly tool. As far as I can tell, they work the same, but the view3d.zoom doesn't break an orthographic view. Problem solved!


How to draw edges on a sphere to make parts that fit into each other

You work with too many polygons and you should think another way. If we try something like your last picture:

Create a UV sphere, stretch it on the Z axis, keep only 1/32 that you mirror on the X and Z axis:

Cut the hole with a knife:

Extrude inwards:

Use an Array in Object Offset mode to make the mesh rotate around an empty, work on the mesh as long as necessary before applying the Mirror and Array modifiers:


You can merge the selected vertices by pressing W and selecting Weld or Remove Doubles


If there is physics animation, you need to bake it before rendering.
Here's the guide that explain everything about baking a physics animations: https://docs.blender.org/manual/en/latest/physics/baking.html
I can confirm that baking the animation is the correct solution.
Please follow these steps:

go to "scene properties"
open "rigid body world" settings
go under "cache"
change end frame from 250 to 70 (no need to simulate further your timeline)
delete all bakes (just to be sure that if there is something in cache you'll erase it)
press "bake all dynamics" to cache your simulation (wait few seconds)
render your animation (you can render it frame by frame or render directly the MOV/AVI)


The way I found to do this is to set your cycles settings this way:

Under Render Properties
Under Bake
Change "Bake Type" to "Diffuse".
Select the "Colored" button, while disabling "Direct" and "Indirect"

I used Blender 2.78 by the way. Hope that helps!


As far as I understand it, a virtual camera is implemented in Blender. Blender users a GL library which implements it in some other way underneath though.

Could you tell what you are trying to achieve with this?

Edit:

(This is what I have gleaned by reading some of the source. If someone more versed into it can correct me, he or she should feel free to.)

If you dig into blender/editors/space_view3d/, you can find the actual implementation. In summary RegionView3D objects hold the reference to the area's perspective (and by extension what you refer to as a virtual camera) in the persp member variable. The reference to the physical camera object is held by View3D objects. These may or may not be the same. (Or rather the persp derived from View3D.camera may or may not be the same as RegionView3D.persp.)

Here is the view3d_setobjectascamera_exec function's code. It manipulates both cameras. I am on a phone right now, and I can only post a screenshot. It is from the 2.6 branch found on launchpad.


Nevermind - After doing a bit of weight painting on the root of the "spike", it went back to normal.


Printing from List Comprehensions - I'm still not getting this - Help?

You assign a list comprehension to a variable:
a = [x.name for x in objects if not x.hide and not x.parent and x.name not in mdlParent and x.type not in ("MESH", "CAMERA", "LIGHT")]

and the variable prints correctly both when you invoke it in the terminal and when you pass it to the print statement. Why not then, replace the a in your print statement, with the expression that you assign to a? The result will be the same:
print([x.name for x in objects if not x.hide and not x.parent and x.name not in mdlParent and x.type not in ("MESH", "CAMERA", "LIGHT")])

However, you actually tried that and got an empty list as a result:
print(([x.name for x in objects if not x.hide and not x.parent and x.name not in mdlParent and x.type not in ("MESH", "CAMERA", "LIGHT")]))

Additional parentheses are irrelevant (and redundant), so it should work. I suspect something happened before you executed this line of code, so that it no longer produced the expected result. To confirm, just after executing this line, try to execute again the lines that work, that is
a = [x.name for x in objects if not x.hide and not x.parent and x.name not in mdlParent and x.type not in ("MESH", "CAMERA", "LIGHT")]
a

It's very important that you execute both of these lines, as executing only the second one wouldn't recalculate the result and only display the result that has been calculated during the previous state of the project.
If you still have problems, please upload your .blend file: Blend-exchange
Some explanation on the confusing stuff: a list comprehension has a form of [... for ...]. If you don't use square or curly brackets, then it's a generator expression, which is significantly different than comprehensions, because it's not evaluated in place but instead creates a generator object, which keeps its state so you can read from it one value at a time. So if you do (don't) [i for i in range(100000000000000000)] it will hang and eventually eat all memory. Meanwhile (i for i in range(100000000000000000)) creates an object not much heavier than the single line of code defining it.
For a generalized code:
for step_variable in an_iterable:
    if condition:
        print(step_variable)

In order to mimic it exactly with a oneliner, it is a common practice to do this:
print(*[step_variable for step_variable in an_iterable if condition], sep="\n")

In this case it doesn't matter [other than performance-wise] if you use a generator expression instead, because the asterisk operator * would consume it entirely. sep argument is set to the same as end argument (which defaults to "\n") to mimic multiple prints for each of the unpacked values by the asterisk operator *.


mesh animation & boolean: avoid bugs & glitches (Cycles)?

The sides disappearing is because the cube you are using for the road domain is a little bit too small, scale it about 0.03 bigger on the Y axis and you will get a better boolean result.

Your second problem is the caps on the ends of your road mesh. By using an array modifier you get these repeated along the road, this leads to the ends appearing and disapearing as it moves along. For this remove the faces at both ends and apply the array modifier, then recap the ends.


Motion tracking is oriented incorrectly; no depth

If the camera is not moving (you're not walking or otherwise displacing the camera to have some parallax) the only way to solve the shot is using tripod solve. Normal solve will only give you errors.

It's very hard however to accurately get depth on a tripod solve.

From the wiki:

  tripod can be used for footage where the camera does not move and only
  rotates. Such footage can't be tracked with a generic solver approach,
  and it's impossible to determine the actual feature points in space
  due to a lack of information. So this solver will solve only the
  relative camera rotation and then reproject the feature points into a
  sphere, with the same distance between feature and camera for all
  feature points.

Once the scene is solved you might not get the right orientation using the default tools (like floor, wall or origin) but you can set manually by selecting the camera in the 3D viewport and rotating it to make the plane and cube match the orientation of the real images (remember to set the original footage as background image). All the trackers are parented to the camera, so they will follow it as you move it along.

What you want to get is something like this:

sample file here


How can I make parts of my mesh slightly transparent in sculpt/edit mode?

I ended finding out the answer on my own.
I can add a material to the section I want to make transparent and in the material options, under Viewport Display, you can select a color with an Alpha value, so you can keep working in solid mode


Help. How can I have a plain track to two different planes

welcome.  Please see below article on Drivers.

https://docs.blender.org/manual/en/latest/animation/drivers/introduction.html

In this animation, I have the Drivers panel open at the bottom.  Good Luck!


To the best of my knowledge, this cannot be changed. Here are a few workarounds that might be helpful however.
Use a script
If you use the command bpy.ops.wm.save_mainfile() and register a shortcut, you would just need to do a normal save once (for Blender to get the path) and after that, use CtrlShift + Y as I have done in the script below to save without any popups. (You can also change this if you want, see the commented line).
import bpy

class SaveWithoutPrompt(bpy.types.Operator):
    bl_idname = "object.save_without_prompt"
    bl_label = "Save without prompt"

    def execute(self, context):
        bpy.ops.wm.save_mainfile()
        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(SaveWithoutPrompt.bl_idname)

addon_kmaps = []

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

    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    # change the shortcut here..
    kmi = km.keymap_items.new(SaveWithoutPrompt.bl_idname, 'Y', 'PRESS', ctrl=True, shift=True)
    addon_kmaps.append(km)

def unregister():
    bpy.utils.unregister_class(SaveWithoutPrompt)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

    wm = bpy.context.window_manager
    for km in addon_kmaps:
        wm.keyconfigs.addon.kmaps.remove(km)
    del addon_kmaps[:]

if __name__ == "__main__":
    register()

Set the autosave feature to save more often

You could have Blender save a copy of the file you are working on every minute. This runs in the background so no popups. You can find this feature under the File tab in your User Preferences.
Related, Blender saves a new file every time


How to cut holes in an object using another object?

How to do a subtractive boolean

Make sure you've selected the object to be carved from, and add a Boolean Modifier (when in Edit mode, look for a wrench icon on the right-side panel when you have the object to be carved from selected - this is the modifier panel).
For the modifier's Operation choose "Difference".
For the Object field choose the object that will do the carving.
Apply the Boolean Modifier and delete your carving object.

Tip: For step 4, as an alternative non-destructive approach you could also leave the modifier on without applying it, and hide the carving object from rendering. If you want to see the carving object's shape and its effect at the same time, instead of totally hiding it in the viewport you could go to the Object Tab and set the Maximum Draw Type to "Wire".

Tip: Low-poly meshes may not boolean so well, while high-poly meshes can be slow to calculate or in extreme cases even crash Blender. So consider your mesh density before using a boolean.
Tip: If either mesh's normals are facing the wrong direction you will have problems when doing a boolean. Recalculating normals can sometimes be a solution if you find a boolean is not working as expected.
Tip: Remove doubles. If your normals are just fine, the next thing to try is removing doubled-up vertices. This can be done from within Edit Mode by pressing W and choosing "Remove Doubles". At the top of the interface near the tiny Blender logo a message will momentarily appear saying "Removed __ vertices". If this number is not 0 then you'll know that some doubles were removed and that the problem has probably been fixed.
Tip: Large n-gons can cause booleans to fail. The solution is to convert to triangles. Here is a post addressing this problem in more detail.
Tip: Avoid booleans if you plan to SubSurf. Modeling with booleans may be fine for simple hard-surface geometry, but if you then put a Subdivision Surface Modifier on that object you can expect unsightly results. This is because for things like subdivision and mesh deformation topology is important. An all-quad mesh is ideal, but still requires some good old-fashioned manual modeling to create. It's worth learning the concepts of edge-flow and poles if you intend to create a low or med-poly mesh with "holes" cut into it that still looks good when SubSurfed.
Tip: Sometimes using "Smooth" shading doesn't go so smoothly after modeling with a boolean. This has a lot to do with the topology issues I mentioned above, but there is a quick fix that is suitable for many cases. Navigate to the Mesh context tab and check the Auto Smooth option. Adjust the slider until the shading looks desirable in the viewport. Here is a before/after example:

Note that regardless of the angle specified for Auto Smooth, any edges that have been Marked Sharp (CtrlE) will be sharp as long as the Auto Smooth feature is enabled.
The solution for your case

It was caused by conflicting normals, as I mentioned in one of the tips above. In fact, you can even see from the darkly shaded geometry in your screen shots that some of the normals are inverted. After recalculating normals on both objects I was able to boolean just fine. Here's the solved file:


How to set a custom 4x4 projection matrix in Blender

A camera object, bpy.types.Camera, does not expose a matrix property or anything similar. You can only change the available properties, which should be equal to what you can do via the user interface in the Object data tab.


How to use the Principled BSDF shader to create an old-paper-like material?

Here is what I got for you

For the color, I added a noise texture with a color ramp, the right side being a white-ish yellow, the centre-left being a darker yellow. On the very left, I had a dark orange, but this isn't that important. I then plugged the color ramp into the base color of the BSDF Shader.

If you want to add displacement, I used a Mix RGB node to mix a Noise Texture and a Musgrave Texture. I changed the fac of the Mix RGB so it is mostly the Musgrave Texture. When you connect the Mix RGB node to a displacement node, you will want to turn the strength down a lot. I changed the strength to about 0.05 in my example.

That should make a decent old paper texture using the Principled BSDF shader.

I hope I helped.


Usually this kind of work - modeling accessories - is not done in this way. Instead, you select parts of original mesh (character) in adjacent places where you'd like your belt / coat / whatever to be, duplicate them into another mesh (with P > By Selection) and start moving vertices around in that new mesh in order to make it look like belt / etc.

If you already have premodeled mesh it is possible to wrap it around your character but it may be far more complicated and far less convenient.

There is basic mesh representing an arm and basic mesh representing a necklace / belt in the example below.

I splitted its vertices into several vertex groups (total 3) like so:

Option 1 - shrinkwrapping accessory

There are added 3 Shrinkwrap modifiers to belt object - one per vertex group. One of them wraps inside verts, another one - middle part and 3-rd one - outside part of mesh. All of them use different Offset value in order to make parts of belt not intersecting.

Though this is possible, it won't provide you with flexibility - if necklace shown in gifs would have some kind of jewelry or clasp or something else detailed, it would be an awful task to wrap parts of them accordingly. Also even in this very simple case mesh representing belt is slightly deformed after wrapping which is not desired of course.

It is possible though to add parts of mesh which shouldn't be deformed when wrapping into another vertex group which won't be used by any modifier. Thus it will be possible to wrap accessory by using several ways at a time.

Shrinkwrap modifier's wiki page

Option 2

You could also use proportional editing or Lattice modifier to manually wrap the belt mesh.

This way it's possible to avoid distortions of the mesh - lattice works kind of proprtional editing from this point of view, but it allows more flexibility because base mesh isn't changed (unless modificator is applied). Again, you can split mesh in several vertex groups and even assign them to different lattices (but this may be overkill).

Lattice modifier in the wiki

Shaping a fork - tutorial about using Lattice modifier

Although these ways work, they should be used only if some complex accessory is needed to be wrapped around exhisting character. In general, if accessory isn't modeled yet it's better to duplicate base mesh for it from the original character and edit duplicated parts as needed.


Knife project on smooth cylinder resulting in streaks

Never mind. I figured that if I Edge Splitted the edges at the back of the elliptical eyes, I could do away with the streaks since they were connecting the vertices of the eye's adjacent faces to the eye. Edge Split gives each adjacent face their own copy.


Prevent fluid to flow through the walls of an obstacle

First of all, you should make sure that the basics of the fluid sim are set up correctly.

The domain should not be larger than necessary. The larger the domain, the more resolution you need for equal quality. You are just wasting baking time.
Scale should be applied (Ctrl+A) to the domain and the obstacle. Otherwise the results are somewhat unpredictable. This is usually the first step in troubleshooting a fluid sim.
There is no point in having a preview resolution of 100. You will always want to look at the final version, not the preview one, so to bake it at a high resolution is just more wasted baking time. Some people like to set the preview resolution to 1 because of this. But if you want to look at your animation before rendering to check the timing of camera movements, or whatever, something like the default 45 will do the job.
There is never ever a need for 4 subdivisions in the fluid boundary settings. At high resolutions (maybe about 300+) or if you want fluid particles, it should be set at 2, otherwise zero. You are just increasing the baking time without getting anything in return.

Now, if you have done all that, there is one more simple thing to do to prevent leakage. In the fluid boundary settings, uncheck Remove air bubbles. With this setting checked (which is the default), the fluid sim will basically avoid to have any space between the fluid and an obstacle, thus preferring to pass through. With high enough resolution this setting does not matter, but at low resolutions, very much so.

I hope that helped.


How to change orientation of object and location?

To put objects back into World origin, you need to reset their transforms.
You can do it for both Donut and Icing at once.

Shift Drop the Icing onto the Donut in the outliner. So they move together.
Select your Donut and clear all transforms one by one. This will put both in center.
Select Icing and clear Parent relationship (Alt+P). Then go Object > Apply > All Transforms.


Create an object at each vector in a list in Sverchok?

There is a lot of steps to make this happen, but it is pretty simple, so here it goes:

Make sure that you put your list in a .txt file - for this example call it PointList.txt, and it will use the CSV format.
Load this file into Blender.
Note: In this format every line in the file is one point location in X,Y,Z:

In the 3D Viewport Add a Cube - Shift+A >> Mesh >> Cube.
In the Node Editor Add a Text Input Node - Shift+A >> Text >> Text in.
Set your Text Input Node to have the following settings & Click Load:

Csv, User defined Dialect, "," Delimiter, "." Decimalmark
Next Add a Vectors In Node - Shift+A >> Vector >> Vector in and connect your Text Input Node to like the following:

Col 0 -> X, Col 1 -> Y, Col 2 -> Z
Next Add a Matrix In Node - Shift+A >> Matrix >> Matrix in and connect your Vectors Output of your Vectors In Node to Matrix In Node at its Location socket:

Next Add a Sv Instancer Node - Shift+A >> Scene >> Mesh instancer. Then ensure that your Object Name is set to the name of the Cube that you added in Step 3. above, click "use" and connect the two Matrix Sockets between the Nodes like the following:

Result:

To help you convert your data format, here is a screenshot of how to convert the format that you have shown in your comment:


How can I get these mesh information for exporting?

Vertices are shared, no matter what material etc. the using polygons have.

Per-face vertex data is stored in loops (C.object.data.loops).

The elements of C.object.data.uv_layers[#].data[#] correspond to loop indexes. The first UV coordinate of the active UV map can be retrieved like .uv_layers.active.data[0].uv.

I'm not sure if triangle stripes and fans are still used nowadays. If a game-engine handles vertices like Blender and shares them among faces, there's no real difference in memory consumption...

You may wanna use the Separate P operator and split a mesh by material. Or create a lookup dictionary from material assignments to efficiently retrieve the right polygons.

Elements in C.object.data.uv_textures[#].data[#] correspond to face indexes, e.g. .uv_textures.active.data[0].image for polygons[0]. Note that the image attribute is set via UV / Image Editor, but that there's a second type of material assignment - the one from Material tab in Properties Editor, which sets polygons[#].material_index (just an interger, which is the index of the material in C.object.data.materials[#].


Blender stores the keymaps in a python script file, hence the .py extension. What you are looking at is Blender's internal file browser. Just give your keymap a name and browse to where you want to export the keymap and press "Export Key Configuration..."

If you ever want to revert back to that exported keymap, simply press the Import... and browse to the .py file you previously saved. Voila.


How can I add banded lines to the end of cinnamon sticks(or sheets of wood)?

To add the darker banded lines on the ends of the model, you can make a linear gradient texture, instead, I used Google image search.

By selecting all of the edges and by pressing u UV Mapping->Follow Active Quads you should end up with a mapping that is proportional and square.  Be sure to select a face near an edge where you want the mapping to begin.  This will be the Active Quad which the algorithm uses as its basis.  You can see the active quad in the following image, it is pale compared to the other selections and also has a grid of white dots across it. Now rotate and scale the UV Coordinates to align properly with the image you selected.

The color doesn't matter because you can use an RBG To BW node to make it greyscale.

Here is what it looks like when rendered.

You can also use Generated Coordinates with a Wave Texture set to Bands.  It works well for the model I made but this is because the model is planer and is rolled up with an Armature.  When the Armature Modifier is Applied, it no longer works.

Here is the Blend file. Select either of the Material Output nodes to make that material active.


Finger control in BlenRig has been deleted! Ups!

Found it on my own. i just clicked on "Alt H" to unhide the controllers


The way I do this is pretty useful to me, so I will share this method here:

First, select the images you want to use and make copies in a new folder, renaming them with whatever tool or program you want to follow a sequence like 'image.001, image.002, etc' so that the same image name is shared and they follow a sequential number.

Load them as a new brush texture or brush mask depending on what you want to use them as.

Add a timeline editor to your workspace if not present, and set the end frame number to match the number of images in your image sequence.

Use the playhead controls or the left/right arrow keys to switch images as you paint.

Another neat trick is that you can press the Play button and paint, your dabs will change texture corresponding to where the play head is on the timeline. This can be used for many effects like randomly mixing wear images or changing scratch marks, or even just imitating Alchemy for idea generation.


How can I make a object follow perfectly a nurb path?

First of all, delete all objects except NurbsCirle and Cube.000. They are not relevant to the problem and only in the way.
Set the cursor at the world origin (Shift+C). Select all objects (A) and set the objects origin to cursor (Ctrl+Shift+Alt+C).
Select you object and go into edit mode. You'll see it is not at the origin. Select all Vertices and in the Properties panel (N) -> Transform -> Median, set all values to 0 to center your object. Rotate it until it doesn't lay flat on the ground. Exit edit mode.
In the Modifiers panel of your object, make sure there is an Array modifier with its length set to "Fit Curve" (If your object doesn't fit the curve later on, remove the curve). Beneath you sould have a Curve modifier set to NurbsCurve. Test all Deformation axes until you hit the right one.
Select your curve and go into edit mode. Select everything. Press Ctrl+T to tilt your curve along its path until the object on it is oriented the right way. You may need to do this several times at several locations until it looks like you want.
You're done. Now you can try to restore the other objects and move the curve's origin without destroying everything


The image is unclear. I cannot tell what end of either bone I am looking at.
To make a child bone connect to its parent after parenting, select the child bone, then go to Properties editor -> Bone properties -> Relations panel -> Connected, and check it.
To parent one bone to another in a connected manner, select the desired child bone, then the desired parent bone (so the parent will be active), and strike Ctrl + P. In the appearing Parent menu, click “Connected.”
PS: a child bone’s tail can never truly connect to its parent’s tail.


how can i see all layers when i render animation?

If I'm not misunderstanding, I believe you want the Render Layers feature. It's in the second tab of the Properties editor

you can choose which layers are visible in the final render using the boxes on the left-hand side:

Without sphere's layer selected

With sphere's layer selected as well

that's the simplest use for it at least, there's a lot of useful things other than that as well


Merging vertices in Blender - 3DS Max style

Select vertexes - Edge Ctrl+E ⇾ Bridge Edge Loops (Also available in context menu in edge select mode). Then press F9 to adjust last operation, select Merge.


how to access bpy.data.objects thru bpy.context.scene.objects

That line of code is overly complex. ob is already a datablock, so you don't have to go through the hoop of getting its name and then looking it up somewhere else. Furthermore, this approach will break when you have linked datablocks from other blend files (then names aren't necessarily unique).

To create a set, you have to either use a set literal like {'abc', 'def'}, or pass an iterable to set(). This is why you get the error message that Object is not iterable. Use either data_blocks = {ob} or data_blocks = set([ob]). I would say the first method is easier to read. It's probably also faster, because you don't have to create an intermediary list first.


Make sure, that you are running on newest drivers.

On linux run:
CYCLES_OPENCL_TEST=all ./blender

On windows:
set CYCLES_OPENCL_TEST=all
then run blender

Switch to cycles, go to system settings and select your graphic card.

The performance is limited and initial compiling of the kernel can take few minutes. But according to this AMD statement, there is a fix slowly coming in. No words on performance improvements though.


You don't have to "install" that file into blender. That file IS a blender version! You just need to decompress that file with 7zip (http://www.7-zip.org/), a free open source compression/decompression utility which handles many formats. 7z is usually more efficient than .zip so is often used as alternative for big files.


I can't find bake option under cache while doing smoke simulation in blender 2.82

In Blender 2.82 under the Cache dropdown panel, set the Type to Final.

The bake button should appear.


Why is the cube visible even though there are no lights?

The background is emitting light (by default). You can see the setting of the world background in the world Tab:


How can I make video black and white in the VSE

Sure you can use modifiers, but there is a Saturation value in every strip's properties.

But it doesn't allow you to use a nice balance of colour components, to do that you need to add a Hue modifier. I choose to use an Adjustment Effect Strip so that I can duplicate it and re-use it elsewhere in the VSE timeline. Set it to S for saturation then drag down all of the hue nodes. You can do a selective colour effect at this time by leaving one of the values at its original position

But this just looks like the original desaturation effect. So we need to add a Curve modifier above it, then modify the relative contribution of each colour channel. We simply alter the curves so that they represent greater contrast for each colour.

Now don't be fooled by this last image, I am only using one Curve modifier, but I have displayed it so that you can see what I did to each channel.


bone local_matrix all at location 0,0,0?

this is not official but after inspection :

the last line is not for location in 4*4 matrix

matrix_local is the rest matrix in the armature space
matrix_channel is the pose matrix according to the rest state
i think the last line is there to make a square matrix


Can't UV unwrap a sphere added with Python

Select the Faces.

The Smart UV unwrap (or most UV ops) rely on faces being selected. For objects added via an add mesh primitive operator all verts, and hence faces are selected by default. For meshes created by bmesh the opposite is the case.

Simply select all faces when you create the bmesh and the UV unwrap will work as expected.

bmesh.ops.create_uvsphere(bm, u_segments=32, v_segments=16, diameter=1)
for f in bm.faces:
    f.select_set(True)

Related:

Smart unwrap using script  (Looks somewhat familiar)

How to UV Unwrap and Scale UVs with Python (while in object mode)?

This way can lose the edit mode toggle and use no operators.

import bpy
from bl_operators.uvcalc_smart_project import main as smart_proj

context = bpy.context
scene = context.scene

meshobs = [o for o in scene.objects if o.type == 'MESH']
for o in meshobs:
    o.select_set(False)
for o in meshobs:
    context.view_layer.objects.active = o
    o.select_set(True)
    smart_proj(context, 0, 66, 0, True, True)
    o.select_set(False)

I am trying to create a Script that does a Smart UV unwrap of seperate connected parts of a mesh


Unwanted Wave-like Shades in the Background as the Object Moves

Without knowing in which format you are rendering and what quality settings you use it's hard to tell the exact reason, but these are no shades depending on the animation itself or the render settings, I guess. These effects are called Banding, Colour Banding or Posterization and can appear in all kinds of software or images. It's usually a problem of insufficient bit depth to display smooth color transitions.  The reason for the low quality can be high compression in image or video formats for example.
Short articles on these topics:
https://en.wikipedia.org/wiki/Colour_banding
https://en.wikipedia.org/wiki/Posterization


Both parts have emmision set only one shows it, though

It must have been a glitch with Cycles. The car is inside a warehouse environment, with two other cubes acting as doors to block all sunlight and slowly move to let sunlight in. I just had to hide the doors and unhide them, and it somehow reset the lighting. In the future if anyone comes across this, just change some stuff up in your scene that affect lighting, I guess. Someone else also said they had the same issue, and when they created a new Blender file it worked. If you don't have too much to lose, that is also an option.


Blender rendering black screen when light out of interior

Ok guys, now i know the reason of this.
Thing that caused it is boolean modifier and cubes which I used to do this blocked any light no matter hiden it or not.

My solution was to make them invisible for render in visibility tab


How do I make a octahedron in Blender 2.8=

Or you can just bevel the default cube.

Select all vertices
Bevel the cube (check Clamp overlap)
Remove double vertices Mesh > Clean up > Merge by Distance


Create a edgeloop on the other side

Starting from a similar situation

Just model the last face picking the last three vertices and press F.

Then subdivide the internal edge a with the same nuber of cuts of the vertices on the opposite side.

Now you can run the Grid Fill command

Note: the accuracy of the interpolation on the triangular tip depends on the size of the face, but nothing prevents you to subdivide the edges and make a tiny temporary face that at the end will be collapsed in one point.


Found the same (BMVert) used multiple times


How do I remap pan hotkey in UV image editor?

The python for that is view2d.pan.

Hope that helps!


This isn't the scale, but the IK stretch feature, which you can control from the properties panel (N shortcut key). The following video explains how to use this property to control stretching:
http://youtu.be/AII-n2GHbG4


Archimesh: Undoing bad topology with the walls: How?

If you want to edit freely with archimesh objects, you'd have to convert them to meshes (select your object then click object > convert to > mesh from curve/meta/surf/text) but it may compromise your archimesh tools with more complex models. Archimesh objects don't give you freedom in edit mode and most edits affect the whole mesh and/or aren't flexible at all, so I personally found that converting objects to a mesh and making most doors from scratch was a lot better for me because I prefer more freedom and flexibility.

And for the auto holes to work properly in general, the doors/windows need to be thinner than the walls which makes sense but also takes some time playing around with. And the minute you make even the slightest change, the hole disappears and you have to check "Auto holes" again and again.

If you want to create your own doors/holes with the same archimesh walls without converting it to a mesh, the Bisect tool works best. Loops and knife cuts cause too much complication with archimesh objects due to the lack of freedom so Bisect tool is your best choice.


Why does the "skin" modifier not accurately produce 90°corners?

I suggest using a combination of Screw + Solidify modifier (your base mesh must be flat for the best result) :

Screw : Along Z, 1 step (If using Blender  < V2.83, the minimum steps is 2. Make sure the angle is 0°), Remove smooth shading

Solidify : Complex mode, offset 0

If you want to have the height centered around 0, simply add a displace with a driver :

Result :

Add custom properties if you don't want to deal with the modifier interface :


I tried making a smoke scene to see if I could answer this, and I had the same problem, I fixed it by baking the smoke simulation.  (go to the physics tab of the domain cube and under cache press bake.

I hope that fixes the problem.

As a side note, for an easier smoke and fire material, you can use the Principled Volume BSDF.  This can be used for smoke and fire.

Here's a picture of the node set up and the result.

The two settings you can change to change the look of the smoke is color and density.  I hope this is helpful to you. :)