text:
How do I make a procedural swirl texture?
How do I swirl a procedural texture to get a result similar to this?

What render engine are you using?

If you see an answer that solved your problem, please accept it. Thanks! :)

The Hacky Way

One way to do this is by stretching the mesh, so to speak, rather than the texture. When a mesh is bent by the deform modifier, cycles will give us the coordinates of the unbent mesh, but deformed to match the mesh's deformation. To see how this is useful, consider the following gif:

Unfortunately, for some reason this only works for the surface coordinates; we get undeformed coordinates if we try and use them for a volume shader.
However, it's possible to fake volumetrics using an array modifier.

The complete process:

Create a plane (⇧ ShiftA> Mesh > Plane) and give it a few loopcuts (⎈ CtrlR)
Add a subsurf modifier, set it to Simple and increase the number of subdivisions a bit.
Add a simple deform modifier, set it to Bend, bend it 360°
Add an array modifier, use the Z constant offset to make a "stack" of planes.
Finally, slap on a shader such as this:

The Scale nodegroup performs identically to the scale component of the mapping node while in Point mode. I use it instead in case I wish to connect something to any of the scaling factors, and just because it takes up less screen real-estate if I don't need any of the other transforms

The Real Way
The above method renders fast, but doesn't work so well if you get too close or want to go inside it.
Instead of using some modifier trickery to get blender to generate the coordinates we want, we can generate them ourselves by transforming the default generated coordinates to polar coordinates.
This has the distinct advantage of letting us use real volumetrics:

Nothing special with the object this time, just a solid, flat, doughnut-shaped mesh with no modifiers. Everything is done in the shader:

The first group ("Centered Coordinates") takes the default generated coordinates (which are the normalized object dimensions, i.e. the entire object is within the 0..1 range, with each extreme of the object along a given axis being either at 0 or 1), and subtracts .5 from the X and Y so that 0,0 is in the middle of the object.
The next group ("Polar Coordinates") is where the important stuff is. It transforms the X and Y coordinates of the input to polar coordinates. It leaves the Z untouched.
What this transformation does can most clearly be seen by comparing the way the X and Y coordinates vary before and after:

The add and multiply nodes on the polar Y axis in this example just transform the values from -1..+1 to 0..1 for the purpose of visualization
Before the transform, the X and Y vary along the axes. After the transform, the X varies with distance from the center, and the Y varies with angle to the center.
From here on, the shader looks pretty much like that of the first method. The only major difference being the use of a musgrave texture instead of a normal noise texture, which is, of course, completely up to interpretation.

Looks fantastic, but im confused with the whole polar coordinates thing. What are the advantages of messing with the coordinates?

Fantastic solution and answer! How do you avoid a discontinuity at the point the polar coordinates wrap around at 360 degrees? I can't spot any join in the animation. Nice work!

@RichSedman I don't, the noise texture had enough high-frequency detail to effectively hide it. There are a number of approaches you could try to take here, e.g. mirroring, blending, or using a seamless texture (this last one would likely require OSL)

@eromod You mean the advantage of the second method over the first? With the first, the "volumetrics" are faked using a stack of 2D planes, which becomes apparent when viewed edge-on or from inside. The second method avoids this by eventually doing what the bend modifier did, but in-shader.

Is this similar enough?

Here is the node setup

I used a rotating cylinder with motion blur

texture coordinate node--where the coordinates for the texture are coming from.
mapping node--so you can transform the texture
musgrave texture node--procedurally generated blobs
greater than node--increases the empty distances between the blobs
multiply node--makes the blobs brighter
emission node--color of blobs
material output node--assigns texture to the volume of the object.


text:
How to decrease the size of an image texture?

ok so as you can see in the image above, I have made 3 materials using cycles render (the wood, gravel and metal). No nodes. My wood texture came out great. My gravel texture seems super stretched. The actual image I'm using is much more detailed than bender is making it out to be. Any suggestions? I'm a complete beginner.

You have scale options on the texture tab (just on the right of the material tab)

Oh wow :/, thanks! Glad it was something simple.

You have scaling options under Texture > Mapping

When questions are answered in the comments, follow the agreed procedures as decided my the community in Meta.

Sorry about that.  I didn't read the comments.

source: Stack Exchange

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

sort: votes


text:
How to color particles based on the texture of the object from which they are emitted, using the "grid" emission setting?
I am using Blender's particle system to try to voxelize my mesh. I'd like to color the voxels based on the diffuse color of the textured mesh at the closest location to each voxel. This is an image that shows what I'm trying to do:

This Stack Exchange post explains how to color emitted particles based on the mesh from which they are emitted. The technique uses the "jittered" emission setting:

Using the technique in the post I linked to, here is what I get with "jittered" selected. You can see that the emitted cubes correctly match the color of the mesh:

When I change the emission setting to "grid", the cubes no longer match the color of the object:

I'd like to use the "grid" emission setting for voxelization, but can't figure out how to get the color of the emitted particles to correctly match the color of the mesh.
This is what my shader nodes look like for the cube which I am using as the dupli object:

I'd appreciate any help with this! Please let me know if there's something I can clarify.

It seems that particles UV (with the grid option) are calculated from the vertices bounding box of the mesh (starting from the min vertex). So not related to the positions of the mesh faces

are you planning to animate this? I can only see the grid option when you set the particle system to emission. But for a character in motion you'll have to set it to hair, otherwise the particles will detach from the surface right after emission happened. This would force you to take a different approach anyways.

Do you need the cubes to be monocolor or can they inherit from all the below colors ?

I have a possible solution for this, just wonder if you expect all blocks as one piece or individual objects.

@Miles - Can you post your original Blend File?

Interesting how that Luigi's L is the wrong way around.

Related https://blender.stackexchange.com/questions/38207/particle-color-based-on-where-the-particle-is-emitted/

I'm doing something similar except it's a tree trunk and instead of cubes I'm trying to match the branch particles to that trunk however the shader node above uses an image texture. My material doesn't use an image texture. So how will it work for me?

A bit 'complicated' solution, as it seems that the particles UV are relative to the mesh boundings when the 'grid' option is set, not to the parent UV map (so I don't think this is possible to tune the nodes to obtain the wanted result, if you want to use particles) :

To do it :

Tune your particle system to obtain the grid dimensions you need
Apply the particle system, by clicking convert here :

You will obtain a duplicate of the cubes (on the right here) :

This cubes are dupli from the same object, so make them single user, by selecting them all and use the "make single user/object & data' menu, like below, and confirm 'selected objects'

Now join them all in order to have 1 mesh from them. As they are still all selected use Ctrl+J
Enter edit mode Tab
Them select all the vertices and unwrap U using the 'smart UV project' mode. It will give you some kind of UV grid like in the right part of the picture below :

Now we will make a bake from the original to the cube shape. This bake wont work directly because the proximity between the cubes and the original mesh is not good.
So, to overpass that :

Add a shrinkwrap modifier to the cubes and set your original mesh as target object :

Now we can bake :

1 : Add a material to your cube mesh
2 : Add a image texture with a newly created texture. Keep this node active.
3 : Select your original mesh RMB then the cube mesh with Shift+RMB
4 : Go to the bake part of the render panel and check 'selected to active'
5 : click 'bake'

Disable or remove the shrinkwrap modifier we set above
Using the baked texture, you obtain this below, with several colors on each cube :

If you need one color per cube, (edit : one color per face !)

Go to the UV editor
Select all your UVs
Set pivot to individual origins
Then scale to 0 S0

Doing that each cube UV is reduced to one point, and we obtain this :

If needed you can separate the cube in edit mode, using P then 'by loose parts' (this may take some calculations...).

Hey, thanks so much for the help @lemon! The suggestion to scale the individual faces on the UV map is brilliant. Do you know if there is a way to obtain a single color per cube? Using your method, I get a single color per face, perhaps because smart UV project creates a UV island for each cube face.

@Miles, I will think about it (one color per cube) but no good ideas for now...

Smart part here imho is to use bake + shrinkwrap. The reason I didn't use grid particle is that it is hard to control the gap between cubes accurately to real zero. But of course it is more effective than using Animation Nodes addon if you don't care about that so much.

Smart part here imho is to use bake + shrinkwrap. The reason I didn't use grid particle is that it is hard to control the gap between cubes accurately to real zero. But of course it is more effective than using Animation Nodes addon if you don't care that so much.

Very nicely written and structured answer, +1

@LeonCheung, the solution is not perfect for two reasons : one color per face (and not per cube), normal problem during the bake (so that inner faces are partially black). In the other hand, the data transfer (your solution) works for that, but I did not succeed to avoid it to miss the map on a complex model (I mean by that, some of the UV are out of the original UV/texture)

There are some options for that operation for face mapping methods. Use the most suitable one.

@LeonCheung, I have tried some... each time, with the girafe, some UV were on the bad part of the texture. But I have not tried all possibilities

I know the data transfer method is not perfect anyway. Yesterday I've already tried to report the Grid particle problem as a bug here, let's wish something good happen.

@LeonCheung, I think I have found the code in Blender that does that. Explicitly, the UV coords follow the bounding volume (certainly because of the invert option when gid is chosen). This is line 158 in particle_distribute.c in a function called distribute_grid (so a special case)

Really enjoyed reading this, great results and well explained.

There might be something odd with the Grid distributed particle when working with From Dupli feature. Before it can be officially solved, you can consider another non-particle way:

Create an 3D array of cubes to cover the target object. Then group them for further convenience.

Get rid of all outter cubes around the target. You may have to do that with some scripting work, or with help of Animation Nodes addon like this:

Disable Animation Nodes addon. Select all visible objects, move them to another empty layer, then go back to the original layer, Alt H to make all invisible cubes visible again, then delete them all. Finally you can move all other objects from another layer back to the current layer (or not):

Ctrl J to join all cubes as one single mesh, then go to Edit Mode, switch Selection type to Face, and make sure Limit Selection button is toggled, then use selection tools to select all visible faces around the mesh:

After that, press Ctrl L to select all linked cubes, then Ctrl I to invert selection, then delete. This will remove all inner cubes.
Select all elements in the combined mesh, switch Pivot Point type to Individual, then S . 0 0 1 to make each block fairly small.

Back to Object Mode, hold Shift and select the target object. Keep all visible cubes selected, and the target object active (last selected), then find Data Transfer section in Toolshelf sidebar, click Data (or Shift Ctrl T) then UVs:

Then select the joined mesh, switch to Edit Mode, select all elements then S 1 0 0 0 to scale all blocks back to initial size.
Then set the material for joined mesh. Finally delete or move the target object away. Voilà:

If you want to separate the joined mesh into cubes again, select all elements in Edit Mode, then press P -> By loose parts. Then Shift Ctrl Alt C to center origins for each cube.

And of course, you can use Remesh Modifier here, things goes quite similar but the result goes a bit different. It all depends on what kind of result you really want. (Mine strictly follows the Mario style you presented, which is, one single color per cube.)

UVed. Very nice use of animation nodes for modeling!

I know this doesn't answer your question, but if you are going for a result like the top image with Louigie, you might want to consider not using a Particle System, but a Remesh modifier with the Mode: set to Blocks and Remove Disconnected Pieces disabled.
Remesh modifier:

Without modifier:

With Modifier:

Thanks! I am trying to make an object where each of the voxels is a separate cube, and AFAIK Remesh with the Blocks setting produces a single object that can't be separated.

It can be separated. Go in edit mode, press "p", then "separate by loose parts". Hope that helps.

@UncleSnail No, it cannot.  :)

Shady, I wanted to rework on this subject, and I do not succeed to keep the UV map using your approach. Do you know why ? I mean remesh looses the UV map

@Leon Cheung Oh, I'm sorry, you have to convert before you can separate. :P

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

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


text:
How do I keep a cloth simulation from interacting with a particle emitter, while still interacting with the particles?
I'm trying to work with a cloth simulation that encloses a particle system.  Unfortunately, I can't get the cloth to be deformed by the particle system, while ignoring the particle emitter (I'm also using the Molecular Script to apply physics to the particles, http://pyroevil.com/molecular-script-docs/).  In this case, I created two simple cubes to illustrate the problem, a cloth simulation cube surrounding a particle emitter cube.  Wireframe image

edit - I tried setting the particles to Global and then moved the dupli-object, which solved the emitter problem, but then the cloth wouldn't interact with the particles.
edit - I also tried activating a cloth simulator on just the particle emitter.  That didn't work either, although it could be a setting I'm missing.  The cube does emit the particles and it does deform with the cloth simulation, but the particles don't interact with it. (I tried this after I uploaded the .blend file.  I will upload a new .blend if I get closer to a solution).
I've added a simple .blend file that will hopefully illustrate the issue (Molecular Script needed to see the full idea, but shouldn't be necessary to see the problem).
I was actually able to get the Molecular simulation to work properly, by taking the top off of the cloth cube.  I didn't include those settings in this .blend file though.  For those that might download this one, the settings are really off.

You can do as follows:

Add a loop cut right in between the cube (cloth).
Delete the following lines:

Change the "Element to Snap to" to vertex.
Then Extrude the following highlighted lines towards the middle while stopping at each loop cut:

If all steps are done correctly the bag should open up like this:

NOTE: The more lines you delete in step 2 the wider the bag will open up.
BTW Here is the solved file:

Thanks for the response @Grimlock.  Unfortunately, the cloth simulation still interacts (deforms to, or gets hung up on) the particle emitter (cube, in this case).  I'm hoping the cloth cube will be able to move freely, while it's still being deformed by whatever particle system is inside of it.

You have collision on in the physics tab taking that off stops the cube from interacting with the cloth

But to have it fall and open you will have to do the above steps and rotate the sphere so that the cut faces upwards

You could just give the emitter cloth physics so they both fall at the same time


text:
Water reflection malfunctions in landscape scene
I just did a first cycles render of my first landscape scene (see attached). Upon first inspection I noticed a part of the reflection of the cherry blossom tree was too clear compared to the rest of it. I tried messing around with lighting and turning off parts of the model and noticed it might be due to the direct shadow of the trees onto the water. Any advise on how this might be resolved?

Hmm, I've never had that issue before. It could be so many different things. It's possible that it's an issue in your shader if you are controlling the roughness somehow. Or it could be an issue with the light passes somehow, and the shadow is actually what's causing the strange reflection. Or maybe you actually have another copy of the tree still in that spot, but it's hidden (in the viewport, but not in the render). Maybe it's on another layer that's being rendered. Maybe it's the ground that's over the water that's a reflective material. There are way too many possibilities to know.

Please try to add your screenshot directly within your post using the Image icon in the Edit tools. This way the link won't expire or disappear. Can you change it?

How to upload an image to a post

Sorry for that, added the picture, had to reduce quality for 2MB limit, but it is still visible.

save the file with a new name, remove or simplify something (remove the islands for example), do again the render, is the problem still there?, remove or simplify something (remove the grass), is the problem still there?, remove or simplify something (remove nodes from the water).... this is the process I suggest you to follow.

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


text:
How to stick OBJ vertices to other OBJ
i'd like to stick vertices to another object,
make the cylinder take the selected vertices.
i hope the explain clear

I guess what you want is to have the same vertices on the surface of the cylinder. In that case you have several solutions like delete the cylinder face and fill the faces between the edges and your shape, or use the Boolean modifier. Maybe the simplest way, though, is to use the Knife Project tool.

Separate your 2 objects. Select your cutting object, go in Edit mode, delete the faces only to keep the edges only.

Back to Object mode, choose the top view, select the cutting object, shift select your cylinder.

Switch to Edit mode, go in the Mesh menu > Knife Project.

The shape is now printed on your cylinder. In the Operator box (bottom left of your 3D View) you have the Cut Through option if you want the shape to be cut through the cylinder. Now you may need to clean a bit the topology, depending on your project.

Holding Ctrl will enable snapping, and snapping types can be picked here with the drop-down by the magnet that will toggle snapping.

You'll want vertex. Remember you can move along specific axes to get it snapping exactly the way you want.
Exactly what you'll want to do is change the snapping type to vertex. Then grab your ring part and move in the y axis, holding Ctrl to snap it to the rim of the cylinder.

can you explain mode ?

but the cylinder don't take the vertices in edit mode ? like third pic !


text:
Align two faces without math
I'm a complete beginner in Blender (altough I'm quite experienced in CAD use) and I'm trying to build an complex object starting from two solid bodies.
This's the current placement.

What I want to do now is to merge the three bodies into a single one joining them by the facing surfaces without any deformation. The objects are already aligned on X an Z axis I just need to join them. I bet there's a way to do this without having to calculate the offset. There's probably a way to select surfaces to align/match and let Blender do the hard work. I looked around but I found only examples to join surfaces by creating another set of faces or trough deformation of existing faces. Once aligned I would like to merge bodies to have just one single item in scene hierarchy.
-- EDIT --
BTW the result solid shoud be this one:

In the 3D viewports menu bar, enable snapping by click the Magnet Icon. Next to the icon, in the snapping to dropdown menu. Select Face, since you want to snap to a face and choose Active.

By moving an object in object mode you can snap its origin to other faces. Go into edit mode ↹ Tab, go into face mode 3. Select the face which you want to snap (it gets highlighted as the active face) and add all other faces which you want to move to the selection. (Box Select or A)
Press G to move the geometry and by hovering over the face of the other object with mouse, the face snaps to it. Press X during the G operation to constrain the movement to the X-Axis.

If you want to automatically modify the orientation while snapping to an oblique face, check Align Rotation to Target in the snapping settings.

The position the objects center at the face you wish to snap and snap it in object mode.

very good thx. What if I have to snap the object to one the oblique faces?

You want to know how to rotate the object automatically?

uhm.. yes? I need to place an elment on on of the front faces (but not the vertical one)

Sorry, my english vocabulary didn't include oblique yet as I was reading your comment. I added an edit. That method isn't very practical, but I know of no other. When snapping with orientation the objects sadly always use Z as up and not the closest axis.

it's enough practical for my pourposes :-) thnx again.

one last question: is possibile, along snapping, or after that to costraint placement to a specific offset from a corner of the landing face?

Not that I know of. But perhaps someone else. Feel free to open up a new question! Preferably with a good illustration of the process like in this question.


text:
Align armature to NON standard axes/planes
I'm trying to adapt a pre-existing airplane skeletal mesh to animate it (the resulting model will be imported in UE4). I designed a number of bones to move many parts with good result but I got stuck animating ailerons the problem arise from hinge orientation:

As you can notice aileron is not parallel to any of the standard planes. Moreover the face of the plane where the Armature have been attached is not orthogonal to the aileron surface.

How can I force armature to be orthogonal to one of the aileron surfaces and parallel to its hinge line?

Of course If I change Transformation orientation to local the Pose mode works fine but:

I think it works only inside Blender;
it applies globally while I just need to apply this kind of transformation only to this specific Armature.

select the entire bone in edit mode and rotate it on its Y axis, or in pose mode, change its roll.

@MartyFouts it sounds like a retry-error procedure... there's a way to align the bone ?

If you know the angle you can apply it numerically.  Otherwise, have a look into using custom orientation so you can snap the bone to the plane

@MartyFouts I don't know the angle...

try creating a custom orientation and snapping the bone to it, then

Creating the armature in the local space of the object works for you in this case, but you may find that you sometime have a surface that does not lie in the object's space to which you must align a bone.  You can do that by using snapping and recalculating roll in conjunction with the cursor:

We start with an armature and a bone in default global axes, and a surface that's flat but not aligned to anything in particular.

We select two vertices on the surface (in median pivot) and snap the cursor to selected.  Then we select the head of the bone in edit mode and snap selected to the cursor.

We select two more vertices for snapping the tail of the bone.

We select a new set of vertices to indicate where the bone's Z axis should point and snap cursor to selected.  Then in edit mode, we select the bone and use the "recalculate roll->cursor" operation (from ctrl n menu for me.)

The bone is now perfectly aligned to the surface.
You can also use techniques involving creating a constraint and then applying the pose as rest pose, which is sometimes more convenient for some exact positioning.

that was the answer I was waiting for. Thnx,

The problem can be easily solved setting Local transformation orientation.
The setting propagate to each bone in the mesh but in this specific case it works and survive the export in .fbx format.


text:
Connecting vertex between different meshes
I need to connect two vertex coming from different meshes.. I tried selecting both and presing f, F, J but nothing happens.
How can I do this?
Highlitghted elements are the two meshes.

You cannot. You can edit multiple objects at once, but they cannot "interact" with each other so long as they are separate objects. You can make them one object by selecting both and pressing Ctrl+J (Join).

are your meshes part of different objects or are they all within the same object? If they are part of different object, as Christopher says, you can't bridge them

I think they come from two separated objects (see picture above)

@weirdgyn Definitely, when they are two separate entries on the same level in the outliner then they are two separate objects.

You might be better off focusing on why you need to do this.  Then, people can give answers to achieve that goal (whether it means simply joining meshes, or weird modifier stack craziness.)

uh... I need to create a wire !

You can do it by this:

select both objects -> press CTRL-J

Tab -> edit mode

Select the two vertices you want to join

Press F

Tab -> object mode


text:
Rough transparent plastic material with fake hollow inside
is there a shader that for transparent plastic that simulates a hollow inside, as described in this answer, but whose roughness is also adjustable?
Using that node setup increasing the density value gives a somewhat rougher plastic but it looks a bit weird and I do not think that this is the correct way to do it

The problem is that using a Glass shader requires the mesh to have an inside and that would be quite hazel to the ad and increase render times drastically. OS I require a material that uses the same approach as in the linked question but with a roughness slider
Thanks for your help

hello, maybe show a picture of what you want

A picture of the look I want to achieve? I have added one

What kind of shape are you using it on - is it simple like a cube, or more complex with curves and nooks?

I have added a picture, hopefully, it is clearer now.

Yes, if I want to render the transparent material realistically, build an inside, it will drive up render times and would also increase the poly count. I could try just using a cube as the "inside" but that would still not help with the render times

I see. I'll look into it. Do you have objects inside your main object that you want to be able to see  through the "shell", and if so, do they need to be refracted perfectly, or just " close enough?

Just good enough is all I need, and yes I have bullets inside the magazine. Just like in the image.
Thanks for looking into it

Hello :). Geometry doesn't increase rendertimes. Slow shaders and lightbounces increase rendertimes. In this case, it won't be faster since lightbounces will be the same.

Yes and if I would do it the physically correct way that would be the case

@Phönix64 just a small trick: If you use the Incoming vector as the normal of a Refraction shader, you don't need to solidify the mesh, and you can use it's roughness.

Okay thanks will keep this in minde

Try something like this - it might not be perfect, and may take some tinkering, but you can adjust the clarity/rougness through the Transparency Mix, the Roughness of the Glossy Shader, and the IOR if the Fresnel - between the 3 you should be able to find a mix that comes close. I added a bit of a Noise Texture to some Bump, to give it that "slightly bumpy plastic look" (and I mean very slightly - I mixed the noise texture .999 percent with white first), and I also colored/darkened the  glossy and diffuse colors to match the photo. The "magazine" is a flattened stretched cube (6 sides):

Thank you it worked perfectly :)


text:
Overlaying multiple textures in one
I have generated a 3d Modle with Meshroom and when I import it in Blender it has three Materials on it each with one of the three textures generated:

I am trying to combine the Three materials into one but whatever I try it does not work properly:

I have tried to get a mask from the black of the images but it didn't work either.

Here is the model with the images. Thank you for your time.
The model might look slightly different because I have already cleaned the mesh up a bit. And I also was not able to export a single texture in meshroom it crashed.

You can do it by two ways.
First notice the UV map:

It is made as 3 parts, each corresponding to a texture.
So you can either use the new UDIM features of Blender or calculate it in a node tree.
Using UDIM tiles
Create a UDIM texture in the image editor. Check "Tiled":

Add each of the textures to it (in the correct order):

From the image tab on the right, open the first image from disk with the folder button.
Once done use the "+" on the right of the tile list. Open the second image.
Use the "+" and open the third image.
At the end, you should see that:

Now you can simply use the UDIM image as a normal image in the material editor:

Without UDIM feature
If your version of Blender does not have UDIM.
You can use the following nodes, testing the UV map parts with math nodes.

Thank you that worked, I was already wondering about that weird UV Map

The model you are using actually has three separate materials you need to use. There's a drop down menu in the middle of your screen next to the material name. I have circled it in this image.

The textures conveniently have the name of the image you need to use to texture them, so adding the right one is pretty straight-forward. You don't need to do any mixing at all. All you need to do is hook the image texture node directly into the base color of the Principled BSDF shader node.


text:
Texture Paint edge smothness
The left line of the image is drawn with the smother falloff settings and the right one with sharper but the transition from with to black is nearly the same only the size changes. How can I get the brush edge to bemore like a gradient?
Thanks for helping

You have to adjust the falloff. https://docs.blender.org/manual/en/latest/sculpt_paint/brush/falloff.html

Setting the Fallowvalue really low helped


text:
Rough Metal Material
I am trying to recreate the FN P90 submachine gun.
I followed a tutorial on modelling and UV unwrapping.
Now I tried adding Procedural Textures to it.
The gun body is made up of a rough finished black painted metal.

For this I tried this node Setup:

But it does not work. Do I have the wrong approach? How would you go about making a painted rough finished metal?

Hello :). Could you please split this question into two separate posts? One for the metal body material, one for the plastic material.

Okay sorry will do that

Use the Principled BSDF Shader as a basis and then add in maps for roughness and normals to achieve the look you're going for. This makes life a lot easier.
You can use this tutorial as a basis. Blender Guru Tutorial
This is an example setup for a bumpy Plastic. Turn the Metallic slider up if you want metal.

Thank you for the Tutorial, why are you using the colour trough a Normal Map Instead of the Fac through a bump? And what would you do about the clip?

Technically, you're ok to do this with a Color output, but it may not give you the results you expect to see, but if it generates an effect you think you can use it's a legal move.  Grayscale data "should" always go through a bump node.

okay, thank you. Yes the Grayscale makes sense


text:
Geonodes: How to Set Material for every material in this remeshed mesh?
I went through a tutorial to create this blocked mesh similar to remesh > block. But I'm not sure how I can get it to work with multiple materials? I'm not sure how to use the Set Material node for "N" amount of materials. Like I would like to know how I can automatically do a Set Material for every material used in the mesh. In this example I have 3 materials but Set Material only allows me to specify 1 material.
This is my blender file https://blend-exchange.com/b/9dePOe2n

Before your Set Material node, there probably isn't any material on your mesh (because of Mesh to Volume and Volume to Mesh conversion). Then after that, each Set Material is similar to adding a new material slot. Last Set Material = last material on the list. Hope it clarify some part of your question.

Similar principle to:
how to keep the original material after using simulation zone in GN?
Except the material index is also not preserved, so you need to sample it from the nearest surface of the original:

hello thank you for your help. was just missing a tiny detail in your setup, by plugging the subtract node to your sample nearest surface sample position socket so the voxels all have same texture color

Hi Markus maybe you know this? https://blender.stackexchange.com/questions/314476/why-does-storenamedattributes-vector-type-for-uvmap-not-work-in-place-of-2dvect


text:
Every Model get distorted like this when placed far away from the center why?
These two models are placed at -36216.6 m.
At 0 M

At -36216.6 m

you don't mention your camera location or camera lense settings, nor how large the models are (human size or monster).   I doubt you'll receive any help due to the lack of information.

Your models are 7 times farther than what is recommanded by Blender's manual https://docs.blender.org/manual/en/latest/advanced/limits.html.

Height of the model is 1.33012 m its a default model from the mixamo and i have not added any camera yet. And i will go through what Lutzi has provided and come back again and thanks for the reply.

Distorted like what? How is anyone supposed to know how your model should look in the first place?

Similar to this question. This is due to what we call a float precision loss. A lengthy explanation could be this: c++ - Why loss of floating point precision makes rendered objects vibrate? - Game Development Stack Exchange.

Hello, aeroplug.. @L0Lock's suggestion has to be the main suspect, here.. can you indicate the distortion you refer to, by comparison with an undistorted version, please?

Hi @Robin Betts, i have added the two images.

@L0Lock, thanks for the reply i will go through that Article.

One more thing, this happens only in Cycle but works good on Evee.


text:
Menu names are missing
When I go to sculpting mode the names next to the various items are missing. They show on each item as I hover over it but they should all be showing. I pulled the menu out so they should all show but no luck. Is there a setting to make them all show?

Although I don't know what happened I was able to correct the situation by restoring factory defaults and then re downloading the template file. Somehow something got changed or corrupted in the first template file I downloaded.

Which menu items do you talk about? Please [edit] your post to include details and screenshots of your situation.

Thanks for asking. I tried to post a jpeg image of the situation in my original post ( well under the 2M limit) and kept getting errors. Maybe because I am new? Only after I removed the pic was I able to post. I am on blender 4.0 and when in sculpture mode there is a menu on the left side showing all the tools (brush, clay, etc.). When we pull that menu out to the right the menu/toolbar expands to show the names that each icon represents. Something happened to where my menu names no longer appear.

@Don The labels aren't missing, they are (almost) white on white background. So not a bug but an issue on the colors of your theme.

Although you say that you've sorted the problem, it looks as if it may have been showing white text on a white background for some odd reason so as @Lutzi says, a theme colour problem.

White on white makes sense but I have no idea how it got that way???

This isn't the default theme, so how did you set it white like this?

I have no idea???


text:
How can I add a displacement modifier to part of this object?
I successfully added a woodgrain displacement modifier to this object but I do not want woodgrain in the holes or on the bottom of the object. What would be my best approach going about doing that? This will be for 3D printing so I need the actual deformation.

The Displacement modifier has the option to only affect a vertex group.

Thank you, that seems to get me closer (I added a couple more images to show what I selected and the result). I am not sure why I am getting grain in the holes still and not so much on the horizontal flat faces based on the vertices I selected???

It seems I may not be understanding how I add a vertex group. I tried selecting a rectangle of vertices but I don't see how it gets added to become part of a vertex group?  I added another image to show where I am at.

Okay, got it. I had to create the group first.

Different displacement depth by planes can be caused by non uniform scale issues. Try to apply scale (Ctrl+A >Scale)

Thanks, right now I am struggling with trying to create a vertex group now that I have increased the number of vertices a bunch by subdividing. Selection is very slow and I am crashing the program after selecting so many.


text:
My mesh is not showing in the viewport anymore
I am a beginner and somehow got into a mode where my mesh has been replaced by a bounding box. You can see the mesh in the render but when I go back to object and edit modes all I can see is a rectangular bounding box where the mesh should be. I toggled through the various shading setting and can't seem to get it to come back.

Hello, it may be because you're displaying your object as Bounds, but please share your file: https://blend-exchange.com/

That was it. It took me a while to find where to turn it back to solid so I have no idea how it happened to begin with.

You are displaying your object as Bounds, switch to Solid:


text:
How to exclude hair particles from freestyle render?
Is there a way to prevent freestyle from rendering lines on hair particles?
I still want to render lines on the mesh which has the particle system.

Use compositing. Enable strand render for the hair. Create one render layer with Freestyle enabled and Strand disabled. A second layer with Solid and Freestyle disabled and Strand enabled. That will give you one layer with freestyle lines around the object and another with just hair.

Composite together with an alpha over.


text:
How to change the interpolation easing of multiple keyframes at once?

The easing direction setting in the image above only affects the active keyframe, and when right clicked on the copy to selected operator is grayed out.
Is python the only way to set this on all selected keyframes at once?

You can use the keyboard shortcut CTRL + E or choose from the menu Key -> Easing Type.
This will affect all selected points. But i don't think it is possible yet to set the easing parameters simultaneously.

Thanks, this was exactly what I wanted :) I'm not sure I get your last sentence though.. What do you mean by "not possible"? Doesn't Ctrl+E do it?

@gandalf3 different easing types, have different parameters you can adjust in the "F-Curve" Panel. I am also wondering if nowadays there is a smarter way to manipulate these for multiple keys at once. e.g. trying to get the same easing for all axes of my scale keyframes, but I have to manually type the values for each axis


text:
Proper greasepencil animation workflow: How to manage "scenes"?
What
I'm trying to figure out how to "correctly" manage multiple-scene grease pencil animations.
By multiple scene, I mean, maybe I drew an animated intro title, then I want cut to a street scene, then I want to cut to an indoor scene. Ideally I would like to be able to quickly preview and shift the cuts while animating, so I can fine-tune the cuts with the pacing of the animation.
The options I've considered so far:

Animate the visibility of all the grease pencil objects in the title to "hidden"

Awkward if there are lots of objects, clutters up timeline and makes it easy to accidentally miss an object when moving the keyframes later

Erase the strokes at the right time

Involves manually erasing every greasepencil object; also hard to edit after the fact?

Jump to a new camera somewhere else in 3D space

Seems like maybe the best option to me right now, but still feels "hackish", and could be awkward if working with large and 3D greasepencil scenes.

None of these really seem like the "right way" right? What am I missing?

In the Blender Hero animation, they split the different shots into separate blend files. Then rendered each separately before editing the shots together.

Personally, I only use one file with different Blender Scenes for my different sets and an "edit" Scene that pulls all the others to do the editing. The main inconvenient is that the "edit" scene preview has a crazy slow playback speed, something like 4fps. Also working with audio and timing can be more complicated. The advantages are that it's easy to cut back and forth between sets and switching scenes is instant. Here's a screenshot of the "edit" scene of a one minute animation I did:

Sidenotes:

I still use the second method you mention to do a rough animatic, which I then render and use as a guide in the edit scene.
A gotcha is to set the view in the edit scene preview to Material Preview or Render, otherwise vertex paint doesn't show.
I sometime put a whole character in it's own scene, with its mouthshapes, etc, then import it to the different scenes and make it local.
For the audio, I set it up in the VSE of the first Scene I use, then start the other Scenes as copies of that one. Keeping in mind that the final audio will only come from the edit Scene.

I generally create an empty grease pencil keyframe (something like a single dot out of camera) and i move it at the end of the scene, so it acts like an "off" button for the active object. Hackish, but it works.


text:
While painting in the UV viewport, is it possible to use my wacom's eraser to erase?
I was wondering if it is possible to bind a key to erasing in blender, like in photoshop, so that I may use the back of my wacom stylus to erase from the image. is this possible?


text:
Is there a way to export a blender grease pencil animation to svg?
I know that an svg file can come animated, either internally or via sprite sheets. is it possible to take a 2d animation made in blender and export an animated svg file, with all of it's frames?


text:
UV problems While Importing Ripp models In to Blender
I am ripping models from a ps3 game, but the software I use extract the textures and models but no the UV maps, so I was wondering if some of you know how to fix this issue.
In the ripping process I get solid colors cause all the UV maps are a mess

I have been fixing the UV map a bit with the setting of project from view, but it does not work at all.

and If I unwrap the UV maps I get this result

I want to get like the form of the face so I can use the current textures I have to remake them or try to make them fit with the original one.
If you know a solucion I wold be glad to here it, TY so much to read!

Hi. Please use a title that matches the content of the question. It should be descriptive but succinct, unique and identifying, summarizing the issue so that anyone searching for a similar problem is likely to find it. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing potential visitors see, answers you get depend heavily on how insightful it is. See What is the problem of asking “How do I do this?"


text:
Is it possible to create animated dynamic emissive dynamic footprints coming from a character animation?
I'd like to create an effect like the below for an animated sequence. I want the character to leave behind glowing footprints on the surface of the stairs they're walking on.
Would something like this be possible? I've been looking into wet maps but also looking for a way to do it without affecting the geometry of surface the character is walking on. Like maybe layering an emissive texture under the original? ideally they would appear as the character steps on them then slowly disappear.
Any advice would be greatly appreciated

Have you looked into Physics > Dynamic Paint?

I have not. I will have a look into this today, thank you :)


text:
Is facial mocap possible in Blender?
I'm attempting facial mocap using a custom-recorded FBX export with a model that has 52 pre-made shape keys:
The results are less than desirable:

It also appears the meshes' shape key are not compatible compatible with Blender's Rigify or FaceIt. I assumed these shape keys were universal.
I have a few questions:
-Is it possible to record facial mocap in Blender directly?
-Is retargeting the face possible in Blender?
Or am I going about this the wrong way? Any advice or nudge in the right direction would be greatly appreciated. Thank you!

Sorry but this Q&A site is here to help with problems using Blender and its built-in addons only. Problems using external applications and third-party addons are off-topic here and many people will have never heard of the meshes and 'FaceCap' that you are talking about.

Thanks for the heads up John, I will rephrase my question, as these base meshes have shape keys built specifically for Blender. Rigify and FaceIt are Blender add-ons.

Rigify is a built-in Blender addon, but Faceit is a third-party one so you'll have to ask the developers about that one.

No problem, will do. Thank you @JohnEason

Theoretically, motion capture recording is possible within Blender, and I have done it, but most motion capture recording apps I’ve seen are written standalone with file export, and maybe a blender addon for import, rather than with or as a blender addon for directly recording motion capture information into Blender. Finding such software is beyond the scope of this site.
As for retargeting, yes, it can be done, and Thankfully fairly simply if I recall. I am unfamiliar with the subject at current, but I researched it bit when I was messing with motion capture awhile ago, and there are several different ways to do it, including a packed-in addon to help with common use cases. You should look up “blender retargeting” to find out more.

I'd recommend Google's Mediapipe Face Landmarker, if you are fluent in Python. It provides values for how much certain facial components move, such as how open the mouth is, and how raised the eyebrows are.
There are many addons on Github that use Mediapipe to map facial motions onto rigs-mainly the Rigify rig, such as BlendAR Mocap or VIPER Blender Facial Motion Capture. I'd look into some of these. They both map facial motions onto the rig in real time.
As for your issue with the shape keys, it appears that your shape keys may be interfering with one another, since multiple are changing at the same time in response to the same movements in the face. You may need to reduce the number of shape keys you have, or entirely rely on the Rigify rig.

Thanks for the posts. This is not a regular forum, according to site rules links to answers are not answers if the link goes missing your answer becomes an empty shell without content. Answers should be substantial and stand on their own without relying on external data like links, videos or images. Instead of having users go through external links, either transcribe essential parts of the process here, linking the source, or posts these in the comments section instead.


text:
Is there a technique to *automatically* thicken up all thin parts to a certain minimum?
I regularly print models which have features that are just a bit too thin. I thicken those up manually with the sculpting tools in Blender. This works fine, but is quite time intensive. I have to locate the thin parts in the 3D-printing slicer, find them in the model in Blender, and play around with the sculpting tools. Then I have to export the STL, check the slicer again, rinse and repeat.
Is there a tool or filter where I can input a minimum volume, which makes Blender automatically find all places in the model that are thinner, and automatically enlarge them to said minimum volume?
I am aware of these techniques:

Using the sculpting tools manually.
How to thicken/enlarge certain areas of a model?
What is the simplest way to increase volume of mesh?

All of them have in common that it's a mostly manual process requiring me to spot and select parts of the model, and that they do not enlarge to a pre-defined minimum volume, so it's possible to over- or undershoot (make it too thick or not thick enough), and thus make it necessary to do multiple round-trips.
Here is a typical example:

This is sliced like so (in PrusaSlicer with 0.4mm nozzle, 0.1mm layer height), with the middle finger being unprintable:

For perspective, the claws of this creature are tiny, tiny blobs, barely visible after the model has been printed. The enlargement of the fingers does not need to be artistically accurate; nobody will look at them with a magnifying glass. When enlarging them manually, it's pretty simple to smear around a bit with one of the sculpting tools; I would like to automate this so Blender automatically does it for all "thin" bits of the model with one operation, without me having to select anything.

Let's tag geometry nodes to this and see what happens. :D It might be possible with geometry nodes.

Thanks @MartynasŽiemys.

could you provide a sample file, for testing?

Sure, I have added the link to the model from the screenshots, @lemon (https://www.thingiverse.com/thing:4888799/files).

Hard to guess if this very basic approach can do it in "all" real cases.

It raycasts on self using a little shift along the inverted normal as ray cast position.
If the distance is less than the threshold, then it shift the vertex along its normal by half of the diff between the hit distance and the threshold (half as we guess that another opposite vertex will be shifted too).
Though, that may deform some parts an unwanted way. Example for the nose spines:

To be tested and refined!!
 (Blender 4.0, I've cutted a part of the stirge as if not the file was too big to be uploaded here)

Awesome effort, thank you! It does seem to start doing what is needed - i.e. it enlarges features sufficiently. Unfortunately, as you mentioned, it also blows out details that would be perfectly printable. So it will depend a lot on the model in question unfortunately. I have a feeling that the way blender models this kind of geometry is just so far removed from what a slicer does that it would be extremely hard to distinguish between printable detail and too thin "sticky" bits.

I agree. In meantime, I've notice a more difficult problem: spines on the neck or head that are thin but close to each other. So as result, they overlap when enlarged. I think a specialized software should be used for all that.


text:
would like to be able to walk into one direction while looking into another
it's about to record camera-style movement (keyframes) while walking around (using the walk navigation in a blender scene). i can't figure out a way to achieve this. many games (for example) have the feature to press the 'Alt' key while walking with wasd in order to just turn the head (pov).
is there a way to achieve this? or isn't it possible while using walk/fly navigation? i'm very new to all this.
it would make simulating walking around with camera much much easier and i remember watching a youtube video where somebody attached a camera to a cube using the cube to move (walk with wasd keys) while being able to rotate the camera with mouse input.
edit: more description

in blender you can walk around and while that recording keyframes. that's what i want to do. i want to be able to move the direction of the camera in another direction than i'm walking. no idea what you mean by "i haven't anything yet". there's nothing to show. i create plane and i walk and i record but i always have to record the way i am walking to. my question is clear.


text:
Understanding Resolution and Aspect Ratio
i want that 4:3 resolution. but no matter what i try only 640x480 gives me that. trying any other 4:3 ratio shows my video in a black box.
1024x768
1280x960
aso
from my understanding: putting the same values into video editor render like i rendered those png files should do the job.
also tried different settings for the aspect x/y but same problem there, no matter what value the black box still present.
when rendering the png files everything looks perfect. then i put those files into the video editor and i get this.

are there aspect ratio or resolution data stored inside keyframes?
i recorded those keyframes while using 640x480 but for rendering the png files later on i tried 1024✕768 for better quality. could this cause my problem?
those were my initial settings:

after that i tried different setting in video editors aspect x/y. (ignore the fps settings, it were always set to the same amount like the png files)
this is how it always gets rendered.

just figured out: when i put 640x480 into the video editor render i get the full size without black borders. this makes no sense because i rendered the png files in (for example) 1280x960.
found the problem. looks like i rendered all the frames in 640x480 no matter the values. just checked all the files, my high quality stuff had the same file size like the 480p stuff. i probably bugged my instance - typing in higher values does no change.
sorry for non-problem.

Could you add screenshots or upload your file with https://blend-exchange.com/ ? No, the resolution of the output is unique for each Scene. We would need more informations to understand what's wrong.

You have Pixel Aspect X set to 11 and Y to 12 in the output settings. Why? This is pixel aspect ratio. This is if you need to output your renders for devices with non-square pixels. Are you using any such devices with pixel aspect ratio of 11:12?

Also, looks like your 2 screenshots of Blender are from different scenes (not same FPS, nor same frame start or end).

yes i tried all the different settings in video editor while having the scene still on it's defaults - sorry for the confusion. i usually have multiple instances open.
the problem was i was expecting blender to use the filenames as reference. so when i rendered frame 3000 -3100 and later on in video editor tried to render them, i put in those numbers instead of 0-100. so i rendered my 480p stuff over and over without noticing (for 3 days straight, hahahaha) that's what you got for doing backrooms. every frame looks the same. sorry again.

Don't change the pixel aspect ratio. Just set a resolution of whatever ratio you want. You can easily find lists of common resolutions of any ratio online. Example: https://www.videoproc.com/video-process/4-3-resolutions.htm


text:
trying to get rid of strange reflections
i've a pretty simple scene since i'm a beginner doing backroom hallways with simple texture and no special effects. first half of my render looked decent without those strange reflections at the walls.
that wall to the right has very strange reflections/things going on.
https://www.youtube.com/watch?v=S6UXWkQO7Co
no matter how much light i use (from 30 to 3 sources, from 1900 strength to 500k), how many samples (up to 400-500), or resolution (up to 1600x1200).
tried different light max bounces settings (the ones in my screenshot are my defaults which worked prefect till this section. the walls never did this till that hallway.
there are no doubles, normals are all good and i'm totally out of ideas. it's now day3 rendering to find a solution.

here is the blend file https://workupload.com/file/GyVWgdjNLGk

Hello, are you talking about the horizontal stripes? Maybe share your file? https://blend-exchange.com/

Hey, yes those horizontal stripes are the problem. I try to figure out how to get the file to under 30MB then I upload it.

Or use another platform like workupload, also make sure that you've packed the images (File > External Data > Pack Resources)

added the blend file. thanks a lot for your help.

it looks like it's just your textures, no?

yes, that's the only problem. that stripe on the wall with the strange reflections or whatever it is.

just came across something called "color bleeding" it reads like that is what happens on that wall. above that i tried to find useful information about textures - i got the idea those textures do not make sense for my low quality stuff but.... i can't find any useful infos to my questions.
gonna read for days till coming even close to the topic that could hold my solution/answers.

just looks like denoising artifacts to me, look at "Noise Threshold", perhaps disable and test render a short sequence

"despeckle" in the compositor might be worth looking at, or turn off denoising in blender and use a temporal denoiser in your video editor of choice

already disabled the denoiser to see if it's that problem but it makes no difference at all. i googled the whole net those last days and tried everything without any change but "despeckle" i never came across. gonna check, thanks for all the input.

Looking at your video it really just looks like your material having some specular and bumps from textures, it's nothing weird or unexpected if you set it up this way. And then looking at your material, it sure is only that:

If you don't want any specular or bumps from your image texture, unplug the noodles from the Principled BSDF's bump and specular.
What's unexpected is sharing a file that big "just for that". 30MB is plenty enough for most scenes, and regardless of it: you should always try to reduce your scene down to the strict necessary when sharing with people to get some help. Otherwise it takes too long, especially for people not having access to high speed internet, and not a good use of anyone's time.
In your case, your issue is located in a very specific place, and most of the file size is just due to textures from other areas your could have removed. But it's not just that. It's also your viewport being slow "for a simple scene" and preventing anyone from working on it comfortably.
You have almost 2k objects, 1k meshes and over a hundred materials, even though most of your scene seems mostly composed of identical objects and materials.
Which tells me two things:
1. You make full copies of objects instead of instances.
If you need the same object multiple times, you should not make full copies out of it. Each new data takes memory and computational time, so don't waste it on identical objects.
Learn to use array modifiers, or instantiate objects instead of duplicating (⎇ AltD instead of ⇧ ShiftD).
For identical object you already duplicated, you can turn them back into instances. Select a bunch of identical objects, and press ⎈ CtrlL > Link Object Data.
2. Some objects with identical looking materials don't use the same material
For whatever reason, you seem to have duplicated some materials without brining any significant change to them. For the same reasons as above, avoid doing that.
If you need the same material across different objects, you can still use the same material instead of a duplicate.
If you need slight changes across objects, keep using the same material but learn to use the nodes to give more variations across objects.
Similarly to the above, you can make objects use the same material by selecting a bunch of them and pressing ⎈ CtrlL > Link Material.
Once you linked different data blocks, some of them will become unused, aka "orphans". You can save and reload your blend file to get rid of them, or purge them from your outliner in Orphan Data mode.
It took me 30 seconds to link the object data of your ground and ceiling planes and granite pillars, and linking your wallpaper materials. I barely scraped the surface and it reduced your 3GB of viewport memory usage town to 900MB.

Keeping a file clean of clutter and mess is not just for your software and hardware performance, it's also for you.

didn't knew all that despite reading the officials docs and watching tons of tutorials those last weeks. nowhere ever i read "do not copy" instead i hear "make copies of objects instead doing them again". good to know it's that simple to keep things clean - the problem is to get those informations.
what you wrote at start i already tried: disabled bump, specular, all the reflective and shiny stuff - but it made zero difference sadly. those stripes persist.
for now i do as you told and if i'm lucky i get rid of the stripes on my way.
gonna update if there's a change.

right before uploading the blend file i used "clean" for the first time. it deleted/removed 5500 things. for any pointer to a good tutorial, good praxis guide or similar i would be really thankful.

This is what I get when changing the material (i had to augment the lighting a bit to see anything like in your video) : https://i.imgur.com/YzE88pU.gif  If this isn't what you meant by "strange reflections", please [edit] your question to clearly precise what you are talking about. maybe post an annotated screenshot of it.

that is what i meant with "strange reflections indeed" -exactly that part all across the wallpaper which is behaving strange (in the video). it's my very 1st thing i do in blender without any experience in that field. after trying the suggestions from the comments i figured i must've changed some basic settings i can't dig up again. many things are wrong compared to my first rendered video inside that scene. went back to a save file (8mb) and rebuilt that with strange reflections. everything looks perfect now, even in lower resolution. i experimented a lot with addons aso, probably bugged it.

in that older save file 1 frame only needs half the time despite everything in render and output having the exact same values at exact the same location. same textures - same everything. which settings could cause such a huge difference in time and quality? most strange thing is the double time render is the one with way worse quality. could that horrible messed up .blend file alone be the cause?


text:
Joined object not acting as its parent with a Curve Modifier

I added this long band on the side of the main object, but when I apply a Curve modifier on both, the band acts weird... I don't understand why. They now have the same origin since they are joined.

Are they joined (ctrl+j) or parented (ctrl+p) ? In other words, are they one unique Object or two distinct Objects ?

They are joined ctrl+J

Does the band have enough subdivisions, so it can curve ? Try adding some loopcuts along it.

Could you upload the blend file? Please use this link for that https://blend-exchange.giantcowfilms.com/

Wow I feel so dumb now. Yeah that was it... Thanks !

The band doesn't have enough subdivisions to  be able to curve. Try adding some loopcuts along it.

Hi. If you need to ask a question or clarify details this should be done as a comment.

That's what I did and it answered the question, so I formulated it as an answer. But you're right and I will edit the answer in that sense.


text:
Laying (linked) pentagonal tiles - trouble snapping
I am pretty new to Blender, having previously used Form•Z Free (which is pretty good for modelling when it doesn't crash).
I am looking to tile a 'floor' in Blender 2.8, using a pentagonal tile (this is a Kershner (1968) type 6 pentagon, derived lengths and angles given by the excellent java applet at https://www.jaapsch.net/tilings/applet.htm)

Trying to rotate and align the tiles (which are linked instances, and need to be, for subsequent transforms) is proving really difficult.  I managed to get the 3D cursor to a vertex, and I can change just 1 vertex to be the origin, but if I then change the origin - every tile moves according to the new origin values.
There must be an intuitive way of getting the tiles to snap together correctly - (I am struggling with both move and rotate)
The file - to play with as you like!

Just in case you are unsure about how they tile...

Hi Jachym - thanks - I've done that ;-D

You can get there using vertex snapping and some manual rotation.

Make your base tile a single face pentagon. Remove double vertices (there are some).
Don't use object instances yet, you'll convert them all in the end. Just copy new tiles now.
The main angle is 71°. Type the equations directly into the rotation field.
Enable Vertex Snapping > Median. Origin points will now snap to vertices.
Put your origin to different vertices if needed.

Convert tiles into instances

Select all objects and go Object > Set Origin > Origin to Geometry. This will keep them in place.
Select all tiles and turn them into instances Object > Make Links > Object Data

The main face angle is 71°

Type equations into the Z rotation field.

Use Vertex Snapping > Median to snap origin point to vertices. Move the origin point if needed.

Make all tiles into instances of one. But make their origin points centered first.

Fantastic - thanks a lot, Jachym!

Happy to help, this was a fun one :). If you get lost, feel free to ask.


text:
Why my flag won't animate?
I am making an easy flag, i did add cloth and collision to it and a windforce blowing on it, pinned the side close to the wind and yet the flag stands flopped but static. why does not it animate?
Thanks in advance

.blend would help: http://blend-exchange.giantcowfilms.com/

ah, you need to edit it to the question

Manu thank You, i didn't know this feature

It seems you start the simulation from frame 1000 - It might be so that you need to start from 0 or 1. At least then it started to simulate for me (after adding the cloth modifier and pinning the flag)
You can increase the simulation from 250 to 1250 from the Cloth's cache settings:

I made the change but still no fix. it's going 0.16fps

yeah it's very heavy mesh. But... so you added the cloth and pinned it and set the timeline to start from 0? For me it worked, it simulates just like the last image in my answer

now it does it to me as well. i just put the simulation start value at 1001, as that is my first frame. You never know ifg you have to add something to your scene that starts before so i start from 1001. Thank You. that is fixed!

hmm... simulations often start at 0. But okay, if it's fixed, then it's fixed :) hehe

ot: any idea why is not interacting with the wind force?

if you put 11111 to the strength it starts to interact :)


text:
No render in Cycles but the object is rendered in Eevee,
Good render in the vp with Eevee, but it disappears in the vp in Cycles. What am I doing wrong? It's probably super easy but can't find solution to this. this are many meshes with hair particles

https://blend-exchange.giantcowfilms.com/b/dMKe10s0/

All I can see from the picture is that the object is hidden in viewport view. Any chance you hid it in rendered view as well? Check by going to  Object properties > visibility  and make sure  "show in viewport" and "show in renders" are checked.

these are many objects and are not hidden

Too much particle for cycle to build and render the scene, please try other approach then using hair particle system directly. Particle is considered as the most complicated part of CG for now. Blender can produce some effect but you need to know what these setting is doing. Or you will soon encounter the performance issue

Thank You HikariTW. It's my first attempt at hair particles, so didn't know how heavy is on the render. I will dig further into it.


text:
cycles combined bake coming out black
hi so i'm creating a high gloss golden earring with a pearl detail, but both textures are coming out black in baking (the object is merged because the programme i plan on uploading to can only have file sizes of a certain size). i'm using some random hdri i got for free online, so you can play around with that when you experiment, i won't be too butthurt. I honestly don't kniow what i'm doing wrong. I've tried baking the following combinations of nodes for each texture (seeing as they both have similar levels of glossiness, i just did the same for both and changed the colours/roughness):
combination 1:
fresnel node,
diffuse bsdf,
glossy bsdf,
plugged into a mix shader
(i also tried this without the fresnel, no change)
combination 2:
principled bsdf,
glossy bsdf,
plugged into a mix shader
(also came out black)
here's my blend file: https://www.dropbox.com/s/nldwlauxfutffx4/vintage%20gold%20earrings.blend?dl=0
go crazy if you want, i'd just really like to know wtf i'm doing wrong because i'm creating quite a few shiny objects for various projects at the moment and i'm (somewhat) consistently getting this issue, and sometimes i fix it but idk how, sometimes i don't. so yeah, any help would be GREATLY appreciated.

A lot of objects are hidden for the viewport, but visible for the render. Since a baking is a render, those objects cover your main object and prevent the light to hit it.

Click the "funnel" icon (Filters) then activate the "camera" icon (Disable in Renders). Then for each object in the list where the "eye" icon is unchecked, uncheck the "camera" icon.

The fact that the Disable in Render icon is now hidden by default, don't make our life easier on stackexchange...

Thibsert beat me to it :)
I'm posting this screenshot just in case it is helpful.
Basically, disable any objects in the scene that may interfere with the bake by unchecking the little camera icon (disable in renders),  before hitting that bake button.

Next time, try adding seams before unwrapping, That way you will have nicer UV unwraps to work with. :)


text:
Prepare human models for 3D printing (non-manifold mesh)
I'm relatively new to Blender. My ultimate aim is to make some 3d printed human models/figures for a 1:43 scale model diorama.
I've used Makehuman to create a model, removed the head, and added a head modeled in Facebuilder.

How do I attach the head to the overalls/firesuit, for example?
I've tried 'option select' in edit mode using LoopTools to try and bridge between the 2, but failed.
I've tried 'option J' on the collar of the firesuit to try and change the tri's to quad's, but again failed.
I've tried using the 3D Print Toolbox add-on to clean up and make manifold, but the suit just disappears.
Can I ask for some direction? I'd be very grateful for some help.
I'm on a Mac running Blender 4.0.2

Thank you for your replies.
I think the problem with the model is that I created it in Makehuman and then imported it in to blender. I then made loop cuts around the wrists (as the main body was none existent), to separate the head from the hands, replaced the head with my head model made in facebuilder.
I've now installed MPFB2 in blender so I'll have another attempt by making the model with this addon within blender.
What should the main workflow be?
I've found this following video helpful with some of the workflow;
https://www.youtube.com/watch?v=MBgdtlUIrY4

Hi. Please use a title that matches the content of the question. It should be descriptive but succinct, unique and identifying, summarizing the issue so that anyone searching for a similar problem is likely to find it. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing potential visitors see, answers you get depend heavily on how insightful it is. See What is the problem of asking “How do I do this?"

Hi. I'm not familiar with 3d printing but the mesh of the model must be manifold and solid (thickness). The suit has no thickness and has holes (sleeves, neck, button placket of the shirt, trouser legs). The Solidify modifier can add thickness but does not work very well on the triangulated mesh and it won't close the holes. The Remesh modifier is probably the better choice. But you should fix the belt first. You can separate it and apply the Solidify modifier to give it thickness and join it with the original mesh again. However, the belt has a few strange issues. (->2)

Remove the Subdivision Surface modifier from the suit. It won't help you with the randomly triangulated mesh. It looks like there is something wrong with the mesh of the suit since you cannot separate the belt. If you try (select with key L, then key P > Selection) it gets duplicated(?) and the faces are missing(?!). Weird. Also, the SubD modifier goes completely crazy. Anyways, you can separate the belt, remove all inner vertices between the outer edge loops, and recreate the faces (create an edge, then use the key F to fill the loop). Delete belt vertices from the original mesh.

Apply a Solidify modifier, and join it with the original mesh. The order of selection matters because only the active object (orange selection) will keep its modifiers. The other selected objects (red) will lose their modifiers. Then fix the neck (sculpt brush), and apply a Remesh modifier. Try Smooth with 9 levels. Be careful, the higher the level the more vertices you get (Blender can freeze if there are too many). Finally, you should have a high-poly manifold mesh. Don't forget to make a backup copy beforehand, as the application of modifiers is destructive and cannot be undone!


text:
Smoke Won’t Stop Emitting When “Use Flow” Is Unchecked
I don’t know what information to give. I set a key frame with “Use Flow” checked, then I add a key frame on the next frame, with “Use Flow” unchecked.
The properties tab show that it is unchecked, and does so at the correct frame, but smoke continues to emit forever.
I’ve tried putting key frames in different places, doing a key frame at the start and the end of my animation, shrinking the emitter, and resolutions from 32 to 512. I have also tried baking manually vs using the playback. I’m not sure what else to try.
I’ve read dozens of Reddit and other forum posts, all of which say to do exactly what I did (keyframing “Use Flow”).
I’m using Blender 4.0.2

Sorry, but since you already said you've done exactly what you are supposed to do (and I cannot immediately see a flaw in your description), just a simple guess: do you mean it emits all the time or the smoke is just not disappeared after the keyframe to uncheck? I don't think that's your issue, I just do not see anything wrong. Maybe you could upload your file here: https://blend-exchange.com and follow the intructions there to edit it into question? Only the basic setup which does not work is sufficient.

Yes, I mean that it emits the whole time. I would like the smoke that has already emitted to stay floating around, but stop any further smoke from generating. I will try to upload the file, thank you for the suggestion. It’s a basic, fairly empty scene, with two objects to collide with. I have tested it without these objects as well though

The smoke stops emitting immediately when the keyframe unchecks Use Flow. I've removed the collision object etc. and gave the emitter object some movement on the X axis so that it starts moving before the emission stops, you can see on frame 60 it still emits smoke, on frame 61 there is no more smoke coming out of the sphere, and later on frame 70 the sphere is not even within the Adaptive Domain anymore indicating there is no smoke emitted:

There are many things I would have changed in your setup. First of all, you have set the Buoyancy Density in your domain set to 0, which means the smoke does neither rise (buoyancy > 0) nor sink (buoyancy < 0), but the one for Heat is at its maximum with 5 which has more effect if the emitter would be set to Fire + Smoke instead of just Smoke.
Then the Vorticity is quite high with 0.3, also the _Strength of the Noise  with a value of 1.
The Threshold in the Adaptive Domain is quite low at 0.001 as well.
All this taken together results in the smoke just staying around the emitter for a very long time even after the emission has stopped. The main problems are the Buoyancy Density, the Vorticity and the Noise.
When I set the following values:

Gas >

Buoyancy Density: 1.0

Vorticity: 0.1

Noise >

Strength: 0.5

it immediately becomes more obvious that the smoke stopped emitting at some point. However, this will make the smoke rise faster. If you do not want that, set the values back to what you had or something between that and my suggestions, but maybe then consider to enable the Dissolve option to have the smoke disappear over time or else you might not notice it stopped emitting.

Thank for this! The reason I went with the high heat and low buoyancy is that I found that higher buoyancy kept the smoke from spreading outwards, it would eventually start only going up. Heat fixed this (I’m curious why the limit is only 5). [I sent the comment on accident]. I also upped the vorticity because it made the smoke look more realistic in my opinion. In that particular scene, I don’t need to see the smoke disappearing, but all the smoke in the background is very taxing on my pc. My goal is to have the smoke continue to flow around, so I feel dissolve wouldn’t work for that

I will continue tweaking the parameters you suggested, just wanted to give my reasons. Thank you for taking the time to look at this! Edit: and I lowered the domain threshold to help with dissolve in a different design, but I forgot to change it back. One thing that confused me is why the smoke stays there at all, shouldn’t the high heat keep that from happening?

@Koast No, as I mention in my answer the high Heat mainly affects smoke when you have set the emitter to Fire + Smoke, but you haven't, you're just emitting Smoke. The problem with the smoke staying around regarding your pc's performance is that the smoke is spreading out. The smoke contains more data and therefore resources, the more of the domain is filled with smoke, especially when using Adaptive Domain this is apparent because the adaptive domain grows larger with the spreading smoke. Of course not using it makes it worse because then it always simulates the whole domain.


text:
gliding vertices into straight line
Is there a possibility to let a selection of vertices glide on their respective edges, so that they end up in a straight line? The edges upon which the vertices are to glide are not necessarily parallels.
Please have a look at the attached picture.

You can get this simple example here:

background: The problem arises from "tidying" up a model that did not care about subdivision surface modelling at all. In order to do subdivision modeling I want to add support loops. By connecting vertices from outer and inner structures with the added loop I end up getting zic-zac-lines, which I want to straighten. See 2nd screenshot.
Thank you in advance!

You can connect the end vertices with a straight line (j) and then dissolve the unneeded geometry... Why do you need this? I mean what do you care if the lines are straight? Wouldn't it be more logical to get rid of unnecessary geometry instead?

You mean using the Knife tool; otherwise I would not get new vertices in-between. Dissolving the original vertices also removes edges.
Why I need this?
I am still learning, I might be wrong. But I think non-straight lines give different (unpredictable) results in subsurface modelling. Removing unnecessary geometry would lead to lots of ngons which again is not ideal for subsurface modelling.

Geometry you have has lots of n-gons...  It might be better to use bevels for something that has bevels and subsurf for organic forms. Subsurf creates loads of unneeded geometry in cases like this. I mean... There are no rules... you can do whatever works. If you select 2 vertices and hit j, the vertices will be connected in a shortest path on surface between them. Knife tool also works.

Thank you. That's a very valid argument to limit subsurf to really applicable cases and that it's not a tool for everything.

I do not know if this would work exactly the same in all cases you might need it, but for your example there is a relatively simple way to do this:

Select the left and right vertex of the crossing line.

Press J to join those vertices. The edges inbetween will be split automatically.

In Edge Select mode, select the obsolete zigzag edges you do not need anymore and press X > Dissolve Edges.

And that's it:

Thank you Gordon! I think that solves my use-case. (It is similar to Martynas' proposal, to be fair). I also found out, that I can ring-select the obselete geometry by alt-clicking on one of the obsolete edges. So it can be an automated process.

Yes, it is basically his proposal, but it is always good to have an answer that can be accepted, to indicate other users this question is solved (if they have the same problem) or for people wanting to help not to have to read through the comments to see it actually had been solved already. Also an illustrated answer sometimes helps more with understanding than pure text. But there are more ways to do this, I just decided to show the one I would use.


text:
Whole curve twisting when moving it's extremity

Is there a way to improve on this kind of curve behavior? I'm making a belt, and it's driving me crazy how the whole curve go nuts when you tweak the starting point position. You would think changing the twist method under the curve parameter would work, as well as the twist smoothing, but none of the options feels like a good one in my case.

There is no way for the algorythms to predict how you wish the object to be twisted, you can specify manually for each vertex of the curve:

Yes I assumed this was due to this kind of limitation, and I know about twisting individual points. I'm wondering if I could fix it through some rigging magic. I just want to be able to place belts on the bags I'm making really fast, this needs to be easily to tweak, so curves are a great choice for me in that regards.


text:
Procedurally convert other coordinates into UV coordinates
Is there a way to convert from any sort of 3D coordinates into any given object's UV coordinates?
I currently have a setup like this:

The node group gives me a 3D grid so it needs some sort of 3D coordinates as input to work correctly. (Here Object coordinates but really any 3D coordinates would work)
The image texture, however, is mapped onto the sphere using inherently Object-Bound, 2D UV coordinates.
What I want to accomplish here is to "pixelate" the texture as it appears on the sphere, based on the 3D grid. Conceptually, the easiest way to accomplish this would be to convert the grid from Object-coordinates into UV-coordinates and plug that into the texture.
I think for the special case of the sphere I could work some manual Mercator projection magic to replicate UV coordinates but that would be a bit tedious and, importantly, not universal. There's no way it'd work for a mesh with complex shapes.
Any ideas how I might accomplish this sort of thing?

Sorry, what do you mean by "pixellate"? Do you want the original image intact, but have "cell like" borders, or do you want the image to be cut up into little pieces and distributed based on the map? (this second method can be done for sure, but the location of the "pieces" is randomized somewhat)

@ChristopherBennett the way I'd imagine it to work is that I take whatever the cell-pattern's center is (which is also encoded in the color), I pick the color of the texture at that point and spread it across the entire cell. So each cell gets a single color, effectively "pixelating" the texture with the pattern. - This is a straight forward effect if you plug in, say, a noise texture. But to work on an image texture, I need to convert between UV and object (or other 3D) coordinates.

Yeah, I'm not sure how to do that offhand, and I unfortunately don't currently have the time to play around with it. I'll upvote the question, though, because I'm curious as well.


text:
Can I access the particle system through Python to build custom simulations?
I would like to build my own custom simulation in python, using blender's particle system as a base.

What I need:

Load all particles of current frame (I'd at least need locations and, ideally, velocities)
Work some coding magic specific to my simulation
save output as new frame

I heard that, perhaps, this might be possible by accessing and modifying the particle cache. But any pointer to how something like this could be done would be helpful. Any ideas?

I managed to get it to work by modifying this script phonybone posted to Blender Artists:
Point Cache Doctor Script (BA)
For the most part I just took that script and ran with it although I did some minor changes to get some extra functionality. - My PyFu isn't strong so it might be that I made it worse in style that way but it worked for me. Here is my version (the portion that does the importing/exporting - Most of it is completely unchanged)

import os
import struct
from os import path
from math import *
import random

def pack_string(v, size):
    return struct.pack('%ds' % size, v.encode(encoding='UTF-8'))

def unpack_string(b, size):
    return struct.unpack('%ds' % size, b)[0].decode(encoding='UTF-8')

def pack_uint(v):
    return struct.pack('I', v)

def unpack_uint(b):
    return struct.unpack('I', b)[0]

def pack_float(v):
    return struct.pack('f', v)

def unpack_float(b):
    return struct.unpack('f', b)[0]

def pack_vector(v):
    return struct.pack('fff', v[0], v[1], v[2])

def unpack_vector(b):
    return struct.unpack('fff', b)

def pack_quaternion(v):
    return struct.pack('ffff', v[0], v[1], v[2], v[3])

def unpack_quaternion(b):
    return struct.unpack('ffff', b)

def pack_color(v):
    return struct.pack('ffff', v[0], v[1], v[2], v[3])

def unpack_color(b):
    return struct.unpack('ffff', b)

class ParticleTimes:
    __slots__=('birthtime', 'lifetime', 'dietime')

    def __init__(self, birthtime, lifetime, dietime):
        self.birthtime=birthtime
        self.lifetime=lifetime
        self.dietime=dietime

def pack_particle_times(v):
    return struct.pack('fff', v.birthtime, v.lifetime, v.dietime)

def unpack_particle_times(b):
    birthtime, lifetime, dietime=struct.unpack('fff', b)
    return ParticleTimes(birthtime, lifetime, dietime)

class BoidData:
    __slots__=('health', 'acceleration', 'state_id', 'mode')

    def __init__(self, health, acceleration, state_id, mode):
        self.health=health
        self.acceleration=acceleration
        self.state_id=state_id
        self.mode=mode

def pack_boid(v):
    return struct.pack('ffffhh', v.health, v.acceleration[0], v.acceleration[1], v.acceleration[2], v.state_id, v.mode)

def unpack_boid(b):
    health, acc0, acc1, acc2, state_id, mode=struct.unpack('ffffhh', b)
    return BoidData(health, (acc0, acc1, acc2), state_id, mode)

_flag_map={
    0x00010000: 'compress',
    0x00020000: 'extra_data',
}

class TypeDesc:
    """Data type descriptor"""

    def __init__(self, index, name, size, pack, unpack):
        self.index=index
        self.name=name
        self.size=size
        self.pack=pack
        self.unpack=unpack

    def __str__(self):
        return self.name

    def __repr__(self):
        return "TypeDesc(name=%r, size=%d)" % (self.name, self.size)

_data_types_softbody=(
    TypeDesc(1, 'LOCATION', 12, pack_vector, unpack_vector),
    TypeDesc(2, 'VELOCITY', 12, pack_vector, unpack_vector),
)

_data_types_particles=(
    TypeDesc(0, 'INDEX', 4, pack_uint, unpack_uint),
    TypeDesc(1, 'LOCATION', 12, pack_vector, unpack_vector),
    TypeDesc(2, 'VELOCITY', 12, pack_vector, unpack_vector),
    TypeDesc(3, 'ROTATION', 16, pack_quaternion, unpack_quaternion),
    TypeDesc(4, 'AVELOCITY', 12, pack_vector, unpack_vector),
    TypeDesc(5, 'SIZE', 4, pack_float, unpack_float),
    TypeDesc(6, 'TIMES', 12, pack_particle_times, unpack_particle_times),
    TypeDesc(7, 'BOIDS', 20, pack_boid, unpack_boid),
)

_data_types_cloth=(
    TypeDesc(1, 'LOCATION', 12, pack_vector, unpack_vector),
    TypeDesc(2, 'VELOCITY', 12, pack_vector, unpack_vector),
    TypeDesc(4, 'XCONST', 12, pack_vector, unpack_vector),
)

_data_types_smoke=(
    TypeDesc(1, 'SMOKE_LOW', 12, pack_vector, unpack_vector),
    TypeDesc(2, 'SMOKE_HIGH', 12, pack_vector, unpack_vector),
)

_data_types_dynamicpaint=(
    TypeDesc(3, 'DYNAMICPAINT', 16, pack_color, unpack_color),
)

_data_types_rigidbody=(
    TypeDesc(1, 'LOCATION', 12, pack_vector, unpack_vector),
    TypeDesc(3, 'ROTATION', 16, pack_quaternion, unpack_quaternion),
)

_type_map={
    0: ('SOFTBODY', _data_types_softbody),
    1: ('PARTICLES', _data_types_particles),
    2: ('CLOTH', _data_types_cloth),
    3: ('SMOKE_DOMAIN', _data_types_smoke),
    4: ('SMOKE_HIGHRES', _data_types_smoke),
    5: ('DYNAMICPAINT', _data_types_dynamicpaint),
    6: ('RIGIDBODY', _data_types_rigidbody),
}

def cache_file_list(directory, index=0):
    """Cache frame files in a directory, sorted by frame
    """

    return sorted(cache_files(directory, index), key=lambda item: item[0])

def cache_files(directory, index=0):
    """Cache frame files in a directory
    """

    for filename in os.listdir(directory):
        try:
            base, ext=path.splitext(filename)
            parts=base.split('_')
            if len(parts) in (2, 3):
                cframe=int(parts[1])
                cindex=int(parts[2]) if len(parts) >= 3 else 0
                if cindex == index:
                    yield cframe, filename
        except:
            pass

class CacheFrame():
    def __init__(self, filename):
        self.filename = filename
        self.totpoint = 0
        self.data_types = tuple()
        self.data = tuple()

    def get_data_type(self, name):
        for dt in self.data_types:
            if dt.name == name:
                return dt
        return None

    def get_data(self, name):
        for dt, data in zip(self.data_types, self.data):
            if dt.name == name:
                return data
        return None

    def set_data(self, name, values):
        self.data = tuple(data if dt.name != name else values for dt, data in zip(self.data_types, self.data))

    def read(self, directory, read_data):
        cachetype = ""
        data_types = {}

        f = open(path.join(directory, self.filename), "rb")
        try:
            cachetype, data_types = self.read_header(f)

            if read_data:
                self.read_points(f)
            else:
                self.data = None

        finally:
            f.close()

        return cachetype, data_types

    def read_header(self, f):
        bphysics = unpack_string(f.read(8), 8)
        if bphysics != 'BPHYSICS':
            raise Exception("Not a valid BPHYSICS cache file")

        typeflag = unpack_uint(f.read(4))

        cachetype, data_types = _type_map[typeflag & 0x0000FFFF]
        self.cachetype = cachetype

        for bits, flag in _flag_map.items():
            setattr(self, flag, bool(typeflag & bits))

        self.totpoint = unpack_uint(f.read(4))

        data_types_flag = unpack_uint(f.read(4))
        # frame has filtered data types list in case not all data types are stored
        self.data_types = tuple(filter(lambda dt: ((1<<dt.index) & data_types_flag) != 0, data_types))

        return cachetype, data_types

    def read_points(self, f):
        data = tuple([None] * self.totpoint for dt in self.data_types)

        if self.compress:
            raise Exception("Compressed caches are not supported yet, sorry ...")
            return data

        def interleaved():
            for k in range(self.totpoint):
                yield k, tuple(dt.unpack(f.read(dt.size)) if dt else None for dt in self.data_types)

        for k, data_point in interleaved():
            for data_list, value in zip(data, data_point):
                data_list[k] = value

        self.data = data

    def write(self, directory):
        f = open(path.join(directory, self.filename), "wb")
        try:
            self.write_header(f)
            self.write_points(f)

        finally:
            f.close()

    def write_header(self, f):
        f.write(pack_string('BPHYSICS', 8))

        typeflag = 0
        for index, (name, _) in _type_map.items():
            if name == self.cachetype:
                typeflag = typeflag | index
                break

        for bits, flag in _flag_map.items():
            if getattr(self, flag):
                typeflag = typeflag | bits

        f.write(pack_uint(typeflag))

        f.write(pack_uint(self.totpoint))

        data_types_flag = 0
        for dt in self.data_types:
            data_types_flag = data_types_flag | (1<<dt.index)
        f.write(pack_uint(data_types_flag))

    def write_points(self, f):
        if self.compress:
            raise Exception("Compressed caches are not supported yet, sorry ...")
            return data

        for k in range(self.totpoint):
            for data, dt in zip(self.data, self.data_types):
                f.write(dt.pack(data[k]))

class PointCache():
    def __init__(self, directory, index=0):
        self.files = cache_file_list(directory, index)
        if not self.files:
            raise Exception("No point cache files for index %d in directory %s" % (index, directory))

        self.start_frame, self.info_filename = self.files[0]
        self.end_frame, self.last_filename = self.files[-1]

        info_frame = CacheFrame(self.info_filename)
        cachetype, data_types = info_frame.read(directory, read_data=False)

        self.cachetype = cachetype
        self.data_types = data_types

        for flag in _flag_map.values():
            setattr(self, flag, getattr(info_frame, flag))
        self.totpoint = info_frame.totpoint

    def get_data_type(self, name):
        for dt in self.data_types:
            if dt.name == name:
                return dt
        return None

I hope I made no mistake in the indentation there.
Most of it is just utility functions.
In usage, you'll first load the cache you have thus far:
cache = PointCache(my_directory,my_cache_index)

Then you can load frames from the cache. For instance, if you want to get the very last frame in the cache (I believe that was one of my changes), you can go:
frame=CacheFrame(cache.last_filename) # at this point only parts are loaded
frame.read(my_directory,True) #now everything actually is in place

And now you can access all the data you might want. - phonybone used this in the Tube project for cloth simulation. My usage is for particle simulation. Both works just fine. For instance, if you want the location of all your particles, you can go:
locdata=frame.get_data('LOCATION') # [(x1,y1,z1),(x2,y2,z2),...]

You can modify it somehow and then save it again with
frame.set_data('LOCATION',new_locdata) #at this point it's only in python
frame.write(my_directory) # this updates the cache

Make sure you spell the data strings right (I had a minor crisis because I accidentally added an extra I in 'VELOCITIY' - in the current implementation this just fails silently rather than leading to an error. Maybe that should be changed.) and you can do completely arbitrary changes to your cache.
Furthermore, for this to show up in Blender, you gotta set the storage location to "External". - I recommend keeping a backup around. - And in fact, the original version of this script had an utility function to do just that. I only copied over what's strictly necessary to read and write your caches though.
Happy Blending!
P.S. I made this a Community Wiki in case somebody has some clever/useful revisions for the above python script.


text:
Is it possible to add noise or other type of texture between color ramp stops?
I'm trying to duplicate the following type of gradient like the horns in this picture:

I saw an example of that uses a texture as a transition, but it only shown just a duo-tone gradient using a gradient texture. I want to know if is possible to either influence the stops on a color ramp or modify the technique mentioned in the link to get the desired effect?

It's time to dig this up and make it right.

Final

Object and UV Map
Create your horn using chosen technique and UV Unwrap it with Follow Active Quads as in my answer here: How to Straighten Curved UVs into Straight Belt
Using this method is somewhat crucial as we need to have UV Map straighten to X axis.

Material
Extending a bit setup from your link we will make 3 maps. Base color, Roughness and Normal than use them with Principled Shader.
For Base color we mix main gradient with light and dark spots.
For Roughness and Normal we will use stretched and mixed Noise Textures.

Most important things here are Mapping nodes with stretching along X and Y axis.