text:
How can i show the Redo Last panel in the Preferences?
The redo last panel is one time at the bottom of the tool shelf. And you can also call it with F6.
I would love to display this panel in the Properties though. Which, in my opinion, makes much more sense. The redo last panel seems to be a menu, at least the version that can be called with F6. So I tried it with a simple layout.menu("SCREEN_OT_redo_last", text="none")
But that way I get a warning that the menu SCREEN_OT_redo_last does not exist.
So what would be the way to add the redo last panel to the Properties editor? Am I even at the right track?
import bpy

class ObjectPanel(bpy.types.Panel):
    bl_label = "Redo Last panel"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "render"

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

        layout.menu("SCREEN_OT_redo_last", text="none")

bpy.utils.register_module(__name__)

Related http://blender.stackexchange.com/questions/41985/making-the-buttonpress-f6-into-a-scripted-button  SCREEN_OT == bpy.ops.screen.

Thx. But this just calls the popup again. Like with pressing F6. I would like to show the content in the panel. Not sure what SCREEN_OT == bpy.ops.screen should tell me.

Solved by this script. It has some caveats though. The affected object does not update when i change a value here. Which is already another thread. See here: http://blender.stackexchange.com/questions/57700/custom-redo-last-object-does-not-update-when-changing-value
import bpy
...
for element in     bpy.context.window_manager.operators[-1].properties.keys():
                    column.prop(bpy.context.window_manager.operators[-1].properties, element)


text:
What's the difference between Extrude Individual and Extrude Individual Faces?
When i perform a Individual Face extrude with "Individual Faces", then the faces extrudes individually.
When i perform a Individual extrude with "Extrude Individual" and faces selected, then the faces extrudes individually. There seems to be no difference to the upper method.
When i perform a Individual extrude with "Extrude Individual" and edges or vertices selected, then the tool does not extrude individual. It uses the Extrude Edges or Vertices and move method then, it performs another action instead. Which can be seen in the title of the Last Operator.
So, besides that the "Extrude Individual" tool does work with Edges and Faces too, without doing what is promised though, what is the difference between "Individual Faces" and "Extrude Individual" then? What do i overlook here?

watch this video u will get ur answer https://www.youtube.com/watch?v=MI9B7NYnpho

Not really, sorry. This just raises the question why in Blender 2.6.2 there was no Extrude Individual Faces since the dropdown box is missing completely there ;)

The function shifts with which ever mode you are in Vertex/ Edge or Face - and yes a lot of the times it does seem like they do the same thing...

You can use ALTE to get to the extra functions.
p .s. the last move in the GIF was ALTS just for fun.

Thanks for your comment. But have a look at the Last operator when you use it at verts or edges. Then it simply extrudes like with the Extrude Edges and Vertices tool then. And for extruding faces the two methods does the very same from what i can see. The Last operator is the same, which shows that they do the same job. The Extrude Individual tool simply seems to be a double menu entry to me. Its functionality already exists with "Individual Faces", "Edges Only" and "Vertices only". But there must be a reason why they made the three tools as an extra tool under another name.

You might have a point about the way the setup is designed and whether it is optimal. Regardless of the overlapping functionality they can also work like an over-ride - like selecting all the faces but only extruding the vertices. I guess the '.view3d.' is the deciding factor. Perhaps add a Phython tag and someone might clarify....

That's a good idea. Done :)

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Vertex mesh won't sculpt
hey all very new to blender(day 3) I am currently making  a donut and I have what looks like 5 vertexes that no matter what I do won't stop looking pixelated when i'm sculpting. how does one fix this?

Hello, hard to say, please share your file: https://blend-exchange.com/

You have a flipped face, you can see it if you display the Face Orientation option:

To fix that, select all in Edit mode and ShiftN, also you can right click > Shade Smooth to have a smooth shading on the whole surface:

You should also decrease the view Clipping Start, it will allow to continue to view your mesh if you zoom on it:

And maybe correct the topology to have quads rather than tris:

Fantastic thank you!

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I apply an image texture to a certain part of a mesh?
I have a mesh, with 16 faces, that I ultimately show in Blender Game Engine, and want to apply separate textures to the faces via a script.
The reason behind this is I'm trying to show a detailed astrophysics skymap - currently zooming in shows pixelation, I managed to reduce the level of pixelation by increasing the texture size to 16kx16k, but I ended up using far too much RAM. I discovered that manually splitting the textures into 16 smaller chunks reduced the RAM usage (~25% of the texture is not being shown at one time, reducing RAM usage and pixelation at high zoom.
I tried to split the mesh into 32 individually textured faces and found that the rotation was much smoother and the RAM usage was further reduced.
I would obviously like to turn this workflow into a script. So far I have worked out how to texture an entire object as below, but cannot work out how to apply a different texture per face.
new_mat = bpy.data.materials.get('MaterialName')

new_mat.use_nodes = True

nodes = new_mat.node_tree.nodes
links = new_mat.node_tree.links

texture = nodes.new('ShaderNodeTexImage')
texture.image = bpy.data.images['Earth.png']
texture.location = 0,0

surface = nodes.new('ShaderNodeBsdfPrincipled')
surface.location = 300,0

output = nodes.new('ShaderNodeOutputMaterial')
output.location = 600,0

link = links.new( texture.outputs['Color'], surface.inputs['Base Color'] )
link = links.new( surface.outputs['BSDF'], output.inputs['Surface'] )

Does anyone have any tips? Should I create separate objects, texture them individually then merge?

TLDR: You can create one material per polygon and assign all the materials (strictly speaking: the respective index of each material slot) to MeshPolygon.material_index.

I'd suggest create a dictionary based on the actual face id and the image path beforehand (// prefix is a Blender specific identifier for the current blend file):
images_per_polygon = {
    0: "//city.exr",
    1: "//courtyard.exr",
    2: "//forest.exr",
    ...
}

Then iterate through all Mesh.polygons, create a material based on the current index, add all nodes, load and assign the image to the Image Texture node using BlendDataImages.load() and assign the respective face/polygon id to MeshPolygon.material_index.

Demo on how to setup one image per polygon using the default cube and the built-in hdris based on How to load an image from disc and assign it to a newly created image texture node? and How to assign a new material to an object in the scene from Python? assuming the following folder structure (6 faces hence 6 images):
main_folder/
├── file.blend/
├── textures
    ├── city.exr
    ├── courtyard.exr
    ├── forest.exr
    ...

Make sure the filepaths are correct, the object is selected and run the script:
import bpy

# Get a reference to the object in context
# -> https://blender.stackexchange.com/a/239102/
obj = bpy.context.object

# Create the dictionary
# polygon id: "/path/to/current/blend/textures/image.exr"
images_per_polygon = {
    0: "//textures/city.exr",
    1: "//textures/courtyard.exr",
    2: "//textures/forest.exr",
    3: "//textures/interior.exr",
    4: "//textures/night.exr",
    5: "//textures/studio.exr"
}

# Remove all material slots from the object
# -> https://blender.stackexchange.com/a/146719/
obj.active_material_index = 0
for i in range(len(obj.material_slots)):
    bpy.ops.object.material_slot_remove({'object': obj})

# Create (if not present) the materials and assign them per polygon
for c, p in enumerate(obj.data.polygons):
    image = images_per_polygon.get(c)
    if image:
        # Create the material based on the name if not present
        # -> https://blender.stackexchange.com/a/23434
        mat_name = "Mat{}".format(c)
        mat = bpy.data.materials.get(mat_name)
        if not mat:
            mat = bpy.data.materials.new(mat_name)

        # Append the materials to the slots and assign each per polygon
        obj.data.materials.append(mat)
        p.material_index = c

        # Material Properties
        # -> https://blender.stackexchange.com/q/23436/31447
        mat.use_nodes = True
        nodes = mat.node_tree.nodes
        nodes.clear()

        # Create Principled Shader node
        node_principled = nodes.new(type='ShaderNodeBsdfPrincipled')
        node_principled.location = 0,0

        # Create Image Texture node
        # -> https://blender.stackexchange.com/a/201414
        node_tex = nodes.new('ShaderNodeTexImage')
        # Assign the image
        node_tex.image = bpy.data.images.load(image)
        node_tex.location = -400,0

        # Create Output node
        node_output = nodes.new(type='ShaderNodeOutputMaterial')
        node_output.location = 400,0

        # Link all nodes
        links = mat.node_tree.links
        link = links.new(node_tex.outputs["Color"], node_principled.inputs["Base Color"])
        link = links.new(node_principled.outputs["BSDF"], node_output.inputs["Surface"])

Further reading

Mesh's material_index is an index into what?
How to assign a material to a single face of a mesh using Python API
How to load an image from disc and assign it to a newly created image texture node?
How to assign a new material to an object in the scene from Python?
Control Cycles/Eevee material nodes and material properties using python?
Removing all material slots in one go
How can I get the filepaths of all default/built-in hdris?

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How to select animation channels using Python?
How to select channels using python?

ActionGroup.select

As an example set the "spine" group to selected / unselected from the python console.
>>> C.object.animation_data.action.groups['spine'].select = True


text:
How does EEVEE work?
We all know what Cycles is, at least to a first approximation: Cycles is

a path tracing engine [...] Specifically, cycles is a "backwards" path tracer, which means that it traces light rays by sending them from the camera instead of sending them from light source(s)

—from this community wiki

Understanding its implementation clearly requires some more technicalities, like the BVH, the specificity of volumetric shaders etc, but even without all those details it's pretty clear what's the "idea" behind it.
In short (Cycles): rays are traced back from the camera until they reach a source of light or the sky. Every time they "hit" something they have different possible routes -- each with its own probability, as described by the material settings: they can reflect at specular angle (specularity), bounce at random angle (rough diffuse), transmit through the surface (refraction), etc -- and during this route they accrue color, intensity etc. Since there are probabilistic choices along the route, multiple rays with different random seeds are cast and then averaged (samples) (1).
As for EEVEE, we know what it's for: it is a «modern, high-quality viewport that will perform better than the current Blender viewport» (link); we know what it is not for: it «uses approximations on the behavior of light and will not be as accurate» as Cycles (link). But I think it hasn't been written yet "what it does".
How would you shortly explain the workings of EEVEE to a friend (or to a class of non experts)? What are the main steps that go into the rendering process? Lit/shaded areas, occlusion, interaction with the materials, (possibly even subsurface scattering and volumetrics, that I guess must be somewhat tricky), etc...
My description of Cycles above (1) is the type of understanding I'd like to get about Eevee.
Thanks!

Very basic, but possibly relevant video.

It evolves in different ways depending on what you do. :p

@NicolaSap the gist of Eevee is rasterization which is a simple projection of scene's geometry. The gist of Cycles is path-tracing which is a simple simulation of light. Can you specify what you'd like to clarify more? The image I included for rasterization isn't clear enough? Or perhaps you are not sure how Lambert/Phong shading works based on normals and light positions from the wiki link?

Are you calling for dumbing it down or for going into more detail? It's unclear what you mean by 'produce clearer image in reader's mind'

@JaroslavJerrynoNovotny I admit I'm probably just being stubborn. What I'm trying to say is that "path-tracing which is a simple simulation of light" is enough to explain basically everything: color, intensity, ray path. While "rasterization which is a simple projection of scene's geometry" only explains the partitioning of the screen into object IDs. It doesn't explain Eevee more than it explains cryptomatte. The hue and intensity of a pixel is given by something else and yes, that something else is probably just Lambert/Phong. [cont...]

[cont..] I feel that the answer I'd like to read (which I am not sure exists, and if I was able to summarize it myself I would have written it) should probably touch on many of the things that you have mentioned in your answer but in a more organic way. Skipping what is mostly an implementation detail (tessellation, level-of-details?), and focusing more, with examples and pictures if necessary, on the fundamental steps, including I believe a brief description of Lambert/Phong if necessary. [cont..]

[cont..] I think your answer is wonderful for somebody who wanted to open the blender code and understand what each part is doing, but not so much for someone who wants a whiteboard diagram of the idea behind EEVEE. [fin]

Yes, the color and intensity of each pixel/fragment is determined by Lamber/Phong and the trickery on top, the 'addons' that make the image nicer. This I didn't include in answer, linked a wiki. The topic is so large there are books about it :) So the dilemma is what to include and what to omit so the answer is not overcomplicated. It's usually better to make more shorter questions/answers, like a follow-up question could be How does Lambert/Phong work. Link them together maybe. There could be some diagrams, but for visuals I think one needs to see video how each step works in action.

I think I'll break the answer into 3 separate ones. The simple difference, the technical explanation, and a new non-technical visual explanation. People can then vote which one approach they like more:)

EEVEE is an engine that does rasterization (like Blender Internal or like game-engines), the key difference to ray-tracing (Cycles) is this:

rasterization is a technique where the scene's geometry is projected onto a raster of pixels:

Every pixel's color is determined with shader code based on surface normals and light positions (generally Blinn-Phong & Lambertian shading), edges are anti-aliased, occlusion is determined by using z-buffer values. To make the output look nice, additional "trickery" is needed: light maps, light probes, screen space ambient occlusion, shadow maps, blurred shadows, screen space reflections, distance-sorted transparency, ...
raytracing shoots multiple rays into the scene per pixel from camera, lets them bounce around the scene, rays obey laws of physics and if they reach light source they shade every surface they went through or bounced off with the light's color and energy:

Occlusion, soft shadows, anti-aliased edges, reflections/refraction, global-illumination, caustics, ... It all happens naturally, because light itself is being simulated (to some degree, spectral phenomenon of light is not simulated in Cycles for example, but in some other renderers it is implemented).

Eevee uses OpenGL 3.3 API to do its rendering, which is a set of functions that through drivers use GPU hardware to accelerate its computation (Blender Internal uses same way of rendering the scene as Eevee does, but does use its own code that runs on CPU and is not GPU accelerated).
This is how the rendering pipeline works (from top to bottom, non-programable steps in italics):

Vertex specification - takes input data (vertices with vertex colors, locations, UV coordinates, which vertices make polygons, etc.) and puts them into buffers on which next parts of pipeline operates (the GPU hardware can efficiently operate on these buffers in a parallel way).
Vertex processing

Vertex Shader - vertices go in, altered vertices go out. Here they are for example transformed in space (object transforms), code works on each vertex individually for efficient parallelization
Tessellation (optional) - patches of vertex data are subdivided into smaller primitives in 3 stages:

Tessellation Control Shader determines how much tessellation to do on each patch (face)
Tessellation Primitive Generator subdivides the input patch
Tessellation Evaluation Shader takes the subdivided patch and computes new vertices values (displaces them for example)

Geometry Shader (optional) - can create new vertices or delete them. Instancing is handled here, generation of multiple levels-of-detail for meshes or  outputting primitives in places of single points (particles) happens here.

Vertex post-processing - output of previous stages is collected and prepared for primitive assembly and rasterization. This includes:

Transform Feedback - output from vertex processing is stored into buffers so it is easy to re-use the transformed data multiple times.
Culling geometry outside the view frustum and by near-far clipping camera planes.
Viewport transform happens here - vertices are transformed into window-space - these are the coords that are rasterized.

Primitive assembly - meshes are divided into a sequence of triangles and sorted in such a way that it is efficient to rasterize.

Face culling is performed, faces that do not face the camera are discarded.

Rasterization - projects the geometry onto a raster of pixels and outputs a collection of fragments. Each fragment represents a segment (fragment) of a rasterized triangle (like grabbing french-fry cutter and slicing triangles into fragments with it) - the fragment size is related to the pixel area. Multiple fragments can come out each pixel (multi-sampling). Each fragment has a (x,y) window-space position, interpolated per-vertex output values (interpolated normal and UVs, vertex colors,..) and can hold other attributes.
Fragment Shader (sometimes called Pixel shader) - takes the fragments and samples colors and computes z-depth value for each of them. Takes care of how pixels between the vertices look.

takes single fragment as input and single fragment is put out (efficient parallelization)
colors are sampled from textures (albedo, roughness, transparency, normal, masks,...)
normal of each fragment is finalized (normal maps or bump maps)
fragment is shaded, see Blinn-Phong and Lambert shading models

Per-sample operations - fragments from Fragment shader are processed and written to frame buffer(s). These operations also include:

determining blending (transparency)
z-depth culling / depth test (it is performed per sample). This can be done before Fragment Shader too.
culling with Stencil buffer happens here - a stencil can be specified and fragments outside stencil are discarded (like the ones hiding behind UI elements). Also can be done before Fragment Shader.

A special stage that does not fit particularly somewhere in the pipeline are Compute shaders. They are generally not directly responsible for drawing triangles and pixels - they generate arbitrary data anywhere they are invoked in the pipeline. Current GPUs can run main pipeline and several compute workloads at the same time. Effects like screen-space ambient occlusion, soft-particles, volumetric effects, blur and depth-of-field and many others are usually implemented with Compute shaders.

Thanks Jaroslav! I get how rasterization determines what is visible and what is not. But how does it determine what is lit?

@NicolaSap Shadows are precomputed into a texture thrown by each light onto objecs and shading of objects (specular and diffuse reflection) is determined by the Blinn-Phong and Lambert formulas based on light positions and normals of surfaces.

Ok thanks! This is a good answer (and, of course, the best so far), but I'd encourage an answer going a bit more into these aspects. i.e. what are the main steps that go into the rendering process?

@NicolaSap I kept it in line with "How would you shortly explain..", but I can go into more depth and detail if you like. Or maybe it would be better as a separate new question? Asking about Phong/Blinn shadint, etc. I'll leave it up to you.

@JaroslavJerrynoNovotny It would be great if you can also give some explanations on how EEVEE does rendering differently compared to the old Blender Internal rendering engine.

Thanks Jaroslav for addressing Amir's comment. I believe there's more to Eevee than it being GPU enabled. I use Eevee on CPU: it's still very fast and it looks great, much better than Blender Internal

@NicolaSap Your CPU might have iGPU inside it. The image is still generated using gpu, same as everything you see on monitor.

Fabulous answer... is the best place to glean all this stuff OpenGL references? Are there any particularly good ones?

https://learnopengl.com is an excellent resource.


text:
Why is the boolean modifier creating a glitchy mesh instead of cutting into the object?
I'm modeling a city and wanted to create a river with help of boolean modifier. I've checked doubles and normals, so I don't know what the problem is when I'm adding a boolean modifier. You can see what's happening and nothing is happening to plane, just glitchy bugs.

How much this plane is subdivided?

I tried both. Non-subdivided and subdivided few or less times. The same glitchy thing. As i said thought that  it is something with normals or doubles. But no.

Please upload blend file to: http://blend-exchange.giantcowfilms.com/ I'll give it a look.

I can't find what's wrong with those meshes. I've checked non manifold, internal faces, loosed ends, normals, doubles and everything seems ok, but it won't work. So here it is modified blend file with new plane and new river: http://blend-exchange.giantcowfilms.com/b/1894/ to check setup.

The problem with the Boolean is non-manifold geometry. In this case, infinitely flat object which is "Plane". Extrude it at least a bit and the problem will go away.

If you want to cut something into an object using boolean, the modifier has to be set on the mesh that you want to edit. Not on the stencil object. You also may change the visibility of the scencil object from textured to bounds.
It then should just look like this
Also i recommend using the BoolTool Addon. It is far more user friendly.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Result of rendering is a black screen
I have read a couple of answers on this topic, but they didn't helped me.
I have light and camera, but the result of rendering is always black. Rendered 3D-view is OK, but in Material view my model is black. What shall I do?

is it black after pressing F12, or in the 3d view?

After pressing F12

Do you use cycles or Blender internal rendering?

I use internal, but in cycles it doesn't render too.

Consider uploading your file to http://blend-exchange.giantcowfilms.com/ and post the given link in your question.

The object is set to be not renderable (but visible in 3d viewport hence it's visible in preview render). See http://blender.stackexchange.com/questions/964/object-not-visible-in-render

Also http://blender.stackexchange.com/questions/34809/objects-not-showing-in-final-render

authors: Владимир Красносельский


text:
How to model this type of edges in chocolate's packshots
I need to model this inside of a chocolate usually seen in packshots. I started with block modelling then started sculpting it. I easily sculpted the liquid chocolate in between wafers. But was not able to find any ideas on how to sculpt that thickness part of the chocolate on the inside and the wafers too. I tried using displacement maps too but couldn't figure out how to proceed to get this look. Any idea how can i achieve this type of look?

A good start is procedural modeling using modifiers:

Add a Cube

Add a second Cube and Bevel the side edges. Delete the Front and Back faces and add a Solidify modifier to it. Make sure the faces of the resulting mesh do not self-intersect. Optionally You can throw a Subdivision Modifier with Level 1-2 for smoothness.

Align the two objects so they overlap

Subdivide the first cube using Subdivision Surface Modifier and add a second one if needed. Do not go too high on subdiv. levels!

Add a Displace Modifier with Coordinates Object and add an Empty to control the displacement. The settings are as follows:

6 The Texture settings look like this:

Add a Boolean Modifier with Intersect option and choose the Second Cube:

Now You can apply all Modifiers. Remesh the whole object with high resolution and sculpt more details.
Advanced tip:
If you have the chocolate bar already modeled you can use it with the displaced "Voronoi" cube to Intersect Boolean the sides and then a second Intersect Boolean with the Solidified object for a finished chocolate layer.

Thanks a lot Rumen. It was a ton of help.

You could first sculpt (even more than I did if you have the patience):

Then give it a material with a mix of several Voronoi Texture in order to mix different size of holes, plug into a Bump node, a Noise Texture as Base Color:

As for the solid chocolate part, maybe sculpt as well?

Thanks, I will follow this approach. Can you please also give me a tip on how to achieve that broken part of chocolate effect on its depth ?

I've edited, I would simply sculpt it

Thanks a lot


text:
Need Help Modeling Chef’s Hat with Folds in Blender
I hope you’re all doing well. I’m currently working on a project where I need to model a chef’s hat with intricate folds, but I’m facing some challenges in figuring out the best approach. I have a reference image of the specific hat I want to model, but I’m struggling to translate it into a 3D model effectively.
Could anyone please guide me on the best techniques or workflows to achieve this? I’m particularly interested in how to create realistic folds and details while maintaining the overall shape of the hat. Any tips, tutorials, or step-by-step instructions would be greatly appreciated.
Thank you in advance for your help!

Create a cylinder, subdivide it horizontally, assign it a vertex group at its top with the Gradient brush, create a ring object that you'll use to squeeze the hat, make sure that its face normals are facing inwards:

Give your cylinder a Cloth simulation, keep the default settings, except increase the Stiffness > Bending value up to 3 for example so that the folds are large enough, choose the vertex group as Pin Group, enable the Collisions > Self Collisions option:

Give Collision physics to the ring, animate it scaling down so that it squeezes the hat. When you're glad, apply the Cloth modifier:


text:
Particles System Generating random particles all over the scene
I am trying to generate these contrails from the jet. But for some reason the contrails are also emitting from the world origin even though there is no emitter at the origin. Emitter is linked to the jet's wings which is constrained to a path.
Any ideas on fixing this issue? thanks.

how shall we help you when we have no idea what you did and if you don't show us any settings you made? please provide a blend file so that we can help you. thx.

You will have to show us your settings, which can be quite extensive.. perhaps your best tactic will be to create the simplest example you can that fails in this way, illustrate it, and share it on https://blend-exchange.com/ . At the moment, this question is vulnerable to closure as 'unclear'. We do want to help, but need more info.

I found that increasing the cache steps fixes this issue. But am not sure if this fix is permanent or temporary. Any suggestions are welcome.

As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.


text:
Strange artifacts with cycles render
I am trying to make an effect where a building is burning down or something similar like this:

The problem is that halfway down there are some parts that does not disapear and stay black:

It does not happen in the material preview, just when rendering with cycles. I need cycles because the video has to be VR compatible.
The way I am doing this is as follows. The building has this material:

It has an empty plain axis attached so that when that moves one part of the building uses the given texture, the other one is transparent and there is this fire like effect in the middle.
Any ideas why there are those black artifacts?
So far I tried modifying the values of the different nodes, changing render values and removing the texture.

Does this answer your question? Black artifacts when looking through many transparent objects?. See my second answer there with further explanations. The accepted answer unfortunately talks about Transmission bounces, while this is actually a problem of Transparent bounces and so the accepted answer is actually wrong. My same answer is also here: https://blender.stackexchange.com/questions/275682/png-image-black-only-when-in-front-of-other-objects/275691#275691

Oooh, yeah, that fixes it, sorry, I did not find that since it did not ocur to me to search it as a transparency problem. Thank you

If anyone reaches this, basically in my case the problem is that in the renderer I had the value for Transparent Light Path Bounces too low, it was at 8 and I had to increase it to 24.
As Gordon said in a comment the answer is at Black artifacts when looking through many transparent objects?.
Be careful because the answer says to modify transmission in Blender 2.8+, you still have to modify Transparent Bounces, not transmission.


text:
How do you freeze or reset a lattice?
I have a complex object and I created a lattice around it. Before adding the lattice modifier I manipulated the lattice points so that it perfectly encompasses my object. Then when I add the modifier, my object gets translated and scaled down significantly. I am guessing this is because I scaled the lattice down to match it to the object size, and moved/rotated it to get it into place. I tried pressing Ctrl+A to Apply Location, Rotation, and Scale, but this did nothing but change the object translation (though it did not correct it; just made it wrong in another way.)
Here's my object with the un-attached lattice:

Then when I add the lattice modifier using this lattice:

Then I tried Ctrl+A to "Apply" the location, rotation, and scale of the lattice and the object:

And finally I tried positioning the origin of both the lattice and the object to the same spot (center of tire):

I am out of ideas. I saw this thread where someone ran into the same problem but the answer to his explicit question does not solve the implicit problem: Lattice modifier deforms object as soon as an object is selected
I hope it is not that a lattice has to always start as a perfect cube.
EDIT: I even tried unparenting the object so both the lattice and the object were top-level (not in a hierarchy) and origins both set to 0,0,0, so their rotation, position, scale values are identical and from the same origin. There should now be no reason this is happening yet it still behaves the same silly way.
EDIT AGAIN: It's hard to tell from my screenshots, but the lattice is NOT a perfect cube. It is more of a rhomboid or something more angular. I went into edit mode to adjust the corners to match the angle of the object, then I added more division to the U,V,W of the lattice. It seems certain that my manipulation of these control points is what the problem is, but how do I freeze the lattice so that this warped shape is considered the start shape?
Thanks for your help!
-Ben

I tried that and it does nothing different.

I noticed my object had a parent, so I unparented and tried all of the above again and it still doesn't work. (I edited this post to this effect.)

Have you made changes to lattice in Edit mode ? You may try to recreate lattice (if not yet). Also you may try to upload that piece with lattice and edit your post to give a link.

I'm pretty sure you are using the lattice in the exact opposite way to how it is mathematically defined.  Put your modified lattice aside.  Create a new lattice, then apply it to your object before you modify the lattice.  Only after the two are combined should you start messing with the lattice to achieve whatever deformation you think you want.

@MutantBob, I was manipulating the lattice before applying because I do not want the object to be deformed by the changes I made to the lattice. A good simple example is imagine that I have an object that is more or less trapezoidal in shape. I want to put a lattice on it... I would expect to be able to make a trapezoidal lattice to fit perfectly around the object and this would be the "basis" or the starting point for all deformations. It sounds like I have to leave the lattice as a cube, which is pretty limiting.

I went into edit mode

You should scale the lattice only in Object mode to encompass your object.
And yes - it doesn't need to be a cube. When you're ready with x/y/z scaling do not Apply object transform (scale) to the lattice at all. It will result in the same outcome.
Scaling it in edit mode is applying deformation on the object as expected, in your case - scaling it up/down.

I think you meant to say, "yes, it DOES need to be a cube" as it seems changing the shape from a cube to a trapezoidal shape can only be done in Edit mode, which affects the deformation.

I meant that it can be a cuboid as well (scaling the lattice only on a single axis in object mode). Any changes of the lattice in edit mode will deform the object.


text:
Armature appears in edit mode but not pose/object mode
The armature I made for my model doesn't seem to appear in pose mode nor object mode. I'm not sure if this is the result of creating an animation (the armature seems to have disappeared after I created a base animation and added edited versions of it by creating actions in the action editor).
The armature appears just fine in edit mode, so I'm not sure what exactly is going on.
Does this have anything to do with deleting key frames?
Edit:
Thanks for all the suggestions! I still can't find a solution so I've uploaded the file. If anyone can help that'll be great.

Have you verified that the object is on the correct layer and that the layer is visible?

I'm quite sure that nothing is about keyframing; maybe you should upload your .blend file to examinate

Is your armature displayed in X-Ray mode to be visible beneath the mesh?

The pose bones are hidden.

To selectively unhide the bones click the plus sign next to "Pose" and select the closed eyes.
To unhide all posed bones at once, select "Pose", hover over your mesh and press alt +  H.

oh my ...god...i thought i unhid it but i guess i was doing it completely wrong. thanks for answering such a simple and noob question!!!

@hana Not a noob question, I'm sure you just forgot! Here's a noob question ;-) http://blender.stackexchange.com/questions/53477/edit-a-mesh-in-pose-position/53480#53480

@hana Don't forget to "accept" the answer, if this solved your problem (instead of putting [SOLVED] in the subject line ;-) )

Had my bone show in edit mode but not Pose mode, my solution

No Bones visible.
Viewport Overlays tick box for bones not ticked.
Ticked the Bones box. Bones now visible.

ps.took me few hours to find this solution, thought i would post.

Put your armature in X-Ray Mode.

i did try that out but didn't seem to work. and i did check if it's in the correct layer as well, and that didn't seem to be the issue.
however i MIGHT be doing something wrong considering i'm still very new to blender. i might upload my file if i can't find any solutions.

I tried a few things that seemed to not work... so I open New > General > Deleted Cube > Append > Selected the 3D Sculpture I need to Bone (lol) and boom! when I add Bone, it shows. Hope this helps!


text:
Object snaps upwards when trying to link with armature
I'm trying to link an armature I made for a model to a different model (with a very similar shape), but when I try to link them together (ctrlp -> Set Parent to Bone) the model snaps upward. I thought this might be because the 3D cursor isn't set to the right place so I checked and gave it another try but that didn't seem to work either.

I'm hoping this image describes it well enough. The moment I select Set Parent to Bone, it immediately snaps up. If I could get help that would be really great, thanks!!
EDIT:
thanks for the suggestions. i tried both resetting the armature to its original position and 'Set parent to -> Armature Deform -> With Automatic Weights/With Empty Groups' but the snapping still seems to be happening.
i've added the .blend file below if that helps. i apologise if it's a very noob-y issue as i'm quite new to blender and i've been asking a lot of novice questions.

thank you!

You have moved your armature up/down in pose mode. You can check this using tab, Ctrl+tab on your armature.
The position of your armature has to be the same in object/edit mode and pose mode, and matching your mesh, before you apply it.
To fix this, select all bones with A in pose mode, then you can reset position with alt+G, scale with alt+S and rotation with alt+R. This makes the pose back to "rest position" wich is the same as edit/object mode pose. Then you can move your armature (object mode) or your mesh to match them.
EDIT:
Your problem is that your mesh and armature are parented, but as objects. You can fix this problem adding an armature modifier to your mesh and selecting your armature as object. Be sure to check vertex groups (default) as they have been created earlier (and working well).

You can also fix the problem using the 1st part of this answer after selecting your mesh and Alt+P to clear parenting. Then you can make things cleaner.

You shouldn't be setting the parent to the bone. You should be setting "Set parent to -> Armature Deform -> With Automatic Weights" or "With Empty Groups" depending on your needs.


text:
How do you create 2 hotkeys for variations of the same keymap?
I'd like to have 'Flip Active/Selected Bone' and 'Flip Active/Selected Bone' with the 'Extend' checkbox turned on as 2 separate keyboard shortcuts, eg. F and AltF.

Creating a new hotkey works fine. However, the 'Extend' property won't reset when using both hotkeys in succession. Just done a quick video explaining the problem in detail: https://youtu.be/GYPL0GgHI98
Q: How could I make both hotkeys work properly?

I think you can just add a new item to 3D View > Armature > Armature (Global) copy the operator id armature.select_mirror into the identifier field and tick the checkbox to make it work. Does that help?

Almost yes! Thank you, I've now created a new one with the checkbox ticked but once I use the "extend" hotkey it stays that way, so even if i use the shortcut without the checkbox it stays in extend mode.

Cool! What do you mean by "it stays that way"? Make sure there is no other hotkey overriding the one you've set. Tested by setting up both hotkeys -> Ctrl+F to call armature.select_mirror operator without the property (extend) and Alt+F calling the operator with the property ticked/enabled and it seems to work properly @superduck

Just done a quick video explaining the problem! https://youtu.be/GYPL0GgHI98


text:
Turn Obj-sequence into FBX file for Unity?
I have a sequence of objs of an object deforming, each of which has the same number of vertices and faces, that I would like to be able to put together into an animation and then export as an fbx that could be brought into unity.
I've used 'Stop Motion Add-on' to import the sequence which seems to have worked, I can play the animation, but when I try to export as an fbx I just get a single object of whatever frame I was on with no animation attached to it.
is there some special way I need to export it so that the animation is part of the fbx file?

I'm not sure if fbx supports object sequences. The .mdd .pc2 and .abc files support them. Not sure about mdd and pc2 but there is an alembic importer for unity.

ok, do you know of  method for exporting the obj sequence as an alembic?

Blender releases include alembic support. When you choose to export to alembic you can choose to only export selected objects and what frame range to export.

You can try Import OBJ Sequence As Shape Keys blender add-on from here. As described by you and shown in the video on the add-on page, it seems to work in your case.
Download the add-on from here (Windows).
Initial setup is as follows:
Select “File” - “Import” - “Wavefront.obj” from the “file” menu and navigate to the directory which holds the OBJ sequence
Select the first OBJ file in the sequence and click “Import OBJ”.
Select the newly imported object in the 3D view or the outliner
Select the “Object Data” tab in the main properties panel
In the “Shape keys” section, click the “Add shape key to object” button (+)
Uncheck the “Relative” Checkbox and set the interpolation dropdown menu to “Linear”
Change the current frame in the timeline to “0” and set a keyframe for “Evaluation time” (as “0”)
Change the current frame on the timeline to “1000”
Enter “10000” as evaluation time. (it seems to go in steps of 10 strangely!), then set a keyframe for “Evaluation time”
Change to the graph editor window, then select the curve for “Evaluation time”
Select “Key” - “Interpolation Mode” - “Linear” from the graph editor menu.
Change back to the 3D view.

Once you done that, you use the script to import the sequence:
Select “File” - “Import” - “OBJ as Shapekey” from the “file” menu and navigate to the directory which holds the OBJ sequence.
Select the rest of the sequence(all except for the first obj file in the sequence) and click “Import OBJ as Shape Keys”.
Wait as it loads the sequence…

A video tutorial..

Your answer would be much better if you added a bit about how to use that addon.


text:
Choose Snapping Point?
I have a building block that has a cube for the ceiling, walls, and floor. It also has a blast door that overlaps the walls to fit into the next building block.
The problem is that when I align the building blocks together, I want to align the edges of the walls together, using snapping.  When I try to do so, however, it snaps using the edge of the projecting blast door to the edge of the opposite wall, instead of wall-to-wall. I'm snapping from corner to corner. I made an example image:

It would be nice if I could still use snapping, like temporarily choose a specific vertex to use as a snap. What is the best way to do this?

Could you add a screenshot of these rooms and doors?

sure thing will do.

Is it edge center to edge center?

hold on. I'll elaborate

This is the workflow I've found for doing this repetitively in Object mode.
The setup:

Pivot set to '3D Cursor'
Snap-magnet: 'Off'
Snap set to 'Vertex' and 'Center'. Because of the 'Pivot' setting, 'Center'  refers to the location of the 3D Cursor at the start of the move.
(The active tool is 'Tweak'.. it always is, for me)

The moves, for each snap:

Shift-Right  drag the cursor. Once you're in charge of the cursor, you can release the Shift.
Still Right-dragging, hold Ctrl to snap the cursor to the desired 'From' vertex. You have now established the snap 'From' point.
Now Left-drag the 'From' object to the 'To' object, with Ctrl, hovering over the target 'To' vertex. The 'From' point will snap to it.

I'm not used to handling the 3d cursor like that, but I should: its quicker than the empty trick and lead to similar results.

@lemon Just for once, I think this way is better :). I still wish the cursor was a more complete tool. If you set the cursor-tool orientation to 'Geometry', Shift-S snapping should respect that straight away. ATM, you have to drag the cursor across a surface to get it to adopt the face orientation which screws the snap, so you have to do it again.

Robin, yes this way is better (you should remove the "for once"). Also you may complete your answer with the door alignment maybe?

@lemon Ahh I see! You meant rotations? Your way may reduce the moves for those?

Robin, no, I was talking about the green arrow (the place for the door) in RBlong2us question.

I gotta say, I like how you did this!  I've never had to change the Snap To setting before, but that's not a bad thing to have to do.  Thanks a lot for helping me with this!  Awesome quick way to do it!

Not really short, but...
You want to snap A on B.
First step
Set the snapping to "edge center" and snap with "active".
Add an empty and bring it on the side of A.
Select A and the empty with empty as active.
Snap them 2 on the side of B: that aligns the rooms.

Second step
Move the empty on top of the door part.
Set snapping to "edge perpendicular".
Move A and the empty (active) to the top of B: that aligns the door.

actually, the first step completes my question.  The blast door is supposed to overlap into the next building block.  Thanks for the tip!

New in Blender 4! - use the 'b' key mid-move.
To Snap the corner of Box A onto Box B
( Assuming "Snap To" includes Vertex )

Select Box A and press [g] to begin a move.
press [b]
click on the corner you want to use as a snapping point.
now resume moving Box A and you'll be able to snap that corner to Box B

Note "Snap" is automatically enabled when you press 'b' in this way.
You can also select edges etc, not just vertices.
Another handy V4 feature: hold Alt and use middle mouse to rotate your view mid-move.


text:
About Child of Animation
I have a question about Child of.
I would like to create an animation in which an object is held from the left hand to the right hand and then released at the end, but I cannot get the Child of to transfer to the right hand.
(1) Set the target to the left hand bone.
(2) Set the influence of the left hand to 0 and let it influence the right hand.
(3) Set the influence of both hands to 0 and hit the keyframe.
I am thinking of the above procedure
I am thinking that perhaps the set inverse etc. is different.
Please let me know if you know anything about this.

pls provide blend file so we can see what you have done and verify our solution proposals, thx.

You can use the Dynamic Parent addon by Roman Volodin, it will automatize the following process, or you can do it manually:
Give a Child Of constraint to your object with the first bone as Target, click on the Set Inverse button so that the object doesn't move away:

Keyframe your bone 1 so that it moves towards bone 2, let's say that the last frame of the first movement is frame 20, also keyframe the Locrotscale of the object:

At the next frame, here frame 21, when the second bone is supposed to take control, keyframe the object's Visual Locrotscale, don't pay attention to the fact that it will move away:

Give the object a second Child Of with the second bone as Target, click on the Set Inverse button, at frame 20 keyframe the Influence of the first Child Of at 1, and the Influence of the second Child Of at 0, at frame 21, do the inverse:

Result:

monnboots san

Thank you for the instruction on the two ways to do this!
I tried both and both worked.
The add on is also useful and I will use it depending on the situation.
Very helpful and informative!


text:
About Splines in GeometryNodes
I have created an animation that places objects on a spline and moves them. I want to rotate the object along the direction of travel, so I used a curve tangent, but the objects at the start and end points are wrong.
Please let me know if anyone knows how to solve this problem.

Hello. A solution might be to use a spline that is slightly longer by one control point at start and end, and start instantiating on the second control point, that way you have the tangent information

Hello! Gorgious san!
Thank you for your instruction.
I will try to do it the way you gave me!
I think you are using attribute, am I correct?
I'm not so sure because I haven't used it much.
I didn't word it well enough, but I also want to keep the object looping using wrap.


text:
Turn off the "follow mouse" feature when I press transformation shortcuts?
I'm more experienced with Maya and trying to transition to Blender. Blender's default settings for the move, rotate and scale hotkeys (G, R, S) are weird to me; when I press them, the selected object follows my cursor; I want to change the hotkey settings so that when I press those hotkeys, it just turns on the manipulators rather than following my cursor, just like in Maya.

If you want shortcuts that are closer to Maya and other software packages, I suggest to use the Industry Compatible keymap. Open the preferences (Edit > Preferences), then switch to it under Keymap. In this keymap, W, E, and R will function the way they do in Maya. There is more to this keymap, so try it out.

Go to Edit > Preferences > Keymap > Change the 'toolkeys' option from Immediate to Active tool.
There's a 'bug' to be aware of when using this setting. When using the text tool, when in edit mode, you cannot press the letter D. Just use Alt+D for lowercase and Shift+D for uppercase.


text:
Create my own picker set for a character rig?
I'm pretty new to Blender. I added Blenrig 6 specifically to use its picker for character animation (the Spring rig goes with it). I wanted to use the picker for other rigs, like Ellie on Blender Studio, but nothing shows up in the picker window when I select Ellie. Is there some way to create my own picker set for that rig, so I can select her bones from it? Is there some other tool that would be better for this if I'm only doing character animation and not rigging?

I don't see mentioned Blenrig's picker being able to work with other rigs, not at a glance at least and it's fairly common for rig generators (their goal is to make a rig and its tools after all, they rarely support anything other than themselves).
Generally speaking, independent pickers are made manually by someone either fully hard-coded manually, or using a third party tool specifically for that. Unless someone made a picker and made it available, and you have that same third party tool if required, you won't have anything.
Among the well known pickers that are sharable, there is X-Pose Picker 3.0 - Blender Market, as well as Rigi Picker - Blender Artists Community, but they aren't free.
Back in the old 2.7 days, there was ChristopheSeux/rigUI: Blender addon for making UI for rig. It hasn't been updated for the past six years, so I bet it doesn't work in modern Blender, but perhaps someone forked it somewhere and made it work.


text:
Blender is lagging when sculpting with dyntopo from 2.00 detail onwards
I started following a sculpting tutorial, and they said to turn on Dyntopo in constant detail at 10, but it lags really badly, it starts lagging with detail at 2.
My system details on blender are
I have seen what happens in the log and there is a spike in cpu but it shouldnt cause this problem.
Are there any system preferences I should change to get a better performance

How big is your model (dimensions)? Have you applied the scale? ('Ctrl'+'A' in Object mode) How many vertices has it? It could be that you have too many vertices that cause the lag. Enable the Statistics and the Wireframe overlays to get an overview. As an alternative to Dyntopo, you can try whether you achieve better performance with the Voxel Remesher ('R' to see the voxel size, 'Ctrl'+'R' to remesh or use the drop-down menu right next to Dyntopo)

The model has x:111mm y:24.6mm z:3.42mm, I have applied the scale. Vertices:560, edges:1.674, faces:1,116 and triangles:1.116. As i'm a new learner with sculpting i'm following different tutorials and this one is working with dyntopo, I want to learn all the different ways to see which one I prefer.

I've tried Dyntopo on a cube with the same size. But then I have to increase the resolution to 200, otherwise there is not enough vertices left to create the cube model.

But if it's lagging at 10 with not much resolution won't it lag more with 200 resolution? Sorry if it's a dumb question

Yes, it would create more vertices and lag even more. But it's odd and it makes no sense that it lags with 2 resolution. That's very low-poly. Have you tried with the default cube? This is how 3, 5, 20, and 50 resolution looks on the default cube (6,747 verts, 13,490 triangles): https://i.sstatic.net/3J7CY.jpg. (There is no lag, tested on a laptop with integrated graphics, Blender 3.6.0). If you can share a demo file we can try, too.

Yeah, with a cube it works fine after I remesh it and it starts lagging with dyno at 9.00 detail

Thanks for your help, found out what I was doing wrong, as I mostly use blender for precise modeling I was working in mm instead of meters, so even 2.00 was to much resolution, now I can use Dyno at 10 with no problems.


text:
Creating the feeling of the character coming out of the flat monitor
I am working on a project that is going to be played in a concert, and we have a big monitor, but this monitor is flat, and I want this robot animation that I made to give the feeling of coming out of the monitor at the last moment. If you can help me, let me know

You should "waste" some screen space and use a low focal lenght, in order to enhance the illusion.
The wasted screen space should be black or - even better - with the same texture of the real surroundings of the physical screen.
Don't ever let some part of the head get over the border of the screen, because you would break the illusion.


text:
Blender 3d printing solid objects instead of infilled objects
When I go to print an object out of Blender to my Ender 2 V2 (my slicer is ultimaker cura 5.2.1), the void inside an object prints solid. For example, if I were to print a cube, it prints completely solid instead of infilling the inside space of the cube with just the simple angled infill structure. This of course results in my printed objects warping during printing and pulling off the printer and just ruining the print. Any suggestions? what do I need to do inside of blender in order to make the object have a custom thickness surface, then Infill instead of print solid

This issue is not Blender related hence I believe this one is off-topic. You have to check within the settings of your slicing software. Or you could manually 3d model the insides of your cube.

...try the Solidify modifier to give the objects a wall thickness.

The object is most probably non-manifold. Use the 3D Print Toolbox to check it. This is a free addon that comes with Blender, you will need to activate it in preferences.


text:
Rig is deformed and larger then character when importing
Every time i import a rig from Sketchfab, the rig becomes deformed when imported. i am new and dont know how to fix this problem.

Select the rig, go to edit mode, change the pivot to "individual origins", select all bones and press S to scale them as desired.
You can even scale some of them only, as you like, as long as they are not connected each other (as the rig in your picture looks like).
Another way is to assign a custom viewport object to each bone, in pose mode, but scaling them in edit mode is the right choice to have a good starting point.


text:
Copy/Paste and Duplication Differ with Cloth Simulation
I have a baked cloth simulation that looks as follows:

I need to create meshes for each part of the shirt, so I copied and pasted the shirt repeatedly and created a mask for each part of the shirt and exported with no problems.

I tried to script this by leveraging bpy.ops.object.duplicate() and mesh_obj.copy() (the equivalent of "Object > Duplicate Objects"), and I get a very different result:

How do I replicate the exact behavior of copy and paste?


text:
Drawing Points with GPU via GLSL
I'm trying to draw a series of points using GLSL, but I'm doing something wrong when defining my shaders:
import bpy
import gpu
from gpu_extras.batch import batch_for_shader

# Define the vertex shader
vertex_shader = """
    in vec3 pos;
    uniform mat4 modelview_matrix;
    void main() {
        gl_Position = modelview_matrix * vec4(pos, 1.0);
        gl_PointSize = 5.0;
    }
"""

# Define the fragment shader
fragment_shader = """
    out vec4 frag_color;
    void main() {
        frag_color = vec4(1.0, 0.0, 0.0, 1.0);
    }
"""

# Create a shader program
shader = gpu.types.GPUShader(vertex_shader, fragment_shader)

# Create a batch for the points
points = [(1.0, 2.0, 0.0), (-1.0, -2.0, 0.0)]  # Example points
batch = batch_for_shader(shader, 'POINTS', {"pos": points})

# Set up the drawing context
shader.bind()
shader.uniform_matrix("modelview_matrix", 4, bpy.context.region_data.view_matrix)

def draw():
    gpu.state.depth_test_set('LESS_EQUAL')
    gpu.state.depth_mask_set(True)
    batch.draw(shader)
    gpu.state.depth_mask_set(False)

bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')

The code above results in the following error:
---> 24 shader = gpu.types.GPUShader(vertex_shader, fragment_shader)
     26 # Create a batch for the points
     27 points = [(1.0, 2.0, 0.0), (-1.0, -2.0, 0.0)]  # Example points

Exception: Shader Compile Error, see console for more details
```

The shader create method changed in blender 4.0, see: https://docs.blender.org/api/current/gpu.html

This uses the new method.

import bpy
import gpu
from gpu.types import GPUShaderCreateInfo, GPUStageInterfaceInfo
from gpu.shader import create_from_info
from gpu_extras.batch import batch_for_shader

# Define the vertex shader
vertex_shader = """
    void main() {
        gl_Position = viewProjectionMatrix * vec4(position, 1.0f);
    }
"""

# Define the fragment shader
fragment_shader = """
    void main() {
        FragColor = color;
    }
"""

shader_info = GPUShaderCreateInfo()
shader_info.push_constant('MAT4', "viewProjectionMatrix")
shader_info.push_constant('VEC4', "color")
shader_info.vertex_in(0, 'VEC3', "position")
shader_info.fragment_out(0, 'VEC4', "FragColor")
shader_info.vertex_source(vertex_shader)
shader_info.fragment_source(fragment_shader)
shader = create_from_info(shader_info)
del shader_info

# Create a batch for the points
points = [(1.0, 2.0, 0.0), (-1.0, -2.0, 0.0)]  # Example points
batch = batch_for_shader(shader, 'POINTS', {"position": points})

def draw():
    gpu.state.depth_test_set('LESS_EQUAL')
    gpu.state.depth_mask_set(True)

    shader.bind()
    matrix = bpy.context.region_data.perspective_matrix
    shader.uniform_float("viewProjectionMatrix", matrix)
    shader.uniform_float("color", (1.0, 0.0, 0.0, 1.0))
    batch.draw(shader)

    gpu.state.depth_mask_set(False)

bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_VIEW')


text:
Game Asset Workflow and Software Pipeline
I'm brand new to the Blender world (and 3D in general). I started diving in about a week ago, with the ultimate goal of making assets for a video game project I plan to start next year with some friends.
My question is what is the de facto workflow to create meshes, apply maps, texturing and lighting effects for game art? I'm especially hazy as to where and how you create the various maps (like normal and height maps) and add textures (i.e. wood, steel, etc.)... Is that typically all done in Blender and brought directly into your game engine or would that part of the process handled in Unity/Unreal?
I've seen some great tutorials online but they usually only handle one part of the puzzle and don't explain how the various pieces are integrated. The more detail you can provide, the better! I'm a longtime Photoshop user, but if you explain the process from the Gimp perspective, I'm sure I can figure out how to translate it to PS.
Specifically

Do applied Blender shaders work in game engines or are they only for rendering directly from Blender?
If so, do lighting effects (like emissive materials and specularity) work in an equivalent way in other game engines?
Can you stack multiple maps (i.e. diffuse + specular) and then import the targeted asset in another program?
When you unwrap a mesh, can you import it into photoshop? Is there a "best practice" to doing so? Any tutorials you'd recommend?

TL;DR
What is the standard game asset workflow for Blender? For example:
high-poly mesh in Blender >
bake to low-poly mesh >
UV unwrap >
digital paint and maps in Photoshop >
apply maps, shaders and lighting in game engine (Unity/Unreal/whatevs)

Blender is a tool (like a hammer). You can use it to create 3D models, animations, materials, textures ... . There is no standard workflow. You have to develop your own personal process by your own. It strongly depends on what other tools you are using (especially the game engine of your choice).

I'll be using Unity. My biggest question is if you can do textures, maps and shaders in Blender and port those over to your game engine or if it has to be done in-engine. For instance, I read elsewhere that game engine lighting works very differently than something raytraced like Cycles.
Granted, I'm sure there isn't a "this-is-the-ONLY-way-to-do-it" type of workflow, but perhaps there are some fairly common ones?

In that case you use Blender as asset creation tool (like Gimp). That has nothing to do with the build-in Blender Game Engine (it will not create any asset for you). For details you should check the according Unity resources (tutorials, manuals, forums ...).

There are many ways. Sometimes, I use this way:

model low poly first
UVunwrap it
texturing
In properties panel, go to "data" tab and then "UVmaps", add a second UV map
by clicking on the plus button, highlight it by clicking on it, unwrap the
low poly model for a second time for a good unwrapping because of the
texturing
create a new texture and bake "textures" and normal maps
Remove all materials and the second UV map
duplicate the low poly
add more details to the second low poly models
bake normal map of the the high poly mesh on the low poly one

Meshes are imported.  Textures are just images that don't even need any special import process, just "save".  Materials are not imported, but created for the specific game/rendering engine.
Your specific questions, then addressing your TLDR:

Do applied Blender shaders work in game engines or are they only for
rendering directly from Blender?

Depending on what you mean by "applied", materials/shaders are specific to the rendering engine.  There's not really any "export material".  There are commonalities in how things are going to be handled, but if you haven't built, say, transmission into your game shader, you're not going to get transmission.

If so, do lighting effects (like emissive materials and specularity)
work in an equivalent way in other game engines?

No, not necessarily.  Again, these are bits of materials, and your game shader decides how to handle them.  If you don't build emission into your game shader, you don't get emission.  (But emission, as Eevee does it, is the simplest shader there is.)  There are multiple ways to handle specularity, and you decide how to handle it when you make your game shader(s).

Can you stack multiple maps (i.e. diffuse + specular) and then import
the targeted asset in another program?

Same theme: you can import textures, whether those be diffuse color maps, specular color maps, roughness/gloss/specular power maps, environment maps, or even IOR maps (for Fresnel.)  But "import" here makes it sound more complicated than it is: textures are just image files, and you create them then save them.  You can create your own game shader that uses any number of kinds of textures, but if you don't have a game shader that uses those kinds of textures, then there's no reason to save those images; textures are merely parameters for your game-engine materials, and if your game engine material doesn't read those parameters....

When you unwrap a mesh, can you import it into photoshop? Is there a
"best practice" to doing so? Any tutorials you'd recommend?

While I don't have PS, you generally cannot import 3D models into 2D image editing apps.  You can import an exported UV map-- which is just a picture with outlines of your UV map edges, just an image, not something weird and magical that beginners sometimes think it is-- but painting on a 2D image with that as a guide is not often the best way to do things.  There are other apps, most popularly Substance Painter, which will import 3D meshes, with their UV maps, and allow you to paint in 3D.  This is similar to Blender's texture painting, except SP is a lot better (more powerful, cleaner.)  There are free SP-clones, but I can't speak to their quality.

What is the standard game asset workflow for Blender?

high-poly mesh in Blender >
bake to low-poly mesh >
UV unwrap >
digital paint and maps in Photoshop >
apply maps, shaders and lighting in game engine (Unity/Unreal/whatevs)

That is a perfectly reasonable workflow.  We might add "rig" in there, which would come before or after UV map (either is reasonable, and there are reasons for both, and you can always iterate.)  A reasonably professional workflow is going to involve Substance Painter more than Photoshop.  By "apply maps" etc, what is really meant is to design a material, which, yes, is game engine specific.  A professional team will have both a shader coder and artists that makes maps, and the shader coder will likely end up creating a standard material and defining what maps need to be created by the artists.  Realistically, a game is going to have a limited number of material templates to choose from-- possibly, only one, roughly comparable to Blender's Principled BSDF.
But perhaps it would be better to say that "apply shaders" etc is the first step, or parallel with make a high poly.  You can't really make your textures without knowing how they're going to be used by your game engine.  In some cases, you can make reasonable guess, a diffuse is a diffuse is a diffuse, but do you need a map of tangent rotation?  Do you need an AO map?  Do you need both an AO map and a cavity map?  Those aren't questions you can answer until you know what your shader(s) are doing.
I said that is a reasonable workflow because it is not the only potential workflow.  Sculpt, retopo, high-to-low is not the only way to make meshes and textures; you'll see different workflows from Call of Duty, Overwatch, Genshin Impact.  The reality is, you adopt a workflow that suits your desired output, and your desired output is different from game to game.

There is no single workflow, or even a most common defacto work flow for game assets, because the workflow varies a lot based on what the asset will be used for in a game.  You might want to follow tutorials by Grant Abbitt who specializes in game assets for beginners, to get a general feel of some of the various approaches.
The answers to the specific questions all pretty much amount to "it depends on the game engine".  Specifically, game engines usually require Blender to export assets using certain file formats that the engine can import from.  What works depends on what the exported file format can deal with and is limited by the Blender exporter and the game importer.
The workflow in general depends on what use the asset will receive.  High end "hero" assets in games designed for high end consoles will include everything from motion capture, photogrammetry, and imported textures from programs like Substance Designer, requiring extensive use of third party tools in the pipeline before Blender, as well as much manipulation.
At the other extreme low end "background" assets might consist of simple low polygon count meshes, with texture details provided by maps, possibly baked from high polygon versions, and very simple shaders.


text:
How to bake multiple objects into one?
I have one unwrapped object (it's a log). I copied it via Alt+D and built a house. Then i merged all objects into one with ⎈ Ctrl+J, but didnt do unwrap. Everything works fine.
Then I want to bake the lighting, so I do next:

Copy object.
Unwrap the copy.
Select both objects with copy active.
"Bake" combined with "Selected to active" checked.

But the result is very strange:

It has no rotations.
It has holes in some places.

Frankly, it looks awful and almost definetely i miss some general concept, but i can't figure it out.
Pls help :(

Can you post a your file or at least a picture?

As said the easist way is to join them, unwrap then ungroup them again.

Did you create another UV map (under "UV Maps" in the Object Data tab)?

It would be easier to help you if you had provided a blender scene or some screenshots.
If you want to bake multiple objects together, the way to go is the following (from what I understand you are doing some steps correctly, but might miss out on a few things to consider):

create a separate uv channel for all objects and set it active
note: every material must have a unconnected texture node with the texture you would like to bake to (this node has to be active)
unwrap your objects: you can either select all objects and unwrap them together. (this will distribute the uv-coordinates for all objects on one uv-layout) Or you can manually unwrap the objects. but you need to make sure that they will not overlap with the uv coordinates from other objects you also want to bake)
Make a copy of all objects and merge them
hide the original objects
bake (watch out that the island margin is not too big -> play around with it)

Edit: if you keep the original objects hidden, you can later apply the baked texture to all those objects and you still have them separate. Or you can apply the texture on the joined object, whatever you prefer


text:
how to hide mesh but keep hair particles
I'm using hair on my mesh but when I comb the mesh the hair goes through it. I don't want the mesh anyways so instead of figuring out how to stop the hair from going through the mesh I'm trying to figure out how make the mesh invisible but not the hair. When I use a transparency node it effects hair and mesh
I added the particle instance modifier like it says in this question Hiding source of particle instancing but it didn't hide the mesh.
Thanks in advance

Go to particle settings and disable emiter

PropertiesEditor-->Particles-->Render-->Emitter.
this will hide the mesh in render view

but thats not talking about hair

oh nevermind thankyou. i had it enabled instead of disbled

it wont let me like your post cuz i dont have enough reputation sorry

no problem, I learned it from the blender reference manual https://www.blender.org/manual/physics/particles/visualization.html

And what about Blender 2.8 ?  It is not working the same way...

Blender 2.8+
Object Properties > Instancing > Display Instancer/Render Instancer
In Blender 2.8, this is done by disabling Display Instancer (for viewport) and Render Instancer (for render) in the Instancing panel of Object Properties.


text:
How to modify the Splash Screen?
Is there any source code for the splash screen ( version 2.77a )? I want to change some parts of it i.e. remove the "links" section
Also, I want to change the picture. I saw this post but in the 2.77 version, there isn't any splash.jpg file

blender/release/datafiles/splash.png is the image. https://wiki.blender.org/index.php/Dev:2.6/Doc/How_to/Edit_the_SplashScreen

@batFINGER what is this ? deleted :|

blender/source/blender/windowmanager/intern/wm_operators.c seems to be the place for splash, around line 1800. Note that C/C++ questions are offtopic for the site though.

Yeah, it's the snippet of info "Editing the splash screen is no longer done this way,. you only have to edit the PNG image, the build system handles the rest.".


text:
Baking a series of textures with INVOKE_DEFAULT
I'm trying to build a simple bake tool that will allow me to bake a set of objects.  Everything works if I EXEC_DEFAULT the bake operator, but this doesn't give me a progress bar and completely freezes the UI.
Switching to INVOKE_DEFAULT causes a problem with async- the loop executes but only the first bake operation is performed.
The relevant code is here:
class BakeryOperation(bpy.types.Operator):
    bl_idname = "bakery.bake"
    bl_label = "Bake textures"

    def invoke(self, context, event):
        scn = context.scene
        materials = set()
        for o in scn.bake_objects:
            materials = materials.union(set(map(lambda x: (o.name, x.name), bpy.data.objects[o.name].data.materials)))

        for (name, material) in materials:
            bpy.data.materials[material].use_nodes = True
            node_tree = bpy.data.materials[material].node_tree
            found = False

            img_name = name+"_bake"
            for n in [n for n in node_tree.nodes if n.type == 'TEX_IMAGE']:
                found = False

                if n.image != None and n.image.name == img_name:
                    n.select = True
                    node_tree.nodes.active = n
                    found = True
                    break
            if not found:
                node = node_tree.nodes.new("ShaderNodeTexImage")
                node.select = True
                node_tree.nodes.active = node
                if img_name in bpy.data.images:
                    node.image = bpy.data.images[img_name]
                else:
                    node.image = bpy.data.images.new(name + "_bake", 512, 512)

            img = bpy.data.images[img_name]

            bpy.ops.object.select_all("EXEC_DEFAULT", action="DESELECT")
            bpy.ops.object.select_pattern(pattern = name)
            bpy.context.scene.objects.active = bpy.data.objects[name]
            bpy.ops.uv.lightmap_pack("EXEC_SCREEN")
            print("Baking " + name)
            bpy.ops.object.bake("INVOKE_DEFAULT") # or EXEC_DEFAULT
        return {'FINISHED'}

I've seen posts about using macros to order sequences of operators, but it doesn't seem possible to configure specific settings (in this case, which object to bake).
This is my first foray into Blender scripting, so I'm surely missing something.
How would I achieve this, and are there any best practices I should be be aware of?
UPDATE
After a bit of playing around, I've solved this particular case.  The solution is as follows:
class BakeryOperation(bpy.types.Operator):
    bl_idname = "bakery.bake"
    bl_label = "Bake Textures"

    def invoke(self, context, event):
        scn = context.scene
        materials = set()
        bake_pass = scn.bake_passes[scn.bake_passes_index]
        scn.cycles.samples = bake_pass.samples
        for o in scn.bake_objects:
            materials = materials.union(set(map(lambda x: (o.name, x.name), bpy.data.objects[o.name].data.materials)))

        bpy.ops.object.select_all("EXEC_SCREEN", action="DESELECT")
        for (name, material) in materials:
            bpy.data.materials[material].use_nodes = True
            node_tree = bpy.data.materials[material].node_tree
            found = False

            img_name = name+"_bake"
            for n in [n for n in node_tree.nodes if n.type == 'TEX_IMAGE']:
                found = False

                if n.image != None and n.image.name == img_name:
                    n.select = True
                    node_tree.nodes.active = n
                    found = True
                    break
            if not found:
                node = node_tree.nodes.new("ShaderNodeTexImage")
                node.select = True
                node_tree.nodes.active = node
                if img_name in bpy.data.images:
                    node.image = bpy.data.images[img_name]
                else:
                    node.image = bpy.data.images.new(name + "_bake", 512, 512)

            img = bpy.data.images[img_name]

            bpy.ops.uv.lightmap_pack("EXEC_SCREEN", PREF_CONTEXT="ALL_FACES")
            bpy.ops.object.select_pattern("EXEC_SCREEN", pattern = name)
        bpy.ops.object.bake("INVOKE_SCREEN")
        return {'FINISHED'}

Simply selecting all objects and then invoking the bake operation fixes the problem.

Hey, can you take a look at this

Well this means you can't use the same material in multiple objects you are baking and thus you can't even bake multiple instances of the same object, correct? Each material has its img node set to that of the last object that uses it. Baaaaaaad.
bake() should give a handle that we could use to progress with baking scripts but I've been unable to find any documentation or experimenting with this. Ideally Blender could sort their baking stuff out (assigning images to objects) so everybody and their cousins wouldn't have to make baking scripts in the first place.

Yep. you are absolutely correct.  When cycles baking was added to Blender, they improved the quality no end. Unfortunately the user interface (for artists and programmers) to both systems leaves a lot to be desired.  You can work around these problems by creating proxy materials for each clone and swap them back at the end, but it's a complete pain.

In this case, (doh), simply selecting the objects during the loop and then invoking the bake operation does what I need.


text:
Play Action Actuator not working properly (Blender Game Engine)
I am having difficulties with the execution of an Action Actuator I created.
In the logic of the game I got a planet on a first scene.  I'm supposed to click the planet and that will trigger two things: a second scene that'll show a planet rotating and a Plane that'll be fading out from black to transparent through some keyframes established on its Alpha channel.
This fading color action is executed by having the first planet sending a message to a sensor in the second scene.
The thing is working fine when I play it on the Timeline view but when I start the Game Engine itself it won't work by times and when it randomly does is not showing the fading effect but abruptly dissapearing. Any suggestions?
This is how I settled the sensors for the two actions I'm talking about (changing scene and fading out of the plane):

This is how I configured the sensor for the plane that fades out:

Plane is called Entrada, action is called AparecerEntrada

Does it fade when you are already in the second scene and just send the message?

@Monster This is how it's supposed to look like, this is on the Timeline View https://youtu.be/n8kY0iJkUr0 but when I play it on the actual Game engine it's not fading but looks like this instead https://youtu.be/vBi-Pgowl0Q

I'm asking because fading usually has no relation to scene switch. Have you checked that the transparency settings are correct? Here is a link with some instructions: http://blenderartists.org/forum/showthread.php?261926

@Monster Thank you so much, now it worked!  What I did differently was using a material with an image texture as the link said instead of using just a material by itself.  I also changed the settings as they suggested.  Thank you so much, once again :)


text:
Keyframing orthographic camera scale and reproducing it as an action?
I have keyframed the scale of the camera in my scene so that it always does kind of a zoom in and zoom out to an object at the beginning of the scene.  Using the logic bricks I have established an "always" sensor with an "action" controller linking that specific action but it isn't working!  I have read this post and tried it but still is not working. Is it even posible to do it in the BGE? I am using v 2.72

Animating the orthographic scale the way you do it is not possible. You can however do this via python using bge.logic.getCurrentScene().objects["Your_Camera"].ortho_scale = your_value. Your_Camera has to be the name of the camera whose orthographic scale you want to adjust. your_value has to be the desired focal length. That can be a float between 0.01 and 4000.0. Following is an example of zooming in to a value of 5.0. Therefore the orthographic scale at the start needs to be above 5.0.
import bge

#getting the camera object called 'Camera'
cam = bge.logic.getCurrentScene().objects["Camera"]

#while the orthografic scale is above 5.0 the script reduces it by 0.5 everytime the script controller is activated
if cam.ortho_scale > 5.0:
    cam.ortho_scale -= 0.5

The script activated every logic tick (always sensor -> true level triggering) looks like this (it has a better frame rate of course). The starting orthographic scale is 23.0:

Now you can write a script that does what you want. Here's another example where we are zooming in first and when this has finished we are zooming out again.
import bge

#getting the camera object called 'Camera'
cam = bge.logic.getCurrentScene().objects["Camera"]

#while the orthografic scale is above 5.0 the script reduces it by 0.5 everytime the script controller is activated, if there's a game property with the name 'zoomed_in' it won't zoom in again
if cam.ortho_scale > 5.0 and not "zoomed_in" in cam:
    cam.ortho_scale -= 0.5
#if the cam is already zoomed in and the ortho_scale at a value of 5.0 the camera is zooming out again, adds the game property 'zoomed_in' to the camera to prevent it from zooming in again
elif cam.ortho_scale < 23.0:
    cam["zoomed_in"] = True
    cam.ortho_scale += 0.5

Here's the result:

thank you so much for taking time to provide such a complete answer!  May I ask how it was possible for you to came to this result? Is there a good reference on how to achieve stuff like this?

The reference for coding stuff I use the most is bgepython.tutorialsforblender3d.com there you have almost everything you need. For example knowing that I want to modify the camera's orthographic scale I select 'camera' and look for the fitting attribute. In this case it's 'ortho_scale' . Now you have to know what to do with the information you get there. And that's something you can only learn :D


text:
How can I efficiently duplicate a large amount of objects?
I wrote a blender script that duplicates an object, rotates it, and eventually creates a mosaic, data looks like this: [x,x,x, o,o,o, x,x,x,], where x is 90 degrees and o is 180, for example. Creating a "board" of the rotated objects.
The problem is that my mosaic consists of 17,000 objects and blender crashes when ever I run the script. It worked great when I was only creating 30/40 objects in my first tests but 17k is just too much to handle that. Routine:

Duplicate the active object and move it to the right (or down and to the left if the row ends
Rotates that active object
Repeat both steps

I'm fairly new to blender, is there a better way to achieve that? I tried to run the script on the default cube and that crashed too. Also, I tried adding time.sleep(0.1) to slow it down or something but that also crashes:
import bpy.ops
from math import radians
from mathutils import Matrix
import time

def move_obj(x, y, z):
   bpy.ops.object.duplicate_move(OBJECT_OT_duplicate={"linked":True, "mode":'TRANSLATION'}, TRANSFORM_OT_translate={"value":(x, y, z), "orient_type":'GLOBAL', "orient_matrix":((1, 0, 0), (0, 1, 0), (0, 0, 1)), "orient_matrix_type":'GLOBAL', "constraint_axis":(True, False, False), "mirror":True, "use_proportional_edit":False, "proportional_edit_falloff":'SMOOTH', "proportional_size":1, "use_proportional_connected":False, "use_proportional_projected":False, "snap":False, "snap_target":'CLOSEST', "snap_point":(0, 0, 0), "snap_align":False, "snap_normal":(0, 0, 0), "gpencil_strokes":False, "cursor_transform":False, "texture_space":False, "remove_on_cancel":False, "release_confirm":False, "use_accurate":False})

def rotate_object(rot_mat):
    obj = bpy.context.active_object
    orig_loc, orig_rot, orig_scale = obj.matrix_world.decompose()

    orig_loc_mat = Matrix.Translation(orig_loc)
    orig_rot_mat = orig_rot.to_matrix().to_4x4()
    orig_scale_mat = (Matrix.Scale(orig_scale[0],4,(1,0,0)) @
                      Matrix.Scale(orig_scale[1],4,(0,1,0)) @
                      Matrix.Scale(orig_scale[2],4,(0,0,1)))

    obj.matrix_world = orig_loc_mat @ rot_mat @ orig_rot_mat @ orig_scale_mat

def rotate_dice(num):
    if num == 2: rotate_object( Matrix.Rotation(radians(90), 4, 'X')) #2
    if num == 3: rotate_object( Matrix.Rotation(radians(270), 4, 'Z')) #3
    if num == 4: rotate_object( Matrix.Rotation(radians(270), 4, 'X')) #4
    if num == 5: rotate_object( Matrix.Rotation(radians(90), 4, 'Z')) #5
    if num == 6: rotate_object( Matrix.Rotation(radians(180), 4, 'X')) #6

def rotate_to_one(num):
    if num == 2: rotate_object( Matrix.Rotation(radians(-90), 4, 'X')) #2
    if num == 3: rotate_object( Matrix.Rotation(radians(-270), 4, 'Z')) #3
    if num == 4: rotate_object( Matrix.Rotation(radians(-270), 4, 'X')) #4
    if num == 5: rotate_object( Matrix.Rotation(radians(-90), 4, 'Z')) #5
    if num == 6: rotate_object( Matrix.Rotation(radians(-180), 4, 'X')) #6

def dup(to, fro, x, z):
    move_obj(x, 0, z)
    rotate_to_one(fro)
    rotate_dice(to)

dice_arr = [1,2,3,4,5,1,2,3,4,5] // actually 17,000 entries long (removed for post)
break_on = 119

def run_arr():
    counter = 0
    last_index = 1
    movement_amount = 2.075
    count = 0

    for i in dice_arr:
        if count == break_on:
            dup(i, last_index, -movement_amount * break_on, -movement_amount)
            count = 0
        else:
            count = count + 1
            dup(i, last_index, movement_amount, 0)

        last_index = i
        time.sleep(0.1)

run_arr()

Edit: Blender doesn't seem to "Crash", it just hangs and is not responsive. How do I speed this up or let it run and so I can see the incremental changes?

Could you add your script to your post or at least the looping part ?

@NathanHild posted

Maybe redo your script to work with duplifaces, since you have duplicates?

Did you time the execution on say your 30 test objects ? Because if it takes 1 second or more, the execution will definitely take more than 10 minutes... Also you could look into optimizing your code, with if/else statements instead of multiple if statements. And it looks like you are only doing the same 5 sets of operations multiple times, which could be optimized by storing the 5 dice then only duplicating them and moving them later. And remove the time.sleep(0.1), it effectively adds around half an hour of computation with 17000 loops.  Food for thought

https://blender.stackexchange.com/questions/7358/python-performance-with-blender-operators

Remove repeated operator calls
Most likely this is a veiled duplicate of
Python performance with Blender operators
Removing 17,000 operator calls will help... ie removing bpy.ops.object.duplicate_move using low level API calls
# copy the object
copy = ob.copy()
# copy and link data, prob not needed here
mesh_copy = copy.data.copy()
copy.data = mesh_copy
# set the local location
copy.location = (0, 0, 0)
# and / or set the global translation
copy.matrix_world.translation = (0, 0, 0) # scene origin

Link to scene in <= 2.7x
scene.objects.link(ob)

Link to collection in >= 2.80
context.collection.objects.link(ob)

In 2.8 for example move_obj can become, (Note there is no need to link them to collection here, could do it later)
def dupe_move_ob(coll, ob, vec):
    copy = ob.copy()
    copy.matrix_world = Matrix.Translation(vec) @ copy.matrix_world
    coll.objects.link(copy)
    return copy

Returns  a reference to the newly created and moved object.
Similarly would change other methods to pass objects
def rotate_object(ob, rot_mat):

Dupli
For 17, 000 objects will still be slowish. As commented consider using some form of dupli for this, eg dupliverts, make one mesh, add verts at all the locations calculated, set their normals (via the rotation) and one object will be duplicated for each vertex aligned to the vertex normal.
Make the new mesh object the parent of dupli object and under   Properties > Object > Instancing choose Verts.
To illustrate a script to duplivert a cone to a subsurfed suzanne.

The vertex normals of suzanne are determined by the faces. If we construct a vert only mesh, then set v.normal = (x, y, z) for each vertex
import bpy
from math import radians
from mathutils import Matrix

context = bpy.context

bpy.ops.mesh.primitive_monkey_add()
monkey = context.object
monkey.modifiers.new(name="Foo", type='SUBSURF')

bpy.ops.mesh.primitive_cone_add()
cone = context.object
cone.scale *= 0.1
cone.parent = monkey
cone.data.transform(Matrix.Translation((0, 0, 1)))
cone.data.transform(Matrix.Rotation(radians(-90), 4, 'X'))

monkey.instance_type = 'VERTS'
monkey.use_instance_vertices_rotation = True


text:
How to create a colorful gradient shader?
So I keep seeing this kind of soft gradient texture (on the torus), which I'm struggling to replicate. Would anyone be able to point me in the right direction?

I'd suggest to try using Layer Weight or Fresnel node in this case and add color to it using Color Ramp node. Also you may add more colors using Texture Coordinates separate outputs as masks and rotating, scaling and moving them using Mapping node. Also I'd suggest to use Emission shader instead or together with Diffuse and other shaders. This will give you more individual controls over your objects and make them more independent from the overall scene lighting. If you want the texture to be static, not dinamically changed depending on the camera view angle, you may UV-unwrap the model and bake emission from the Bake tab in Cycles render properties to use the result as the texture for emission color later on.

This is wonderful - thanks so much for your help with this :)


text:
Fresnel gradient shader?
I've tried my hardest to try and replicate this style, but can't for the life of me get anywhere near it. Is anyone able to get close to this style?

Hi Oliver, please read: https://blender.stackexchange.com/help/how-to-ask

Looks like a frosted glass shader to me.

You can get nice results using the Layer Weight node.

Mix two glass shaders. One with IOR=1 (no refraction), other with high IOR
Layer Weight - Facing to drive the mix shader
Use Color Ramp to control the edge effect

amazing! Thanks so much!

Hey, me again! trying to replicate what you've done and it's not working for me. Could you possibly send over a blend file so I can troubleshoot?

@OliverPrimus Sure thing, I added the .blend :)

you are the best! Thanks so much!


text:
'Unable to read file' when importing rendered video file into Adobe Premiere 2020
So I'm attempting to import a rendered Blender video file into Adobe Premiere. However, it just comes up with a message saying 'unable to read file' or something of the like. I have tried four different file formats (.avi,.mp4,.mkv and .mov) and neither of them work.
And yes, I am aware that this could (and probably is) be an issue with Adobe Premiere, but I also think that maybe the selected file format that I chose in Blender ('FFMpeg Video') might have something to do about it. Plus, I'm unable to open the file (in any format) to QuickTime Player, although for some reason other video that aren't made in Blender or by me are completely fine.
So two things.

Does the rendered file format selected in Blender affect how this works and what it should be if I want a video format?
Is there anything wrong with Premiere that is prohibiting the files from being able to be read?

Btw, I have an Apple computer.

AFAIK quicktime is dead, latest release is from 2016. Test the file using the latest VLC player. Also I'd suggest never encode your renderings directly, render as image sequence and the use ffmpeg/handbrake/premiere or whatever to compile the images into a clip as additional step.

What codec are you using?


text:
Why NLA animations are limited to 6 when exporting to FBX?
I'm getting this problem when trying to export from blender to any other program in Fbx format using NLA stacks for animation, when exported it only seems to save 6 out of 12 animations

Don't know if it helps to find the problem, but 4 out of 6 of those unexportable animations were clones at first and later modified.
FBX export settings used.

Hi! Please don't add solved to the question title, instead accept your answer. How this site works: https://blender.stackexchange.com/tour Thanks

I found out what was wrong if anyone else got the same problems, all exporting NLA strips are controlled in Nonlinear animation tab:

Found it in the documentation:
https://docs.blender.org/manual/en/latest/editors/nla/strips.html


text:
Set C-plane (Construction plane) to a surface in Blender
If you are familiar with the software Rhino 7, there's a feature that allows you to set the "construction plane" to the surface of an object.
Doing this essentially provides a top-down view of the surface, and making any adjustments constrains it to the axis of that surface.
Similar to how pressing 7 provides a top-down view, allowing you to make edits along the X and Y axis. Except I need to be able to do this along any surface, even diagonal ones.
Does Blender have a feature similar to this? Or is there a way to get around this issue?
Thanks for any help.

There is no option to align to a surface but you can align your view to the selected active face. Select a face from your mesh press Shift+Num7 to align from Top (check View > Align View menu for more options). If you want to roll around the selected face without changing your view plane you can center the view first pressing Home key then Shift+Num4 or Num6 to roll left or tight respectively (the options are in View > Navigation). The rotation angle is set to 15 degrees but can be changed in the Preferences > Navigation tab.

Yes, if you press Shift+Numpad 7 instead of just Numpad 7 you will have the top down view on the selected active face. Depending on your preference settings and if you were in orthographic or perspective view before doing this it is possible that the view on the face is perspective at first, you can press Numpad 5 to switch to orthographic view.
This not only works with top down view, but also front and side view by holding Shift and pressing the according numbers on the numpad. Holding Shift and Ctrl while pressing the numbers will get you the opposite view on the face, i.e. bottom, back, left view.
In this view, pressing Shift with Numpad 4 will rotate the view counterclockwise in 15° steps, with Numpad 6 it rotates clockwise.
By the way, the decision what is "top" and what is "bottom" (other than the global alignment where the world coordinates are fixed) is made upon the face normal. Which means, the top down view will look at the face from the direction where the normal is pointing to, so if you have the Face Orientation overlay enabled, top down will be looking at the blue side of a face, bottom down at the red side.


text:
The Active Tool Tab in the Properites Editor is Entirely Empty
I was doing some sculpting and went to change some of the settings on the tool I was using, but the Active Tool tab was entirely empty.
I don't know what could have caused this and I couldn't find any way to fix it nor find anything about this online.
What could have caused this and what can I do to fix it?

it looks like a bug no? Maybe append your object in a brand new file?

Broken add-on that adds something to the tab, could do that. I would try temporarily disabling related add-ons and restarting Blender to see if that's the case.


text:
I am using the bend modifier (simple deform), as the mesh starts to bend from once end, the object which is parented at that end wont move with it

blender image,  this is a belt and Iz want to attach the buckle while the belt bend its self simply parenting at that point wont work

Hello, did you parent to vertex? It should work, maybe share your file

Instead of using a Simple deform modifier you can spawn a circle curve and use a curve modifier with it. If you copy the same modifier on the buckle it should move when you move the belt too

You could try parenting the buckle to a vertice instead of the whole object.
"Vertex parenting can be performed from object mode, this is done like regular object parenting, press Ctrl-P in object mode and select Vertex or Vertex (Triangle). The nearest vertices will be used from each object which is typically what you would want."
(Blender Manual)

select the tag first, and then the buckle so they are both selected

go into Edit Mode with Tab and select a vertex

press Ctrl-P and it will ask you if you want to make the vertex parent

Select "OK" to this question.  Now the tag should be parented to only one part of the buckle.
Of course, you will have to rotate the tag to make the movement look more natural.

If you select 3 vertices instead of just one it will also copy the rotation of the verts to the parented object. Parenting to only one vert will only copy the location to the object.

it worked as heaven thank you so much

@Photonic great, glad it helped.  Please accept or upvote the answer if you find it useful.


text:
Blender sculpting
How can I remove this ring, which makes editing symmetrical along this ring?

Do you mean cut s hole? If so, can you tell us what you mean by 'making editing symmetrical'?

Bring back the radial symmetry to its default 1:


text:
overlaying two models for use in CNC relief carving
Is there a relatively easy way to overlay two models and delete faces/vectors of one model to appear behind the other? Specifically, an object to be behind tree branches.
(Complete and utter newbie)

Hello, what is CNC relief carving? Could you please show some pictures?

I don't think that it's easy as the second sculpting will overlay the first one, you can flatten it though