5
$\begingroup$

I would like to modify my vertex weight using a texture. To do so, I found out here that I can use the Vertex Weight Modifiers for this job. However, I am facing a problem that there is a strange bias in the vertex weights. Please help me remove it.

As you can see in the left of the picture below, I painted the uv white in the middle and black as around it. What I expected to happen was that the white will assign a vertex weigh of 1 and the black a 0. That also means that I expected to see a weight painting with red in the middle and blue in the margin.

However, what came out is the weight painting in the right. I am not sure what value green and yellowish green implies but I am quite sure that none of them are 0 nor 1.

As a summary, my requirements are

  • I would like to edit the vertex weight via texture
  • I would like to assign weight 1 for white and 0 for black

while

  • White and black would NOT be 1 and 0

screen shot

$\endgroup$

1 Answer 1

8
$\begingroup$

I am not quite sure(I would have to go under several more trials) but I think I solved it.

It can be achived by Switching the Fall off type to Custom Curve and let the Curve always be 1. As for Default weight, set it to 0.


EDIT:

I managed to get this right so I would like to share the techniques to edit your VERTEX WEIGHT with TEXTURES.

First, I would explain how to do this and later explain how this technique can be helpful. We will be using the Vertex Weight Edit modifier.

Note that I am not sure whether this is what the developers expected to happen. In other words, this might be a manuever of a bug and may be changed in the future version of blender. As, you might have noticed, this modifier is one of the most ignored modifiers. But as for certain, this worked fine on my Blender 2.79 (Hash: 5bd8ac9).

Let's start with a very simple plane.

Divide it up to any number, say 10*10. The number of division is directly connected to the resolution.

Plain with 10*10 divisions

Next, make a new vertex group. Please make sure the weight is set to 0. I named this group, texture_weight.

Made a vertex group with weight 0

The next step is unwrap it to make a UV map and a texture. I named the UV map : weight_uv, the texture : weight_tex.

As you can see in the picture below, I painted a white circle with 1.0 strength.

UV mapping and texture

Then, add the Vertex Weight Edit modifier. This modifier is placed at the first column, 3rd from the bottom.

Before explaining the settings in detail, take an overview of them in the image below. over view of the panel

So, let's examine the settings in detail.

1. Vertex Group

I think it's rather obvious what we need to do here. Set the vertex group (named texture_weight).

2. Fall off type

I don't understand why, but it seems that all vertecies in the texture_weight will be effected by the curves y-value when x = 0.

Let me be more precise.

When the variables are as follows;

  • Col : the intensity of the color (assigned to a vertex by the texture),
  • OrW : the original weight of the vertex group (you can set them when assigning)
  • Glo : the Global influence, which you can change at the panel,
  • Y_0 : the y-value of the curve when x = 0,

the final outcome weight is (OrW + (1-OrW)*Col) * Glo * Y_0.

This formula may seem complicated but the meaning is rather simple. (See the drawing below)

calculate the final outcome

3. Applying UV and Texture

Make sure 4 of the settings are appropriate.

  1. Texture Mask : Set the texture you want to apply. (weight_tex)
  2. Texturte Coordiantes : Set it to UV.
  3. Use Channel : Set it to whatever you want. This will influence whether the Col (in the formula) mean "intensity" or something else. I will stick to the Intensity.
  4. UV Map : Set the UV you want to apply. (weight_uv)

And if you (or me) haven't skipped anything, that will give you this wonderful screenshot. a wonderful screenshot on how the goal looks like

Usage of this technique

I am rather confident that most of you have wondered why;

  • this is useful and
  • these screenshots show some spaces above the plane.

Well, take a look at these: https://i.sstatic.net/ez2NK.jpg (I cannot insert the images because I will reach the limit)

As you can see, I actually reshaped my plane so that it can be easily be modified with the texture. I used a combination of Mask modifier and Solidify modifier. (setting the vertex group of the Solidify enables you to manipulate the height)

So, what? Is this technique something different from using Displacement Modifiers?

The answer is absolutely yes.

First, this makes an Solid object while, Displacement Modifiers can only make distorted planes.

Second, thanks to the Mask modifier this erases unwanted vertecies, while Displacement leaves them untouched.

I'll leave a sample file. Hope this will help you in some ways.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .