Help for Color>FillObject and Subtools Master>Fill

I assign different materials to different subtools by clicking Color>FillObject or Subtools Master>Fill, it worked without textures. But if with textures, all subtools displayed the current material regardless of what I assigned.

If I wanna assign different materials to different subtools and it works with textures, how can I do?


1 Like

Models and Texture Maps

Models are made up of polygons where each individual polygon can have one color and one material assigned to it. In a similar fashion, Texture Maps are made up of pixels where each individual pixel can have one color and one material assigned to it.

But what is really being assigned to the polygon or the pixel is just an index number which then references a table with an entry describing the material assigned to it. The render engine looks at each polygon or pixel and, based on the number it finds there, renders the appropriate material from the library onto your screen.

By default, when you create a new model, all its polygons are automatically assigned material index zero. A new texture map will also have material index zero assigned to each of its pixels.

Material Index Zero

Material index zero, named Flat Color, is both unique and a little weird (sometimes difficult to understand).

  1. The Flat Color located at material index zero is the only one that cannot be replaced by a custom material. It will always be Flat Color.

  2. When you pick any other material from the material table, material index zero temporarily ASSUMES the identity of the chosen material, even though the embedded index number for the model polygons or texture map pixels remains zero.

  3. Each time you click on another material, those polygons or pixels embedded with material index zero ASSUME that new material appearance.

In other words, Material Index zero acts like a chameleon and is ALWAYS DYNAMIC OR “LIVE”. (note that two of the buttons on the Embed-Mat menu will cause the model, subtool or the texture map to blink if material index 0 is still assigned to it!)

If you want to permanently assign any other material (above index zero) to a model or texture map you need to EMBED the new material’s index number in the model polygons or texture map pixels.

Normally, to embed a model you first select a material from the table, then press the Draw:M button and finally, press the Fill Object button in the Color Menu.

To embed a texture map by hand is a little more complicated. One quick way is to select Plane3d, convert it to a PolyMesh3d model and display it on canvas in edit mode. Choose the material (you want to embed in the texture map) and embed it in the PolyMesh3d (as explained above). Next, choose the texture map you want to embed so it is displayed on the Plane3d. Click the Draw:M button. And finally, click the Tool>Texture>Col>txr button.

After embedding your model or your texture map with a new material, they will no longer change material appearance when you choose another material.

1 Like

Svengali, thank you for your systematic reply, that’s very help.
But my headcche is that I have to use lower subdivision level models because of my poor PC. I have done what you suggest, the point is that the textures polypainted (Tool>Texture>Col>txr button) were very low resolution (the map details almost lose) due to the low models.

So I don’t wanna polypainted the textures instead of turning on the Texture Maps on the low models. The problem is in this case which gave what I want, once I chose another material (desipte I have embeded the model), the embeded material was overrieded?

No matter how thank you for your help from the bottom of my heart!

I’ve posted a little plugin here that will solve your problem:



You are very nice, thanks so much!
That’s what I want!:+1:

Hi, marcus_civis!
You tool for embedding textures is fantastic! But I didn’t seem to control her entirely;) . Sometimes she didn’t work, or embed incompletely.:cry:
Do you have any idea about this?

The model must be a polymesh to work correctly. If you use one of the ZBrush primitives then it won’t work unless you convert to a polymesh first.

Also, if the model is very complicated with holes and so on there may be some areas that don’t pick up the material. You can correct any texture by doing this:

  1. Press Tool>Texture Map>Clone Txtr. This will put a copy of your texture map in the main Texture palette.
  2. Select the Plane3D tool in the Tool palette.
  3. Press Tool>Make Polymesh3D to make the plane a polymesh.
  4. Press the Tool>Texture Map thumbnail and select your texture map from the pop-up. This will apply the map to the plane.
  5. Select the material you want to embed and then press the plugin button. The material will be embedded in the texture map.
  6. Press Tool>Texture Map>Clone Txtr so that a copy of the map (with embedded material) is in the Texture palette. Make a note of the name of the texture so you can identify it.
  7. Select your model in the Tool palette and apply the texture map you cloned at (6).


1 Like

Ah! I got it, I got the principle!
Thanks very muchSaluting!:slight_smile: :stuck_out_tongue:

Thank you Svengali,

I was wondering why I couldn’t fill the mesh/subtool with the Flat Material as the rest of mats, instead of changing everytime I pick another mat for other subtools. The reason is the one that you gave us, that index zero material…

So the trick to fill a subtool with a flat material and not get changed, is to pick the Flat Material, copy it in your material folder, and load again in another material slot, so it won’t be that index zero anymore, and you will be able to fill with it as always, M, Color/FillObject.


This is so incredibly annoying when you change a material and suddenly 3 other subtools decide to arbitrarily
change as well. No rhyme or reason why Pixologic can fix this so Fill object actually does what it’s supposed to.
This is why a lot of people hate Zbrush’s interface, it seems that it just likes to do whatever it wants unless you know
some obscure “trick” to fix it.


Still new, but I’ve been using ZBrush since months ago, I have searched, but I cant find how tho do this.

How can I assign different materials to different subtools? Sounds basic, but every time I try to apply a material to something, other subtools change as well.
Also, How can I see the material assigned to the current subtool so I can edit it? If I click in any subtool, all I see is the last used material.

Sorry, this is so confusing to me… I finished my first project and all I need is to adjust the different materials, but this makes it impossible. I`d appreciate a bit on help please! :wink:

Hi Soto.

To apply a material, or rgb color, or both of them at the same time to a single subtool, you have to fill them. This is easy but tricky if you don’t know how.

Select Standar Brush (it works with other brushes, but it’s a good practice). Ckeck the M and 100 % opacity, go to Color tab, and click on FillObject.

You can do the same with each subtool. And you can deselect the M, and click on RGB to apply only color, or MRGB to apply both of them to that subtool.

Then select another subtool and repeat the process with another material or color.

To know which material do you have applied to each subtool, just click on the material viewport and hold it to the subtool you want to know, then that material is picked. To edit this, you have to open the Material tab and play around with all the sliders and so on.

Hope it helps

1 Like

Thank you very much!!
You saved me. I`ve been trying to make this work since a while. Thanks for explaining!
I was finally able to finish this in case you want to check.

Thanks. :smiley: