Nothing appears when trying to render, hangs on 'Occlusion preprocessing'

It's still preparing. Notice the progress indicator in your screenshot:

This will often take a long time when rendering effects like indirect lighting (sometimes I've had it take up to 10 minutes), especially on large scenes.

To help reduce this time, try disabling some effects in the world panel, or increasing the error tolerance:


How do I straighten just the inner hole of this mesh?

creasing edges with SHIFT + E could also be a non destructive option if you don't want to modify existing geometry


Altering particle rotations / locations via python

Got this to work by using the somewhat deprecated and dangerous method for forcing a scene redraw bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1).

import bpy
import numpy as np
from mathutils import Vector

p = bpy.context.active_object.particle_systems['ParticleSystem'].particles

locations = 10 * np.random.random((len(p),3)) - 5
locations = [ Vector(co) for co in locations ]

for pp, loc in zip( p, locations ):
    pp.location = loc

bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1) # <== This is the magic operator


Nvidia Quadro M2000 4GB - does this grapic card meet system requirements?

This is a Maxwell-based card, and will support Blender just fine, including Cycles' CUDA mode. However, Quadros are very expensive compared to the GeForce series for the same GPU core performance, and the extra features of a Quadro will not be useful for Blender. Unless you need a Quadro for some other software you will be using, or some other reason such as non-Blender-related hardware features, or enterprise purchasing requirements that only have Quadros for workstation hardware, you should get a GeForce series card of similar cost, such as a GTX 1070.


How do I select faces in a row incrementally (as opposed to growing a selection in all directions)?

You probably want Ctrl Shift  Numpad + Select Next Active, which, as far as possible, will use the pattern of relationship between the active element and the previously selected one to predict the next to be selected
.
So, for example, if in a face loop, you have selected two adjacent faces separately, the operation will continue to select in the same direction. If you have skipped a face, the selection will continue to skip faces, and so on. Very useful for selecting at intervals.
Ctrl Shift  Numpad - will deselect back down the sequence.


If you want to draw properties into your node you have to implement the draw function:

def draw(self, layout):
    layout.prop(self, "operation", text = "Operation")


How to use mirror ball to light a scene?

First of all, you need to use the .hdr or .exr formats instead of .jpg. No matter what tool you used to capture the image, .jpg as a format can only hold red, green, and blue channels that go from zero to one. You can imitate some dynamic range with judicious use of RGB curves but for the best result you will need an image that has high dynamic range and was saved in .hdr or .exr format, since those are the only formats Blender reads that are meant to handle such data.

Second of all, besides that you are mostly setting up the environment correctly. The only additional step you need to take is to enable Multiple Importance Sampling for the world. This property is found in the Properties panel, under the World tab, under Settings, and it will make your render converge more quickly. You should always turn this on unless your environment is a constant color, in which case having it off will save a little bit of render time.

If you look at some balls from the Front view, you will see that the garbage portion of the image is clearly visible in the background, but everything that's in the image of the mirror ball is reflected correctly onto whatever geometry is facing the viewer. This situation is ideal because it puts all of the details from the mirror ball onto the geometry, where it can do its job by looking good.

If you want something else to show up in the background besides mirror ball trash, there are a few ways to do it. The first option is modeling most of an environment so that the background isn't visible. The second option is to set the background to Transparent in the Properties panel->Render settings->Film, which will make the background transparent so you can composite or paint one in later. And, finally, the third option is to use the Input->Light Path node to show a background image to the camera and the mirror ball environment to the objects in the world. Here's something like what you might get from such a setup:

You can use any sort of image, photo or matte painting you like here, as long as it looks good and makes sense in the context of your render.

The next problem you'll run into is that you might not want to render with the camera aligned to the Front view. So, you need to rotate the environment texture around until you get all of the mirror ball trash in the background of the camera's view. You can use the Vector->Mapping node for this. The Z rotation will rotate the environment around the Z axis, which will usually get you the result you want.

This all gets much more complicated for animation because you have to interpolate between a sequence of mirror balls to get a result that fits in with your real-world footage, and you would have to animate the Mapping node which might be possible with drivers but probably wouldn't give you the perfect result you might be looking for. For rendering animation that's going to be composited with real-world footage I therefore prefer equirectangular maps that were digitally stitched together from carefully bracketed, Macbeth-chart calibrated HDR photographs of the set, as the amount that you have to animate the Mapping node is minimal and you don't have to use an image sequence for the environment texture which Cycles doesn't support in a straightforward way.


Blender 2.8 - Modal Operator: How to change modifier settings?

You are using FloatProperty, although you only imported StringProperty. You can use it as bpy.props.FloatProperty, or you can import it by adding it to the import from bpy.props import StringProperty, FloatProperty. You will need to define how it is controlled during the modal operation inside invoke as well. See the examples in the Templates menu in the Text Editor's Header.

You could open the example of the modal operator from the Templates menu in the Text Editor's header and then just modify it with what you need carefully checking that you don't break it. I would suggest using some event like mouse move or mouse wheel to control the variables, because you will have a floating panel at the bottom of the 3d view with the value after the operation anyway if you define bl_options = {'REGISTER', 'UNDO'} that is the usual Blender's behavior - adjusting with mouse on the fly and then having that last operator's history panel.

It would be something like this:

import bpy
C = bpy.context

class OBJECT_OT_make_proxy(bpy.types.Operator):
    """Saves the world from war and hunger"""
    bl_idname = "object.make_proxy"
    bl_label = "mProxy"
    bl_options = {'REGISTER', 'UNDO'}

    ratio: bpy.props.FloatProperty( name = "Decimate Ratio",
                                    description = "Does something",
                                    default = 0.25,
                                    min = 0, max = 1
                                  )
    @classmethod
    def poll(cls, context):
        return context.object is not None
    def execute(self, context): #This is apparently needed for the history panel to work
        if "mProxyDecimate" not in C.object.modifiers:
            bpy.ops.object.modifier_add(type='DECIMATE')
            C.object.modifiers[len(C.object.modifiers)-1].name = 'mProxyDecimate'
        C.object.modifiers["mProxyDecimate"].ratio = self.ratio
        return {'FINISHED'}

    def modal(self, context, event):

        if event.type == 'WHEELUPMOUSE':
            self.ratio += 0.02
            C.object.modifiers["mProxyDecimate"].ratio = self.ratio
        elif event.type == 'WHEELDOWNMOUSE':
            self.ratio -= 0.02
            C.object.modifiers["mProxyDecimate"].ratio = self.ratio
        elif event.type == 'LEFTMOUSE': #You need to be able to confirm it
            return {'FINISHED'}
        elif event.type in {'RIGHTMOUSE', 'ESC'}: #..and also to get out of it
            bpy.ops.object.modifier_remove(modifier="mProxyDecimate")
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        if context.object:
            if "mProxyDecimate" not in C.object.modifiers:
                bpy.ops.object.modifier_add(type='DECIMATE')
                C.object.modifiers[len(C.object.modifiers)-1].name = 'mProxyDecimate'
            C.object.modifiers["mProxyDecimate"].ratio = self.ratio
            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "No active object, could not finish")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()


How do I make a plane have a colored material in Cycles while adding thickness?

This can be done very easily thanks to the Cycles material editor and the Solidify modifier.

First add a material and change the color as desired. The default material is a light grey diffuse material:

Then add the Solidify modifier and change the Thickness value:


Access Object's Keyframe Data via Python

The following will give you an array of all the frame numbers (as float) where the visibility is True

fc = o.animation_data.action.fcurves.find('hide')
frameNos = [kfp.co[0] for kfp in fc.keyframe_points if kfp.co[1] == 0]

you can find the previous one from the current with

start = max([kfp.co[0] for kfp in fc.keyframe_points if kfp.co[1] == 0 and kfp.co[0] < currentF])


Blender cycles, apply textures through a python script

This script does not do any unwrapping. List of available nodes

import bpy

mat_name = "MyMaterial"
image_path = #...

mat = (bpy.data.materials.get(mat_name) or
       bpy.data.materials.new(mat_name))

mat.use_nodes = True
nt = mat.node_tree
nodes = nt.nodes
links = nt.links

# clear
while(nodes): nodes.remove(nodes[0])

output  = nodes.new("ShaderNodeOutputMaterial")
diffuse = nodes.new("ShaderNodeBsdfDiffuse")
texture = nodes.new("ShaderNodeTexImage")
uvmap   = nodes.new("ShaderNodeUVMap")

texture.image = bpy.data.images.load(image_path)
uvmap.uv_map = "UV"

links.new( output.inputs['Surface'], diffuse.outputs['BSDF'])
links.new(diffuse.inputs['Color'],   texture.outputs['Color'])
links.new(texture.inputs['Vector'],    uvmap.outputs['UV'])

# distribute nodes along the x axis
for index, node in enumerate((uvmap, texture, diffuse, output)):
    node.location.x = 200.0 * index


You need to enable this button. See picture in the right-top corner.


Is there any way to override UILayout.prop tooltip?

Dynamically re-annotate a pointer property

I forgot to select one

Example below.  Note I've used Scene properties to illustrate the concept, as it's simpler to put together using simple panel template code and column flow to layout, than making custom nodes.  Pretty sure the same concepts apply.

The Scene.foo_int property unregisters re-annotates and re registers the propertygroup class.  The init call is emulated by calling the rereg update method.

import bpy
from bpy.props import BoolProperty, PointerProperty, IntProperty

class SequencerPosition(bpy.types.PropertyGroup):
    __annotations__ = {}
    pass

def rereg(self, context):
    if getattr(SequencerPosition, "is_registered", False):
        bpy.utils.unregister_class(SequencerPosition)
    SequencerPosition.__annotations__.clear()
    for i in range(self.foo_int):

        SequencerPosition.__annotations__[f"value{i}"] = BoolProperty(
            name=f"Value{i}",
            description=f"Do something with value {i}")

    bpy.utils.register_class(SequencerPosition)
    bpy.types.Scene.foo = PointerProperty(type=SequencerPosition)

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        layout.prop(scene, "foo_int")
        grid = layout.column_flow(columns=8)
        for anno in SequencerPosition.__annotations__.keys():
            grid.prop(scene.foo, anno, icon_only=True)

def register():
    bpy.utils.register_class(HelloWorldPanel)
    bpy.types.Scene.foo_int = IntProperty(min=0, max=32, update=rereg)

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

if __name__ == "__main__":
    rereg(bpy.context.scene, bpy.context)
    register()

  Oh, and this won't really work if I have multiple instances of the
  node, right?

Yes that's a catch on the dynamic registering, however can annotate the node with a maximum number, and only display so many based on a node int property

to demonstrate:

I've annotated the CustomNode with a max of 32 and used the int to set the layout

def draw_buttons(self, context, layout):
    layout.label(text="Node settings")
    layout.prop(self, "my_int_prop")
    grid = layout.grid_flow(row_major=True, columns=4)
    for i in range(self.my_int_prop):
        grid.prop(self, f'value{i}', icon_only=True)


how to know what has been imported after alembic import

Right after you perform the import alembic operation, all the objects that are imported are selected in the viewport. So you can use the following code to get access to them

bpy.context.selected_objects

Then you can perform operations such as grouping them logically as below

bpy.ops.group.create(name='test1')

Additionally, you also have access to cache files

bpy.data.cache_files.items()

Assuming you have loaded an alembic file (test2.abc) containing a cube and sphere, you can get to their object paths using

cache_file = bpy.data.cache_files['test2.abc']

Now we can get access to all the objects paths loaded

cache_file.object_paths.keys()


How can I create a realistic glass material?

Use the Principled BSDF shader.

1) Use only Principled BSDF node.
2) Set Transmission to 1 (to get physically accurate glass), but don't touch anything else.
3) Set Roughness as desired
4) Boom. You're done.

Physically accurate glass using only Principled BSDF.


Try to keep your topology as quads. Using Ngons is only going to give you trouble when you want to subdivide.

Start with a cube.

Inset the top face.

Extrude the center face and bring it down on the Z axis to get the basic shape of the box.

Select the outer loop edge (press and hold Alt and Right Click with the mouse) and bevel it (CtrlB)

Do the same with the inner edge loop.

Then select the inner edges and bevel them as well.


Objects appear mixed and transparent when compositing

Looks like you need to enable Transparency in the Render panel. This would allow you to composite your layers with more Alpha Over nodes instead of Add nodes. In general, I would keep Add nodes only for layering lighting effects.


Go to File, Append. Choose a blend file, double click to open, then navigate to the Actions you want to append to the current blend file.

See the manual for more info.


object shrinks whenever I give it rigidbody physics

The helmet shrinks because you have a keyframe on the scale of the helmet. Have a look at the orange block on the first screenshot. It scales down over time (2nd screenshot).
Remove the keyframes, reset the scale to 1 and it should be fine.


You can use Python set operations.

Make a set from all objects in the scene before the import
Perform the import
Make another set from all objects and subtract the set you made earlier

The only objects left in the set are the ones that were imported.

old_objs = set(context.scene.objects)
bpy.ops.import_scene.fbx(filepath="/home/simon/untitled.fbx")
imported_objs = set(context.scene.objects) - old_objs

print("Imported:", imported_objs)


Use the "Remesh" modifier.
Play with the settings until you get the level of detail that you want.


How to make 2D animation object appear/reappear at specific keyframes? (Blender 2.8)

Blender 2.80 still has the same functionality for animating the visibility of objects. By default the outliner now has a simplified display but the visibility options can easily be shown in the filter options menu.

Also the visibility options are now available in the object properties, where keyframes can easily be created.


Problem with transparency when using two world images

Rearrange your nodes so that the color grid environment texture affects only the diffuse rays:

The sphere has a glass material and the big cube a glossy one. The small cube on top uses a diffuse shader.


How do I create multiple UV maps for use in UE4?

OK so my original assumption was incorrect. I was trying to set the mesh up so I could apply two (or more) different materials to the static mesh in UE4. I thought that I would need to create two UV maps and then somehow use those in UE4, but the answer is much simpler:

Go to Edit mode for your object in Blender
Unwrap the mesh
Add additional material slots using the '+' button
Highlight the faces on your mesh that you want assigned to this material channel and then click Assign

Do this for all faces in the mesh, assigning each face to a material slot.

Export the fbx file and import into UE4.
In UE4 you will see additional material slots allocated to your static mesh. You can then drag and drop materials from your UE4 library onto the mesh.

Additional tips:

I left the texture channels blank in Blender for each material slot as I was going to use materials (that already have textures assigned to them) that already resided in UE4. If you were to assign a texture to the material slot in Blender then that texture would be exported to UE4 inside the fbx file and appear alongside your mesh object in the Content Browser.
If a face appears missing on your mesh, it is likely that the face normal has been flipped during editing. Go back into edit mode in Blender, highlight the problem face, CTRL + F to bring up the Face menu, and Flip Normal. Re-export the fbx, right click the asset in UE4 and Re-import.

You can also display all face normals in edit mode by clicking Display Face Normals in the Mesh Display pane:

Hope this helps someone in the future.


Object (head shaver) is bubbling/moving after rendered?

I fiddled with the .blend and inspected rendering results between frames around 30-34 which were shading inconsistently. Turns out it's not about geometry or animations but the culprit is unused / misused Displacement-slot on the Material Output node of the material. Removing the connection (from multiply node and empty image node) to the Displacement slot solved the rendering issue. This slot should behave properly with an actual texture, you have to be feed it very small numbers. But I wouldn't be surprised if this feature was still a little bit unstable with Eevee.


How to add a modifier to a collection(group? linked objects? IDK) which it has modifiers inside

Short answer, no, you cannot add modifiers to collections.
In you pic your are adding the modifier to 'Cube' as it is the selected object.
You can however copy modifiers to other objects with CTRL+L
For an array modifier, to keep all your parts relative to each other you'll need to use Object Offset and also have all the objects origins at the same point, this will break your mirror modifiers so they will need to use Mirror Object as their mirror point and select an object to use as the mirror point, or add an empty for this purpose.
The last object you select is the object to copy the modifiers from.
Also note, this is simply "copying", so any changes made to a modifier after this will NOT update the others.
In my example I have already set all the objects origins to the same point. I then use the Empty to control the spread of the array


So since no one replied, I guess writing a plugin was the best bet.
In case if anyone wants to take a look at it, here is the link

https://github.com/shuao23/DuplicateToolsForArmature

Just a warning, there might be bugs so backup before you use it. Also its not super flexible so don't expect much :p


If not supplied a Texture Coordinate node, Blender's procedural textures default to using Generated coordinates. These put X,Y,Z = 0 at the minimum XYZ of an object's bounding box, and X,Y,Z = 1 at the  maximums. So if the object's dimensions are not equal (scaled or not), the texture will be stretched.
You can transform the Generated texture space in the object's Data tab > Texture Space panel, but it's more common to add a Texture Coordinate node, and  explicitly put the texture into the Object's own space, which is measured from 0 at the object's origin, in Blender units along the object's local axes, before any object-level transformation.
If the texture is in the Object space, then it will rotate, translate, and scale with the object. (Then, if you scale in Object mode, the texture will stretch. If you scale the object's mesh, in Edit mode, or bake the object's scale transform into its mesh by Applying the scale, it will not.)


Your shape seems closed, it looks like it can't work this way, so just open it:


How to select faces/edges/vertices on one side of an object?

i think first of all you should use the decimate modifier, depending on how many details the mesh has to provide.
i guess the tubes shall have the same spacing, right?
i don't know if my approach is overly complicated, but you could try (referring to the last image) to get a center point from wich you can measure the distances. i don't really know how you would do that, but maybe someone can help you with that. form that point/vertical line you could define a segment of the mesh going left and right from the desired degree of the tubes location. now you let your script select all vertices within this segment and measure the distance from the line (0,0,Z from the selected vertex) for each of them. then you get the location of the tube as you add the farthest vertex distance from the center and your set distance from it.
i hope this helps as an approach to a workflow.


Grass High Polly to low poly for Unreal Engine?

I am afraid there is no easy method for that. Your vegetation is a real and detailed 3D model while the example below uses the efficient billboard technique - each model consists of several polygons textured by semi-transparent images / photos.
Because both approaches are really different, you cannot simply get the second one by reducing the mesh detail or any other automatic method.

If you want to use your 3D vegetation to create a billboard one, you can render you 3D vegetation from different angles to png textures (with the transparency). Then create simple models for each flower / grass cluster etc (like in the example) and apply png textures you have rendered on them.


Texture paint on 2nd object is not working

before you do anything check your blend mode in 3d view by pressing n > Tool > brush setting > blend mode and set it to mix

1) check if object is selected first

2) isolate object before painting by pressing num/ or ~ to toggle local view

3) make the clip start smaller. (3d view > press N for right panel to show up and view > clip start)

4) try saving your image before doing the actual painting then save blender file then go File > Revert and see if the issue still exist.
5) if all else fails just go to edit mode and press ctrl+shift+n to recalculate normals and try again painting it.


How to get Properties Editor tabs context for the active object?

Dynamic enum property.

This is a dynamic enum property, ie it changes dependant on context.

We can get all possible members, from the properties rna data  enum_items

>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'PROPERTIES')
(1, 'CONSOLE')
(2, 'OUTLINER')
(3, 'TEXT_EDITOR')

>>> s = C.screen.areas[0].spaces.active
>>> s.bl_rna.properties['context'].enum_items.keys()
['TOOL', 'SCENE', 'RENDER', 'OUTPUT', 'VIEW_LAYER', 'WORLD', 'OBJECT', 'CONSTRAINT', 'MODIFIER', 'DATA', 'BONE', 'BONE_CONSTRAINT', 'MATERIAL', 'TEXTURE', 'PARTICLES', 'PHYSICS', 'SHADERFX']

or similarly from the type

bpy.types.SpaceProperties.bl_rna.properties['context']

whereas the error message, as shown in question, shows those members available for that context.

A dynamic enum property has a method that populates its items depending on context. I am unaware of how to tap into the method and get only context members.

Pinning an object to the panel also changes context tabs displayed.

Henceforth apping them out manually (with some assistance) is AFAIK going to have to do.

This is one of the rare cases where I would recommend using try / except clause.  We could for instance write a script that creates sets for each data type.  We know the union (above) and can find a common set and those unique to each type.  For instance can grep the context members out of the exception message.  Pretty ugly example below, mesh object selected in edit mode, improve using re expression perhaps.

>>> try:
...     s.context = "Foo"
... except TypeError as e:
...     m = str(e.args)
...     m[m.find("(", 1) + 1:-4].replace("\\'", "").replace(" ", "").split(",")
...
['TOOL', 'RENDER', 'OUTPUT', 'VIEW_LAYER', 'SCENE', 'WORLD', 'OBJECT', 'MODIFIER', 'PARTICLES', 'PHYSICS', 'CONSTRAINT', 'DATA', 'MATERIAL', 'TEXTURE']

Worth mentioning that DATA will display mesh data for a mesh object, armature data for an armature object,  curve data for a curve etc


How can I modify the frame rate without changing overall animation speed?

You can change the timing of an animated scene without changing the frame rate. In the rendering settings Dimensions there is a time remapping section:

It works like this:

The values are in frames

For example:

If you want the whole animation to run twice as fast you set the old to 100 and new to 50.

Animated values that took 100 frames now will happen in 50

To make the animation last twice as long (slower) map old to 100 and new to 200.


Getting a dynamic object's velocity to behave like it's rolling

I was able to get some really nice results using physics simulations! Rigid body constraints set to both front and back axles on hinge mode provided the necessary pivot.

Make sure you enable linked collision to avoid crazy issues with your shocks!
I made a fancy test file, complete with board riding monkey for your entertainment. Please wear a helmet when riding.


Setting a color for "World" doesn't work

Your world surface is using the Emission node wrongly, use the Background node instead for it.


In the particles tab go down to the "Render" section.

Then Select the option "Group" and select the group you want to use.


What you needed here was to hit the little refresh arrows next to the library names in the add-on preferences.

For future reference there is a Discord channel for support.


Repeat texture in all directions using cycles nodes

Blender's modulo doesn't work well on negative values I guess.  Shame, but it's fixable.

We can do manual correction for negative UV by taking the absolute value, doing our modulo, then inverting it.

Note that I'm using a mixRGB node to mix these values, which is hacky, but works.  You could always multiply by fac/1-fac and then add the values if you want to be less hacky.

The only reason I can see that you might want to do this is to give different clip/repeat behavior in different axes, and there's an easier way to do that:

Edit: In order to create space between the images, we simply remap the UV after our operation.

Here, I'm scaling each picture down to half its original size, creating a full width border between each instance, and I've created a value node to easily control this value.

You specifically said, "No mapping nodes!" and I see no reason for that, but I've done it how you want anyways.  These math operations could be achieved as easily with a single mapping node as with a series of math nodes.


To make a pipe bend the quickest way is to use the Bridge tool: Select both the 2 rims vertices and right click (context menu) > LoopTools > Bridge (you may need to activate the LoopTools addon before), or in Edge Select mode, CtrlE > Bridge Edge Loops. Then in the Operator box, set the bend as you want.

If you want to create a pipe bend but want to keep a sharp edge, the new (2.8) Mirror modifier allows you to do it easily: Create your cylinder, create an empty, give your cylinder a Mirror modifier with the empty as Mirror Object, choose (in my case) Axis > X, Bisect > X, Flip > X, move and rotate the empty until the cylinder and its mirrored merge the way you want (keep pressing Ctrl during the rotation if you want it to be 10° by 10°).

The Shear tool also allows you to create sharp bends but it's not convenient if you want precise angles or if your object is not perpendicular to the axis.


Make particle system using settings on every faces of a mesh

I figured it out by using some settings in the particle system itself(If better result, please share it with me).

I assigned the same particle system to both planes here, small one got 1 face and big one got 4 faces as big as the small plane.

I cranked up the Hair number to 50k but assigned only 500 per face. So both planes got the same hair density.


Shaders are managed by the render engines. If you want to make assets for a video game, then the render engine is the game engine, and so the way to make shaders in it depends on him, not on Blender. The shaders will be made in your game engine and might not have an equivalent in Blender.

The only thing you can do in Blender is to prepare the textures you will use in your shaders, as well as assign materials slots on your mesh if you need several materials on a single mesh.


Search for 'UV' rather than 'Export' in the addons:


Why do you have to not be in edt mode to delete materials or shape keys?

Yes there is a small reason behind this. This happens because when we remove a shape-key object's vertex data is changed to the current shape-key state which have to be rcalculated so for removing lags or software crash. That's why you can't  delete shape key in edit mode. Whereas in concern to the materials the can be applied, removed and added in edit mode. If you are unable to do this it means that you are not currently having an active material slot available you will have to add and leave a material slot empty on order to create materials and make a material in order to apply then on your mesh.


How can i make a proper light inside a circle with objects so their surface is illuminated?

The light sources can be invisible to the camera. Set Cycles Ray Visibility to FALSE

You mentioned trick.  Consider the point light external to the sphere.  Set Cycles Ray Visibility to FALSE.  Each planet has a sister light planet not visible to the camera.  They can both rotate relative to Sun. You may consider [Tracking] Constraint.
The Sun. Set Cycles Ray Visibility to FALSE.


How can one rig a Stirling engine? (Piston)

This is really not my area, but here is what I could come up with purely using constraints. I suppose you could use a similar setup with a rig by applying a equivalent constraints to the bones.

Parent an empty to the rotor $A$ at the correct arm tip position $B$.

Parent both arms $C$ and $D$ to $B$.

Correctly position both pistons $E$ and $F$. Add the same constraint setup to both consisting of (by this order):

One Limit Location constraint set to Local Space where you only limit both minimum and maximum $X$ and $Y$ to $0$
One Limit Distance constraint set to On Surface to $B$ and adjust the distance parameter to match the arm shaft length.

After setting up both constraints switch their order so the Limit Distance is before the Limit Location. This is so the Limit Location is set before and guarantees the pistons aren't inadvertently moved out of place.

After that proceed to add the same constraints to both arms in the form of one Track To pointing to the corresponding pistons $E$ or $F$.

If you animate rotation of the rotor you should end up with a setup similar to this:

Disclaimer: Due to unknown facts as Haunt_House points out there seem to be a slight lag/imprecision with the pistons moving slightly out of sync with the rest of the setup. This is likely due to limitations on the way Blender calculates constraints, solving the last one without guaranteeing the first one is still met.


Cut a hole with Boolean Modifier is not working

The reason the modifier is not working is because the hook is made from a curve and not a mesh. Curves are defined by specific control points and sometimes modifiers can be added to them to give the appearance of a solid object. However, in order to use constructive modifies (ie. a boolean modifier), your object needs to be a mesh.
I did try converting your curve to a mesh, but due to its complexity, there is some weird topology that results in the boolean modifier not working as it should.
The best thing to do would be to redesign the hook as a mesh and then the boolean modifier should work fine. Having it as a mesh will also make it easier to work with UVs, textures, and physics if those are needed in the future.


How do I make a puzzle piece mesh solid?

I selected one of the parts that were missing and chose Normals > Recalculate Outside and then chose Shade Flat and everything cleared up.
I will look into culling though I'll be making several puzzle pieces and the quickest solution is desired.


If this is the terrain we're talking about, 120k is probably a good number, seeing as the base reqs for a computer are 1,000,000 verts (without any other things, textures, filters, light). That mean most computers can handle vertex counts of up to 1mil.

The only problem I can see is in the fact that this is a terrain, and not a character, you said only 1-2k verts would be seen at a time, but that doesn't matter if the terrain is one object; Blender will still render the entire object even if only 1 vertex is visible.

So what to fix then? Generally, terrains don't need this amount of detail (right now I'm making one, several acres, and its pushing 30k), so to start with, you may wan to break it down into more base elements to free up resources for other rendering jobs. If its a city landscape, separate the buildings into their own objects, and get some LOD going for props. You may also want to break the landscape into more manageable chunks an area that would normally be blocked by a hill could be separated into its own object so that it only need to be rendered when called for. You could also use occlude objects. these basically ensure that any object that is hidden behind another won't be rendered. It seems intuitive, but really, blender renders anything inside your cameras view arc and clipping range whether or not it's behind another object.

There is a whole science behind game optimization, and youTube will probably be your best resource.


Why can I not render a displacement map animation?

Baked the dynamics of the canvas, switched renderer to Eevee and it worked fine. =/


Selecting a curve by its name with a Python script

Yes its possible.

This is an excerpt from an older, non latest version of Blender script.  The relevant part may still work. Note the find function.  You can see the name of the curve in the FCurves Editor Panel.  Note curves may have an index X in the set [0,1,2].

object_bq = bpy.data.objects[name]
test = object_bq.animation_data.action if (None != object_bq.animation_data and (None != object_bq.animation_data.action)) else None;
if (test):
    fc = object_bq.animation_data.action.fcurves.find("Some Curve Name Visible in the FCurves Editor Panel");

fcurves.find

https://docs.blender.org/api/current/bpy.types.ActionFCurves.html?highlight=fcurves%20find#bpy.types.ActionFCurves.find


How to restrict certain lights from shining through specific materials?

You can achieve this with Light Paths by detecting which lamp is being used for a Shadow Ray and change the material's shader between opaque and transparent.

I set up a scene similar to your example :

This consists of a 'wall' with a circular opening (with a solid border to the opening), a Spot lamp (green) and a Sun lamp (red). If I understand your question correctly you're looking to make the 'wall' be invisible to the camera but still block light from the green spot lamp - but allow the light from the sun through.

Blender essentially renders the scene by tracing rays from the camera out into the scene until they interact with a mesh. At this point blender 'bounces' the ray and also checks which lamps would be visible from that point. The Light Path node allows us to determine which of these rays is currently being calculated. For example, by mixing the material between a Diffuse shader and a Transparent shader based on the 'Is Camera Ray' property we can make it invisible to the camera and yet visible for other interactions - for example, a reflection or for the determining of shadows.

Additionally, we can use the Geometry node's Incoming property to determine the direction in which the ray has arrived at that surface point.

In order to make an object effectively invisible to just a single lamp we can calculate the direction of the lamp in relation to the point on the surface of the mesh and compare that to the direction of the Incoming ray - if the two match (or are close enough) we can deduce that that ray originated from that particular lamp, and decide whether to consider it for shadows or not.

To achieve this we first need to get the coordinates of the lamp - either by manually copying and pasting the coordinates into a Combine XYZ mode (fine if the lamp isn't going to move in the scene) or by way of Drivers - so that if the lamp moves the coordinates in the material are similarly updated.

We also need to be able to transform the Object coordinates into World coordinates (the object location and the Incoming vector are both in World coordinates). This can be done using the Vector Transform node which is described in How is the vector transform node used

Here's the material :

This takes the Object coordinate of the point being considered on the surface and uses the Vector Transform to convert it into World-space coordinates (convert from Object to World). The Combine XYZ captures the location of the lamp (using Drivers - hence the purple fields) and this is subtracted from the location of the surface point - resulting in a vector of the direction of the lamp from that surface point. The Dot Product is used to compare the direction of the calculated vector with the Incoming ray - with both vectors being 1 unit in length (which is what the Normalize vector math node is doing), the result of the Dot Product will be purely dependent on how close in direction the two vectors are - if very close to 1.0 they are in (almost) the same direction, but anything less than 0.999 means they are not in the same direction. The Minimum and Maximum then simply combine the 'direction', Is Camera Ray and Is Shadow ray in a way that gets the desired behaviour (ie, if 'direction is the lamp' and 'is shadow ray' or 'is camera ray' then make it transparent).

This produces the following result :

Blend file included


you just assign a material as you did before like this:

result:


Glare on transparent background using Cycles

This is not my solution, I have this saved on my drive, but I cannot find the original post either.


How would I save my objects as-is in the middle of a rigid body simulation

The option you are looking for is 'Apply transformation' button under the physics tab in the toolbar of 3D view.

Select all the broken wall pieces and 'Apply transformation', when you are on the desired frame. After that, while all the pieces are still selected, click on that remove button. This removes the physics on these objects.You can join all these pieces with 'Ctrl + J', if you want to make them into one object.


Texture Painting not working with a blank image

Your issue is the blend mode you're using. When you paint with the add blend mode, it doesn't effect the alpha channel at all. So if you paint on transparency, it's still transparent. When you paint on a part that partly transparent, it only effects the color, and the opacity stays the same.

The solution is to instead use the mix blend mode. Instead of adding to the values of the image like the add blend mode does, this mixes the two values.


You can try adding a mirror modifier. If that's not working, you have a couple options:

Make sure you're mirroring on the right axis.

Make sure your object is centered. push shift+s> select "cursor to center." Then, in the tools panel (object mode) go to "set origin">"Origin to 3d cursor."

If you don't want to use a mirror modifier, you can select the object and push shift+d to duplicate it, then move it where you want.

As far as texturing goes, that really depends on what exactly you want done. I'd recommend doing a google search for BlenderGuru's texturing videos, I'm sure you will find them insightful.


Make another object invisible from Boolean for OBJ ewport

You haven't selected Selection only when you export .obj-file.
Select your object. Select File -> Export -> Wavefront (.obj).
Check Selection Only checkbox and press Export OBJ

To fix the topology you need to make sure that there are no overlapping edges.
You can see your object wireframe by checking Wireframe checkbox under Object Properties panel from Viewport Display. You should check this to your object (The Cube).
From same panel change Display As to Bounds for your cutter (The Sphere). This way you can see if there are overlapping edges. Raise or lover the sphere so the edges are as far from each other as possible.

And also .obj export is not very good with quads so you need to make all your faces into triangles. Select your object and in Edit Mode press A to select all. Select Face and Triangulate Faces.


render frames stuck at single frame but frame no. goes on

Could be bugs. I experience that when using SkyTexture for the environment, it just sticks on rendering frame 1. Changing environment to an other background like HDRI solved my problem.


Multicolored outlines (For Blender Render)

With the Freestyle rendering option enabled, you will find the Freestyle Line panel showing up in the Material properties window.  The color selector in this panel allows you to choose a line color associated to the material.  The line color can then be referenced using the Material color modifier in the Freestyle Line Style panel in the Render Layers properties window.

At material boundaries, you might want to use the Priority parameter in the Freestyle Line panel to give a precedence to one of two competing line colors at material boundaries.  A post in the Freestyle development blog details this feature if you're interested.


How to make camera copy the current 3d view?

Short answer is "no." ctrlalt0 is as close as you're going to get. It's not perfect, but it'll get you pretty close. From there, using gandalf3's recommendation to "Lock Camera to View" is probably the best way to refine it from there.


Normals (except for normal maps, and some really strange formats) are always stored one-per-face or one-per-vertex. The renderer will calculate a normal for each pixel at display-time, but that normal is not stored in the mesh.

Smooth shading (interpolation) does not add data to the mesh, which is why it's so desirable. It is like a "post-processing" step. When rendering a given pixel (smooth shaded or not), the renderer has to use the normal to calculate incidence angle, to get a shading value. If smooth shading is off, then it just uses the normal that's stored for that face to calculate the incidence angle. If smooth shading is on, then it calculates an intermediate normal for that pixel that's a "blend" of the face's normal and the normals of the adjacent faces. That temporary "in between" normal is used to calculate shading for that pixel, and then discarded. Those "in between" values aren't stored anywhere. They're always calculated at display-time.

Some file types have a flag that indicates whether the receiving system should do this interpolation or not, but it's up to the receiving system to actually do the interpolation. That interpolation doesn't get stored in the mesh.

Some file formats (like OBJ) do store smoothing groups, but that only describes the borders where hard edges should NOT be smoothed.

More information on Smoothing Groups.


What is the box that appears around this mesh in edit mode?

What you're seeing is the original mesh - the cube. In the tutorial they add a Subsurf modifier and the cube immediately turns into a low poly sphere. However, the modifier has not been applied to the cube, meaning the original cube geometry still exists, which is what you see when they enter Edit Mode.

This allows you to move the original geometry of the cube and see the Subsurf result update in real-time. The original geometry is called the Edit Cage when there is a Subsurf modifier present.

Here I have added a Subsurf modifier to Blender's 'Monkey' mesh. You can see the original, low-poly cage (the black wires) around the smooth Subsurf geometry (the grey surface):

So, in short, it was simply changing to edit mode that made the box (the original geometry) appear.

You can read more about modifiers, how their results are displayed in the viewport and their visibility options, here.


Replicate zirconia material in blender-cycles (tooth material)

I've given a try to your tooth, basically it's a mix between a Diffuse and a Glossy node, then a bit of Subsurface Scattering to give it a bit of depth and transparency. Add a Noise Texture to give it a bit of bumps, scale it on the Z axis as the strias are rather vertical. You could also try a bit of Transluncency at the end if necessary.


Snap to active

While in Edit mode, change the snap to Vertices and select Active option. As stated by the Blender referece manual's page the snap target options:

  determine what part of the selection snaps to the target objects.

In particular the Active option:

  move the active element (vertex in Edit mode, object in Object mode) to the target.

Select the geometry to move and set the wanted vertex as active (should become white instead of orange).

Now you can use the active selection as pivot point to snap the selected geometry around.

Another method could be to move the origin of the object to a specific 3D cursor location and use it as your pivot point. In object mode, Active option is infact referring to the origin of the active (bright orange) object of the selection (dark orange)

Both methods above are quite fast, but they both have the disadvantage of messing up your initial object origin's location.

If you are interested in keeping the orign in it's relative coordinates from the geometry, I would suggest to use a third "dummy" object that would be your temporary pivot and delete it when the trasformation is over. You can use for example the Hook to new object command to quickly create an empty upon the selected geometry.


How to difference a cylinder from the car body using Boolean modifier?

My guess is that you are getting a result like this:

When you want a result like this:

For this, you need to use the following modifier stack for the wheels and apply all of the modifiers in order, top to bottom, for the car.


You could have a look at Blend4Web WebGL solution. You may find it interesting. Using it you can make interactive 3d content that can be viewed in 3d in web browsers. You could bake a more complex lighting to textures using Cycles.


How to make objects in the scene become physically smaller the further they are from the camera?

You can do this by drivers.

Right click on Scale X property and Add Driver > Manually Create Later (Single).

Go to Graph Editor and switch to Drivers mode.
Draw a line like this: (this line will show dependence between distance and scale)

In Drivers tab change value to distance, select both objects in Object 1 and Object 2 inputs and swich Type to Averaged value

Update Dependencies. You will see that x-scale now depends of distance between objects:

Finally copy y and z scale from x. Paste #self.scale.x in Scale Y and Z

To makes this work, you need to enable Use self in Drivers tab on Scale Y and Z channels.

Update Dependencies.


Image texture passed through emission shows up in render window, not in camera view, shading window or final render

Alright so I found the answer to my own question. The issue was with camera range ! And it is because the shading mode had camera view activated in the preview window that it did not show there either.


Camera orbiting where ever i drag my mouse

You have probably checked the Auto Depth option in the preferences. Uncheck it and you should be fine.


I don’t know much about volume rendering but you can check out https://youtu.be/kYv3ZIlb_sU this guys videos about nebulae and volume rendering with eevee (actually pretty good).


Remeshing creates no subdivision of volume, just a sampled surface.

There is a 'Grid' option in particle systems, that enables you to set a resolution of the grid intersections, and the size of the objects placed on them.

If, rather than re-meshing, you make your object into a particle emitter from volume,  and set a cube as the particle dupli-object, you can voxelize it.

In the example here, (we're on frame 1 in the timeline)  Suzanne is the emitter, and a cube is duplicated to the particle system. All the other particle settings are at their defaults.

If you go to Suzanne's modifier stack, and hit 'Convert' on the particle system, the particles become real instances of the cube. Here I've scaled out all the positions of the cubes so you can see the inside ones...

In the Particles > Emission panel, the 'Resolution' setting divides the longest side of the bounding box of the emitter, and the 'Size' field of the Particles > Render panel will scale the cube-dupli.. (probably best set to 1).

So to make your voxels exactly fill an emitter whose bounding-box longest side is 3.5, with Resolution set to 10, and Size set to 1, your cube would have to be 0.35 on the side.


how to create a 3d mosaic out of a 2d image

The only automation you can have is to translate the brightness value of every pixel into a height map, setting it as texture in a displace modifier on a highly subdivided plane. The result is quite random because of the problems Martin Z said. In my example we have 1.500.000 vertices.


Cannot rotate or scale imported .obj from Sketchup

You may have accidentally lock your transformation here? If not upload the file so we can look into it? Another reason why models can't move is that it's a child of a parent object. If the vehicle comes with a rigged system ... I believe it could be the problem. You can try to break the parent-child link by Hitting the Alt + P and select "Clear Parent"

Clear Parent Menu


How can I change a property on a shared material depending on the object?

One way you can do this is to utilize the object's Pass Index located in the Object Properties tab under Relations. Set the Pass Index to whatever scale multiplier you want per object.

Set up your material to use the Object Info > Object Index output as the input to Mapping > Scale.

You will now have one material scaled differently for multiple objects.


Cycles render engine is not rendering anything

your camera is pointing to nothing... if you press numpad 0, you see why you get that "empty" render...

select the camera and press CTRL + numpad 0, you now see the selected camera points to the scene objects, then hit F12, you get what you expected:

update

here's the result after appending all object and actions from your file into a blank new file


Automatic Weights doesn't work well on a cloth simulation mesh, but works perfectly on a handmade one

Ok, so if someone is in the same situation as me, I found a way to make the Automatic Weights work: you must  apply a remesh or some kind of modifier which will change the mesh, for example: I applied a wireframe with very low thickness, merged all verts automatically with Auto Merge, rebuilt all faces with Mesh - Clean Up- Fill Holes; and now it works perfectly. So now you end up with exactly the same mesh, but the Auto Weights will work.
Probably there is a much simpler and sophisticated way to do this, but this way works.


When exporting hard surface models from Blender to other formats it's almost always the case that you get "weird" shading or even distortions due to smoothing.

One method to prevent that is using "Auto-Smooth Normals" in the Object Data panel.

The two pictures show the same model in Blender and in FBX Review, the first one without "Auto-Smooth Normals", the second one got exported with this option activated.

You can read more about Smoothing in the Blender Maual.


How to make particle animation intensify as an empty comes near?

Weights on a lattice.

Armature controlling lattice and lattice controls particles.

Particles can be affected by a lattice.  This might prove to be the least CPU resource consuming.  Lattice can be affected by armature or shape keys et cetera.  Higher UVW specifications may produce more controlled effects.
Particles can be affected by forces attached to an empty.  You can use an effector group to minimize force calculation


How Can I Deform a Cloth During Simulation?

Use a hook modifier with pinned vertices.

First, add the vertices you want to use to move the clot up to the same group as your other pinned verts (the ones that hold the cloth at the waist).

Now you need to add a hook object like an Empty in the region you want the cloth to move.

To your cloth add a hook modifier. Select the hook empty and the pinned vertex group. Set the radius to something small so it doesnt interfere with the sim until you need it to.
Make sure the hook is above the cloth modifier in the stack.

Let the sim run.

Once it gets to the point where you need to manipulate the cloth, move the empty and the vertex group will be "pulled" alongside the empty.


Deform a complex pattern along a 3d path, maintaining vertical

One way to do this is to use the mesh deform modifier. The modifier works similar to a lattice but will give you much better control and much smoother deformation in this case. Here's how you could go about doing this:

Use an array modifier or whatever you need to get the railing to the approximate length for the curve.
Use a cube and create a box that fits around the railing closely. Add a number of edge loops to the cube on the long edges.
Create a Base Shape key and then add a second.
Add a Mesh deform modifier to the railing and select the cube you just made. The default settings should be fine so click bind. Depending on the complexity of the meshes this may take a bit.
Select the cube and make sure you have the second Shape Key selected (not the basis one). Now go into edit mode on the cube, and make the mesh follow the curve of the stairs. The cube should now deform the railing like a lattice does. If there are any parts sticking through the cube or not moving you can unbind the modifier, make the cube a bit bigger and rebind it. All of the railing will need to be inside the box for this to work.
When you leave edit mode, because of the shape key, the mesh will snap back to the unedited state. Slide the slider to 1 and it will move back.

The reason I think a shape key will help you here is because you may need to add more edge loops to the cube or adjust the length of the railing at some point. Whenever you change the number of vertices on either object the mesh deform modifier will have to be unbound and rebound. If you didn't use a shape key you would pretty much have to remake the cube or try to reposition it back to the original shape.


How to solidify photogrammetry model by filling it from inside?

Try going into edit mode after selecting the model. Press E and then Z to extend only in the z direction. Now, if you want the bottom to be completely flat, press S, and then Z to only scale in the z direction, and then type 0 on your keyboard.


How do i correctly merge 2 edges that are have been mirrored?

What you can try is take an empty axis in the middle of your end of the 1st half of the car and mirror it accross that axis using a mirror modifier. (Axis not to be in middle of whole body but at the middle of edge where your car is cut half). don't forget to select the 2 axis across which the car would make sense.


Oh gosh, I spent ages with it. On the pictures you posted it looks particularly nice because of lines are actually spirals. If they were straight it won't look nice. On your picture pole doesn't have quads and also has a lot of adjacent edges. So if you don't want this, maybe you can just stop (I would stop earlier) and connect the rest of the points using a different triangulation method?

In your implementation there is same distance of fib between each pair of vertices you connect. So the question comes when index + fib is larger than number of vertices. Where do you want to connect the rest of them?

This is what I get for k = 7.

And this for k = 9.

This is the bit I changed. But I am no expert in either bmesh nor bpython, so maybe you can polish it.

# make mesh using 9th and 10th fibonacci numbers
fibk = 7
bm = sfmesh.bm
bm.verts.ensure_lookup_table()
for i in [fibk, fibk + 1]:
    fib = F(i)
    print("Fib number ", i, fib)
    for k in range(-fib+1, n-1 ):
        for i in [k, min(n-1,k + fib)]:
            try:
                bm.edges.new([bm.verts[max(0,k)],bm.verts[min(n-1,k + fib)]] )

            except(ValueError):
                print('duplicate')

1) Also you can find code  here which produces this, maybe it will be useful.

2) Also look at this post which leads to this solution:

It seems there are in general not many ways to make a nice quad mesh of a sphere.No matter how you do it, there always is going to be a seem. I think 1) and 2) two are basically the main solutions.

Bo, if you want Fibonacci I would go with 2),so cut it off and close it as they did, if you want regular - with 1).


Yes, using texture baking.
The workflows are slightly different depending on the render engine you are using, but here's how to do it in cycles.
A screenshot just to show how things are initially:

Create a new UV map in Properties > Object data, then with it selected, edit or re-unwrap to make the second UV map layed out how you want it:

Create a new image to bake to by pressing ⎇ AltN in the image editor, or by pressing new in header > Image:

Add a texture node to your material(s), set to the image you want to bake to.

Connect the texture you want to bake from with an emission shader and set hte bake type to emit. Then with the new UV map still selected in Object data and the target image's texture node selected in the material node setup(s), press Bake:

After it's baked, remember to save the image. F3 to save it to disk, or header > image > Pack as PNG to pack it into the .blend as a png.


Override the Save Mainfile operator
Similarly to Add prefix to filename on "Save Blender File"  which on a quick parse could be given the standard CtrlS shortcut.
Another method is to override the save operator and simply pass the converted filepath to the save as operator.  Proof of concept code below. Simply prints the filepath to be "rejigged" and saved.  Notice how it becomess the operator in the menu and called by shortcut.
Below is the export operator from the templates rejigged to override "wm.save_mainfile"
import bpy

from bpy_extras.io_utils import ExportHelper
from bpy.props import StringProperty
from bpy.types import Operator

class ExportSomeData(Operator, ExportHelper):
    """This appears in the tooltip of the operator and in the generated docs"""
    bl_idname = "wm.save_mainfile"  #
    bl_label = "Save..."

    # ExportHelper mixin class uses this
    filename_ext = ".blend"

    filter_glob: StringProperty(
        default="*.blend",
        options={'HIDDEN'},
        maxlen=255,
    )

    def execute(self, context):
        print(f"Call save as, rejig {self.filepath}")
        #bpy.ops.wm.save_as_mainfile(filepath=self.filepath)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

This ofcourse won't help if a user chooses save as instead and uses an uppercase filename.


In blender 2.79 in the splash screen and the input preferences you can find a choice between blender, Max3D and Maya. These are not "modes" but collections of keyboard shortcuts setup to mimic other 3D applications. They are to help users who are familiar with other software to start using blender without having to learn new shortcuts.


Inverse Kinematics to rig a Truck with a Trailer

Have a look at the following blend file:
https://nofile.io/f/xHeoevF0kwr/car10xxx.blend


Why my rendering slows down and stops at an arbitrary frame?

I recommend always render to image files (preferably OpenEXR). Once the rendering is done, you can easily encode the resulting sequence into a movie clip like .mp4 or .mov using ffmpeg, Davinci Resolve or even Blender's VSE.


Possible solutions:

Make sure you have your mask selected from the drop-down in the Mask node
Make sure your output is not only connected to the Viewer node but also to the Composite node output. Ensure that "Use Nodes" at the bottom of the Node editor is checked.
Make sure the mask layer you are using is enabled to render

Please update with more information if this does not solve your problem.


The interface for material looks different than the one on tutorial

OK I found a comment about something called Cycles mode. I don’t know why but apparently you have to switch it to Cycles Render.

There is a menu at the very top of the window. This was not explained in the video. I would love to know more about why it's different or what this means!


Looks like you have view clipping issues. In your properties panel on the right-hand side of the viewport (N) you should see a 'View' section. I suspect you have set the 'Clip Start' and/or 'Clip End' to an extreme value. Try adjusting those to something realistic to your scene (eg, 0.001m Start, 1000m End).
Blender uses the Clip Start and Clip End in calculating distances but only has a limited precision for holding and calculating values. If you use extreme ranges Blender is unable to calculate intersections and edges accurately and you see artifacts such as what you are seeing. By choosing a more reasonable range Blender can apply suitable precision and the artifacts are no longer visible.


how change mesh and vertex and edges color

You can adjust the colors in User Preferences>>Themes>>3D View.


Make Mist pass skip semitransparent objects

Create a new render layer in which the material is overriden by some material that has no transparency, and enable mist for that render layer. Then use the mist pass from that layer to combine over the other layers.

(click on the image to enlarge)


How would you create a hole in this face?

If you can afford the polygons generated by subdivision-surface modelling, there are a lot of advantages in keeping the initial poly-count as low as possible, and modelling the hole in the flat...

... working with geometry something like the above.

Inset region
Slide some edges about to make a vaguely circular region of the inset
Shipped add-on, Loop Tools > Circle
Inset again, and delete the hole
Cut in half, maybe make a cut or two to get rid of the poles created by the insets, and slide verts for better flow.

Now you're all set up to modify on the stack:

Mirror in X and Y
Solidify outwards
Bevel by angle, to hold the..
..Subdivision Surface.

The result is a handle with only 25-odd faces to look after, making it easy to adjust. You can change the size of the holes, the depth and curvature of the handle, and of its rounded ends.. all sorts, with simple selections and moves.
Personally, I would even model this way for low-poly; applying the modifiers, and knocking out loops where that does not damage the curvatures too much.


Open Shading Language

You can enable OSL in the render tab of the properties panel.

Create a text either externally or in Blender, write your
OSL code in that text and save if necessary. In the node
editor, add a script node and select the mentioned text.

Based on the Blender manual using trace in this case is OK.

Simple depth

These shaders need only one trace per sample and get
precise values. Can be used anywhere without any bias.

Normal dependent depth

shader depth(output float depth = 0) {

    if(trace(P, - N))
        getmessage("trace", "hitdist", depth);
}

You can use this code to get the depth along the normal of the surface.

View dependent depth

shader depth(output float depth = 0) {

    if(trace(P, - I))
        getmessage("trace", "hitdist", depth);
}

You can use this code to get the depth from the point of view.

Plugging in the proper function of this depth to a transparent
shader you can create a uniform volume absorption for example.

Stochastic depth

These shaders trace one random direction per sample which average
out over the rendering process. The output of these have to be used
carefully: They can be used to mix colors or shaders and probably
well enough as the roughness of a glass for example. But they can
not be used for a color ramp with lots of color stops for example.

Mathematically: They are unbiased if the resulted color of
the sampled pixel is a liner function of the depth value.

I could add multiple sampling, which would dramatically reduce
the bias for those non-linear cases, but using those would slow
down rendering. I will write those versions if you ask me to.

The random

float random(int seed) {

    return cellnoise(P * 732283.511 + seed * 138257.835);
}

This is a position dependent direct seeded pseudo-random number generator.
Somehow I did not get too much luck with the built-in random function.
Works because the position is already pseudo-random with small variance.

Uniform depth

float random(int seed) {

    return cellnoise(P * 732283.511 + seed * 138257.835);
}

vector hemiRandom(vector direction) {

    vector result;

    int seed = 0;

    do {

        result[0] = random(++seed) - 0.5;
        result[1] = random(++seed) - 0.5;
        result[2] = random(++seed) - 0.5;

    } while(dot(result, result) > 0.25);

    if(dot(result, direction) > 0)
        return result;

    return - result;
}

shader depth(output float depth = 0) {

    if(trace(P, hemiRandom( - N)))
        getmessage("trace", "hitdist", depth);
}

This takes every direction equally into account.

Semi-mathematically: Every direction inside the mesh is sampled with the same chance.

You could considere this as one general view independent depth.

Lambert depth

float random(int seed) {

    return cellnoise(P * 732283.511 + seed * 138257.835);
}

vector lambertRandom(vector direction) {

    vector result = 0;

    int seed = 0;

    do {

        result[0] = random(++seed) - 0.5;
        result[1] = random(++seed) - 0.5;

    } while(dot(result, result) > 0.25);

    result[2] = sqrt(0.25 - result[0] * result[0] - result[1] * result[1]);

    vector a = 0;

    if(direction[0] == 0) {

        a[1] = direction[2];
        a[2] = - direction[1];

    } else {

        a[0] = direction[1];
        a[1] = - direction[0];
    }

    vector b = cross(a, direction);

    return result[0] * a + result[1] * b + result[2] * direction;
}

shader depth(output float depth = 0) {

    if(trace(P, lambertRandom( - N)))
        getmessage("trace", "hitdist", depth);
}

Takes depths towards the normal more into account, the same way a transulcent shader samples the light of its environment.

Mathematically: The density of the random is linear to the dot product of the sample and the normal.

You could considere this as another general view independent depth.

Rough depth

float random(int seed) {

    return cellnoise(P * 732283.511 + seed * 138257.835);
}

vector roughRandom(vector face, vector direction, float roughness) {

    vector result;

    int seed = 0;

    while(1) {

        result[0] = random(++seed) - 0.5;
        result[1] = random(++seed) - 0.5;
        result[2] = random(++seed) - 0.5;

        if(dot(result, result) < 0.25) {

            result = normalize(direction) + result * roughness;

            if(dot(result, face) < 0)
                return result;
        }
    }
}

shader depth(float roughness = 0, output float depth = 0) {

    if(trace(P, roughRandom(N, - I, roughness)))
        getmessage("trace", "hitdist", depth);
}

This is a poor roughness model but could be good enough for your use.

This is general view dependent depth with roughness control.

Nodes

These are the nodes used for the renders:


You can expand the base colour tab in the properties panel and check on cyclic. That seems to work and the video plays on loop. Hope that helps.


Cannot left click+Drag and select multiple objects

Just a thought. And this is probably way late. Hope you figured it out if I am wrong. But make sure that you have the "modeling" option selected at the top menu


How to control the number of particles with a custom slider

Add an update function to your property which would be called whenever you change the that property :

def update_particles(self, context):
    bpy.data.particles['ParticleSettings'].count =bpy.context.scene.mycount_particles

bpy.types.Scene.mycount_particles = bpy.props.IntProperty(
    name = "particle count",
    default = 300,
    min =0,
    max=10000,
    update = update_particles,
    description = "particles number of the first particle system"
    )


Boolean usually is an approximation of the result you are expecting. It has some flaws by default and has a hard time dealing with two geometries that perfectly overlap, non-manifold geometry, etc. It also has a hard time dealing with n-gons which often occur on beveled meshes and meshed text-objects.

A good way to start is feeding triangulated geometry into the boolean modifier and leaving a good amount of space in between the meshes you are trying to difference from one another. This way the geometry is unique and cannot be interpreted in multiple ways by the boolean modifier.

I personally look at boolean as the absolute last method to achieve any desired geometry. I only use it if any other solution fails. It does not output clean and predictable geometry and usually needs a considerable amount of clean up.

e.g. you could solve your first shape like this:


How to make the Camera rotate more than one time?

Double turn around a circular path -

Add a curve --> circle.  Set your total frames in the timeline to say 250.

In the path's geometry properties, set the "Frames" to 200.

At frame 1 keyframe the path's Evaluation time" which should be showing 0.000

Take the timeline cursor to (e,g,) frame 240.

In the Path's properties, set it's "Evaluation" time to twice that in the 'Frames' slot. (400) and  keyframe that.

Set an empty or other object to follow the path.


Weird mesh deform when in object or pose mode

I fixed it by locking the IK rotation on the x-axis. The tutorial I was watching when I made the armature had me do otherwise.


iteratively key shape keys only on active object

Will this do?
import bpy

frames = bpy.context.scene.frame_end + 1

# For the active object...
ob = bpy.context.active_object
me = ob.data

# Remove ['Basis'] from a shallow copy of *ob's* shape-keys list.
kblocks = dict(me.shape_keys.key_blocks)
del kblocks['Basis']

# Keyframe shapekeys' values to 1 for the frame corresponding
# to their position in remaining list, 0 for other frames
for f in range(frames):
    for i, kb in enumerate(kblocks):
        kblocks[kb].value = (f == i)
        kblocks[kb].keyframe_insert("value", frame=f)

This may get burned down by a proper Pythonista.. :)


how do I modify my topology to follow the path I want instead of what it already is?

For proper Retopology, it is recommended to keep the original mesh as a mere foundation of the shape. And then start with a new object from scratch and apply the desired topology.

Here is a relatively easy way how to do good retoplogy without using any third party addons:

Step 1: Create your Base Model. The Toplogy is unimportant at this point. It also can be a sculpted mesh with a high polycount. But make sure it does not slow your system too much down:

Step 2: Create a new object and open the edit mode.

Step 3: Enable "snap during transform" and set it to "Face"

Step 4: Select a vertice point and hit G. Snap it to the desired position.

Step 5: Form the desired shape of your topology.

Step 5: Continue to form the topology and connect edges.

Step 6: Go on until you are done.

Also here is a list of some good topology references: https://de.pinterest.com/demons_fate/mesh-toplogy/


one side of image as plane is normal, the other is white

Your plane is white on one side because of light shading. If you do not want your plane to be affected by light, set the Specular of the Principled BSDF to 0. This makes the plane not reflect any light.


For silhouette outline is usually used Freestyle, but it is not working with Hairs. Since Freestyle is post process effect anyway, there is even probably faster to use Compositor to calculate this effect.

You can try some node tree based on object separation - like Index OB or Cryptomatte and create outline with Sobel, InPaint, Dilate-Erode kind nodes.
Option 01
For few objects you can arrange it with Index OB node and Sobel node to generate outline.

Option 02
For more complex scene Cryptomatte works better, since you can generate outlines for all objects at once from Pick output directly. You don't need to select them one by one ... just reuse random colors of Pick output.

Note: Sometimes Filter node (like Sobel, Perwitt, ... type) generates from Cryptomatte's white color filled place, Increasing Fac over 1 fix that. I would say it is because Cryptomatte's Pick colors represents more dynamic range than Filter node can handle. Using this socket directly is not proper way of using it, it is more a hack so that is why I had to use Math (Greater Than) node because direct use handled white color in a wrong way again. Greater Than node clamps high values.


You can manipulate the coordinates of any texture. The coordinates are like gradients going from 0 to infinity in x, y and z axis in positive and negative(from 0 to negative infinity) directions. You can separate them and then you can repeat a part of each one using maths - modulo operation in this case and compensating for the 'intensity' apropriatley. You can then draw a circle by taking a section of a spcherical gradiant with 'greater than' maths operation. This might make more sense if you have a look at the nodes:

Here is the .blend file:

Other shapes get more complicated, however you can construct whatever shapes you imagine using math and existing nodes. If you are interested, you can have a look at this other example with pentagons. Obviously, there are many ways to make patterns with pentagons and since you have not specified what you want exactly, this is just an example that might help you come up with a way to achieve what you need:

It might be a lot easier to draw shapes in an image editor or render them out with Blender to use as image textures instead of choosing the procedural way. It is possible to mix bitmap images with procedural textures any way you wish as well.


Why aren't my nodes showing up in the shading tab?

Choose your material, and in the shader workspase go to view-view all
EDIT: For me it was View:Frame All in the bar above the Nodes


I make an action editor animation using keyframes, I save and quit, then when I open it back up, my animations are gone

Any action that is not assigned to an object is automatically deleted by the garbage collector after a certain amount of time.
To prevent any of your unused actions from disappearing, use the Fake User feature (shield icon) to permanently keep the certain action in your blend-file's data memory.


Right Click selection selects everything and not just 1 thing

Like bertmoog already said in his comment, the "human" in your scene is a single object, which you have selected.

To edit the vertices, edges and faces, you have to switch into edit mode bypressing Tab or by using the menu in the bottom left corner.

If you want to seperate the single parts of your "human object", you have to enter edit mode, press P and select "By loose parts"


From the information given, it seems you are trying to use dynamic rigid bodies with keyframes, but haven't set them up to allow the animation system to take over the simulation. There is a difference between the two setups, so I will leave a basic example of of how this can be done:

First the difference between the two:

Dynamic rigid bodies-

strictly controlled by physics:

Animated rigid bodies-

controlled by the animation system until you change this!:

Here's how to set it up:

1. Add a rigid body simulation. Active, and dynamic, and select
    animated. Also, use the collision margin, and set this fairly high. The limit is 1. Do this for both objects. You can also play with the mass options if you like. Also, apply transforms with Ctrl+A>rotation & scale

2. Insert a location keyframe at frame 1 for each object with I>location.

3. Select and add a keyframe to the animated checkbox in the physics panel at the same
    frame the simulation will begin by hovering over the checkbox and pressing I.

4. Set your end keyframe for the collision of your objects, and again choose location, or what whatever is applicable to your needs.

5. At the frame following the collsion uncheck the animated
    option in the rigid body options for each object, and set a new
    keyframe.

From this you should be able to expand and make many interesting simulations from colliding cubes to anything else.


Your texture is  not tileable, that's why it doesn't scale well: to make it tileable you can import it in Photoshop or Gimp, apply the "offset" filter at half the resolution of both X and Y dimension (1120 x 787 in your case), and use the stamp and/or the healing tool to eliminate the seams crossing. Pay attention not to touch the border of the image, or you will have to redo the operation.
When the texture is seamless you can generate the relative normal map (i.e. with the Nvidia free plugin for Photoshop, or free online sites), or use a black/white version to control a "bump" node.

In addition I suggest you, instead of fixing the ratio between Diffuse and Glossy (0.1) to plug a "Layer Weight" node (Fresnel output) and control the amount of glossiness with his control: this adds some Fresnel effect, more glossiness at the outer border of the sphere (relatively to the point of view), which helps beliavability of every material.


Trying to Move 1 Selected Object in Blender Drags Other Faces It's Touching

Disable the Proportional Editing button on the bottom horizontal menu bar (a blue sphere icon)


Steps:

First of all activate LoopTools add-on in User Preferences, than:

CTRL+Shift+B to Bevel vertices.
MouseWheel to add more cuts or press F6 to see menu with Bevel options.
W > LoopTools > Circle.
CTRL+Num -  to select less.
X > Delete Vertices.

Edit:

For OP model holes will have different number of vertices. But besides that everything is working just fine.

As a workaround you can first select vertices with 3 connected edges and make for example 5 Bevel cuts: 3 edges x 5 cuts = 15 vertices.

Than do the same thing with vertices with 5 edges connected with 3 cuts: 5 edges x 3 cuts = 15 vertices.


Video texture not rendering correct on different pc

I wasn't aware of this before but as mentioned below, Blender doesn't pack video files.

One solution would be to manually copy the avi file alongside the .blend-file.

Another would be to use the .png files that was supplied with the avi as an image sequence.


Everything is rendered black, when I set it to be a gradient

The gradient material isn't assigned to any of the cubes; they just have a default diffuse material:

To assign your gradient material to all of them:

Select all the cubes (I used border select (B) to do this)
Set the material of the active object in Properties > Materials
Press ⎈ CtrlL> Materials to link the active object's materials to the selected objects.


The process that I've seen is combining each image in Blender via a Mix node, and using a mix percentage based on [INCORRECT]---- how many images are being combined (in the example he uses 20% since there are 5 images) ----[/INCORRECT]. See the attached screen shot from Kent Trammell's tutorial on CG Cookie.

EDIT: Actually, Ben Simmonds corrected Kent's math on this tutorial. Here's a quote from Ben on the page:

  HI Kent. I think your math was incorrect for those mix nodes. If you
  think about how each image contributes to the final comp, the first
  image node in that chain is contributing 4x more than the 2nd to the
  final image (0.8 vs 0.2). The correct values for the mix nodes in such
  a chain would be as follows:

  1st and 2nd: 50% (1st plus 2nd) and 3rd: 33% (1st, 2nd and 3rd) and
  4th: 25% (1st through 4th) and 5th: 20%

  If you were mixing the images all at once then the 20% per image value
  would be correct, but the math is slightly different for mixing them
  pairwise.

  Alternatively, the simpler option would be to ADD all of the images
  together, and then divide the pixel values of the resulting image by
  5.


The script has a few issues, first indentation seems not correct and seems to cause the error (could be caused by copy and paste).

Python relies on the indentation of code because it doesn't use braces to separate code segments syntactically.

Before a class can be registered as an operator the class must be inherit from bpy.types.Operator or bpy.types.Menu (see the docs whether there're more options).

The socketserver constructor is not invoked.

Related:

https://stackoverflow.com/questions/3277367/how-does-pythons-super-work-with-multiple-inheritance
Blenders build-in text editor provides some examples of operators as Templates acessible from the Menu.


Is it possible to control the bounciness in Rigid Body?

I noticed it was a bug in Blender 2.8 Beta. Later it worked properly.


Glossy reflection using Principled BSDF is much rougher, why?

Too much Glossy Filtering

As said in the manual:

  When using a value higher than 0.0, this will blur glossy reflections after blurry bounces, to reduce noise at the cost of accuracy. 1.0 is a good starting value to tweak.

You are using a value of 4.0, that means you are strongly using the filtering for glossy bounces.

Use a lower values to lower the strenght of the blur applied.

That said, actually the principled glossy shader behaves quite differently in comparison with the mere glossy shader in the sensitivity of the filtering.


I can't seem to paint while using weight paint for character rigging

turn face selection masking off. (the blue one means it's on)


Yes, you could use multiple fluid domains with different viscosity settings. The trick is to bake into different folders.

The UI allows you only to have one fluid domain therefore you need to disable the first one after baking in one folder by setting its type to none. After that you bake the second one and re-enable the first domain.

NOTE: that the domains shouldn't overlap while baking (I'm not sure about that), I tried to reproduce the steps descibed here

The yolks volume was subtracted from the egg-white using a boolean modifier.

The result needs obviously some tweaking:


To solve this:

Delete all vertex groups of the mesh. To do this select the mesh then go to the vertex groups panel inside the Object tab and delete all groups as shown below:

Select your mesh first then select your armature as well using shift+ Mouse Right Click
Hit Ctrl+p then choose With Automatic Weights as shown below:

Your mesh will be parented properly with the armature with correct deformation as shown below:

Updated .blend file can be found here:


To add some noise to the strip add a noise modifier. A strip modifier works like an f-curve modifier but it applies the effect to all channels in the one instance of the strip.

Blender v2.78 moved the modifiers panel to a tab, earlier versions have modifiers located under the other properties.


Glass shows up black when I render it as a transparent png (no background)

Enable Film Transparent and Transparent Glass.


Why is there no outline in 3d View when I select an object?

Go to the Filter Menu and enable Selectable in the Restriction Toggles list:

See: https://docs.blender.org/manual/en/latest/editors/outliner.html#filter


How can the size of a .blend file be reduced?

There is an option when you save a .blend file, to compress it (uses a basic zip compression iirc).

There’s also an option to always do that by default, in user preferences, File tab, Save & Load section.


As @moonboots has commented, it depends on what sort of transition you want..
If you were using a sub-d modelling approach, you would keep your pre-subdivision topology to a minimum:

By having only 8 vertices in the circumference of the cup, you make picking a hole with a matching number of vertices from the torus relatively simple:

Allowing you to use Bridge Edge Loops to make your basic fillet. There's a certain amount of adjustment you can make in the tool itself.
After the bridge is made, you can tweak with tools such as:

The shipped add-on Loop Tools > Circle for the profiles, not forgetting it has an 'Influence' setting, allowing you to interpolate between rectangular and circular
CtrlB bevelling edge-loops, to tighten corners, create creases..
Vertex Menu > Smooth, use with care..
With 'Normal' as you Transform Orientation, and 'Individual Origins'as your Pivot Point, you can make tiny adjustments to individual vertices along their normals.

This shows a basic smooth join, after subdivision, (and a Bevel modifier by angle to sharpen the ridges in the cup):

By having the topology straight and simple, it's relatively easy to make variations, using, for example. simple extrusions of faces along their normals.


Why the inner edge line segments are drawn in freestyle render output

Freestyle does not account for face intersection at the moment.  Partially invisible edges due to an intersection with an occluding face may have a wrong line visibility, as seen in the render.  This is a known limitation.


Funny rotation differences between Quaternion wxyz and xyz Euler

I'd stick to the default setting - Euler XYZ. There may be nothing wrong with the quaternion button. Quaternion numbers are 'complex numbers' - I don't follow the concept, but they're 4D (ergo the W next to XYZ). That's probably mucking up calculations and data that were amassed and made to function in a 3D space.


First, we are going to compute what you might call the Accumulated Transformation of each matrix in the list, this accumulated transformation is simply the result of multiplication of all the matrices in the list before that matrix. This is done using this simple loop:

Notice that the Matrix parameter is initially identity matrix. Then we are going to use the same principle describe in this answer to animate between all the accumulated transformations as follows:


You can attach an image to the scale factor. It works pretty fine.

"..or into the scale factor of a mapping node, if the texture doesn't have its own 'scale' input" – Robin Betts


Adding an image to a plane as a reference

You can use the addon Import Images as Planes, after installation go to File > Import > Images as Planes, and now you should choose the photo. It will be imported as plane. With out need of you Unwrapping it.


gltf2.0 export ignores "Inherit Rotation" property changes

glTF has a straightforward node hierarchy, where children always inherit all of their parent's transforms.  It may not be able to exactly match Blender's options for things like "Inherit Rotation" specifically.
That said, there is an "Always Sample Animations" checkbox under the animation section of the glTF exporter.  This is on by default, and is intended to pick up the effects of all sources of animation, including Inherit Rotation.  If you think you've found a bug, check the issue tracker for similar issues, or file a new issue there.


Change of color after I join meshes with Ctrl+J

That's a normals problem. You need to flip normals.

Select the whole mesh in edit mode, then go to mesh, normals, and recalculate outside.

Refer to this:


How can I reverse too many subdivisions?

i found out. you need to do to decimate and then click un sub divide


_pickle.PicklingError: Can't pickle : attribute lookup Vector on builtins failed

Convert the vector to list

picklablePosition = list(owner.worldPosition)

and back

unpickledPositionAsList = [UPData[0],UPData[1],UPData[2]]
owner.worldPosition = unpickledPositionAsList # worldPosition accepts a 3-tuple list


Is it possible to copy this bevel over to another edge?

I think you should apply the mirror modifier on both the x and y axis. Then if you change anything on that edge it will apply to the others also.


Ensuring that blender is set to "Blender Game" mode, ensure that the "record animation" check box is ticked in the Game menu.

Then hit
P to start running the game (it'll probably run slower than normal). After the length of the animation you want to record has been recorded, press Esc to exit playing the game. Press left/right on your keyboard, and you'll notice a key frame has been added to each object for every frame of the animation:

(Also notice that if you play the animation using AltA now, the physics will run as it does in the game engine as the position data has been applied to the objects using key frames).

If you want to delete part of this animation or shift all of the physics animation in time, enter the dope sheet window like so:

You can select key frames by pressing B and drawing a box around the key frames you want to select. When doing so, ensure that you select the key frames of the object that you want to edit the animation of, and not X,Y,Z location and rotation as that will distort the physics simulation. You can ensure you are not doing so by clicking on the arrows so that these options are not visible:

After you have selected the key frames of the object you want to edit, you can increase/decrease the speed of the animation using the S key and make the animation of that object occur later/earlier in time using the G key.

You can also delete parts of the animation by box selecting the key frames you want to delete from the animation as outlined above, and pressing the Del key:

This will mean that the key frames of the object's animation you have deleted will not run (essentially cropping the start and end of the physics simulation if that is desired)


Is there away to export textures created with nodes to fbx?

No there is not, nodal materials are not supported (by any exporter afaik), this would require some generic work first to be able to 'translate' those advanced shading representations in the basic, 'fixed' shaders supported by FBX and similar formats (and results would likely not be that great anyway)…


how can i make light pass through an object in blender? (V. 2.92)

You should increase the radius of your point light until it's the size of your star (which will produce more realistic shadows) and then increase the shadow's clip start to make sure the star's surface doesn't occlude any light, but not too much so that other objects can cast shadows:


If you need the object for further operations it's best to do the duplication without the operator.

data_copy = bpy.data.objects["Cube"].data.copy()
obj_copy = bpy.data.objects["Cube"].copy()
obj_copy.data = data_copy
bpy.data.collections["Collection"].objects.link(obj_copy)
obj_copy.parent = bpy.data.objects["Cube"]


I actually fixed it by re-installing blender, my friend tried to render it and it worked for him so i decided to try re-installing blender.


That is a MixRGB node (ShiftA Add node menu > Color > MixRGB) which is set to Screen:


How to restrict movement for a length or period of time (logic bricks)?

You will need to add a Float property to the 'yellow' area. I called mine "Bar". no reason. (if it isn't area you want to determine it by then skip this step and go with a Delay sensor rather than Collision, Near, or Ray)

Use a Collision, Near, or Ray (depending on your preferences and needs)sensor to determine when the "Bar" property is close enough to invoke the constraint behavior.

Via an And controller, link your sensor to a Constraint actuator and set the axis based on whatever axis is "up" in your diagram. Turn on true level triggering on the sensor.


Python: Rotate object according to vectors

You can use the rotation_difference method of the mathutils.Vector object to calculate the 3 axis angle difference between two vectors.

This function is used as follows:

# Calculate the angle between two vectors. Returns a Quaternion object.
vector1.rotation_difference( vector2 )

Here's some sample code that uses this function:

import bpy
from mathutils import Vector
from math import degrees

v0 = Vector(( 0,0,0 ))
v1 = Vector((-0.792312741279602, 0.6056182980537415, -0.0739390179514885))

rot = v1.rotation_difference( v0 ).to_euler()
print( [ degrees( a ) for a in rot ] )

Output is (angle rotation in each axis):

[ -77.31130736634618, -146.788879528308, -40.89379056097038 ]

Now if you want to rotate an object according to this rotation difference, all you need to do is to assign the value of rot to the object's rotation_euler property:

obj.rotation_euler = rot

Note: the image can be a bit misleading since the cube and corresponding empty's location is not the value of V1 at all. V1 represents the rotation / direction values only, with respect to the zero vector (V0).


There is an addon to batch convert image files with blender.

After installing the addon, the usage is simple:

Tell the addon where the folder of images is (must contain only the images to convert)
Give it a output folder
Set the render settings correctly (you will want PNG)
Click the Batch convert button.

To keep the original file sizes, check the Keep Original Resolution check box in the Batch Converter settings in the tool shelf.


Deleting an Object in the Blender Game Engine using a Mouse Click Event

Add these logic bricks to the object you want to be deleted it the game!

https://i.stack.imgur.com/3Ei4h.png


gridfill error : Connecting edge loops overlap

I'm not sure why it doesn't work the way you are trying, I would venture to guess it's a bug or a limitation of the algorithm, as there is no reason for it to work one way and not the other.

That said, you can still use the grid fill tool on the empty section if you select the two 'connecting' edges (the horizontal ones in the image above). You can also go into the settings of the failed gridfill and change the span to 6 and the offset to 1 and that works too.

Also, if you add geometry around all the edges it will work as well.


How to use bpy ops that take a modifier Enum as an argument?

Tested with the default scene in editmode with a single vertex selected.

 import bpy
 vertex_idx = 0
 obj = bpy.context.object
 other_obj = [o for o in bpy.context.scene.objects if o != obj][0]

 mod_name = "Hook" + str(vertex_idx)
 obj.modifiers.new(mod_name, type='HOOK')
 obj.modifiers[mod_name].object = other_obj

 bpy.ops.object.hook_assign(modifier=mod_name)

This worked for me, however this code shows a common mistake,

That is that you're assuming Blender is giving you the name you ask for,
There is no guarantee you get the name you ask for when creating new data. (it could be shortened or have a .001 added if the name exists already).

So best use the modifier name directly.

eg:

 mod = obj.modifiers.new("Hook" + str(vertex_idx), type='HOOK')
 mod.object = other_obj

 bpy.ops.object.hook_assign(modifier=mod.name)


How does Blender lights work in Cycles regarding intensity?

The light energy in Cycles are defined using the following unit: According to the doc: "Sun lamps are specified in Watts/m^2, other lamps are specified in Watts, and Emission shaders on meshes are also in Watts/m^2. I am not sure how the world energy is defined.

Because the energy are specified in watts (over an area when applicable), I don't see any reason why a perfectly diffuse surface should reflect the same numerical RGB value as the lamp's energy.


How to map one image across multiple objects

Dot matrix display in Cycles?

This is the thread I was looking for. The term I had been thinking of was "Dot Matrix"


How to get consistent lamp strengths in cycles?

I'm not completely sure why the spot lamp is generally darker than the rest of them, and the point lamp slightly darker, but if you level the playing field a bit, they aren't all that different:

Set all sizes to the same value, 0.5 as well as the dimensions of the mesh light
Set the spot lamp's shape size (the cone) to 180 degrees

Now you can see that the mesh and area lamps are nearly identical, except for the area lamp being slightly brighter in the middle on the back wall.

The dimensions of the mesh light was an arbitrary guess, changing it will change the brightness since light is emitted from the surface of the mesh and more surface area means more light. This is different from the other lamps, where the size is purely to control the softness of the shadows and doesn't affect the brightness at all.


If you increase the bake Ray Distance to, for example, a value of 3, it works. It looks like it's because your objects are big on the scene, if I decrease them and apply scale it will need a lower value.


I believe that is a limitation of the current dependency graph and one of the reasons behind the work on creating a new improved one.

For now a workaround would be to have the bone with the driver to be part of a different armature than the bone being followed.


What you want to do is edit the World nodes. Go to the Node Editor and click the globe icon:

Makes sure you check the Use Nodes checkbox as well.

Now add an Input > Texture Coordinate and a Vector > Mapping node and connect them as shown:

Now the three rotation values will adjust the orientation of the texture.