text:
Is there a way to change the number of significant digits shown (for the follow path constraint)?
I'm using the follow path constraint on a very long path.

I would like to see the offset with more decimal places when I'm changing frames. Is there a way to increase the number of digits shown?
If not, is there another way to see the offset value with more than 3 significant places?

if i understood ur question is that u want to increase the number 0.005 to say 0.000005 if so then in the properties panel go to scene tab and under units change from none to metric and u can change what number u need from 0.005 to 0.000005


text:
Modeling shapes like a pumpkin - How to get sharp creases using curves, screw modifier, and mesh-deform modifier
I'd looking for alternative approaches to modeling something with approximately radial symmetry like a pumpkin using a curve, a screw modifier, and mesh deform. The problem is how/if it possible to use the mesh deform to get sharp creases like on pumpkin or gourd.

Details:

Starting with the curve, the screw modified was applied for 360 degrees to form a solid.

A cylinder was added.

The mesh deform was added to the curve and referenced to the cylinder, then bound.

If the mesh is deformed the shape changes

If a single vertex is moved, a deformation happens, but it is very smooth and broad.

Is there a way to make the deformation sharper like in the pumpkin image above?
Note: It is understood that this geometry can be created using meshing in several ways. The question is specific to modeling using curves and modifiers available for curves.
Example file -

source: Stack Exchange

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

sort: votes


text:
Custom Nodes: How to make something happen when node is added
I'm creating a custom node tree and custom nodes following the blender script templates - https://github.com/blender/blender/blob/master/release/scripts/templates_py/custom_nodes.py
The template does not include an example of how to make something happen when the custom node is added to the custom tree.
What is a way to trigger something when a node is added to the tree?

I just spent a while trying to do this with bpy.msgbus and then realized the solution is much easier because you just wanted to know when a node was being added to your custom tree, and not every tree.  Although it can be (sort of) done more generally, following is the direct answer to your question.

In order to be notified when a node is added, you can modify the init function (line 99) in the MyCustomNode class.  self.id_data will refer to the parent NodeTree:
class MyCustomNode(MyCustomTreeNode, Node):
    # === Basics ===
    # Description string
    '''A custom node'''

    # ...
    # (removed for brevity)
    # ...

    # === Optional Functions ===
    # Initialization function, called when a new node is created.
    # This is the most common place to create the sockets for a node, as shown below.
    # NOTE: this is not the same as the standard __init__ function in Python, which is
    #       a purely internal Python method and unknown to the node system!
    def init(self, context):
        parent_tree = self.id_data
        print(f'{self.name} added to {parent_tree.name}')
        self.inputs.new('CustomSocketType', "Hello")
        # ...

(Note: the custom_nodes.py template was moved in the Blender    directory structure.)

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


text:
How to disable part of an animation
I have a complex animation with lots of thing like position, colors, etc animated using keys and drivers. I'd like to disable some of the aspects without removing anything.
For example, here the rotations are animated. How could the rotation about the x-axis be disabled then re-enabled?

What is the best way to non-destructively disable a key and driver?

You can use a Limit modifier to block (mute) the animation for a given time, which will cause a moving object to stop and then teleport to where it would have been if it didn't stop. If you don't want the teleport and want to delay an animation, you could parent the object to another, with all animations scaled by -1 along Y:0.

The simplest way to do this is probably to check the "Do channels contribute to result" checkbox. This toggle can be found in the title section of any available channel, immediately to the left of the padlock icons. This feature is available from both the Dope Sheet as well as the Graph Editor.


text:
Speed up Trigger/Delay Actions Workflow in Animation Nodes
In this Thinking Penguin YouTube tutorial, we are shown the workflow for triggering the actions of a mesh matrix instances. The essential steps of this workflow are:

Animate some mesh object, Orginal.Mesh.Object
Export Orginal.Mesh.Object as .mdd
Duplicate Orginal.Mesh.Object, creating Duplicate.Mesh.Object
Apply Mesh Cache modifier to Duplicate.Mesh.Object, set file path to the .mdd you just exported
Set Mesh Cache modifier Time Mapping from Scene to Custom
Set start/end keyframes for Mesh Cache  Evaluation Frame
Use some kind of AN setup to instance Duplicate.Mesh.Object and control the actions of the instances (basic example pictured below)

Is there any way to automate some or all of these processes via a custom script? It's a very powerful node workflow but setting it up is tedious.

Your animations are already described parametrically so you needn't bake anything. Simply define a function that takes the time as input and outputs the required mesh. Then loop over your instances transformations and evaluate the function you created. A simple example would be as follows:

Which results:


text:
Liquid Dissolve Effect from Akira
I am trying to recreate the effect in the below GIF, where blobs rise up off a surface. I've tried multiple approaches, but can't seem to find a solution. My main hope for the solution is that it be highly procedural, i.e could be applied to any kind of mesh object, and the number and density of blobs could be procedurally controlled.

1st Approach: Metaballs

The way Metaballs blend together is promising, and I think they would work well if their max influence could be 10x larger. Fiddling with all the settings didn't give me anything nearly long enough.
2nd Approach: Cast Modifier

The cast modifier offers a nice, procedural way of deforming a mesh to something spherical, but implementing this approach on a large scale seems tedious.
I'm open to solutions that use animation nodes or sverchock.

Use Cycles/Experimental option
Add the Subdiv Modifier with Adaptive option to your object
Have fun with Nodes and displacement (use the Displacement only mode in the material option)

Here animating the 3 value nodes controlling respectively the color ramp, voronoi blob and noise spike textures.

I appreciate this approach, but I'd really like the blobs and goo bumps to deform in a way where they expand into a more spherical form further away from the mass.

Free for you to tweak the nodes for your purpose! I thought it would provide a base that you can expand on. My intent was not to create the perfect replica for you.

I'm just saying that I don't think displacement could get the kind of geometry the effect requires

Try adding Shrink-wrap modifier to your surface pointing at a plane above. Then add a Smooth modifier followed by a Subsurf turned up high. As the plane approaches the surface will be attracted away.


text:
Cylinder Generator in Animation Nodes
What's a good way to make a procedural cylinder mesh in animation nodes? Usually I'd just use splines, but I need mesh geometry because I'd like to be able to use a displace modifier on the generated geometry. I've tried a couple different approaches myself but now I'm stumped. I'm imaging the node group setup would look something like this:

Parameter Explanations:

START/END of the cylinder
VERTICES: Number which controls the number of sides cylinder has
RESOLUTION: Number of subdivisions/loops along the length of the cylinder

you can use the node under "mesh->generator->cylinder".
With this node setup you can do all you want:

of course you can create a node group for this, but i think you know how to do that, if not, let me know.

I guess one downside of this is that there's no start/end parameter for the bottom/top of the cylinder. If anyone would like to share a custom setup that would allow you do this that could be helpful to people. For my purposes I'm just going to deform the  cylinder mesh via a spline (see https://blender.stackexchange.com/questions/233413/recreate-curve-modifier-in-animation-nodes/233483#233483). Btw I don't know how to create this node group, creating meshes in AN has always been tricky for me!

One more note, seems like the built in cylinder mesh doesn't provide a means of adding additional rings to the length of the cylinder, just for setting the resolution of its curvature.


text:
How to load proxy rig in version 3
Blender version 3. The new version seems to have changed the way proxy-rig is loaded. I don't see the "make proxy" command. Please tell me how to load proxy rig in version 3.

You need to use a library override rather than a proxy.
In your source/library file put the armature and the mesh objects in a collection.
In your destination file, link the collection and use a library override.  Immediately after linking the collection use Object -> Relations -> Make Overide.

Marty Fouts, thank you very much! It works. In version 2.93 I had to disable visibility in the original rig file. Otherwise in my animation scene the rig armature was grayed out and could not be highlighted. In this version 3.0 this does not need to be done. Thanks again.

You're very welcome. Glad I could help.


text:
How does mixing shaders work?
Hello i am having trouble understanding how the 'mix shader' node actually works and more specifically why mix 2 identical nodes?
For example: why is there a different result between using a glossy shader then mixing 2 glossy shaders with the same color and the same average roughness?
what does mix shader actually do? average(with factor) the pixel color returned by each shader?
i see people mixing 2 glossy shaders claiming it looks better since it gives a different roughness distribution, but i am curious to what is happening behind the scenes and what is actually the 100% PBR way.

related resources:
What's the point of mixing the same shader types?
https://www.youtube.com/watch?v=nsem2HjwZQU
https://www.blenderguru.com/articles/making-better-materials

I think that videos like the second one you linked are probably tripping you up. There was a lot of needless BSDF mixing and general haphazardness in the construction of that gold material. It could have been made much more simply with practically identical results.

The easy part of the answer is that the 100% PBR way is to not use the mix shader because the mix shader does not preserve the physical properties of light.
The mix shader works, put crudely, by adding the output of the two BSDF nodes that are its inputs, in a ratio controlled by the value of Fac.  Call the Shader that plugs into the top input $T$.  Call the Shader that plugs into the bottom input $B$. Then the output of the mix shader is $Fac * B + (1 - Fac) * T$
The mix shader is used for a lot of purposes, but they all rely on using some input to control the Fac value.  Many of these purposes were overcome by the Principled BSDF shader; but you still see examples.  There's a common glass shader that uses a Fresnel or Layer Weight node to set FAC to mix between a glossy and a transparent shader, for example.
Even with the Principled BSDF shader available, some effects are still better produced by mixing two shaders to overcome limitations of the Cycles render engine.
Mixing two identical shaders is an artistic tradeoff that gives up actual photorealism for an effect that might better simulate the look that the artist wants.  It's not a way to achieve PBR.

Thank you for your quick and helpful replay @Marty Fouts ! In the formula you described for the mix shader, you are mixing between the shaders A and B outputs, which are pixels? What specifically are you multiplying? Also do you know if the Principled BSDF 100% PBR?

This answer talks about what BSDF is.  This paper describes the Principled Shader that Principled Shader is based on.  The principled is not 100% PBR because Cycles is not.  In particular it doesn't correctly model any frequency related light physics.  But it is close enough for most materials, except for when the object is translucent (or transparent.)

B and T are colors, in RGB coordinates.  They're not pixel colors, but rather the color that results of a light of a given color striking the material from the angle of the ray that the ray tracing algorithm has directed at the object.

Can you go into detail on "the mix shader does not preserve the physical properties of light" ?  It seems like if you feed it energy-conserving shaders, and you use a fac between 0 and 1, you end up with energy conservation.  Obviously, not all features of light are represented in a ray-tracer (like, there's nothing in the world that's just a surface, everything real is a volume) but I can't think of any particular thing that's right until you use a mix shader.

Yes, it's not the mix shader itself that doesn't conserve energy but the shaders that feed it.  Emissions are not energy conserving for example, so the emission shader or the emission setting on the Principled shader can lead to non-conservation.  That the emission itself doesn't conserve energy is valid physics, of course.

Thank you everyone for your awesome answers! i sort of understand your answers but i clearly lack the technical knowledge to understand them completly yet. in the circle mixing example, i didnt understand what are the circles on the top, could you please screenshot your node trees? Also do you know where can i read upon all of this? the behind the scenes of render engines, shaders and if possible how it works in blender specifically. i bought the blender shader encyclopedia which is pretty awesome but i couldnt find anything that goes more in depth. how did you guys learn all of this?

@DanielLiberty you need to ask Nathan in a comment on his answer about the circle mixing example. I don't know of a good source of all of this information all in one place. I've picked it up over the years from various materials tutorials, and an undergraduate class in computer graphics, back in the '70s.

Mix shader is not complicated.  It finds the color returned by each shader and interpolates between the two (in linear space) by the factor given.  It's really just a mixRGB.  Indeed, if we use it in Eevee, it's identical to shader to RGB -> mixRGB.  (In Cycles, of course, this mixRGB has to happen for further ray bounces and has to preserve information like ray type and ray direction.)
Why is it different to mix shader two different roughnesses than to use a single, average roughness?  I think the best parallel would be to imagine mixing two circles of different diameter:

When we take two white circles of different sizes and mix their colors, is it the same thing as taking one white circle of average size?  Clearly not.
The same thing is true of roughnesses.  Let's look at the same thing with a single lamp on spheres, but mixing roughnesses this time:

If we take a wide, dull highlight (1.0 roughness) and mix it with a tight, bright highlight (0.0 roughness) we're mixing two circles of different sizes.  It is not the same thing as taking a medium highlight (0.5 roughness.)  And the colors make it more clear what the difference is between mixing two different elements, and just taking the average of those elements.

2 such great answers.  I was unconsciously assuming  Mix Shader mixed rays/samples, not just the returned colour, until corrected  by you guys.

Thank you for your reply! understood the first paragraph about eevee (pretty cool) but i didnt completly understand your circles example. what are the white and black circles in the top? could you please screenshot your node trees so ill be sure what material corresponds to which sphere? additionally why doesnt the mix shader in cycles behave the same way as in eevee? what else can it interpolate except the pixel colors returned from each shader? if you have any links for further reading about this subject (shaders, render engines and anything related) i would be gratefull for them.


text:
Is it possible to pass parameters to blender via run command?
For my project, I am working on a GUI to load an object and get a rendered image from them with the parameters given within GUI.
I am using Python and tkinter for development of my GUI. Currently, my solution is to edit the python script file and then load it in blender via subprocess command.
Is there any way to pass the parameters the user wants via run command of blender?
Thanks in advance.

It is possible to invoke Blender using Command Line Arguments including an argument to run a python script:  -P <filename> or --python <filename>.
Within the script it is possible to access the entire command line, using something like
import sys
if len(sys.argv) > 1:
    for i in range(1,len(sys.argv)):
        print(f'\targ: {sys.argv[i]}')

which, for example will print all of the command line arguments.  You could, of course, instead parse the arguments looking for the ones you want to process.


text:
Geometry nodes, How to set the positions of an arc?
I am trying to set three points of an arc to the positions of three vertices but I cant seem to figure out how. I take the position of a point of index 1,2 and 3 and set the arc on those points but I don't know why the vector wont let me do that.

You might want to indicate that you're using 3.1 beta or 3.2 alpha; which are not yet released.

Yes, I am using 3.1. But I cant make it work in 3.0.1 eighter with a 3 point circle instead of an arc.

Use the transfer node but do it like this

The technique, repeated 3 times here, is to use the Transfer Attribute Node, set to Vector, Index, and Point to extract the position of the first three vertices from the original geometry.
Here is an example using a triangle as the input geometry:

Thanks a lot, thats it. I also found a solution with attribute statistics, the autput is a circle there also. I guess your solution is more elegant.

How do you make these explanatory gifs? Is that a function in Blender?

@RoelDeden I use a program called ScreenToGif because animated Gifs are one of the few 'video' formats that stackexchange supports.  It seems to be the most popular among Windows users.  I'm not sure I'd call my solution more elegant but it does generalize a bit better than using attribute statistics, I think.

Thanks, i will give it a try :)

This is a restriction of geometry nodes. You cannot plug a "diamond socket" into a "round socket".
The diamond sockets represent multiple values (like e.g. all points, all vertices) the round values represent only one value.
What you can do is, e.g. use empties which create your arc like this:

result:

if you really want to do this with 3 vertices, you have to calculate the arc "on your own", so search for that formula in the internet and calculate your points for that.


text:
blender outline window: how to undo shift + A?
The outliner now expands every single item. I make a very long expanded structure. I missed typed shift–A, then every thing collapsed to a single entry.
I want to make it back.
How do I make it back to unfolded state?

shift–A is a shortcut in the outliner.  It executes the Expand/Collapse All command.  That command is a toggle, meaning that repeating the operation undoes it.
If the outliner is collapsed down to a single entry then shift–A will open up the entire view.
If the outliner is open up, showing every entry, then shift–A will collapse it down.
Note that pressing shift–A after you've collapsed it to a single entry doesn't exactly undo the collapse because the outliner doesn't remember what entries you had already expanded.  Expand gets you every entry updated.
shift–A is a keymap entry.  If you want to use a different key or just don't want shift–A to work that way, you can edit your preferences, go to the Keymap tab, and search for "exp".  This will show you the entry that you can edit:

If you click on the x then the shortcut is removed.  You may have to click Save Preferences if you want this to work.

Just press Shift+A again to fold everything.

no, I did not downvote your answer, in case you were wondering.  I didn't even flag it.


text:
Select end points of a curve using blender scripting
I want to develop a code which can be used to select endpoints of the curves.

There are three kinds of curve structures, although you only mention Bezier curves in the tag there are also NURBS/poly curves.  This technique works for both, although you have to code NURBS/poly slightly differently.
You have to select the object containing the curve.  The data field of this object will be of type bpy.types.Curve.  The curve will have zero or more Splines. Each spline will contain either bezier_points or points.
Each spline may be cyclic, meaning it has no endpoint.  If a spline has only one point, it is degenerate.  Otherwise, the endpoints are always the first and last points in the spline.
That said, ignoring NURBS curves, this code will give you all of the endpoints of the active object, if it is a curve.
import bpy

def is_cyclic(spline):
    return spline.use_cyclic_u or spline.use_cyclic_v

def find_endpoints(spline):
    if spline.type == 'BEZIER':
        return (spline.bezier_points[0], spline.bezier_points[-1])
    elif spline.type == 'NURBS':
        return (spline.points[0], spline.points[1])
    else:
        return None

def all_endpoints(object):
    """ Returns a list consisting of
        None, indicating that the spline is cyclic
        tuple (EP 0, EP 1), containing the endpoints of the spline
        If EP 0 and EP 1 are the same then the spline has only one point
    """
    if object.type != 'CURVE':
        return None
    all_endpoints = []
    for spline in object.data.splines:
        if is_cyclic(spline):
            all_endpoints.append(None)
        else:
            all_endpoints.append(find_endpoints(spline))
    return all_endpoints

endpoint_list = all_endpoints(bpy.context.active_object)


text:
Boolean Expression to check if an object exists in a specific collection
I want a Boolean expression to check if an object exist in a specific collection.  For instance, test whether "Sphere" exists in the collection "TEST_COL".
So I can run the expression and it returns True or False.

Since you know the name of the object and the name of the collection, there are (at least) two ways to create such an expression.  Both start with obtaining the actual things from their names.  One is more reliable than the other so I will only give it.
object = bpy.data.objects["Cube"]
collection = bpy.data.collections["Collection"]

if collection in object.users_collection:
     print("yes")

In your case you would replace "Cube" with "Sphere" and "Collection" with "TEST_COL".
Note that this code will raise an exception if there is no object or collection with the specified names.
EDIT:  Here's the same code in the form of a helper function:
def is_object_in_collection(object_name, collection_name):
    object = bpy.data.objects.get(object_name)
    if not object:
        return False
    collection = bpy.data.collections.get(collection_name)
    if not collection:
        return False
    return collection in object.users_collection

Actually I was intending for a dynamic collection name, like for when you don't know the collection name of the original object. But your code did give me the helper functions I needed to execute it myself. Thanks again :D

OP asked for "So I can run the expression and it returns True or False." -> where does your answer return a true or false?

In the if statement Chris.  Expressions return their values when they're evaluated.  Anyway, while you were writing your comment, I added a function that returns a value, so it should be clearer.

Object.users_collection returns all collections associated with the object: https://docs.blender.org/api/current/bpy.types.Object.html#bpy.types.Object.users_collection, in this case a generator expression is a good choice.
One-liner:
>>> 'Collection' in (i.name for i in bpy.data.objects['Cube'].users_collection)
True

Collection.objects returns all objects of the collection: https://docs.blender.org/api/current/bpy.types.Collection.html#bpy.types.Collection.objects and bool() converts the value into a Bool.
One-liner:
>>> bool(bpy.data.collections['Collection'].objects.get('Cube'))
True


text:
How do I mix two bump nodes and fade from one to the other?
Here is a simple flower bud with a colour pattern using noise and a gradient texture.

Now I want to add two textures, a wave pattern for the petals and a noise pattern for the stem. I have used a gradient into a colour ramp as a kind of mask. The texture settings are set high here just so it's easy to see. Each bump node I have run into the normal input on a diffuse shader (I think the problem is here). Because when I then mix it with the base colour pattern I'm getting the colour data from the diffuse nodes blending with the base colour pattern in the first image.

How can I add these two texture/bump nodes and fade between them in a way that doesn't interfere with the base colour pattern I want to use?
EDIT: This question was closed as a duplicate, but the linked question is a different issue. I was able to solve this problem by dragging the colour output from the colour ramp node for the pattern into the diffuse bsdf nodes for each texture. It feels like a messy set-up to me, I think this could be done more elegantly.

Hi @JachymMichal thank you. That is close. But it doesn't solve the problem of fading one texture into the other. It uniformly applies them together...

Your chosen route is to mix two shaders, each shader with its own normals, generated from heights, using Bump nodes.
Mixing Shaders is, as far as I know, gathering contributions from each shader, biasing samples made by the renderer, in Cycles. In EEVEE, I'm not sure.  In particular, I don't know how normals are combined. Maybe someone who knows can help with that. Mixing normals is tricky: they represent directions; just mixing the colors that encode the directions won't do.
Why the ramble? Because, however that's done, mixing heights is easy by comparision. It's just an addition.
Personally, using the 'Node Wrangler' shipped-add-on's convenience, CtrlShift-clicking nodes to preview their output as I went along, I would ..

Preview the Wave and Noise textures, and try them out through Bump on their own, on a neutral material. I would put whatever was needed around them (perhaps Color Ramp / Multiply) to adjust the heights, before they get to  the Bump node.
Preview the Gradient, on its own, to make sure it was oriented correctly, and roughly right.

So the resulting chunk of tree would be something like this:

What's in those 'Adjusted' groups will depend on how you want your waves and noise to look. The Multiply Add  is just my choice for changing the width and location of the gradient.
The only suggestion is that it's easier to mix heights, here, than shaders, or normals.

Thank you that's a helpful answer. It looks like I've stumbled into a rabbit hole here re: combining normals, the linked answer and subsequent links there, are informative and dense. The originally linked suggested duplicate answer was succinct solution to this and useful but didn't help me with mixing the gradient transition in.


text:
Tank Rig Driver Help

creating a very simple tank rig with a driver controlling the movements of the tracks. now I got the tracks to move forward but when rotating the control on the Z axis, the tracks don't don't move. Have linked a gif and image of the driver expressions. Any advice much helpful.
Tank Rig GIF

Change "Local Space" to "World Space". Local Space does not work with objects that are parented.

Thanks for that, worked like a charm ^^

Thanks, worked like a charm ^^


text:
Create Mesh from texture shader or or particle systems
Blender has algorithms to generate mesh surfaces for a fluid simulation.

Is there an API to use this algorithm with other data? For example, is it possible to mesh a surface based on a volume shader (like shown below) or based on the density of a particle system?

Related question - How to create a procedural volume and use it with the new Volume to Mesh Modifier?

An approach that gets close, but does not solve the question.
In Blender 2.92 there is a 'Volume to Mesh' modifier. Using it an OpenVDB volume can be converted into an isosurface. The animation below shows the result of generating a smoke simulation, saving the cache as using OpenVDB, then loading the OpenVDB and using it a reference for the 'Volume to Mesh' modifier.

What is missing is the ability to use a volume texture to do the same thing.


text:
How to setup a material that shows the texture under an object
I'd like to setup a material in cycles that looks like what is underneath and projected upward (Blender 2.79). It should behave like a refraction, except the ray always goes down instead of following the normal of the object surface and the IOR. By carefully working with textures, this effect can be achieved like in this image, but this is not practical for a complex case.
In the example below, the same material is used and in all of the geometry. This effect can be achieved by careful setup. However, if multiple items, with different materials are under the cone and dome, this approach is not practical. If uv maps are used, there is not an easy way to achieve this effect. If the cone and dome are animated to move or change shape, matching the texture is difficult also.

I'd like to be able to use something like the refraction shader to achieve this effect. The image below shows the use of the refraction shader. However, the result is not close enough because the change in ray direction depends on the geometry and IOR.

Is there a node setup that will achieve something like the first image using the refraction shader or any other combination of shaders?

Why not simply use the same vertically projected  material?

@Duarte, is there a way to project from the plane upward in the example above? I could not find a way to do that. Will it work if multiple items with different materials are projected upward?

It seems to be what your first image already shows, just use basic 2D world coordinates for your texture, and it should use scene coordinates to project from the top


text:
Shader changes behavior near mesh edge
Is there a way to have a shader behave differently near a mesh edge?
For example, if a shader generates a checkered pattern, is it possible to detect the edge and make the squares that intersect the edge transparent?

Some clarifications:

The solution can be for a single face. In other words if the edge can be detected on a signle face.
The solution should work even if the face is not a simple shape like a circle, square, or triangle.

Sorry if my question is silly, but by "make the squares that intersect the edge transparent" in this case do you literally mean you want only the 9 squares in the middle to be opaque while the other ones that intersect the edge fully transparent? Or do you just want a smooth gradient around the edge that can be made transparent?

I want only the 9 squares in the center to be opaque. The squares on that intersect the eve should be transparent.

https://blender.stackexchange.com/questions/114079/cycles-nodes-is-it-possible-to-get-distance-to-nearest-edge

"The solution can be for a single face. In other words if the edge can be detected on a signle face" - you mean a solution would be acceptable if the same shader turns the whole face transparent only if the face has a border edge?
If that is the case, would the following work:
Script that assigns UV coordinates of (0,0) to faces (their vertices) touching borders, otherwise set UV to (1,1). Then you could easily manipulate every face based on generated UV values.

@uvnoob I agree that this should work. You would need a very dense geometry though

What you're asking-- use the shader only to detect a mesh edge, for any conceivable geometry and topology-- is not possible.  One sample does not know what another sample is doing, so there is no way for one square sample to figure out if that square is cut off, not without rendering the scene to find out.  But: with certain constraints, in certain situations, there are potential tricks.  If you give your actual situation , rather than a generalized problem, it may be possible.

"The solution can be for a single face. In other words if the edge can be detected on a signle face." - this makes the solution trivial in geonodes, though I don't know if that's what you really mean. Every edge connected to only one face is a boundary edge. Capturing 1 as float on such edges and then recapturing on (interpolating to) faces will give you an attribute that you can read in the shader - if 0, it's a face not connected to a bounary, otherwise it is.

This might be only an answer that helps to improve the question, but if you subdivide a plane, assign blue material, checker deselect, assign ping material, then create a circle, knife project and remove vertices outside the circle, add a geonodes modifier:

And finally modify the blue material to:

You will get this effect:

Of course this effect could be applied also to pink faces, as well as there could be a single material for both colors, and the color could be captured on faces, or just the shader's checkerboard texture could be aligned with geometry; I did it this way to clearly show it requires the squares to be defined by geometry, as this is how I understand this statement:

The solution can be for a single face. In other words if the edge can be detected on a signle face.

Though you could also remove those faces in geonodes.

I'm not at my pc at the moment, so I can't test it, but I can point you in the right direction, I would use a colorramp-node and mask out the dark squares so they are transparent, then use the geometry-node (docs.blender.org/manual/en/latest/render/shader_nodes/input/…) to create a mask for the position, use another colorramp to set the threshold, and then blend between the original and the transparent texture using a mix-node and the factor comes prom the mask. I hope that helps and I'm sorry that I can just be theoretical at the moment. All the best – Marco Vitale

The challenge that this is part of an animation and I only want to have the dark cell on the edge of the mesh transparent.


text:
Very harsh shading part of the model
I am getting strange hard shading on a part of my model with point light on current specific position in material mode (Blender internal). I've tried recalculating normals, also they are all pointing in right direction. Can anyone notice a problem in my topology which could cause such harsh shading from one point forward? I would be really grateful for any clues.
Model file

There is nothing wrong. Also consider switching to EEVEE or Cycles with a denoiser like Intel Open Image Denoiser, Optix Denoiser or internal one.
This you can get by tweaking some values:

Materiel view

Render

I must stay in blender internal, because I will use model in a game engine. That shadow is showing very harsh there, when i set light to similar position. How could i make it at least a little more gradienty (if that makes sense)?

@tomazj There is nothing you can do. Blender Internal does not have a bounce lighting so if you use Material Preview it is no more than what Internal itself can do. You need to fake bounce lighting with AO, Environment Light or lamps.

@tomazj And what Blender viewport renderer has to do with a model for a game engine? Do you use BGE? Any way EEVEE is much closer to how a modern game engine will draw your model. And if you need a preview of how it will look like in Unreal or Unity you should use Blender 2.8 with EEVEE.


text:
How to properly smooth edge
What is a proper way to make edge (marked with marker) seamless in a situation below. I can't bevel it, also bevel modifier does nothing. Tried cutting it and bridging it back together. Removed doubles, recalculated normals... Running out of ideas... I could theoretically make one big face, but once converted to triangles in game engine it looks broken.
EDIT: So as requested more informations. I am modeling a 3d model of a glider plane. I need to create a seamless transition of object 2 on object 1(Old pictures were cutout of that section). Basicly i must smooth out edge marked with yellow color (all around the profile) so it would be like one part with fuselage. One the picture below is a look from a real plane i am trying to achieve.
File:

sorry it's not clear what you're trying to do, what shape are you trying to create exactly?

So as your demand has changed, here is a proposition for your plane wing, tell me if it's ok:

Result is what i want, but i have two parts: horizontal and vertical which i combined in object on all the pictures (hope that makes sense). So when i select edge marked on first picture it doesnt allow me to bevel it.

"which i combined in object" -> what do you mean, please give more details about your project, the object or animation you're trying to create

is it possible to send you a mail or something and i can give you details or even share .blend file, so there wont be so many random pictures in post here?

it's better if you edit your message and give more details, as many as you can, is it for an animation, are there two different objects? 2 different meshes in 1 object? etc...

I have hopefuly added more useful informations...

so they are separate from the main body of the plane, and they should follow its profile along the black lines you've drawn? In that case you should use the body, cut with a knife, and join with the wings, something like that... could you share your file? https://blend-exchange.giantcowfilms.com/

Yes I would like to join object 1 to object 2, so it would like like one object

oh ok so one unique object (body + wings welded) and not 2 separate objects? I will check your file tomorrow   ;)

Yes, one object but seamless (like beveled) edge. Thank you!

Ok, I've edited, tell me if you understand and if it answers

I've edited, you can skip the bevel and work on the wing shape afterwards, it may be simpler  ;)

One subdiv. approach would be to model the entire fuselage and wings as one piece.
Model under a mirror modifier, and your final expected level of subdivision, using as few loops as possible to capture the curvatures of your reference. The wing is then just an extrusion of some vertices you have GG slid into the right profile.
Introduce a loop along the line of your cut, and CtrlE > Edge Data mark it as creased, with a weight of 1.
Retain an intact copy of the model.
V Rip the edges marking the cut,  separate the pieces. F fill and I inset the holes. The inset at the acute angle of the trailing edge may need repairing by hand, merging overlapping vertices.
You can  delete the inner nGons, and CtrlF > Grid Fill them, if there are an even number of vertices.

Holding loops cut close to the creased edges should preserve the previous curvatures very close to the cut.
This can be the result:

If you wanted to make the join completely invisible from a normals point of view, you could use the intact model and a Data Transfer modifier to copy the normals from it to a vertex group of the cut copy.. but it would be a lot of fiddling.. for most uses you would 'magic' the cut away, substituting the intact model.


text:
How to create Mist in Blender
I already tried several ways to create Mist in Blender, but it never worked 100%. I use Blender 2.78 and I want to create Mist like in this scene here.
What are the exact steps?

Here is what I have tried so far:
I already tried this: http://blog.yamandi.com/mist-pass-blender-268-how-use-it-cycles but it simply did not work .. I dont know why.
(EDIT: I managed to fix it: Check out this graphic:
Until now I already used objects successfully as Mist-creators (Volume Scatter under Volume Material). The bad thing about using Objects as Mist-creator is that they dont have an endless mist range + the mist can not be bright. Normally it appears grayish result is bad..
Check it out
Please help

Please include some screenshots and a blend file of what you tried so far, and explain in more detail than "it did not work", otherwise it'll be hard to give you an answer that actually helps you out.

If you want to change the color of the Mist. Go to world tab under volume -> Add volume scatter -> Change color below

@dr.Sybren Thank you for the quick responce. While trying to build it up again a third time to show that I am doing exactly what is told in the Tutorial I found a way to make it work. It is different from the Tut, what I think is a bit confusing. but thanks anyways. Now my question is, how can I change this Mist color. Right now it is white. Can I change it to green for example?

@atek I know that I can change this color. But if I change it to white the mist disappear.. It can only handle dark colors I guess.. When I try to put on a Volume scatter for the whole scene it always becomes dark in the distance. Maybe you can show me an example of a blend file, where I can achieve a mist like in my aimed result, with the Volume scatter in the world tab.

check your nodes Mix -> Viewer and render layer -> composite

check this link http://pasteall.org/pic/index.php?id=120424

AAA @Alek I already had it exactly like in the tutorial but then it did not work. Only when I made the showen changes it startet to work. YOu did not understand me there. With my graphic I wanted to show the way how it worked at my side. I hope you udnerstand now. Still I got the question how to change the mist color now.

Indeed, you should connect the composite node to the output of the node tree, otherwise it won't work -- that's a mistake in the tutorial.
If you want to change the mist colour, place a ColorRamp node in between, and change the colour of the right-most point.

Don't forget to mark my answer as accepted, so that others also know the issue is solved.

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


text:
Can't select individual objects in object mode– why are they grouping together?
I am very new at using Blender and have a simple scene set up with a table and plane for the floor. I don't know what I did, but now the table and plane move together in object mode, and when I try to select them individually I can't. This is a problem because I need to assign different materials to each thing. What do I do to fix this?

Sounds to me like table and plane are one mesh.  To separate, edit mode, select all, P separate by loose parts.   Adding  a screenshot or two will make your question clearer.

Related https://blender.stackexchange.com/questions/6184/splitting-pieces-of-a-mesh-into-a-new-object. You can still assign different materials to different parts of one object

@batFINGER Before you replied, I messed around with it and for some reason there was a duplicate of the whole setup on top of itself. So I deleted that, and I can now select things individually, but even when I just have selected the table the material applies to the plane (and a few of the table legs apparently). I've attached a screenshot

I guess you clicked join button in tools while table and chair was selected .It happens a lot if you are messing or trying  stuffs in blender.To fix your project.
select that object which you joined (in your case that chair and table).
then press tab TAB this will lead you to edit mode .
press 'A' to select all everything .
now press p and click on "by loose parts"

press TAB again to go back to object mode.
this will allow you to move individual object but we are not done here you will notice something strange may happen when you will move some object

to fix this you need to reset its origin geometry(sounds tricky but it is really easy)
now select all the object by pressing shift and clicking on object .
now press "SHIFT+CTRL+ALT+C"
click "origin to geometry"
and DONE!!!
hope it help.
next time if you mess things up do not save or close blender . press "ctrl+Z" to reverse your last action .
happy blending ;-)

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


text:
Blender Cycle .jpg texture not rendering properly
I made a calendar. I have .jpg texture that should be one page.

I just painted it with various colours because this is what it looks like in rendered view.

While .png texture works fine

The only thing I change in material setup is the image texture. Does anyone know what is happening here? It seems like blender has problems reading the .jpg or something.
EDIT:
I did not post material setup, because it has nothing to with it 100%.
Blender clearly has some issues with .png and .jpg formats.

I continued on my project and I came across another problem. Now I have this image, which is .png
Material setup is THE SAME, just texture to diff shader. This is what it looks like in viewport.

UVs are just faces covering the whole picture, like this:

But render looks ok, so I have no idea what is happening, I can work around it obviously, but it's strange at least :). Render:

Please add images of your node setup.

did you save and Pack your painted images? Probably they are not loaded correctly. Try reloading your textures or restart blender. Also check that you selected the right texture for rendering


text:
How to automatically complete these edge loops?
I'm still learning blender and I'd like to know if there's a faster way of creating these edges (marked in red) in my solid, continuing on the bottom face and up the backside, completing the loop, than manually using the knife to apply the cuts.

Could you post a wireframe (Edit Mode view) also?

One of the method may be using a Knife Project tool. In Edit Mode select all the cross edges with Shift+Alt+RMB (with the edge select mode enabled). Duplicate them with Shift+D, then separate them with P-->Selection. Then, being in Object Mode rotate them along Y axis and scale them by Z axis. Now select the edges, then select the object and enter its Edit Mode (make sure you're in the side ortho view). Press Spacebar and type knife project. In a Tool Shelf (T) check the Cut Trough checkbox. Finally delete the edge loops with X.

Second method may be extruding the top part of the object and scaling it by 0. Select one of the bottom vetex in Edit Mode and snap the cursor to it (Shift+S-->Cursor to Selected). Change the pivot point type to 3D Cursor. Enable snapping tool (click magnet icon and set its type to Vertex). Select all the top vertices of the object, press E, Z (twice) and snap them to cursor. Next press S,Z,0. Finally remove doubles (select the whole mesh with A, then press W-->Remove Doubles) and recalculate normals (Ctrl+N).

Note: I don't know what your topology looks like, but if it looks like the one pictured below you may use a Grid Fill tool.


text:
How to run simple example from the true terrain addon trial version?
I installed the True Terrain Trial version from Blender market.
How do I run the trial version?
I'm trying to find an entry point. I look at examples on YouTube, but it does not work at all to run the simplest example
I was looking for True-VFX and true terrain but found nothing

That's an (expensive) external addon, not part of Blender, so questions about it are not going to be answered here. Try looking for contact details on the addon page and asking there.

You need to open the side panel (shortcut N) and look for the "True-VXF" tab:

That will take you to a panel where you can find Documentation and Tutorials:

You can get a quick example by hitting the "Enable A.N.T Terrain" button and then clicking "Add Landscape".


text:
Pure alpha gradient
Why don't my gradients fade to pure alpha transparent? Hopefully it's possible. Have a look at my examples and node setup.

You need to use the alpha output of the Color ramp as the factor for the mix shader.  The color output does not cary the alpha information.


text:
It is possible to change between 3D_cursor and selection_box using python script?
It is possible to change between 3D_cursor and selection_box using python script?
There is no code because I don't have any idea on how to swap 3d cursor with select_box in python and vice versa.
Is there any short method for this?

please add some details

@yhoyo I did now.

Does this answer your question? Choose active tool in Python

I'm not sure when this was introduced, but as of Blender 2.9x you can use bpy.ops.wm.tool_set_by_id to change between the tools.  The ID for the selection box is "builtin.select_box" so you would switch to it by
bpy.ops.wm.tool_set_by_id(name="builtin.select_box")

You do have to be in the 3D Viewport for this command to work of course.


text:
Why do we use IK in the lower arm (fore arm) bone? How to select IK bone?
There is no issue to be solved or artefacts to be tweaked. The purpose of this question is just to better understand how IK works. I'm just curious what bone should we choose to have the IK constraint? and why?
Why doesn't it work if we added the IK constraint to the hand bone or the upper arm bone? Why should we add it to the fore arm bone (the yellow bone)?

because this is the setup that gives the best control on the arm, you'll see it if you give the IK to the hand (or to the upper arm). Also you need to create the IK controller bone (called target) at the wrist position, and create a pole target at the elbow a bit behind the elbow

As of recent versions of Blender, there are two IK constraints, Spline IK and Inverse Kinematics, usually just called IK after its acronym.  Spline IK is used to "align a chain of bones along a curve" and does not have the limitation of fewer bones that you are asking about.
The technical reason why IK is normally limited to chains of only two bones has to do with the mathematics behind how IK computes the positions of the bones in a chain when you move the target bone.  Here's an example where the constraint is on the wrist bone, and a finger bone is used as the control bone:

Notice near the end the rotation of the upper arm, and the position of the forearm jump around?  This is because for any given position of the finger, there are many positions that those bones can be in that would 'work'.  The solver tries to deal with this but in the end the control is unpredictable with longer chains.
The same problem exists with a two bone chain.  If we use the wrist as the controller, then many of the positions we put it in, the joint between the upper arm and the forearm, in effect the elbow can fit anywhere in a circle.  (Mathematically this is because the system of equations needed to solve the position is underdetermined so that instead of a single solution there are, in this case, an infinite number of positions the bone joint could be in.)
We can add a pole target for the elbow joint. That has the effect of telling the solver the preferred way for the arm to bend and constrains the solution.
Once we've done that, we get to take advantage of the fact that bipeds typically have two bones in their major limbs, attached at one end to the torso and at the other to a hand or paw.  By using the hand or paw as the controller and the torso as an anchor, we end up with a bone chain that's more predictable to animate using IK.


text:
Load texture image from existing Image object in Python
I'm working on Python script to apply textures to objects. I need to load an image that was created using PIL via img_from_array = Image.fromarray(ARRAY). Is it possible?

If you want to load from PNG/JPEG/etc data, see this. If you want to load from a pixel array, use img.pixels.foreach_set(data) (and do img.pack() afterwards).

EDIT:  From a comment on the answer, it is clear that one more step is needed.
EDIT 2: From another comment, there's apparently a better pil_to_image function.
Since you are starting from a PIL image, you need to convert the image to a Blender image.  To do that, see this answer from which I take this function and modified it according to comments on this answer.
def pil_to_image(pil_image, name='NewImage', alpha=False):
    '''
    PIL image pixels is 2D array of byte tuple (when mode is 'RGB', 'RGBA') or byte (when mode is 'L')
    bpy image pixels is flat array of normalized values in RGBA order
    '''
    now = time.time()
    # setup PIL image conversion
    width = pil_image.width
    height = pil_image.height
    byte_to_normalized = 1.0 / 255.0
    # create new image
    bpy_image = bpy.data.images.new(name, width=width, height=height, alpha=alpha)

    # convert Image 'L' to 'RGBA', normalize then flatten
    bpy_image.pixels.foreach_set((np.asarray(pil_image.convert('RGBA'),
                                             dtype=np.float32)
                                  * byte_to_normalized).ravel())
    bpy_image.pack()
    print("pil_to_image completed in",time.time() - now,"s")
    return bpy_image

Once you've done that, the key is that images are stored in bpy.data.images and that you use them in texture images by assigning the image to a field in the texture.
Given your comment and the above function you need something like
bpy_image = pil_to_image(img_from_array, name=WHATEVER_NAME_YOU_WANT)

to perform that conversion
Here's an example that adds the image created above to the active object. It's a bit of overkill, as it creates the material.  It assumes the object has no materials yet, so the new material will go into slot 0 and be applied to the entire object by default. It also assumes you want to be able to map UV coordinates for the texture.
If you have an existing material you need to add an image texture and link it to the shader.
object = bpy.context.active_object

material = bpy.data.materials.new(name=MATERIAL_NAME)
object.data.materials.append(material)
material.use_nodes = True
tree = material.node_tree
nodes = tree.nodes

texcord = nodes.new('ShaderNodeTexCoord')
mapping = nodes.new('ShaderNodeMapping')
teximage = nodes.new("ShaderNodeTexImage")

bsdf = nodes["Principled BSDF"]

tree.links.new(texcord.outputs[2], mapping.inputs[0])
tree.links.new(mapping.outputs[0], teximage.inputs[0])
tree.links.new(teximage.outputs[0], bsdf.inputs[0])

teximage.image = bpy_image

Thanks for your explanation. Unfortunately I still don't get it.

In my scenario image is generated using Python PIL:
img_from_array = Image.fromarray(ARRAY).
And I want to assign this. Originally my script was:
face = "FRONT"
mat = bpy.data.materials.new(name=face)
mat.use_nodes = True
bsdf = mat.node_tree.nodes["Principled BSDF"]
texImage = mat.node_tree.nodes.new('ShaderNodeTexImage')
texImage.image = bpy.data.images.load(PNG_FILE)
but now I need instead of loading PNG_FILE assign img_from_array

I've updated your question and my answer to account for PIL

pixels.foreach_set(data) was added in 2.83 and is faster than the pixels[:] = data. You also need to pack the image with .pack() afterwards, otherwise the image is not "saved" (see what happens if you close and reopen Blender).

Also you need to pass the correct alpha= argument to images.new. This doesn't seem like it does anything, but it also matters for save/reload.

@scurest thanks.  I don't have PIL installed, so I'd appreciate it if you'd review my changes to the pil_to_image function.  Feel free to edit if I've botched addressing your comments.

Getting through script without errors but converted textures in Blender look weird. Is there a simple way to draw pby_image on screen (using Jupiter)

@MartyFouts Thanks for support so far. By "weird" look I mean bpy_image definitely does not match original at least on Blender object. Thus I'm asking if there is a possibility to "see" this bpy_image in Jupiter UI somehow?

It is possible that the pil_to_image code is broken.  I don't have PIL so I can't test it.  But the easiest way to look at the image is to plug the image texture into an emission shader and place that material on a plane with the same aspect ratio as the image.  (Effectively doing an "Image as plane" kind of thing.)

@martyFouts Here is screenshot where you can see both images. bpy_image looks like a cropped version from very center of the pil_image:https://www.dropbox.com/s/yevq92tr4ywlvoc/Screenshot%202022-03-26%20at%2001.21.58.png?dl=0

Sorry, seems cropped even not from centre but shifted to right and down

I'm pretty sure that's the conversion routine.  Unfortunately, that's not my area. Perhaps you can ask @scurest to comment on my modifications to the routine.  If it's not the conversion routine is it possible that you're supplying different coordinates to the two versions of the texture?

@scurest Could you please take a look at this issue?

Solved. Thank you for help. Issue was not not related with conversion but with vertice definition in my script.

@scurest It appears converted images are flipped vertically. Of course I can fix this by flipping PIL image prior to conversion but what would be correct syntax to solve this?


text:
How can we add to the rendered object name his material name?
Thanks to @FFeller, how helped me to automate a rendering of an object with the associated list of material.
And Thanks to @Marty Fouts, how helped me with a script for renaming a rendered images with there associated materials. It works perfectly if the generated names are made by default.
– link bellow –
But I have many objects to render with the specific names, generated by a Compositing Output file, and the script looks for names like – 0000.png – and didn’t recognize names like – CUBE_ONE_0000.png –
Knowing that I have a small knowledge of Python, can you please @Marty Fouts, help me to adjust the scripts.
Images to illustrate my needs, hoping that I made it clear
Thanks a lot.
How can I render an object in a different material, each one in a separate image?
How can we render an object including his material name?

import bpy
from pathlib import Path

scene = bpy.context.scene
path = Path(scene.render.filepath)
suffix = ".png"

object = bpy.context.active_object
for index in range(len(object.material_slots)):
    src_string = format(index, "04d") + suffix
    src = path / src_string
    dst_string = object.material_slots[index].material.name  + suffix
    dst = path / dst_string
    print(str(src), str(dst))
    src.rename(dst)

If you're asking for advice on a coding problem you should copy your code into the question, not just post a screenshot. That way other people can grab your code and test it on their own computer.

FYI you can use the backtick key > `  to format your code in a post. Enclose the entire code block in three backticks on either side like <your code here> and it will be much more readable.

import bpy
from pathlib import Path

scene = bpy.context.scene
path = Path(scene.render.filepath)
suffix = ".png"

def rename_object_render(object):
    for index in range(len(object.material_slots)):
        src_string = object.name + '_' + format(index+1, "04d") + suffix
        src = path / src_string
        dst_string = object.name + '_' + object.material_slots[index].material.name  + suffix
        dst = path / dst_string
        print(str(src), str(dst))
        src.rename(dst)

for object in bpy.context.selected_objects:
    rename_object_render(object)

I've made three important changes from the original script.

I've made the for loop into a function, since it will be invoked many times and it makes the code easier to read

I've added a loop to loop over all of the selected objects.  If you want all objects instead, use bpy.data.objects in the for loop rather than bpy.context.selected_objects

I've changed src_string and dst_string assignments to prepend the object name.

I've also made one small change to fix a bug in the original script, replacing index by index+1 where relevant.

It worked perfectly, just I had to select one by one the objects and run the script, so it modifies the name of the selected object only...
Thanks @Marty Fouts
Now I hope that I can handle it in my complex object file
PS: I add a screenshot to illustrate the result

@Kalthoum great.  You could have selected all of the objects and then ran the script.  It would have iterated through the objects and done the one by one processing.

your script works perfectly, I render the 50 materials for the 20 component of my object, and I was able to add the material names for each render... it was like magic . thanks again.

If you have two lists, one of every object with a unique material on it, and one with the image that needs to be renamed, I think using zip would be a better way to go about this. You already have the images rendered, so you don't need to get the scene render filepath, the images already have their filepath.
This isn't tested, you might need to work it a little bit but something like:
from pathlib import Path

objects = bpy.context.selectable_objects
frame_dir = Path('dir/to/rendered/png_images/')
# convert all a generator of all frames in the /render directory into a list
frames = list(frame_dir.iterdir())

# zip allows us to "zip" together two lists and iterate over them at the same # time.
# example:
# a = [1,2,3]
# b = [x,y,z]

# for num, letter in zip(a, b):
#    print(num, letter)
# >>> 1 x
# >>> 2 y
# >>> 3 z

# enumerate is a way to get the index for free while inside a for loop

# example:
## for i, num, letter in enumerate(zip(a, b)):
#    print(i, num, letter)
# >>> 0 1 x
# >>> 1 2 y
# >>> 2 3 z

# put it all together and this is what we got
for i, frame, obj in enumerate(zip(objects, frames)):
    obj_name = obj.name
    # this is the material name that you want correct?
    material = obj.material_slots[0].name
    # string utility function to make suffixes like '0001, 0002' etc
    number = str(i).zfill(4)
    # use an f-string to format the new name of the image
    image_name = f"{material_name}_{number}.png"
    # the frame is a Path object we can rename easily
    frame.rename(image_name)

Again, you might need to check this for syntax errors or something, i didn't test it but I think it will do the trick for the most part.

from the original question, the OP wants to replace "CUBE_ONE_nnnn.jpg" by "CUBE_ONE_M(nnnn-1).jpg' where M(nnnn-1) is  CUBE_ONE's material_slot[nnnn-1].name

This entire script should work for that then, it's just a matter of changing the f-string to format it how you want

There are other changes you'd need; like you're using the material in slot 0 every time but you need the material that matches the slot that goes with the frame number. But sure, with a few changes, this script could be made to work. I even like that you're thinking of alternative approaches.


text:
Add sound to animation preview
I want to make an animation in time to a song so when I hit play on the timeline I need to be able to hear the song so I can finely tune the animations to start and end at the right time.
Is it possible to have sound play on an animation while it is playing in the 3d viewport before it has been rendered.

To get 3D Sound you could add a Speaker to the scene

and choose the sound file in the Properties window

You can adjust the playback time in the NLA editor:

Or as another variant you could just use the Video Sequence Editor and add a sound file there. This will be plain playback with no positional audio.

The synchronization of audio and video/viewport playback can be set in the timeline. AV-sync will drop frames in the viewport if the scene is too heavy, so the timing will still be correct.


text:
Problems setting ap a render farm
I'm trying to set up Blender on our renderfarm.
Main problem is, we are using blade servers without a dedicated graphics card, so when starting Blender on the server I get this error:
Can't detect 3D hardware accelerated Driver!
Your system does not use 3D hardware acceleration.
Blender requires a graphics driver with OpenGL 2.1 support.
This may be caused by:
A missing or faulty graphics driver installation.
Blender needs a graphics card driver to work correctly.
Accessing Blender through a remote connection.
using Blender through a virtual machine.
The program will now close.
As a workaround I found this method:
Starting Blender on a workstation by configuring it to use "netrender" as an addon,
then saving two .blend-files, one for the master, one for the slave with the appropiate IP adress of the master.
Then launching Blender with no UI:
blender -b -y --addons netrender mastercfg.blend
blender -b -y --addons netrender slavecfg.blend

This is the following error message:
*C:\Program Files\Blender Foundation\Blender>blender -b -y --addons netrender mastercfg.blend AL lib: (EE) ALCmmdevPlayback_resetProxy: Audio client returned buffer_len < period*2; expect break up found bundled python: C:\Program Files\Blender Foundation\Blender\2.77\python read blend: C:\Program Files\Blender Foundation\Blender\mastercfg.blend Error, region type 2 missing in - name:"File", id:5 Blender quit*
So I came up with this one:
blender -b -y --python-console -P netrendermaster.py -noaudio -noglsl --addons netrender mastercfg.blend
blender -b -y --python-console -P netrenderslave.py -noaudio -noglsl --addons netrender slavecfg.blend

Following is the content of the .py-files:
netrendermaster.py:
import bpy
bpy.ops.wm.addon_enable(module="netrender")
bpy.context.scene.network_render.mode = 'RENDER_MASTER'
bpy.context.scene.network_render.path = "/temp/"
bpy.context.scene.network_render.server_address = "172.20.20.19"
bpy.ops.render.netclientstart()

netrenderslave.py:
import bpy
bpy.ops.wm.addon_enable(module="netrender")
bpy.context.scene.network_render.mode = 'RENDER_SLAVE'
bpy.context.scene.network_render.path = "/temp/"
bpy.context.scene.network_render.server_address = "172.20.20.19"
bpy.ops.render.netclientstart()

In the task manager I can see that blender is running and the log seems to be fine:
C:\Program Files\Blender Foundation\Blender>blender -b -y --python-console -P netrender.py -noaudio -noglsl --addons netrender mastercfg.blend found bundled python: C:\Program Files\Blender Foundation\Blender\2.77\python Python 3.5.1 (default, Feb 17 2016, 17:09:19) [MSC v.1800 64 bit (AMD64)] on win 32 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>>
Sadly, connecting to the master is unsuccessful.
When building up a farm with the workstations as master, slave and clients I have no problem at all.
Firewall was disabled for the time of testing.
Any ideas on getting the farm started?
Cheers,
Michael


text:
How to have different materials assigned to same mesh gradate into each other (without using a mapping node)
I would like to be able to assign grass and dirt to certain parts of the mesh and have them gradate into each other instead of having a hard edge, just like in this video:
https://www.youtube.com/watch?v=ilmS_CeKCuo
The plugin shown in the video itself is not available to be downloaded. I was wondering if there was another way I could achieve the same effect.
(edit)
I'm including an image to describe exactly what I'm trying to achieve. In the video, the blender user has a plugin which allows him to assign the textures to the faces, and the textures gradate automatically. I heard that this was possible without the use of the plugin, but I wasn't sure how to achieve it.

Not really. I appreciate your effort, though. What I meant is that I want to be able to gradate the texture of a dirt path with the grass that surrounds it without having to use an image mask. I want to reduce the amount of memory being used for textures, so I thought I might be able to do a procedural gradation. A gradation based on height (or requiring the use of a mapping node) doesn't work for me, as the dirt path is at varying elevations.

How do I add a bounty to a question? I'm willing to pay to have this question answered.

What's wrong with the mapping node in particular?

You can use vertex colors. If you paint a mask in black and white in Vertex Paint mode(ctrl+tab -> Vertex Paint) and then mix your desired shaders or textures using vertex color node, the textures will blend gradually:

You can make various gradients from a lot of things with nodes so this is probably not the only solution. I would recommend not to limit yourself by excluding usage of any nodes such as mapping node when working with your materials for no reason. It's usually best to use all the tools available to you.

I already knew about the use of masks. I was doing that before. I was hoping that I could learn how it was done in the video that I linked, in which the user assigns the materials and the plugin gradates them automatically. I heard from another blender user that it could be done without the plugin. And that appealed to me because I wanted to use as little texture data as possible (which a mask adds.) As for why I don't use a mapping node, it's because the dirt path is at different elevations. I can't set the mapping node to "the edges of the path," or at least I don't know how.

Or maybe what I'm asking for is simply impossible without the use of a third party addon. I appreciate all the answers you guys have given me. I don't mean to be so difficult.

Texture data is a different thing than vertex colors. With vertex colors the interpolation between values assigned to vertices is computed, as opposed to textures that have to have the gradient in themselves. There is really no other magic trick - whatever the add-on in your video is, it must be using some sort of a mask anyway but with textures you have as many 'data points' as the image file you use has pixels, while with vertex colors it's as many as you have vertices(although they are made of 32 bit floats and texture pixels can have only 8 bits per channel, but they may need UVs) .


text:
Setting normals using Python API causes normals to reset
I have an extremely peculiar issue.
Basically, as a test, I tried to set my mesh's custom normals to themselves. Nothing special. Should result in an identical mesh.
However -
This is what my mesh looks like before I set the normals through the API:
And this is what it looks after I set the normals to themselves:
And the code:
import bpy

context = bpy.context
ob = context.object
me = ob.data

normals = []
for v in me.vertices:
    normals.append(v.normal)

me.normals_split_custom_set_from_vertices(normals)

For some reason, this simple code actually resets the normals of the mesh. (I checked, these "new" normals depicted in the second image are actually identical to the default generated normals)
I think this is because v.normal doesn't return the actual custom normal but the generated normal of the mesh, but only on this mesh in specific. Why?
If it matters, the custom normals were made using the built-in Copy Vectors and Paste Vectors tools. I can't tell if I'm doing something horribly wrong or if those built-in tools just break my mesh for whatever reason.
Help would be incredibly appreciated.
You can download the file here, just select "Typhlosion" object then execute the "set_normals" script in the Scripting tab to see the effect.


text:
How can I tell blender to quit from the command line once it finishes a render?
I'm using Blender 3.0 in Windows 10. I'm writing a batch file to invoke Blender to render individual .blend files in series (ie render shot 1, then shot 2, etc) in the background.
The problem is that when I invoke blender from within the batch file, It renders the first .blend file just fine, but since the Blender application does not quit after the render is finished, my batch file is essentially hung (ie. it will never process the next command).

Is there a way to tell Blender that when you run it in background mode, you want it to quit once the render is done? I've looked through the docs extensively on the command line options, but nothing is mentioned.
Any ideas or workarounds? Thanks in advance!

I'm not sure I understand the problem. Path_to_blender\blender.exe - b Path_to_blend.blend -f 1 will render a still image and exit on Windows.  You can specify other options, like the the render type and file as well.  See Command Line Rendering for more details.

Doesn't work for me. Blender WILL render the animation file (an MP4, but I keep my shots short), but once the render is done, Blender remains running in the background. I have done this using Blender 2.X in the past, but in 3.0 it just hangs. I'll try it using 2.9 and see if there is a difference. Thanks Marty!

That's weird.  It works for me in Windows 10 with 3.0  I wonder if it's a batch file versus command line thing?

It took me a while to figure this one out, but I got it working by disabling all of my addons during the render. So one of my addons (not sure which yet) was causing Blender to hang at the end of the animation render.
Instead of disabling all of your addons, using the --factory-startup flag in your command line should accomplish the same result without having to manually disable your addons.

Actually just use the '-b' command line option.  I do this all the time.


text:
How to illustrate ideal refraction using cycles?
How can a scene be setup to illustrate ideal refraction? The desired result is something like this (courtesy wikipedia):

In this cycles setup, a light projects nearly straight rays out (see Making a Laser in Cycles - Straight Beam of Light?). A plane is setup with a refraction shader. When the light passes through it, the outgoing rays are much more diffuse than the incoming rays.
Setup:

Plane refraction shader:

The result with the light rays::

How can the result be improved? Can the strength of the ray be increased after it hits the plane? Can the desired result be generated?
Sample Blend file -

Hello :). I don't think that's possible, since light doesn't actually go through the glass in Cycles: https://blender.stackexchange.com/q/68410/ and https://blender.stackexchange.com/q/2558/

You can't do that in blender. Caustics in cycles are quite limited, as is not a bidirectional path tracer. Try using LuxRender or other more advanced render engine.

LuxRender shows refraction correctly.

Install LuxRender (currently support 2.82 and 2.83)
Setup a model with a refraction shader just like for Cycles
Render!

Sample Blend file -


text:
What is simplest way to join particles into a single mesh and modify during animation?
I would like to modify the mesh from a particle system during animation. Without some way to join all of the particle object meshes together, modifiers like smooth do not work as needed.
What is the simplest way to create a single mesh from a particle system at each frame in an animation so that other modifiers can be applied like Smoothing?

Have a look at CubeSurfer addon.

In many cases, the CubeSurfer addon will produce non-manifold geometry. See http://blender.stackexchange.com/questions/40094/how-to-create-a-mesh-from-metaballs-which-will-always-work-with-a-boolean-modifi with a test of Cubesurfer at the end of the question.

Yes I seen it, the answer is from me there. Yes in many cases CubeSurfer will produce a non-manifold geometry which can be smoothed though. In same cases the answer here will however fail at booleaning the spheres producing no mesh to be smoothed.

In testing with 1000's of particles, this approach is more robust for boolean operations than CubeSurfer. However it is much slower. Still testings for 10,000's of particles.

A single mesh can be created from a particle system by using modifiers.

Create a particle system. For this example, also create a container to keep the particles in a volume.
Add a cube which fully encloses the particle system and its container. After some simulation, the geometry will look like this:

Add a sphere which will be used to display the particle system. Any manifold object can be used. If non-manifold objects are used, this solution will not work.
Add a modifier to make this sphere a particle system instance. At this point, each sphere is a separate mesh. Therefore, filtering modifiers operate on each sphere, not the combined mesh.

Add a modifier to perform an intersection with the particle system and the largest cube. This will create a single mesh from all of the spheres.
Add a Laplacian Smooth modifier. The mesh will be smoothed eliminating the appearance of intersecting spheres.

Now other operations like Booleans can be applied.

To the 7th point: Nope, they can't. If the particle mesh is non-manifold (which it usually is) the Boolean will fail.

If the initial particles are manifolds, then the intersection in step 5 produces a manifold. This manifold can be smoothed or have Boolean operations applied. The images following step 7 were generated using all of the steps in this answer. The geometry is a result of an intersection between the combined mesh for the particles and a cylinder.

The answer was updated to include the requirement that the object modified with a particle instance must have manifold geometry for this approach to work.

Hello I was curious if this technique still works in 2.8 It seems like the boolean intersect doesn't seem to join each object into one mesh.


text:
How can an equidistance, spherical panorama image be generated from Blender Cycles?
I'd like to use Blender cycles to generate an image which can be used as a world background image. An example is this kind of image is from hrdmaps.com

How can a blender scene be rendered like this?

Have you looked into the panoramic cameras settings under Properties Window > Object Data (camera) > Lens > Panoramic ?

Which render engine are you using?

I want to do this in cycles. The question was updated.

This is natively supported in Cycles.

Set your output resolution at a 2x1 ratio (e.g. 2048x1024).
Select the camera.
In the properties window, camera tab, select "Panoramic."
For "Type" select Equirectangular.

Here's what it looks like for me:

authors: Сергей Барсуков


text:
How to animate an object so it follows the slope (normal) of another object?
I'd like to animate an object moving over a surface and have the object positioned so it follows the slope (normal) of the surface.
Using a shrinkwrap constraint, the object will follow the change in height of the surface.

However, it is not clear how to make the cone follow both the height and slope (normal). In the image below, the red cone shows the desired orientation of the white cone at one point in time.

How can the cone in the animation be animated to follow both the height and slope (normal) of the surface?

Sample blend file here

Using the solution from Lukas, and making sure scaling was applied to the objects, this is the result!

I got it to work using a second mesh and the shrink wrap modifier (not the constraint).
First thing you need to do is add a single triangle mesh object.

Then place your cone object so it is sitting on top of the triangle.

Select the cone object, then  shift  select the triangle.  Now tab into edit mode.
In edit mode select all three vertices and press ctrl+P, then choose make vertex parent.

Back in object mode add a Shrink Wrap modifier to the triangle object.  Set the target as the ground plane and set the mode to project.  Make sure to select the right axis.

The cone should automatically adopt the z-y coordinates of the triangle, and the z height and normal of the ground above or below the triangle.  If the triangle doesn't follow the ground properly try checking both the Positive and Negative options in the shrink wrap modifier.


text:
Is it possible to write code in driver that would limit the output value between zero and one?
I wrote this expression. This is my ternary operator. But I don't know how to complete it using else if.
if (location >= 1) else location

I want to do this because I need the output value to not be less than zero or more than one. I was hoping this would work, but it doesn't:
if(location >= 1 ) else if(location <= 0) else location

Is it possible to write code in driver that would limit the output value between zero and one?

You should probably be looking at something like max(location, x), which returns the highest of the two operands.  min() is similar, returning the lowest.  To limit a value between 0 and 1, you could use max(0, min(1, var))

Why are using drivers for such simple tasks? Python drivers will be slower than build-in modifiers.

Do you mean a clamp?
max(min(location,1),0)
Thanks to @pyCod3R for their edit.. clamp(var, minval, maxval) turns out to be a 'Blender Provided Function' for drivers:
The docs for those functions aren't immediately obvious.. so thanks to @Gorgious, too, for finding the relevant chunks of code: this bit reveals a default  0 -> 1 range, when minval and maxval are not provided.

FWIW these 3 "provided" functions are defined there and the actual clamp driver code is there and the math function is there, so the syntax is the one you wrote in your answer. :) I assume just calling clamp(var) automagically clamps between 0 and 1

@Gorgious Cheers! Do you have to have the code loaded in some IDE to find this stuff, or is there another way?

The method I use is to clone the blender github  (which is already a clone of the actual codebase) in visual studio code, then CTRL SHIFT F to find relevant definitions. Then you just have to fetch and pull regularly from VScode source control interface to be up to date. I find it's a pretty straightforward way to dip your toes in the source code :)

The format you are looking for is location if 0 < location < 1  else 0
This uses both the ternary form v1 if condition else v2 and chained tests, since 0 < location < 1 is the same as location >= 0 and location <= 1.  You can use the later instead if you find it more readable.
EDIT: as a result of a comment, I see that the actual value should be clamped to either zero or one.  In that case, this answer gives the better form.  You could do this with chaining, but Robin Betts' approach is much more readable.
Here is the changed version for completeness location if 0 < location < 1 else 0 if location < 0 else 1.  This works because you can use value1 if condition else value2 in place of v2 in the original form.

Thanks for the answer, but in your version one thing is missing - if the condition is not met, then we will always have 0. I want the output value = 0 if( location <= 0) and value = 1 if( location >= 1)

I see.  I didn't get that from your question.  In that case you do want  Robin Betts answer.


text:
Rig is created using Rigify if you find a layer with ORG bones in it?
I study different rigs and often come across the fact that there is a layer with ORG bones in the rig.
So it became interesting to me - If there is an ORG of bones, then does this mean that the rig was created with the participation of Rigify?

Not necessarily.   It usually means that the rig was generated, because the most common use of the ORG prefix is to identify the bones as they existed in the model rig.  There are many other add-ons that generate rigs from a mode and keep the original bones with the ORG prefix added, and at least one rigger has said on Blender StackExchange that they use the ORG prefix for other purposes.
Prefixes and suffixes are just naming conventions and there's no standard.  Other than the use of the left/right convention to support mirroring, Blender doesn't use any naming conventions internally, so it's entirely up to the rigger what conventions they use.

I understand that there is no standard for prefixes. But, perhaps, there is some conditional standard by which most people work.

The industry tends to be secretive and so each studio that does rigging has a naming convention that it uses, but they don't really share.  Still, some prefixes do get used consistently, just because they're obvious shortenings of the use of the bone, like DEF being used for deforming bones.


text:
(blender bpy) How to add a Cycle Modifier to a Bone's F-Curve in GRAPH_EDITOR
everyone!
import bpy

context = bpy.context

areatype = context.area.type
context.area.type = 'GRAPH_EDITOR'
ob = context.object
action = ob.animation_data.action
bpy.ops.graph.fmodifier_add(type='CYCLES')
context.area.type = areatype

In the above code
The above code only responds to the active f-curve.
I need to access other channels with a script.
Is there any way to adapt the cycle modifie?

https://blender.stackexchange.com/a/242554/89484
On lemon's advice, I was able to adapt the cycle modifier.
It just didn't work for some reason.
Once I made a meaningless move in the graph editor, the cycle modifier was successfully applied.
Here is the code.
import bpy

o=bpy.context.object
action = o.animation_data.action
for c in action.fcurves: m = c.modifiers.new('CYCLES')

context = bpy.context
areatype = context.area.type
context.area.type = 'GRAPH_EDITOR'
ob = context.object
action = ob.animation_data.action

#This is a meaningless operation.
bpy.ops.anim.channels_setting_enable(type='PROTECT')
bpy.ops.anim.channels_setting_disable(type='PROTECT')

context.area.type = areatype

There's one 'gotcha' with the Cycles modifier.  It has to be the first modifier in the fcurve modifier stack.  Here's a modified version of the script that generates an error message if the there are modifiers on the stack but there isn't a Cycles modifier.  I looked into pulling all of the other modifiers and then replacing them, but that's a lot of code, and perhaps the error message is enough?
import bpy

def enable_cycles_modifiers(action):
    """ Enable the cycles modifier on all F-Curves in this action
        except those that already have modifiers, because the
        cycles modifier must be first.
    """
    for fcurve in action.fcurves:
        modifiers = fcurve.modifiers

        if not len(modifiers):
            modifier = modifiers.new('CYCLES')
            continue

        if modifiers[0].type == 'CYCLES':
            continue

        print(f'Cannot add Cycles modifier to {action.name} F-curve {fcurve.data_path}[{fcurve.array_index}]')

object = bpy.context.object
if object and object.animation_data:
    action = object.animation_data.action
    enable_cycles_modifiers(action)

scene = bpy.context.scene
scene.frame_set(scene.frame_current)
```

Thank you.
Marty Fouts.
I was able to adapt the cycle modifier in your script as well.
However, I was never able to get the animation to actually work. Is this a bug?
https://i.imgur.com/DFK8jCG.gif

what specifically still isn't working?  Is it worth asking another question?

Check the GIF animation of the link.  Although the cycle modifier has been adapted.  However, the actual animation doesn't work for some reason.http://imgur.com/DFK8jCG

Your script worked fine! Thanks for the nice function! Was saved!

You can do something like that using bpy.types apis:
action = o.animation_data.action
for c in action.fcurves: m = c.modifiers.new('CYCLES')

m is the modifier object that you can use to change its parameters.
The documentation is here and here.
To force updates, you can add somthing like this which reset the current frame:
s = bpy.context.scene
s.frame_set(s.frame_current)

Thanks!
But for some reason, the cycle doesn't get triggered until I take action in the graph editor once...?
https://imgur.com/NosPRja


text:
how to differentiate different parts of a same object
I am relatively new to blender. I am making a game in which a guy collects 4 different books and places it in the corresponding shelf in a cupboard. (The cupboard and the shelf are extruded from a single cube). I have no problem in identifying and picking up the book. But how do I put it in the corresponding shelf? Since all are extruded from the same cube, its not possible to assign different properties.

Place an invisible plane above a shelf that you want to be clickable. This way you create a relationship between the plane and the corresponding shelf.


text:
How would I set up a smooth rotation for a angled object?
I'm trying to set up a rotation on the z axis for a angled crown on a model I have.
I'm new to blender and have no idea how this would be done. I've set up a custom axis orientation but have no clue what to do after that. Would anyone be able to help? I've included the blend file.

Setting up properly oriented origins for orientated objects with rotation applied.
After the orientation is lost, if there is the possibility of planar faces, it can easily be recreated.

Create a face, which is perpedicular to your desired orientation axis. ↹ Tab > ⎇ Alt RMB > F
Since my faces median is even at the desired center, I snap the cursor to selected. ⇧ ShiftS > Cursor To Selected

Add a helper object, in my case a cube. ⇧ ShiftA > Cube

Apply all transformations of the helper cube.
Activate snapping and set it to Closest Face.

Snap ON
Faces
Closest
Align rotation ON
Project individual[ly] ON

Grab the cube G and by moving it onto the helper face, it will align itself.
Snap it to the cursor afterwards. ⇧ ShiftS > Selection to Cursor

Select the original object  RMB, then ⇧ Shift RMB select the helper object, and join them ⎈ CtrlJ. The will merge into one object which still holds the helper objects orientation.
Delete the unnecessary faces and vertices.


text:
How to create polygon procedural shape?
I want to create alternative to Agama Materials polygon procedural shape in Blender.

It should have any number of side and explode, and it should be able to explode.
I tried a lot of technics, radial shape works, but I can't straighten sides of a figure, unfortunately.
Thank you for your attention.

@MartyFouts I belive you didn't understand, I want it as a procedural texture

The maths in this answer is a combination of this answer, and this remark. Those examples demonstrate: a) how to make a polygon-shader, and b) how to make a stripe of constant thickness about a vector.
Here, the angle theta for any given shading point is given by a radial gradient, Ping-Ponged to divide it into spokes.
In this case, a spoke-stripe is made using sin(theta)*radius > a constant: half the stripe's thickness. The remaining bit of trig. in the tree increases the size of the polygon by just the right amount, so, when it's masked by stripes of a given thickness, the segments remain the same size, and it appears to explode. That section is coloured green.

The input parameters are:

Sides, the number of sides of the polygon
Size, the distance from the centre to a flat side of the polygon
Explode, the half-thickness of the stripe mask across the polygon: half  the radial gap between the segments.

You could add some nodes to tweak the inputs before grouping the tree, to suit your purposes. Rotation could be done in the Mapping node. I'm not sure what your reference's 'Gradient' means.. if you need that, call back.

You are amazing, Thank you a lot


text:
How can I achieve box projection with blend for procedural 2D textures using only nodes and without using UV map?
How can I achieve exactly that mapping, without UV and with only nodes?

This is the closest that I achived.
And it is not bad, but blending doesn't work. And it is very hard to come to a solution how to implement it in a performance efficient way.
Whole node set up.

No, I want the same effect only with procedural(2D, without Z axis) textures. @moonboots

oh ok sorry....

Maybe check out @Rich Sedman on triplanar mapping (This answer and its refs)

@RobinBetts Thank you, but projection on a sphere looks awful, with that solution.

"Blend" is a 0-1 range value, with 0 corresponding to nearly no blend and 1 corresponding to a pretty loose blend.
Not appropriate for anything feeding displacement, as normal depends on displacement; if you need box mapped displacement, bake a UV mapped texture.
Can't really make out your nodes to see how similar that is to what you have.

Yeah. It is a very good solution. Thank you for your hard work to help me, I will try to go over nodes to understand decisions you made to solve this problem.


text:
How can I follow path in 2.8?
We had option to make arrays of objects along curves without distortion with follow path option in 2.79. How I can do the same stuff in 2.8?

you mean with the Curve modifier? It caused distortion though... if you don't want to have distortion you need to use the Dupliframes method

How to use it in Blender 2.8?

Possible duplicate of Torus object stretched in array curve modifier

sorry I have some bugs with 2.8 when I try to edit a curve, but follow the link that Duarte gave you

It distorts geometry. I don't need that.

Possible duplicate of How can I duplicate a mesh along a curve?

How to do it in 2.8?


text:
Boolean object won't disappear in render
This boolean object appears when I render. I turned off the render and view option in the outliner but it still appears.
Please help! Thanks!

I tried turning off all the render and visible keyframing in the outliner, but I still get the same problem. Here is the before and after, 1st is render view and 2nd is the actual render result.

The boolean object that keeps appearing is used to hide the paper halfs, so there are no shredded papers revealed before the shredding machine, and no unshredded paper revealed after the shredding machine. Here is the result before I render below.

I get this "mask" result when I render it out, but in some parts of the animation that cube will show up. I checked my keyframe timeline and there are not keyframes near where the mask will randomly appear.
This is what i'm trying to achieve! But the boolean object keeps appearing in my render.

Have you Applied the Modifier?

Hey thanks for replying! I'm animating the position of the object that has the boolean on it, so I don't want to apply the modifier. I want the object to be revealed as it moves out of the way of the modifier.

@ Thad - I dont have time to test it out but I know the object won't be deleted if you apply the Boolean Modifier. It will still be there allowing you to animate. You may want to Apply Scale to both objects before applying the Modifier.

Selected object on the screenshot has Boolean modifier added and has its Render option in the Outliner enabled and keyframed which means it might change in the animation. Check if there is anywhere keyframe for the object to be renderable.

Hmm I turned off removed those keyframes, but I still get the same results. I'm trying to look at if I can use a mask in layers instead of boolean right now.

If object's renderability is turned off it won't be rendered. Either you see another object in the render or renderability is still enabled. Animating visiblity of the object should be possible this way as well. Eg https://blender.stackexchange.com/questions/5113/how-to-make-one-object-gradually-disappear-as-it-passes-through-another-object

You can move the object on a layer that won't be rendered in scene settings, but i agree with Mr Zak : turning off renderability should be enough. It's probably another object.

@ Mr Zak & @ Bithur Where would I be able to turn off the renderability? I'm a bit confused would a screenshot be possible?

I'm confused about your animation goal. Maybe you draw a few sketches (Storyboard)?

@Dontwalk I added some more images and explanations in the post above, hope it clears things up!

Finally found what was wrong.
I was using the "mask" object for 2 different boolean modifiers. I created a separate object for each boolean modifier and it rendered correctly.
Thanks for all your help!


text:
Import SVG : immediate crash
I am trying to import a .svg from Inkscape 1.0 : it's a simple text that I have converted into a path.
Then I open Blender 2.83, try import .svg, and then I get an immediate crash from blender.
I have a "path" .svg, the module import .svg active. Any idea for why it goes wrong ?
Here is the link : https://1drv.ms/u/s!AlnEmWLfODePgX4Xj7Kb381bn9pT

can you share the svg?

As soon as I figure out how to post an attached file :S

Importing the linked SVG works well on my machine, in blender 2.83.

Hmmm....So sth is wrong with my config ?
Linux Mint 19.3 Tricia - 5.3.0-59-generic #53~18.04.1-Ubuntu SMP Thu Jun 4 14:58:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Blender 2.83 - Flatpak

I can also import without any problem: https://filebin.net/b8kbb6hs3k83u75x here the blend file with SVG inside

Solution : I removed the flatpak version and install again using snapd !


text:
Combined Object with different Materials but Seams are obvious
Blender fans and team,
I have created a building that for its wall, I combined a couple of different materials. I would like to mention that all of these materials, are the same Plaster (or stucco)texture, but each of them has a different decal.
The materials have colour, roughness, normal and height maps. Additionally, I have merged all the vertices.
But unfortunately, when I render (cycles) the seams between these materials are obvious. Is there anything that I could do, so to erase these seams?
Thank you

if you mean that the repeat of the pattern is too visible you need to make a repeatable pattern, you can use an image editor to do that (Filter > Other > Offset in Photoshop), is it your problem?

Hi, Thank you for your response, I don't mean that I have updated the picture to point out what I mean.

could you please share an object with the same texture (just a cube for example, don't forget to pack the images)? https://blend-exchange.giantcowfilms.com/

Well, I found out that these edges were created in Substance Painter. The mask makes a weird bevel effect. I texted them to see if they can help me. But if there is any solution to minimise or hide them while I compose my scene, I would have been really happy.