Can we extract contact normals in a scene that undergoes in rigid body simulation?

Don't know much about how rigid bodies work behind the scenes, and haven't really scripted rigid body sims before.

But if the contact normals are the normals of the faces that were touched during collision, you might be able to get them with a little hack: set up dynamic paint to paint the faces that are touched by the colliding object, then use a script to find all the faces that were painted (via the vertex color map created by the dynamic paint simulation).

Here's a little script that finds these normals if you use a red color for painting the touched object (assumes that the painted object is the active object, with the dynamic paint modifier applied and the default vertex color map name was used for the dynamic paint sim):

import bpy, bmesh
from collections import defaultdict

def get_vcolors( obj ):
    '''
        Vert colors are arranged in an unintuitive way, according to loop vertices, go figure.
        Also, every vertex has as many vertex colors as the number of faces its included in.
        This function outputs a dictionary where every vertex index has a list of vertex colors
        associated with that vertex.
    '''
    vcolor_dict = defaultdict(list)
    mesh        = obj.data
    color_layer = obj.data.vertex_colors['dp_paintmap']

    i = 0
    for poly in mesh.polygons:
        for idx in poly.loop_indices:
            loop  = mesh.loops[idx]
            color = color_layer.data[i].color
            vcolor_dict[loop.vertex_index].append(color)
            i += 1

    return vcolor_dict

o = bpy.context.object
vcolors = get_vcolors( o )

# Find all the verts that have a red value above 0.9
red_verts = []
for v in vcolors:
    for c in vcolors[v]:
        if c.r > 0.5:
            red_verts.append( v )
            continue

# Find the faces that include a red vert and their normals
red_faces = []
for i,f in enumerate(o.data.polygons):
    for rv in red_verts:
        if rv in f.vertices:
            red_faces.append( i )

red_faces = list(set(red_faces) ) # Remove doubles
red_faces_normals = [ o.data.polygons[i].normal for i in red_faces ]

You can find the setup I used for the simulations here (blend file):
http://www.pasteall.org/blend/37568


Animation with unintentional black boxes

I downloaded my download file now, because user3800527 (thanks to you) told me, that its working on his pc. Now its working and there are no black boxes anymore. I can't tell exactly what the problem was. Maybe it just was a problem of blender.


How to implement custom icons for my script/addon?

Since 2.75 the python API allows for custom icons.
You can store custom icons and load them with bpy.utils.previews.ImagePreviewCollection class, which works like a dictionary.
First let's create such icon dictionary:
import bpy.utils.previews
icons_dict = bpy.utils.previews.new()

Next, we need to find path to our icons. Its best to put them inside a folder named 'icons' next to the script file:
import os
# this will work for addons
icons_dir = os.path.join(os.path.dirname(__file__), "icons")
# but it won't give you usefull path when you opened a file in text editor and hit run.
# this will work in that case:
script_path = bpy.context.space_data.text.filepath
icons_dir = os.path.join(os.path.dirname(script_path), "icons")

Finally load icon.png into the dictionary. Blender uses 32x32 icons in UI:
icons_dict.load("custom_icon", os.path.join(icons_dir, "icon.png"), 'IMAGE')

Reference the icon by it's ID, use like this inside UI elements:
icon_value=icons_dict["custom_icon"].icon_id

It's best to handle loading of icons in the register function, clearing the icons in unregister function, and storing them in a global variable.
If enabled as an addon the filepath of __init__.py is the module variable __file__ in __init__.py and as shown can be converted to a directory path using os.path.dirname(__file__) to get the path to my_addon
Make an add-on with multiple python files to keep our addon's icons neatly contained in our addon's folder.
my_addon/
    __init__.py
    icons/
        icon.png

To test when running from text editor can  add an icons folder to some known path, for example the Desktop folder
Desktop/
    icons/
        icon.png

and change the code below accordingly to be its absolute path (in this example case /home/user/Desktop/), or  the saved path of the text file, or that of the blend file.
bl_info = {
    "name": "Custom Icon Test",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > UI > Tools",
    "description": "Test custom icons",
    "warning": "",
    "doc_url": "",
    "category": "Testing",
}

import os
import bpy
import bpy.utils.previews

class CUSTOM_PT_myPanel(bpy.types.Panel):
    bl_label = "My Icon Panel"
    bl_idname = "OBJECT_PT_custom_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tools"

    def draw(self, context):
        global custom_icons
        self.layout.label(text="Blender SE", icon_value=custom_icons["custom_icon"].icon_id)

# global variable to store icons in
custom_icons = None

def register():
    global custom_icons
    custom_icons = bpy.utils.previews.new()
    addon_path =  os.path.dirname(__file__)
    icons_dir = os.path.join(addon_path, "icons")

    custom_icons.load("custom_icon", os.path.join(icons_dir, "icon.png"), 'IMAGE')
    bpy.utils.register_class(CUSTOM_PT_myPanel)

def unregister():
    global custom_icons
    bpy.utils.previews.remove(custom_icons)
    bpy.utils.unregister_class(CUSTOM_PT_myPanel)

if __name__ == "__main__":
    # Test run
    # edit to folder containing your icons folder
    __file__ = "/home/user/Desktop/"
    # The path of this text (if saved)
    #__file__ = bpy.context.space_data.text.filepath
    # The path of this blend file (if saved)
    #__file__ = bpy.data.filepath
    register()

Result:


First of all try running Blender as Administrator.
If that does not work try those steps suggested in developer.Blender.org:

  Ensure your GPU driver supports at least OpenGL 1.4
  Ensure you have installed MSVC2013 redistributable package
  Try  to disable any running antivirus
  Ensure you have no python executable available in your %path% environment variables
  Try to start Blender in factory settings       (--factory-startup commandline option - this will show whether this  is a userpref or
  add-on issue or not).
  Try to place this dll next to     your blender.exe (software OGL, will be slow, but will show whether  this is a driver issue or
  not).


Animation loop issue with Bezier and snapping issue with linear

Looping animation back to 1st frame - Smooth transition :

The gif animation is doing what you're seeking, using Bezier throughout, but straightening the curves in the graph editor at the first and last frames. (where it crosses the red line at the left)

How it's done -

Select the cube (moving object) and go to the Graph Editor.

In there select the first keyframe for the axis required (red is X, green is Y) and use the keyframe handles to straighten out the starting curve so the object kicks off in linear fashion, i.e. without accelleration.

Go to that same axis' last keyframe and do the same.

Ensure that the exit curve (at last keyframe) is at much the same angle as the first's.   That will ensure the object doesn't twitch, when the timeline cursor loops back to frame 1.

(in the example animation at top, that's where the thin cube crosses the red line at the left)

Do the same with the other axis'.  In this example the Z axis wasn't used.


How do I parent a mesh, transferring the vertex groups?

OK, I stumbled upon the answer. Perhaps settings have changed since the 2.6x series but I found that for Transfer Weights, settings appear underneath with one of them referring to "Source Layer".  Setting this to "All Layers" when doing the Transfer Weights causes all the weights AND vertex groups to transfer to the new mesh.  After that, just delete the original mesh and then parent the new mesh to the armature.


Running Track, painted material, right way to do it?

Final:

You can make this with procedural texture mixed by alpha image (lines/numbers).

Node overview:

Base procedural textures. Voronoi for main bumps and Noise to make it less uniform.
Color Ramps for fine control over textures intensity.
Mixed base textures and Color Ramp for Base Color input.
Brightness/Contrast to tweak Roughness.
Bump node to feed Normal inputs.
Image Texture with only white shapes and transparent background mixed with base textures. Color Ramp controls how much wear there is on shapes (how much orange color is visible trough them, based on Voronoi texture).


Being a huge fan of modifiers, I've tried this solution here, which keeps the modelling geometry as simple as possible (I guess). You can see the results here in this Blend file:

There are two layers, I've experimented a bit with the topology of the base mesh to reduce shading artefacts. Unfortunately, they cannot be avoided completely.
Procedure
You can start off with laying down the polygons highlighted in this screenshot:

A rather elaborate modifier stack will then turn this into the pipe geometry you're looking for. I won't explain all of them as you have the Blend file too, but I'll talk a bit about the first Array.

The thing is, here I'm using the object offset option. The Array I defined basically rotates the mesh around the empty by 180 degrees. The merge option is turned on in all three arrays, and the limit set to 1mm in my case, to make sure the neighboring points are merged together.

Now that you have the alternating geometry in place, you can use simple arrays to get a flat base mesh. A simple deform modifier bends that into a pipe shape, and the rest (solidify, bevel, subsurf) is optional.

You'll notice that a seam is going through at the ends. That's because there unfortunately is no merge option in the simple deform modifier, neither is there a remove doubles modifier. I wish there was so badly! If you have to remove the seam, apply the first three arrays and the deformer, and then remove doubles.
You'll notice shading artefacts as pointed out in the beginning. Using the geometry below, those artifacts become less apparent, as they happen in a more logical place:

This is a wireframe on that final result (Layer 2 in the Blend file):


How can I add more than one animation to the same model?

Just adding this as an alternative approach for future. Blender has this thing called Actions that are essentially separated animation timelines. You can have any number of actions in your blend file for every animation you want to create (idle, idle2, walk, walk2...) and you can add, copy and delete them whichever way you like without them interfering with each other in any way.

You can then mix actions into longer animations (walk+hand wave) using the NLA editor, line them up as one long, continuous animation like you're doing now, or if you're targeting Unity or somesuch, FBX export can save all the actions along with the file. No need to manually set the frame ranges later.

You can get it done the way you're doing, sure. And actions are a bit confusing to work with first. But I think it's the easier route in the long run.


Molecular add-on particles won't interact with a non-animated rigid body

It seems like some cache conflict.

Notes:

The glass jar should be Physics Properties > Rigid Body > Collision > type Mesh (not Convex because it should behave like filled object, but it didn't, hmm ...)
it is always better to Apply Scale (Ctrl+A) to avoid weird behaviour of boundaries
only make a difference if Substeps is changed from 4 to 1
(but changing it back to 4, it explodes in some point of anim, because of some previously cached data, that I'm not able clear from file even I change amount of particles, that always helped in crisis like this.

Bake to Keyframes
What I can recommend is to select glass jar and Bake to Keyframes (if you played all animation so rigid body was cached, baked avoids caching RB. Since than I don't have an issue with molecules.
Also it solves cube (that is pushing the glass) to affect particles.

After bake you can use Decimate function (with cursor hovering in Graph Editor) to simplify F-curve.


What is keeping the translate arrows from working on the 3D Manipulator Tool

Snap to Grid is enabled (and the object is smaller than the grid)

The selection can be moved, you are just not providing an input that would be able to overcome the thereshold of the snap to increments.

If your object would have been 10 time bigger, you would now experiencing a stepping in using the grab tool, but as it's dimensions are small, you are not able to jump over the first step.

The solution would be to disable the "Snap suring transform" option.


grease pencil strokes to mesh is not available in 2.8 release

You can convert it through the object menu in 3D view while in object mode (Object > Convert to > Polygon Curve). An option to directly convert to a regular mesh object doesn't exist, however you can convert either the polygon curve or the bezier curve to a mesh.


What is the bmesh equivalent to bpy.ops.mesh.shortest_path_select()?

Shortest Path algorithms

Dijkstra's algorithm
 Dijkstra's algorithm to find
the shortest path between a and b. It picks the unvisited vertex with
the lowest distance, calculates the distance through it to each
unvisited neighbor, and updates the neighbor's distance if smaller.
Mark visited (set to red) when done with neighbours.

Here is a bmesh take on this.  The algorithm calculates the shortest path from source vert to all verts.
To clean this up would prob make a class of the method, that once built would return this info
import bmesh
import bpy
from math import inf

class Node:
    @property
    def edges(self):
        return (e for e in self.vert.link_edges if not e.tag)

    def __init__(self, v):
        self.vert = v
        self.length = inf
        self.shortest_path = []

def dijkstra(bm, v_start, v_target=None):
    for e in bm.edges:
        e.tag = False

    d = {v : Node(v) for v in bm.verts}
    node = d[v_start]
    node.length = 0

    visiting = [node]

    while visiting:
        node = visiting.pop(0)

        if node.vert is v_target:
            return d

        for e in node.edges:
            e.tag = True
            length = node.length + e.calc_length()
            v = e.other_vert(node.vert)

            visit = d[v]
            visiting.append(visit)
            if visit.length > length:
                visit.length = length
                visit.shortest_path = node.shortest_path + [e]

        visiting.sort(key=lambda n: n.length)

    return d

# test call select two verts edit mode

context = bpy.context
ob = context.object
me = ob.data
bm = bmesh.from_edit_mesh(me)
v1, v2 = bm.select_history[-2:]

# calc shortest paths to one vert
nodes = dijkstra(bm, v1)
# specific target vert (quicker)
#nodes = dijkstra(bm, v1, v_target=v2)
# results of other vert
node = nodes[v2]
print(node.length, node.shortest_path)

for e in node.shortest_path:
    e.select_set(True)

bmesh.update_edit_mesh(me)

Notes. Added option to target a destination vert to yield when the result for that vert is reached.
Another addition would be to save the  alternative route when the distances match. Multiplying each node in the resultant path will give the combinations of possible routes.


F creates an edge between the 2 vertices but it won't cut the face, it will just create an edge over the face, what you need to use is J, which will cut the face. You can also use the knife tool: K to activate, C to cut perpendicularly to the view, Z to cut through.


How do I archive my textures and mesh in the same archive?

You just need to bake your textures, which means exporting your object's texture in a image file, based on its UV unwrap.

You can check this post for info or you can google it yourself.


Why do I get a "seam" using Mirror modifier?

You should turn on clipping, as Cebbi has already mentioned. Also, the subsurf modifier should go after the mirror modifier.

That should do it.


Classic Blender keymap mouse behavior -> Industry Compatible keymap [Change MMB to LMB]

You can manually edit the way the view port works by going to

Edit > Preferences > Keymap > 3D View > 3D View (Global) > Rotate View

Click the box in the third column and hit the preferred mouse interaction, e.g. just middle mouse button.

For me the biggest annoyance was that I wasn't able to rotate my view (orbit) using Alt + middle mouse button, because of some obscure settings in my OS (Linux Mint / Ubuntu). Therefore I didn't need to change all mouse interaction settings and could just selectively choose some view port interactions to change manually; perhaps the same holds for you. Hope this helps.


2.8 Animation stops when copying keyframes in dopesheet

Thank you for posting your question so clearly.
1. Go to GRAPH editor. Select all your keyframes. Then, SHIFT+E (for extrapolation options) > CYCLES. Your animation will last as long as you have animation timeline set end frames.

Thank you for your consideration to vote me up (click on the checkmark besides this post) as the answer.

BFCT_Schiller


Set collection as Indirect Only (ie. = Shadowcatcher) through python?

You can enable Indirect Only for the currently active collection (as indicated in the outliner) by using:

bpy.context.view_layer.active_layer_collection.indirect_only = True


Final result:

  This one is too "heavy" answer to explain it step by step so I'll make
  an overview of the node setup and if you'll have some questions just
  ask in comments and I'll expand it.

Overview:

Overall it's really simple setup. Think of it as spheres squashed and distorted inside marble (because they exactly are). Spheres are Spherical Gradient, squash is Mapping Node and distortion are nodes named Sine Wave.

  Don't forget to set in Render > Light Paths > Volume - to more than 0! In this example it is set to 4.

From Node Setup:

They control how much distorted inside elements are. It is separated for X and Y wave. You can make pretty straight lines with those values or with more waviness.

Those one controls overall width of inside elements.
With Scale in Mapping node you can control how our starting sphere (Gradient > Spherical) will be squashed on X, Y and Z axes.
This is color for our elements.
And lastly (or maybe it should be first) this is starting sphere that is pretty much just manipulated by Sine Waves and Mapping Node.

Blend file:


Try this node setup.  It's from Blender guru's fire tutorial.  I tested it out for you and it made black fire, so there you go.

I suggest watching the fire tutorial.  It gives a lot of good information on how to create good looking fire.  The video is titled How to "Render Fire in Cycles".


Adding multiple Physics constraints to a single object at different points (ie: 4 corners)

I checked out your scene and adjusted the physics to be more in line with the situation you asked for.

You used only one empty in the hinges each, but since they work as a position marker on the first object selected in their constraint options, it was kinda the wrong way.
If you want the board(you called it physics) object to be anchored with 4 points, you need to place 4 empties on each corner of the board, (UPDATE: not needed to parent them, can cause glitches) and use the board itself as first target in the "rigid body constraint".

Afterwards you set the empties as "generic springs" and select the hinge on the corresponding side as second target to the empties each. You should now have 2 empties on each side of the board connected to one hinge each.

You can find the set up here:

(keeping this version available, newer file below!)

I changed one of the constraints to be weaker making the board slightly lower on that edge, and the ball rolls down. You can adjust the constraints and tinker to get what you may want it to look like.

Looks like this:

UPDATE: un-parented the constraint empties and added visual connections.
Having the constraints parented under the board caused the glitching.
They don't need to be parented to work, so easy solution, only downside is if you want to move the board, you need to move the constraint-empties as well(select all and you should be fine). May be a bug, that it glitches if parented, don't know.

Here the new version:

Happy blending.


How to change default viewport shading in 2.8?

To change Default Studio lightning without using Matcaps/Shading modes:

Go to Edit > User Preferences > Lights and choose Edit Studio Lights.

Now you can change all 4 lights. Options are self-explanatory.

After making dreamed setup - Save as Studio Light and Save Preferences.

You can even download saved setup and share it.

Here is something similar to 2.79. Probably a bit to shiny:


Where is "Align with view" for new objects in Blender 2.8

In 2.8 the last operation box is in the bottom left of the 3D View, open it and select View in the Align dropdown menu.


What is the difference between module and script execution methods in the Game Engine?

These docs explain:

Script Mode
In Script mode, the controller is linked to a script, the whole script
will be executed before the logic moves on. Everything in the script
will happen at the same frame, if the same value or attribute are
changed more than once, only the latest will be visible in the game
because of this. If for example the position of an object is changed
first to (100.0,100.0,100.0) but later in the same script changed to
(0.0,0.0,0.0), then only the (0.0,0.0,0.0) will be visible to the
player because the move to (100.0,100.0,100.0) happened on at the same
frame.
Module Mode
Since Blender 2.49 the Python module controller was added. Simply
choose Module instead of Script on your Python controller drop-down
menu. Then you define a function on that module and call that function
from the controller. Instead of writing “myScript.py” on the script
edit box, you’ll write “myModule.myFunc” on the module edit box. This
function will run every time the controller is called. But other
functions and variables outside of myFunc’s scope will only run once.
This is good for optimizing your code when you want to initiate
variables only once then use them later.
The Python module controller supports any number of attributes, this
means packages are supported automatically. As well as
“myModule.myFunc” you can do “myPackage.myModule.myFunc”, nested
packages work too, as does method calls on class instances like:
“myPackage.myModule.myInstance.myMethod”. The python controller is
passed to the python function as an argument for functions that take
one arg.

Regrettably the 2.6x docs miss this info.


What does "number of diffuse/glossy/... bounce samples" mean?

BPT allows you to give sampling priority to materials which take longer to converge.  As you have probably experienced, some more complex shaders (SSS, translucency, rough gloss, etc.) often create much more noise in a render and thus require more sampling than materials such as diffuse or a sharp gloss.

(If you are unclear on the technical meaning of samples, check out this post.)

BPT lets you adjust the relative amount of samples for each type of shader individually to manually optimize your rendertimes.  So if you are getting a lot of noise in your scene from a particular SSS shader but your diffuse surfaces look fine, you can knock up the SSS samples to reduce the noise from the SSS without having to waste samples on the diffuse surfaces that don't need any more sampling.

Keep in mind that when used, BPT does seem to take a little bit longer and generate a little bit more noise than standard path tracing.  So it is best used in situations where the difference in noise created by different shaders is quite large so the gains are large enough to outweigh the higher base values for noise and rendertime.

This is a more practical explanation of how to use BPT, if you want a more technical explanation check out this post


Export of STL file enlarged very slightly for the diameter

In the modeling tab and object mode, pressing n gives me the dimensions of the object and this is at odds with the location of the widest points on the x and y axes, which can be found by switching to edit mode and selecting the appropriate vertex.
There seems to be a mismatch between the 2.
Location  x = 10.098  times 2 gives me roughly 20.2 which is what I want.
Dimension x = 21.5 which is definitely not right and it seems to be this dimension which is output to the stl file.
What I did to fix this: switch to object mode, select the object, press S to scale and then scaled by 0.939873418 for the X and Y axis and 1.0 for the Z axis and this corrected the dimension error. Inspecting the location of the widest point on the x axis shows that it has not moved.
Export of the STL shows the object now has the correct dimensions :-)
I've no idea what caused the problem in the first place.


How can a I read and update the keyframe value of a material node in Blender 2.8 via Python?

I don't know if this is the best way to do it, but it does exactly what I want it to do.

I have a Group of nodes. As part of this Group, there is a Value input node. I want to keyframe the default value of this Value node. So this is how it works.

Inserting a new keyframe point

1- Get a reference to the Group node:

group = bpy.data.materials['Material'].node_tree.nodes['Group']

2- Get a reference to the Value node within the Group:

node = group.node_tree.nodes['ValueNodeName']

3- Set the default value of the output of the Value node, and insert a keyframe (in this example, the value to insert is 1, and the frame number is 21)

node.outputs['Value'].default_value = 1
node.outputs['Value'].keyframe_insert('default_value', frame = 21)

Repeat step 3 for each new keyframe point to insert.

Overwriting an existing keyframe point

If I needed to overwrite an existing keyframe point, I could enter another keyframe point for the very same frame number. For example, if I wanted to update the keyframe point at frame 21 from value 1 to value 33:

node.outputs['Value'].default_value = 33
node.outputs['Value'].keyframe_insert('default_value', frame = 21)

Accessing a Keyframe Point from an F-Curve

Instead of adding, deleting and overwriting keyframe points from the node's output properties, we could get a reference to the F-Curve used to animate those properties and modify them that way. If material is a reference to the material containing our value node, this is how we could proceed:

action = material.node_tree.animation_data.action
if action:
    fc = action.fcurves.find(data_path)
        if fc:
            for kfp in fc:
                print(kfp.co)

The previous snippet would print the coordinates of all the keyframe points belonging to the F-Curve stored under data path data_path. For example, if the name of our value node were MyValueNode, the data path would be

data_path = 'nodes['MyValueNode'].outputs[0].default_value'


Just checked with my file and I can verify, it looks like the denoiser is the problem just check it off. Its weird.

Its hard to tell with the 2nd picture but there is definitely some weird artifacts. (click image to view them better)

Its real bad with princpled shader


Removing untextured faces from UV mapping

You can't really remove the useless faces from the UV map but for example you can select them in the 3D view, Unwrap > Reset, which will stack them, and put them out of the UV Editor grid:

Then select the rest of the mesh (Ctrli) and unwrap with the Smart UV Project option. Now the selected part occupy the whole grid, as expected (but it means that you'll need an image that will match the new unwrap):

If we select both the useful and useless part, as you see, the useless part keeps its location. You can put it over the second UV unwrap but it's more convenient to separate the 2 parts if you ever need to select one or the other. Note that the useless will inherit of the texture that will be underneath (an image texture is always infinitely repeated in the UV Editor) but you said that this part won't be seen so you don't have to care. If you want this part to be alpha 0% you need to put it over a part of your image that will be alpha 0%:


Creating new vertices with Ctrl + Click not working

I too had the same problem. I noticed that I had was using face select instead of vertex select. Changing that might help you. Good luck!


Blender 2.8 different worlds settings for different view layers

This is not possible by using a new view layer, however you can create a new scene which has it's own world settings.


From my own experience with Blender 2.72, even if it is threaded, it is not very good at utilizing more than 2 cores.

I've also done some benchmark on sequencer performance here: Render times for standard non-3d video.


How would I fix the moving position exactly to the part I want it to move?

in blender every object has an object origin the transform manipulators are at the pivot point and the pivot point is at the object origin (you can change where the pivot point is), if you want to move the object origin go to the Object>Transform menu there you have a couple of options, origin to geometry should do the trick.


Exporting UV coordinates by face elements

I found the .obj export source in /usr/share/blender It's probably different on your computer, the best place to see where you can find it is to go into user preference under Addons. It seems like the official exporter just creates a hash map of uv coordinates. This seems to be where the magic happens.

# Make our own list so it can be sorted to reduce context switching
    face_index_pairs = [(face, index) for index, face in enumerate(me.polygons)]
        uv = f_index = uv_index = uv_key = uv_val = uv_ls = None

        uv_face_mapping = [None] * len(face_index_pairs)

        uv_dict = {}
        uv_get = uv_dict.get
        for f, f_index in face_index_pairs:
            uv_ls = uv_face_mapping[f_index] = []
            for uv_index, l_index in enumerate(f.loop_indices):
                uv = uv_layer[l_index].uv
                uv_key = veckey2d(uv)
                uv_val = uv_get(uv_key)
                if uv_val is None:
                    uv_val = uv_dict[uv_key] = uv_unique_count
                    fw('vt %.6f %.6f\n' % uv[:])
                    uv_unique_count += 1
                uv_ls.append(uv_val)

Since I answered my own question, should this be deleted? I feel like this has some value to other people who may want to do something similar, as this is a specific and non-trivial task.


The size used by dynamic topology relates to the visible size of the mesh details. You can also think of it as distance between vertices.

So the smaller the size used, the smaller the details, which means more vertices in your mesh that are closer together.

What the size value refers to depends on the detail type selected :-

Relative Detail uses screen pixels
Constant Detail uses blender units
Brush Detail uses the brush size


Blender won't start, while I used it before on this machine

Blender recently switched to opengl 2.1 so you will need to upgrade your hardware to support opengl 2.1 or switch to an older Blender version. The last version to support older versions of opengl is blender 2.76.

You can find a note about that in the release notes of Blender 2.77
https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.77


It seems you mesh has hard edges on surfaces.
Go to edit mode, then on the left of blenders GUI in the tabs go to "Shading/UV" overthere under faces click smooth..and hit render again ..voila


my editing mode (x-ray activated) is not allowing me to see the reference behind. the edges are thick black and faces are white. any suggestion?

If you see your mesh white while x-rays enabled means your shading mode may be in solid. Try to switch in wireframe shading with x-ray enabled.
Edit: If some faces look different in X-rays, you can also try to Recalculate normals (Ctrl+Shift+N).
You can quickly change shading with Z key, while Alt+Z will toggle x-ray


Why is my world background different in these files?

In the first image you can see that you have "equirectangular" as an option, which isn't there in the second image. So I assume you have first Color node set as Environment Texture and the second as an Image Texture.

Click on the Color dropdown and select Environment Texture, then choose your image. That should solve it.


Duplicating in for loop causes weird multiplication

You don't need to select the object before copying it, so bpy.data.objects['Road'].select_set(True) is redundant.

Instead of that you need to make the newly created object active before calling any bpy.ops to make the op function operate on the new object. But I guess, you can avoid call to ops altogether and simply call newroad.modifiers.new to create the modifier.

So that the modified code will look like this (this is not tested)...

def execute(self, context):
    objects = bpy.context.scene.objects
    road = bpy.data.objects["Road"]

    for obj in objects:
        if obj.type == "CURVE":
            # road = bpy.data.objects["Road"] # Already set above so not needed
            # bpy.data.objects['Road'].select_set(True) # Not needed

            newroad = road.copy()
            newroad.data = road.data.copy() # You might also want to copy the data block
            bpy.context.collection.objects.link(newroad)

            # bpy.ops.object.modifier_add(type='ARRAY')
            # bpy.ops.object.modifier_add(type='CURVE')

            # arrmod = bpy.context.object.modifiers["Array"]
            # curvemod = bpy.context.object.modifiers["Curve"]

            arrayModName = 'array'
            arrmod = newroad.modifiers.new(arrayModName, 'ARRAY')

            curveModName = 'curve'
            curvemod = newroad.modifiers.new(curveModName, 'CURVE')

            arrmod.fit_type = 'FIT_CURVE'

            # arrmod.curve = bpy.data.objects[obj.name]
            # curvemod.object = bpy.data.objects[obj.name]

            # obj is the same as bpy.data.objects[obj.name]
            arrmod.curve = obj
            curvemod.object = obj

    return{'FINISHED'}


AMD RYZEN Particles and Physics Simulations optimization needed

Physics calculations are extremely hard to thread and there is, as far as I know, no magic setting to change this. Think of it this way. Rendering you can do frame one and frame ten at the same time. Frame ten doesn't depend on the result of frame one. In physics simulations core two can't start work till core one finishes since it needs its data. Their is some performance improvements as some of the calculations can be threaded, but overall processor speed is the far more important factor.


Convesion of curve to mesh makes faces behave strangely?

Sounds like you need to join the two objects together with Ctrl+J and UV unwrap one more time.


Using volume rendering, you can emit light from inside a glass object. If you use a procedural gradient texture to control the strength, you get a nice effect:

If you bump up the IOR, it helps make it look more like a crystal:

Also see
Controlling volume density

Original answer:
You can make a glass object emit light on other objects without affecting the appearance of the object to the camera with a light path node:

If the incoming ray is a

Camera ray

Transmission ray

Glossy Ray

Then the glass shader is used. If it's not any of the above, then the emission shader is used. If the ray is hitting the back of a face, it always uses the glass shader.
If you want you could also add some emission which is visible to the camera, to make it appear more glowy:

If you want light to be emitted from inside the object, you can use the new volumetrics features:


How should i go with modeling this pistol grip piece?

Add the image in your 3D view and draw its profile:

Extrude the mesh, use a Mirror modifier:

Work the geometry in 3D:

Give it some additional edge loops in order to sharp some edges:


Bevel with specified radius in python script

Assuming you have a bezier curve with only 2 control points and you always want a circle for your shape, you can do this. I think this works, its past my bedtime, but copy paste in the text editor and it should work. Feel free to expand on your wishes.
import bpy

bpy.ops.curve.primitive_bezier_curve_add()
curve = bpy.context.active_object

curve.data.use_fill_caps = True
curve.data.bevel_mode = 'ROUND'     # Gives it a circle shape without needing another object as a profile.
curve.data.bevel_depth = 1          # 1 Meter Radius (NOT DIAMETER)

# These will multipy the curve radius at each control point,
# so best to keep that at 1m and control the taper with these.
start_radius = 0.1  # Radius Multiplier 1
end_radius   = 0.3  # Radius Multiplier 2

# Assuming the curve type is 'BEZIER'
curve_points = curve.data.splines[0].bezier_points

# Assuming your curve only has 2 points.
curve_points[0].radius = start_radius
curve_points[1].radius = end_radius


How can you render backfaces depending on whether the camera can see them?

Okay... I plugged in the camera data node's view distance socket and the light path node's ray length socket into a math node set to compare. The epsilon value is set to .2. I achieved an effect that is good enough, but still not perfect. The transmission, reflections, and light on the floor is correct, although the inside backfaces still cast a shadow+reflect teal light on the question mark. If anyone can help with that, it'd be perfect, but otherwise I'll probably close this question soon.


How to change mid mouse button function for a keyboard key?

I use blender with a wacom pen and no mouse.

In the System preferences > Input section I enabled Emulate 3 Button Mouse.

On the interface I drag the pen while holding:

Ctrl Alt to zoom in or out.

Alt to rotate.

Shift Alt to move up down or sideways.


After Blender is done installing, why doesn't it open?

All you need to do is to click your start menu, the Windows icon located in the bottom left corner, then select "All Programs" and Blender should be in the list.


If you select all of the horizontal edges (you must be in edge select mode) and then set the pivot point to Individual Origins you can scale just the edges that control the with of your object.

Another option is to double tap G and slide each outer edge loop towards the center.


Ok, figured it out. It is a rigid body joint, can be removed when you click the corresponding scene layer, and then pick the constraint panel (symbol with 2 chains) .


Why my texture becomes black in certain regions?

in case several textures are overlaying - I assume the green parts contain an alpha channel - have you enabled the Blend-Value within the Render-Settings?


The Follow Track constraint includes a 'Constraint to F-Curve' button - click that and Blender will convert your track into a series of keyframes. You can then use the Graph Editor to edit the resultant F-Curves for the object.

To edit a curve, right-click on one of its points and press L to select 'Linked' (ie, select the whole curve). Then use S to scale it (you can type a number to scale by a fixed amount if desired - eg, S10Enter) to scale up by a factor of 10. Repeat for each of the X, Y, Z channels.

Once you've scaled up your F-Curve you'll find that the motion of the empty used for the track is similarly affected, resulting in more motion for the eye.


"Answered by @MrZak"
There is a Back and Front option under the Background Images options.


Destroyed geometry of objects with high location values

This is most likely because of memory limit on the numbers, aka a “precision error.” Try telling someone to give you three thousand four hundred and seventy-eight tons and two ounces. Most likely, they will forget the two ounces, and computers are the same way, unless you specifically tell them not to.
But anyhow, why does the object need to be offset from the world origin so far? Surely you can adjust the georefrencing somehow?


Change red reflection in: object mode - material viewport shading - principled shader

These reflections are caused by the default Blender viewport OpenGL shading lights, which apparently becomes more visible in materias using the Principled BSDF Shader.

You can change this from the User Preferences > System tab under Solid OpenGL Lights.

The offending color is by default most likely the last Specular entry. Change it to whatever color you like, make sure you Save User Settings if you want it set by default.


The object (s4studio_1) in front of your "photography" generates black "patch", it causes graininess (noise) as well.

The object is disabled from Global Viewport, but not from Rendering (Bake).
Disabling the object from Render solves the issue.

The darker appearance of photography can be solved by changing value of Mix Shader from 0.7 to 0.5, but for more info of mixing Diffuse/Glosy try this
Confusing problem when I'm trying to mix Diffuse with Glossy shader

BTW: Lightning your scene by strong "Ambient Oclusion" (1.75) doesn't seem to be a good way for some natural result. Your four lamps are not (visibly) lightning the scene anymore. Deleting them you can see any difference. In this screen only World color (HSV 0/0/0.8) and Sun strenght 3 does the job.


How to apply imported module to active object

Py console convenience variables

C and D are abbreviated named variables for our convenience in the python console (see startup message)

PYTHON INTERACTIVE CONSOLE 3.7.1 (default, Oct 22 2018, 11:21:55)  [GCC 8.2.0]

Command History:     Up/Down Arrow
Cursor:              Left/Right Home/End
Remove:              Backspace/Delete
Execute:             Enter
Autocomplete:        Ctrl-Space
Zoom:                Ctrl +/-, Ctrl-Wheel
Builtin Modules:     bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bpy.utils, bgl, blf, mathutils
Convenience Imports: from mathutils import *; from math import *
Convenience Variables: C = bpy.context, D = bpy.data

Simply replace C with bpy.context in your script

On importing

you are importing the method main from the module bl_operators.uvcalc_smart_project1 similarly

from bl_operators import uvcalc_smart_project

uvcalc_smart_project.main(...)

for keeping one main method distinct from another main method imported from elsewhere by using module as a namespace.

IMO something like

from bl_operators.uvcalc_smart_project import main as uv_smart_project
# and use via
uv_smart_project(...)

is distinct and readable.


Can't get simple uneven reflection map working

Here's my example to show you what you can do. I guess you're right, it's coated for preservation. I've tried my own take on it.
I gave the Principled BSDF a slight (estimated) Roughness of 0.2 for the original underlying paint. Since the rim seems to be more of a golden color, I plugged a black and white ring texture into the Metallic socket, so that everything is black (or 0) except for the rim which is white (or 1) and therefor metallic.
To recreate the protective coating (which looks quite shiny), I set Clearcoat to 1 and Clearcoat Roughness to a very low 0.01 (you might even go down to 0).
Since the scratches in the surface come from the broken paint, I thought it would be best to have them in the original surface Normal as well as in the Clearcoat Normal. I've taken some sort of scratch texture, plugged it into the Height socket of a Bump node and this into both normal inputs.
For the lighting I took four planes with a strong Emission shader to act as lamps and positioned them so that they can be seen in the reflection on the shield. The slight blue reflection comes from an Environment Texture which I used for the world.
My result:

My node setup:

The metallic map:


X-ray mode doesn't look the same as video

In the Subdivison Surface modifier, uncheck "Optimal Display".


Interface floats in window after switching screen resolution

This seems to be a bug. This is considered off-topic on Blender Stack Exchange.

See: What questions should be definitely off-topic?

Also this is to be expected since 2.80 version is not yet released and beta builds are still experimental. The bug should be reported:

You should ensure that you are using up to date graphics drivers, which on Mac OS means you should run up to date OS(it seems yours is up to date already). Blender 2.80 builds are built daily as well, so you can check if the bug is fixed in later builds, but that has little chance of happening if it is not reported.

Other than that, it seems Mac OS is not a perfect environment for doing 3d work at the moment. OpenGL support was dropped by Apple so if this by any chance is caused by a bug in their drivers, it is not going to be fixed in the future. I know it's not pleasant, but you may want to consider using another OS maybe in some sort of a dual boot set-up. It does not seem the situation with Mac OS is going to improve any time soon, it seems it might get worse.


How to apply force to a face of an object?

So there are a few questions here.  First, how to anchor the top of the soft body?
Soft body physics are anchored through the use of the "goal" trait, which is by default set to 0.7 strength for all verts-- so once you start using goal to pin soft body verts, you might find that your soft body physics change.
Create a vertex group for your mesh.  Assign the top vertices to that group, at weight 1.0.  Now, on properties/physics/soft body/goal, specify your vertex group as the goal vertex group, then in soft body/goal/strengths, set the default weight to 1.0.  Your assigned verts will no longer move with the sim-- they'll act pinned, as with cloth pinning.
This will prevent the other vertices in your soft body simulation from having any goal weight.  You can assign the other vertices to your goal group (at a lower weight than 1.0), or you can set the "Min" goal in soft body/goal/strengths.
The next question is, how to apply a force to a soft body mesh?  There are a number of different ways.  You could set collision type to "face" and then use a collider to press down on the mesh.  You could use a force field.  You could just use gravity.
What you describe in your comments is the desire to exert exactly 5 Newtons on your bottom verts.  That's the force necessary to accelerate 5kg by 1m/s/s, or to accelerate 1kg by 5m/s/s.  Using default Blender scales, and default soft body mass settings of 1kg, the simplest and easiest way to exert this force is via gravity.  In properties/scene/gravity, set your gravity vector to 0, 0, -5.0 and your softbody's 1kg verts will be accelerated downward at a force of 5 newtons.
But maybe you don't have constant mass for your soft body.  You can use a force field to do the same thing, just without quite as much precision.  Make a new force field, of "force" type.  To make it directional rather than radial set the shape of the force field, in properties/physics/force fields/settings/shape, to "plane".  Then, in force fields/falloff/Z direction, choose an axis for the force field to operate along.
But what strength to use to represent 5 Newtons?  Tests on 1kg and 5kg rigid bodies suggest that a strength of 120 is about right for 5N at 24 frames per second.  If you want to get more exact, remember that the distance that an accelerating body travels is equal to at^2/2, where a is acceleration and t is time.
But if you want to know what it's going to look like after that?  The answer is, it depends not only on your forces, not only on your soft body settings, but on your vertex density and your topology.  Soft body physics are not real physics.  Even though I did my best to answer your question, if you're wanting exact numbers for your forces, you shouldn't be using Blender's physics for your problems.  Blender's physics are tools to create pictures.  They bear only the tiniest resemblance to actual, real world physics.


What alternatives are there for Boolean: Union

One tool I've run into is the Bool Tool, it's similar but it can get better results. You'll need to enable it in the user preferences to use it.


How to iterate through mesh vertices and add hooks using script

Try this:

import bpy, bmesh

# Create a persistent reference to current object
current_obj = bpy.data.objects[ bpy.context.object.name ]

bpy.ops.object.mode_set( mode = 'EDIT' ) # Go to edit mode

bm = bmesh.from_edit_mesh( current_obj.data )

for i in range( len( bm.verts ) ):
    bpy.context.scene.objects.active = current_obj
    bpy.ops.mesh.select_all( action = 'DESELECT' ) # Deselect all vertices
    bm = bmesh.from_edit_mesh( current_obj.data )
    bm.verts.ensure_lookup_table()
    v  = bm.verts[i]
    v.select = True
    bm.select_flush( True )
    bpy.ops.object.hook_add_newob()

bpy.ops.object.mode_set( mode = 'OBJECT' )     # Back to object mode


Rendered Animation only 2 seconds even though i set it to last 10 seconds

You need to set your inpoint and outpoint in the timeline to match your nla editor clip. Your outpoint is currently 24 frames, which, unless you changed the settings, should be one second. If your animation needs to be ten seconds, your outpoint should be at 240 frames.


You can UVmap a cube and add a Glossy Material to it.  Set the Roughness parameter to 0.0
Add a Sub-Surface Modifier to the cube and set it to about 4 iterations, this helps for baking the Glossy Shader properly.

Add a texture node to the material so the sky can be baked to the UV Coordinates.

Now invert the faces for the cube so they face inwards. This should work as a SkyBox.

If you want the sky to be available in a GLSL shader as a reflection map then you may want to pay closer attention to how the UV's are laid out since a game engine may have specific layout requirements for skybox/enviroment/cubeMaps.

Here's some reference on how to code a cubemap using a runtime technique that was published by nVidia, it uses nVidia CG which is a shader language that is compatible with both OpenGL and DirectX.

https://web-beta.archive.org/web/20160408223256/http://http.developer.nvidia.com:80/CgTutorial/cg_tutorial_chapter07.html

And the source code to go along with the CgTutorial

https://developer.nvidia.com/cg-toolkit-download


There's only few people who can handle Cycles code well, their time is spent mostly on keeping the system stable and well supported. New developers are being introduced now, but there's always need for more people here.

Another issue is priority & focus... Cycles main target is to be a "production rendering" environment. Rendering with baked lighting is not commonly regarded as a good workflow, for that development time can be better spent on advanced optimizing (caches etc). The main use case is for making light maps for game environments, which is very relevant but not on the first priority list for the current core devs.


make soft bodies stay inside another soft body

This is an interesting problem. On the face of it, embedding one Soft Body object within another should be quite straightforward, but the Soft Body simulations don't interact in quite the correct way to get the desired effect. Also, there is only limited scope for adjusting the interaction and it is very difficult to prevent the objects from intersecting and passing through one another so that the internal objects escape from the 'parent' object.

To solve this we can separate the soft bodies so that there are two separate simulations - one for the cube and another for the embedded spheres. As they are separate simulations, this prevents the spheres from distorting the container when they interact with the sides of the container. To achieve this, the 'container' soft body will control the shape of a Rigid Body mesh and this will be used to contain the sphere soft bodies.

Firstly, create the container and set up the Soft Body simulation. This can be as simple as enabling the Soft Body in the Physics tab, disabling Soft Body Goal to allow it to interact with the scene, and enabling Stiff Quads in the Soft Body Edges panel.

Create  a plane to act as the ground, Add Rigid Body physics and set to Passive and enable Collision. Rotate and position the cube so it hits the ground at an interesting angle.

Running the simulation should produce something like the following :

Sub-dividing the cube will produce more pleasing distortion and bending when the cube impacts the ground (bear in mind that the more complicated the mesh the longer it will take to simulate) - although you'll need to tweak additional soft-body parameters (such as increasing the Bending setting in the Soft Body Edges properties). You might also want to add an Edge Split modifier and set the mesh to Smooth shading so that the bending of the faces is kept smooth while still having sharp edges to the cube (as a precaution, disable the Edge Split 'Edge Angle' and use Sharp Edges (and mark those edges as 'Sharp' manually) - this way the sharp edges won't change dynamically and break the Mesh Deform mentioned below!).

Next we need to create the mesh to act as the Rigid Body container for the spheres. For this you can simply Duplicate (D) the soft body mesh (be sure to do this on the first frame of the animation so it's in its original position) then scale it slightly smaller than the original mesh (so the spheres will not get too close to the edges). At this point it might be worth going into Wireframe mode (Z) so you can see what you're doing.

Remove the Soft Body from this copy of the mesh (click the cross on the Soft Body button in the Physics properties), and add a Mesh Deform modifier. Select the Soft Body container mesh as the deform object. Click 'Bind' (this might take a while to complete). Deformation of the Soft Body container should now result in the copied mesh being similarly deformed. Add Rigid Body physics, set to Passive and enable Collision.

Now with the duplicated (Mesh Deformed) mesh selected, press M, hold Shift and click a second layer so that the object resides in two layers. This second layer will be for the second Soft Body world.

Swap to that second layer and run the animation - you should see just the Rigid Body mesh visible and this should follow the motion of the 'actual' soft body mesh on the first layer.

Select the Rigid Body container mesh and go into Edit mode (Tab), press Space and Flip Normals. This is necessary for the object collision as the soft bodies within the mesh will now behave as if they are inside the box and rebound back inside the box rather than passing through to the 'outside'. Create the Soft Bodies within the box (you might want to set Soft Body Edges Bending to, say, 1.000 so that the Icospheres retain their shape) and run the animation :

Add Collision to each of the spheres (so they bounce off of each other) and Bake the animation. If any of the spheres break out of the container (depending on how and when they collide you might find that they force each other through the boundary) you can change the Soft Body Solver properties to refine the simulation (reduce Error Limit, increase Min/Max Step, etc.). Finally, add some materials (and set the Ridid Body bounding box to not render) and render the result.

Blend file attached.


Select multiple vertices using a list of coordinates with KDTree

Object mode non-bmesh version

Run script in object mode. Selects vertices in each object based on being closest to points in list.

import bpy
import bmesh
from mathutils import Vector, kdtree

context = bpy.context

coords_to_find = [
    (0.3203125, -0.734375, 0.7578125),
    (0.0, -0.2890625, 0.8984375),
    (0.453125, -0.234375, 0.8515625),
    (-0.6328125, -0.28125, 0.453125),
    (-0.796875, -0.125, 0.5625)
]

# Get the active meshes
meshes = set(o.data for o in context.selected_objects
        if o.type == 'MESH')

for me in meshes:
    size = len(me.vertices)
    kd = kdtree.KDTree(size)
    select = [False] * size

    # deselect all edges and faces
    me.edges.foreach_set("select", [False] * len(me.edges))
    me.polygons.foreach_set("select", [False] * len(me.polygons))

    for v in me.vertices:
        kd.insert(v.co, v.index)
    kd.balance()

    for co in coords_to_find:
        loc, index, dist = kd.find(co)
        select[index] = True

    me.vertices.foreach_set("select", select)
    print(me.name, [v.index for v in me.vertices if v.select])
    #me.update_tag()
    #context.view_layer.update()

which if run on default scene, returns

Cube [5, 6]

Note this assumes the given coordinates are in local space.

For global coordinates would have to decide how to handle objects sharing the same mesh, since a different vert may be chosen based on object transform for each object that shares the mesh.


Why does fluid stick to the outflow object?

In the example you showed, the velocity was probably set to something like 2.0 along the Z on the Inflow Sphere which means the water hits the top of the domain and runs down the sides.

Also with your Domain object, I would try experimenting with some settings.

These are the settings I set to create this scene effect. I don't know if this was more what you were looking for with yours.

I baked this with very low resolution. I'm sure with higher resolution, it would look much better but hopefully you can see the effect.


How do you merge two faces that are connected by two differently sized edges?

Edit mode> Face selection>  RMB + SHIFT  the desired faces>  F

Rough end result:

If the underlying structure is more complex than your orthographic view suggests, adding an inconspicuous loopcut or two may simplify things (so long as it won't be affected by doing so).

Hopefully this is what you were looking for.


Knife Project - Extrude through thickness?

Actually, you only need one single circle here instead of two.

First, after using Knife Project, find Cut Through on the lowerleft corner of the Toolshelf bar, or toggle it on the F6 panel.

Second, select each pair, then W ->  Bridge Edge Loops, to build faces between them (solidify the holes).


How to get objects from different files into one file?

There are several ways to import other blender objects in to a blender file.
Copy paste
The simplest way is to have both blend files open, and simply copy the object from one file and paste it into the other.
Select the object in the 3D view, then with the mouse still in the 3D view press CrtlC to copy. To paste the object in to the other file pressCrtlV.
Append
For the second method you only need the file that you want both objects inside to be open (prior to 2.8 you have to be in object mode), and then Append the object you want.

File > Append (prior to 2.8 ShiftF1 opened the append window too)
Select the blend file that has the object you want
After opening the blend file go to the Objects and select the object you want by its name.
Click the Link/Append from Library button.


How to parent object to armature without losing vertex groups

You can select your mesh, go to the properties panel, assign an armature modifier and choose your armature as "object".

If you use Ctrl+P
, "Armature deform" is the same, as long as you are sure not to have choosen "with empty groups", nor "with envelope weights", nor "with automatic weights".


Extend Frames On Bezier Circle Path Animation

Yes, it's quite possible, and (luckily) easy, too!

Select the Bezier Circle. Go to the Properties panel > Object data tab > Path Animation dropdown and change the Frames: value to 200.


How do you move multiple faces by equal increments?

For symmetrical shapes the best method is to use array modifier.

Delete all the faces leaving only one cog then change to object mode and add an empty in the origin of the gear and rotate the empty 45 degrees.

Then add array modifier on the gear object, set count to 8, disable Relative Offset. Then enable Object Offset and select empty from the selection box and enable Merge and First and Last.

This way you can control the gear shape by modifying only on cog.


Exporting ONLY the selected, visible faces of a scene

If trees are particle instances you will have to make them real first...

than delete all unwanted meshes in object mode to make first clean up, than select all (the rest of objects you want to export and if there is a lot of unwanted faces Join all objects (Ctrl+J), because like now, trees objects shares same object data (that can't be edited separately). If you are able to simply go to edit mode, select faces and delete - great, you can stop here and export.

If you have some large faces out of your range you can cut them. Like ...

Go to Top View, create a new plane object on top of all objects, in size of area you want to export.

Select new plane first, than your joined object, switch to edit mode and search for Knife Project ...

in operator panel set Cut through

Select (B) the rest of vertices you want to keep ...

... invert selection (Ctrl+i) and delete.

Export result

but ... for a huge forest scene it can be killing process :)


Weird geometry appears when I switch to object mode. How can I make it dissapear?

Try doing an ALT-H (unhide) in Edit mode. It's possible that you hid some geometry while you were in Edit mode and it showed up in Object mode.


Subdivision Surface not making things smooth as they are in the tutorial I am following

You need to delete the bottom face. Select it and press "X" and select "Faces" from the dropdown menu.

After you delete the bottom face an additional problem for your Modifiers/mesh occurs.

Set the "view" and "render" to 2 in the Sub Surf Modifier.

In Edit Mode select all of the vertices and press "G" "Y" to move them slightly away from the center on the Y axis.

Then check the box next to "Clipping" in the Mirror Modifier. Then "G" "Y" again and move all of your vertices back toward the center.


Can't fit plane to nurbs path to create a race track

Make the curve and plane have the same origin point. Apply transformations (Ctrl+A-->Rotation & Scale) in Object Mode to both objects. Subdivide the plane with loopcuts in Edit Mode (Ctrl+R). Give the plane the Curve Modifier and set the Path as a target. Choose the right deformation axis. Then go to the Curve header and check the Stretch and Bound Clamps checkboxes in a Shape panel.

To make te plane more detailed along a curve subdivide the plane with W-->Subdivise or add more edgeloops at the start.

EDIT: Deleted unnecessary points of your curve path and it works fine. Remember to use apply modifier while in edit mode option. It's very helpful in this case.

Here's the .blend:


How do you copy an object including all its properties, and make it single user?

In the first case it is not unlinked because it continues to use the same mesh data block. So all you need to do is copy object, copy its data and assign the new data to the new object like this (with default cube):
import bpy

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

new_mesh = obj.data.copy()
new_obj = obj.copy()
new_obj.data = new_mesh
for col in bpy.data.collections:
    if obj.name in col.objects:
        col.objects.link(new_obj)


Try selecting all, and then use merge by distance. Vertices that are in the same location will be connected. If this does not solve your problem, you could use bridge edge loops possibly and then degenerate dissolve.


Diffraction of a wave passing through double slits

Quality is butchered by gif format

You will need 3 Dynamic Paint objects

Canvas

Highly subdivided Plane with this settings:

Most important thing here is to set Timescale to 0.10 and Speed to 5. I don't know why but this way whole simulation is more stable.

Collision object

This is just a Brush with Waves > Type > Reflect Only

Wave generator

Animated Cylinder Brush with Waves > Type > Depth Change. Also you can crank up Factor and Clamp Waves. Seems like these options are producing smoother result.

Blend file

Here is file with used material and everything else:


In the Properties Editor, go to Object Data > Geometry Data > Clear Custom Split Normal Data

Shading in object mode differ from sculpting mode?


Is there any possibility to replace Blender 2.80 Keymap with Blender 2.79b keymap?

You can go to the preferences window and set the keymap to 2.7x


Is anisotropic BSDF different to principled BSDF w anisotropy?

It looks like if you play a bit with the Principled settings you get about the same result. I can't tell you more as I don't know anything about anisotropy   ;)


cycles VS evee : seems that some shadows are ignored?

I think I found out for this particular problem !

Enable the "contact shadows" in the light panel !


How can I create a random walk animation with animation nodes?

Currently there is no very efficient way to do this.

If you only have a few objects this solution might work for you:

Essentially you generate the whole path for each object in each frame.


Python console code.

Add a particle system to the context object, Note the reference returned ps if the system names this system "part.001" it will be ps.name

>>> ob = C.object
>>> ps = ob.modifiers.new("part", 'PARTICLE_SYSTEM')
>>> ps.name
'part'

another

>>> ps = ob.modifiers.new("part", 'PARTICLE_SYSTEM')
>>> ps.name
'part.001'

The newly created particle system in the objects particle system collection

>>> psys = ob.particle_systems[ps.name]

psys.settings is a pointer to the particle settings stored in bpy.data.particles referred to by this particle system.  Notice it has the name "part.001" but we haven't used the name to find it at all, only a reference and pointer

>>> psys.settings
bpy.data.particles['part.001']

Use this pointer to set some properties (as in question code)

>>> psys.settings.count = 10000
>>> psys.settings.type = 'HAIR'

Can use this to set to a predefined set of settings, in this example a previously defined group of settings named "Wooble"

>>> psys.settings = D.particles['Wooble']
>>>


So what you could do is:

First duplicate your curve to keep a safe copy somewhere. Now give it enough resolution, you'll have to make some tests but your mesh seems already smooth.

Convert your curve to mesh (header menu > Object > Convert To)

Select the edge where you want the slot to be, bevel with CtrlB, delete the faces, you have your slot.

Give your pipe a Solidify modifier to give it thickness, apply the modifier if your object is supposed to be printed at the end.

To have an even smoother object you need to add geometry with the Subdivision Surface modifier. As it will round the corners you need to add edge loops to sharp them. Again, apply your modifier if the object is supposed to be printed at the end.


The simplest way to recreate the mesh:
(in Blender 2.8)

1) Add a cube (Add->Mesh->Cube)
Then select and remove all but two sides (Delete->Faces).

2) Bevel the only edge that remained using the Bevel Tool.
Shortcut: Ctrl+B
Set the parameters as desired.

3) Set smooth shading, so it's perfectly smooth.

You're done.
You can now position it as you need.

Tip:
If you're a beginner, switch to 2.8. (or 2.81)
It has waaay more friendly user interface and is much easier to work with.


how can i add emission (glow light) on logo

Cycles
Just plug image node ("Logo") color socket into Emission socket of Principled BSDF node. I added node Convertor > Math type Multiply to increase strenght of light.
If your logo image is not black&white use ColorRamp node, RGB Curve node or what ever that make it BW.

Eevee
does not support mesh lights. But you can try distribute the light of emission texture by adding Irradiance Volume object. See How to make mesh lights work in Blender Eevee?


How to avoid pinching when constructing joint topology?

Topology alone will not do much for you. It's about how the bones influence/deform the topology.

To minimize pinching in such areas you can do 4 things:

Use Corrective Smooth modifier after the Armature modifier. This is designed for this problem (new in Blender 2.75). Use the vertex group input to influence what regions to smooth.
Change the bones point of rotation (this will change the radius at which the vertices rotate when bone rotates).
Smooth the deformation influence - couple options:

smooth bone weights or smooth them across multiple bones
use low-poly lattice or mesh deform to deform the mesh, deform the lattice/meshdeform with armature - this smooths the deformation

Use corrective shapekeys driven by bones.


What's the usage of "Set/Get property" nodes in sverchok

It was indeed derived from Eval Knieval node, but we felt it was cleaner to have dedicated nodes for In and Out instead of a multi-purpose node that switches its outward appearance.

For Get and Set it's shockingly simple, you paste/type the attribute path you want to control and the node automatically detects what kind of Socket to add.


Strange drawing of selections in edit mode

When a selection looks like that it usually means that there is a double vertex there. Two vertices in the same spot, and you only selected one of them.

To select both vertices, change the Viewport Shading mode to Wireframe Z, then with either circle select C, border select B, or just right clicking twice, select both vertices. If you want only one vertex there, with both (or more) selected press Alt M > At Center.


Some vertices stay in their position when rigged

There are only two reasons that vertices don't follow the bone you expect them to.

They aren't weighted to that bone
They are ALSO weighted to ANOTHER bone

Not only do you need to make sure that those verts are weighted to the right bone, but you need to REMOVE them from any other bones. That's literally all there is to know about bones and weights.


How to combine two middle-grey images and keep the same value?

To combine two textures with a middle-grey and keep the same value connect your previous image to an overlay node and the new in the second slot.

Because Blender uses sRGB and not a Linear color management you need to correct the gamma by connecting it to a gamma node in the image slot and for the second slot connect a math Divide node with 1 on top et 2.2.


Adding blender cloths to a make human model

First you select the bone for the upper half of the arm, then edit the weightpaint map, in Weight Paint Mode (Ctrl + Tab, while in object mode), such that the parts that are not supposed to be affected by the bone are blue.


Python in Blender 2.8 - testing if two objects overlap in the XY Plane?

There is a Python API to do that. BVHTree.overlap

It is nearly direct, we just need to convert objects vertices in world coordinates:

import bpy
from mathutils.bvhtree import BVHTree

# Get the objects
obj1 = bpy.data.objects["Cube"]
obj2 = bpy.data.objects["Suzanne"]

# Get their world matrix
mat1 = obj1.matrix_world
mat2 = obj2.matrix_world

# Get the geometry in world coordinates
vert1 = [mat1 @ v.co for v in obj1.data.vertices]
poly1 = [p.vertices for p in obj1.data.polygons]

vert2 = [mat2 @ v.co for v in obj2.data.vertices]
poly2 = [p.vertices for p in obj2.data.polygons]

# Create the BVH trees
bvh1 = BVHTree.FromPolygons( vert1, poly1 )
bvh2 = BVHTree.FromPolygons( vert2, poly2 )

# Test if overlap
if bvh1.overlap( bvh2 ):
    print( "Overlap" )
else:
    print( "No overlap" )


How to change the location of an addon in the UI

It's not a good idea to do that, but here is how anyway. Be aware that this may break add-ons.
What you need to be looking for is were the panels because they determine were UI elements are placed. The panel classes can be identified by their inheritance from bpy.types.Panel, although depending on how modules are imported it might just say Panel. Starting from Blender 2.8 there is a mandatory naming convention by which the class name of the panel should also contain _PT_.  Take as an example the following excerpt that defines a panel:
class SOME_COOL_ADDON_PT_settings(bpy.types.Panel):
    bl_idname = "SOME_COOL_ADDON_PT_settings"
    bl_label = "Setting for cool addon"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "View"

    ...

The placement in the UI is determined by bl_space_type, bl_region_type and bl_category. This means the panel is created in the 3D View in the right hand panel (which can open/close by pressing N) in the View tab. You could change the tab to Tool by changing the bl_category = "Tool".


How to use Image Mapping to repeat cut-in-half textures with X and Y in Cycles?

To mirror the texture you can split the UV Coordinates using a Separate XYZ node and then manipulate them using Maths nodes.

The UV and Image Texture range is from 0.0 to 1.0 and so you can mirror one side by Subtracting 0.5 (so it's from -0.5 to 0.5), applying Absolute (so negatives become positive) and Adding the 0.5 back in (so the range ends at 1.0) as follows :

To mirror the opposite side you can simply add another Subtract node to subtract the result from 1.0 to reverse the range :

EDIT The above solution assumes that the UV map is covering the entire 'face' of your model - ie, with the 'mirror' at 0.5 of the UV map. If this is not the case (eg, if the centre line is actually at 1.0) then you can simply use Mapping nodes to shift/scale the range before the mirroring and shift/scale back again afterwards.

For example, consider the following UV map for Suzanne :

Note how the 'centre-line' is at U = 1.0, rather than 0.5. For this we can use the following nodes to achieve the mirroring :

Note how the first mapping nodes scales by 0.5 in the X direction (note that it's in 'Point' mode - if using 'Texture' node, invert the scale to 1/0.5 = 2.0 instead). The final mapping node reverses the scale.

This produces the following result :


Using texture from substance painter (tri plannar projection)?

It looks like your image texture is not mapped correctly on the surface, did you check, if your Texture matches your UVs? And add a Texture Coordinate and a Mapping node to your Material-Setup. The easiest way to do that is to use the Node-Wrangler-Addon (CTRL+T Shortcut), it should be activated by default in blender 2.8, select the Principled BSDF Node and import your maps by using the shortcut CTRL+T, the add-on should create the right Node-Setup. Then check if the texture-mapping is made by the UV-map. All the best Marco Vitale


Upgrading from 2.79, objects listed in hierarchy, but nothing showing in 3d view

Looks like your collection is disabled in the viewport. Not sure if there is a shortcut to enable or not.


You already know what is causing the problem, it is because your script is trying to loop through a empty list (when the ray sensor is not hitting anything.)

All you have to do to fix it is add one line to your script.

if sol:
    #then your if statements goes in here

or change your if statement to this:

if sol and 'Sable' in sol and own['Vitesse'] > 10:

That one line checks to see if your ray is hitting anything, if it is then the rest of your logic will run. If the ray hits nothing, then there is no error because nothing happens.


The solution was t was similar to the posted video. By "changing the object in the current mode"
In scene selector, change the dot to the left of the mesh (to a sculpt icon) by going into sculpt mode, and Ctrl + Clicking on it.


Is there a way to set the length of the Cyclic Extrapolation in the Graph Editor?

A cyclic extrapolation is actually driven by an F-Curve modifier. In the Graph Editor, press N to expose the Properties panel and then go to the Modifiers tab and under Cycles click Restrict Frame Range and change the End value.


How to get Mirrored Vector by Plane on Python

You can use mathutils.geometry.intersect_line_plane to project the point onto the plane. This can be done by intersecting the line defined by the point and the point offset by the plane's normal vector with the plane:

proj = intersect_line_plane(point, point + plane_normal, plane_position, plane_normal)

Once you have the projected point you can use the vector from the original point to the projection to get the mirrored point.

from mathutils.geometry import intersect_line_plane

def get_mirrored_vector(point, plane_position, plane_normal):
    proj = intersect_line_plane(point, point + plane_normal, plane_position, plane_normal)
    mirrored_point = 2 * proj - point
    return mirrored_point


Object in Cycles is getting illuminated but stays black in Eevee

I could narrow it down to the huge number of lights (134) in the scene.
Deleting all lights and adding a fresh sun restores the display of shadows. By using the new filtering parameters, lights can easily be found:

It looks like that eevee cant handle that many lights and additional ones will simply be ignored:  https://docs.blender.org/manual/en/latest/render/eevee/limitations.html


Extrude a cylinder from the side of another cylinder

Maybe the easiest way is to use the Knife Project tool:

Duplicate the top of your cylinder, rotate the circle and make it another object.
Go in front view, select the circle, then the cylinder, and go in Edit mode.
Press the Knife Project button on the Tools panel (on your left, activated with T).
Now you have a circle marked on your cylinder. You can get rid of you circle object.
Delete the faces of this circle.
Extrude the edges.
Flatten on the Y axis with a SY0.
Fill the hole with F.
As it's better to only have quads, give an edge loop around the cylinder, use the knife: K to activate, Z to cut through, C to cut perpendicularly.
You have what you need (I guess).


Setting to brush texture follow the path of drawing?

This should be the option you want.
Properties panel(N)>Tool>Texture

From manual:

Rake R
Angle follows the direction of the brush stroke. Not available with 3D textures. (Shortcut sculpting only.)

https://docs.blender.org/manual/en/2.81/sculpt_paint/brush/texture.html


Cannot "Baking the Wiggle" in Blender v2.92.0

Disabling "Additive Bake" solved my problem!
I think there was a problem with the add-on, or the "compatibility" of the NLA. (?)

When you do an additive bake, it pushes your animation into an NLA strip and bakes the wiggle into the active action. — blenderartists.org

? = I don't know how blender's add-ons system is working, but reopening the editor or reload the same file can also solve the problem. (maybe a corrupted code sequence in the add-on)


In blender 2.81, when in an orthographic view, you can enable the grid in Viewport Overlays:


You have to select the bone you want the panties to be parented to then go to Weight paint mode ((shortcut) CtrlTab in object mode) and weight paint them.

See if it works now: http://www.filedropper.com/kok2


After you create some subtitles for a video in Blender, would it be possible to extract those subtitles in an SRT file?


Normal Pass is generated from Face's Normal Vector

When you bake the normal map, you are converting the XYZ component of each surface's point normal vector into the correspective RGB color (according to the type of calculation: object, tangent..).

Is something that is not related with textures or shading, just geometry.

The result is correct, every point of your surface has a normal pointing out (local Z axis). That's where the blueish color is coming from (XYZ=>RGB).

What you probably are trying to bake is the Color of the Normal Map. Maybe you have combined several maps or some of them are a procedural textures converted with the bump node... what you need is to bake the Emission Pass (one of the fastes to bake you'll need just 1 sample, as with SSS Color, Glossy Color, Diffuse Color...) of an Emission shader with Strenght=1 that has the color you want in imput:

Here's an example of baking the Normal from procedural textures:


This is because your mesh is splitted into Flat parts (Probably because you used an Edge Split Modifier).

To combine it and have it not "Break" you can enter edit mode, select all vertices and press W then Remove Doubles.

Not related to the question:

I would recommend you remesh your object to get a better toplogy using the Remesh Modifier


How to make small objects emit a ton of light?

Mesh lights can be useful but they are quite an inefficient way to light your scene - especially with a large number of small lights as in your case. A better solution is to use Point Lamps to light the scene - although those are not visible to the camera which is not the effect you are looking for.

The solution is to use a Point Lamp embedded in the center of what would normally be your mesh lamp. This way the scene is lit by the Point Lamp (and can take advantage of all the optimisations in the renderer for handling point lamps) while the mesh lamp is still visible to the camera - but is set up to not block light from the lamp.

You can achieve this using the following material :

The Is Camera Ray light path input is used to switch between a Transparent shader and an Emission shader depending on whether visible to the camera. This means that for illuminating the scene the mesh will be invisible (so the lamp is visible) but in the actual render the mesh will emit light as if it were lighting the scene (so any effects in compositing (such as a Fog Glow) will still take account of the brightness).

As a comparison, here is a scene using a mesh lamp with 20 samples. The lamp on the right is a Point Lamp (and so is not visible) while the one on the left is a mesh lamp and so if visible to the camera. Note how the mesh lamp is very poor quality. Many more samples would be required to get acceptable results.

Using the above material produces the following result. Note how the mesh lamp is still visible but that the Point Lamp (positioned inside the mesh and set with a similar size as the mesh) is providing the actual illumination. Again, this is with only 20 render samples but the result is much more pleasing than the mesh lamp.


When compositing a render over an image you have to make sure that your render dimensions for the scene are set to the same size as the background image.

Your other option (say if the picture quite large) is to scale the picture to match the render size.

That can be done by adding a Scale node set to Render Size, which will give you a node setup like this.


I am not an expert in Python, but if my knowledge from JavaScript translates well enough, then this is caused by the fact that the created function references are not equal. Let's say, you have a function called a:
def a(x, y):
    return x + y

It is stored as a reference, that can be assigned to multiple variables that will be equal to each other and itself as well:
print(a == a) # True
b = a
print(a == b) # True

But each time you call functools.partial, it creates a new function reference, which are then not equal to each other, not even if their parameters are the same:
c = functools.partial(a, 5)
d = functools.partial(a, 5)
print(c == d) # False

Or alternatively you can even directly compare the results.
print(functools.partial(a, 5) == functools.partial(a, 5)) # False

Because of this, if you want to later unregister a function created with functools.partial, you need to store a reference to it, so Python will be able to find which one to unregister by checking for equality among the registered ones, like for example this way:
e = functools.partial(print_message, "World")
bpy.app.timers.register(e, first_interval=2.0)

after which you can use the following code to unregister:
if bpy.app.timers.is_registered(e):
    bpy.app.timers.unregister(e)

because
print(e == e) # True


AFAIK, values rendered fromm Eevee don't seem to be taken into acount when compositing. I don't know if it's a bug. But here's a work around :

Set a color for the objects you want to add streaks on. Make sure you don't use that color anywhere else in your scene. I used a full red (rgb 1:0:0)
In the compositor, we will use a Chroma Key node do create a mask out of that color. Play with the cutoff & acceptance to really isolate your lights
With Alpha Over node, we will take the original render and use the new mask as factor to put our lights on black background
Let's add a glare node. The mix value must be set to 0
Mix the glare result to the original render with 0.5 factor

It's really not the best solution but hopefully, all the render passes will be back at some point.


You can use script for it, with scene.frame.current combine with bpy.app.handlers.frame_change_post.append()

Here is a simple script work in Blender 2.80, paste in text block and run it, it will loop the object hide value with the current frame:

import bpy

def ani_handler(scene):
    name = 'Cube'
    objs = [obj for obj in scene.objects.values() if name in obj.name]

    for i, obj in enumerate(objs):
        obj.hide_set(i != ((scene.frame_current-1) % len(objs))) # Blender 2.80
        # obj.hide = (i != ((scene.frame_current-1) % len(objs))) #Blender 2.79b

bpy.app.handlers.frame_change_pre.append(ani_handler)

if you want to try in Blender 2.79b below, change the # in head from 2.79b to line 2.80.

Change the 'Cube' to the name you want to specified ('' means no limit), if the object name contain the name, it will count toward this script.

Also if you run a previous script before, restart your blender to the clear the handlers.


I use a combination of factors if I'm looking for "clean" shadows in eevee.
The first step is to ensure "Contact Shadows" are enabled for all lights that are casting shadows.

The next thing is to Enable "Ambient Occlusion" in the Render Properties settings, and as well, disable, "Soft Shadows", and enable "High Bitdepth". The removal of soft shadows may cause some jagged edges on your shadows - to mitigate this, you can increase the shadow cube size.


You have to assign your image to bg.image. The last line should therefore be:

bg.image = img

Below you find a modified version of your code that runs properly.

import bpy

cam = bpy.context.scene.camera
filepath = "D:/path/to/image_seq.jpg"

img = bpy.data.images.load(filepath)
cam.data.show_background_images = True
bg = cam.data.background_images.new()
bg.image = img

If you want to use an image sequence you will have to set the img.source:

img.source = 'SEQUENCE'

Make sure that your filenames of the sequence are numbered, so that Blender can automatically identify the consecutive frames.


Pointing the camera in a particular direction programmatically

Heres a script to make a camera point towards any point in space.

import bpy

def look_at(obj_camera, point):
    loc_camera = obj_camera.matrix_world.to_translation()

    direction = point - loc_camera
    # point the cameras '-Z' and use its 'Y' as up
    rot_quat = direction.to_track_quat('-Z', 'Y')

    # assume we're using euler rotation
    obj_camera.rotation_euler = rot_quat.to_euler()

# Test
obj_camera = bpy.data.objects["Camera"]
obj_other = bpy.data.objects["Cube"]

obj_camera.location = (5.0, 2.0, 3.0)
look_at(obj_camera, obj_other.matrix_world.to_translation())


if you change the extention from .vrm to .glb and open in Windows Paint 3D, you can then export it to FBX and import to Blender.


Some vertices are still showing in object mode

You only have 3 faces, therefore some edges are floating and are visible in Object mode. You need to correct this.


I also have this problem regularly and i figured out this is because of low Resolution , you need to increase Resolution Divisions of your domain to something like 400 or 500 for good results but WARNING if you are working on a low spec device like a normal consumer laptop , Even with 4 gb or 8bg ram this could be problematic but if you have a good build with some OKAY graphics , 500 divisions should not be a problem but on a simple laptop Blender will HANG as hell of you even crank up to 200


Why does my control panel not stay the same?

What you need is not possible.

Some of the Panels in the Properties Editor are dependent on the render engine.

Blender Render Engine has different shading philosophy and thus the settings appear differently.

You must choose a render engine for a project and go with it.


If you have a few View Layers you should properly manage it render settings.

Please share some screenshot with us!


Rigging up a model in a non-neutral pose for a given armature

You can change your pose and apply it as rest pose.


blender 2.8 child of

blender 2.8 child of two child left right foot.......ok

Set two child of objects to adjust the influence value to join the left right foot.


But when i try to scale, it doesnt even move.

You can scale with the scale tool - press and release alt and then s, or select in the tool panel:

Or you can just hit s to use interactive scale operator.

You should also make sure you have the correct selection and that you are using the transform pivot that you want, that you can select here:


Why wind effect wont affect rigid body simulation in 2.8?

yeah this is a weird bug. Try this workaround. Add a particle system to the cube and then delete it straight away without running the animation. Now run the animation and the cube is blown around as expected.


One of the problems with blender right now when using particles system is that it is not easy (or nearly impossible) to make the instances avoid each other and not overlap, and thus cover maximum space.
You Setup is great, I'm thinking that you have too much grass in your scene, probably more than you need to cover the surface. If you show me a screenshot of your scene or your particles settings at least, I can pinpoint (and I will update this answer accordingly).
PS: Also, just a friendly tip, yes Graswald is a good add-on, but do consider checking out Scatter add-on
https://www.blendernation.com/2020/04/03/blender-add-on-spotlight-scatter/
disclaimer: I'm in no way related to devs of either add-ons. So this recommendation is purely professional, unbiased.


How to get images to planes objects to receive shadow?

After some looking around, I found the solution. Since I was using only image textures and a mix shader no shadows would be created. I had to put the images through a principled bsdf node before giving it to the mix shader so shadows could be created.


Changing image texture as height increases and using colorRamp with image texture

Use different ramps, each one with a different increasing range, to map  the information from the $Z$ axis.

(The math node in this case is not doing anything, but can help you refine the placement and scale the coordinates for the z axis. The ramp node's range is confined to values from 0 to 1 so if your values exceed that range or are too small you might need to scale them)

Then, each one of the ramps can be used as controls a color mix between two different images, and then concatenated to mix new images in different heights of the mesh.


How to create submenus with dynamic content?

You can make each submenu have its own context by setting a variable in the UILayout.

The script can be made to work as expected with only minor changes.

Define a context member for each menu, using UILayout.context_pointer_set
In the menus draw function, access this variable directly.

Modified example script:

import bpy

class CamerasSubMenu(bpy.types.Menu):
    bl_label = "Camera Properties"
    bl_idname = "view3d.camera_properties_menu"

    # <-- Line removed (menu's don't store properties)

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

        row = layout.row()
        row.prop(context.my_camera, "lens")  # <-- Changed from original

class CamerasMenu(bpy.types.Menu):
    bl_label = "Cameras"
    bl_idname = "view3d.cameras_menu"

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

        for camera in bpy.data.cameras:

            row = layout.row()

            row.context_pointer_set("my_camera", camera)  # <-- Added to original
            row.menu(CamerasSubMenu.bl_idname, text=camera.name)
            # <-- Line removed (camera set above)

def register():
    bpy.utils.register_module(__name__)

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()

bpy.ops.wm.call_menu(name=CamerasMenu.bl_idname)


Set Multiple Cameras as Active (Game Engine)?

I didn't write this script but it seems to work, and I think I understand how it works. Script credit
from bge import logic, render
camList = logic.getCurrentScene().cameras

cont = logic.getCurrentController()
own = cont.owner
cam1 = camList[own['cam1']]
cam2 = camList[own['cam2']]

width = render.getWindowWidth()
height = render.getWindowHeight()

cam1.setViewport(0, 0, int(width/2), height)
cam2.setViewport(int(width/2), 0, width, height)

cam1.useViewport = True
cam2.useViewport = True

Now the object that's running this is a cube, and it's logic looks like this:

Notice the two string properties! These define the cameras that will be used. you can see them called in lines 6 & 7. Basically, the script designates the Viewport area of each camera to half the width of the screen, which is perfect for split screen while playing a game with a  friend... Like, a really close friend, cause you'll probably have to share a chair. :)
DISCLAIMER!!!: I did not write the script included in this answer


How can I apply textures in Blenders UV Editor

You may try using a Stencil mapping option. In UV Editor set the mode to Paint. Add two textures in a Texture panel using the '+' button. Change the brush mapping type to Stencil.

Your texture stencil should appear. Press Image Aspect button to get the original picture dimensions. Hold Ctrl+RMB to rotate stencil, Shift+RMB to change its size and RMB to pan it. Then paint.

Click on the texture preview window, choose your second texture (Up/Down Arrow, Enter or choose it from the textures list) and paint again.

You can use the same method in a 3D View window. It's very useful for blending/hiding the seams btw.


Can a lower subdivision be used when navigating the viewport?

Yes, in the options panel of sculpt mode, you have this : fast navigate


High poly from low poly with normal maps

This is possible if you convert the normal map into a height map in a program like CrazyBump or AwesomeBump. What this will do is add bump to the low poly model and enable you to give a slightly more high poly look. This however, may not give the best results.


How can I get rid of these artifacts in blender internal render?

Transparent objects and solid objects are rendered in two different steps during the render pipeline.

If you compare the render pass of solid color with the z-transparent one, you'll notice that the alpha channels do not match perfectly.

Combining the solid and transparent layers, you'll get some differences along the anti-aliased edges.

To solve this issue without increasing the render size, you can toggle transparency in the solid material (the character).

Doing so, Blender Internal will render the whole scene in a single pass.

Here you can find a similar example:

How can I make transparency act as expected with the internal renderer?


How can I adjust Cycles material displacement amount?

Remember this in an experimental feature it doesn't update atomatically every time. To force update Exit Rendered View to solid view and switch back to Rendered view. Or Render with F12 and you'll see the difference.

With True Displacement x10

With True Displacement x20


Cycles Volume Scattering with Voxel Data

For those wondering since there are not really any supported volume formats (as of spring 2016) supported in Blender Cycles hacks must be used. I settled on a solution that used the answer posted in a related question. It is important to note this solution is a general method to create 3d image from a 2d image and is gpu accelerated. I was able to use this method to create 3d volume scattering.

Here is an ugly but fully working one that I produced with the following python code to create the input image. I found this approach to also be very memory intensive as expected since each image was 200x200x200 pixels.

import numpy as np
import png # using pypng

n = 200
x = np.linspace(0, 10, n)
array = np.zeros(n**3).reshape(n, n**2)
for i in range(n):
    for j in range(n):
        for k in range(n):
            array[i, j+k*n] = (np.sin(x[i]) * np.sin(x[j]) *
np.sin(x[k]))**2 * 2**16
array = np.floor(array).astype(np.uint16)
image = png.from_array(array, 'L')
image.save('hello.png')


Just ignore the input list index values. Treat the input list as a dictionary.

shPrin.inputs['Specular'].default_value = 0.015
shPrin.inputs['Sheen Tint'].default_value = 0.2
shPrin.inputs['IOR'].default_value = 1.8

If you know an index and want to know the name -

>>> shPrin.inputs[11].name
'Sheen Tint'

And to list all the available names -

for i in shPrin.inputs:
    print(i.name)


How do I export as an .x file, without being saved as a text file?

.x is a depreciated format. Blender 2.8+ does not have any plug-in support, as .fbx is now the preferred format.There is an add-on for 2.70 you can enable (called DirectX X Format exporter I think) that should allow you to export to .x.


Archimesh is not displayed in the Tool shelf

In toolshelf -> create -> Archimesh -> Room tools