ZBrushCentral

Precision Texturing - Part 2

Many people have asked how to get really clean texture transfers when working with Projection Master. By this I mean crisp, sharp edges that remain once the model has been picked up again from the canvas. The truth is that getting great results like this is a simple matter of understanding what is really happening at the fundamental level when you work with Projection Master.

This mini-tutorial will take the mystery out of the process, while also providing an easy way to deal with those situations when you find yourself guessing. No more trial and error! These steps will give you great results every time.

This tutorial also supplements my Precision Texturing Tutorial which I wrote last year. That tutorial explained ways to paint crisp edges on the canvas. This tutorial goes a step farther and teaches how to ensure that those edges will transfer cleanly to your texture.

So here goes:

Let’s begin by looking at what is happening when you use Projection Master. I’m not going to go into the technical aspects of what features it automates or any of that stuff. Instead, I’m going to discuss the topology of it. For those of you who are scratching your heads at this point, let’s just say that Topology is the mathematics of surfaces. Your texture is nothing more than a flat plane that is getting wrapped onto the surface of your model. Of course, if you’ve ever tried to peel an orange into a single piece and then flatten it out onto the table top, you know that the 3D to 2D unwrapping process doesn’t work too well. :slight_smile: There have to be breaks and/or distortions in order to get a complete unwrapping.

Projection Master takes as much of the topology (math) out of the picture as possible. The basic idea is that you paint what you want to see, and then ZBrush handles the process of applying all the math to make what you’ve just painted in 3D fit correctly onto the 2D texture map.

In order to make this work, ZBrush has to take a look at the pixols that you’ve painted on the canvas and then calculate how best to make that detail fit as pixels when projected onto the texture. “Projection” really is the perfect term for this, too. You have no doubt watched a movie in the theater at some point where the projector was out of focus until somebody complained and they fixed it. Modern movie projectors have a lot of great features to try and ensure a clean focus, but sometimes you still need human intervention. The same actually holds true for ZBrush, which has some really sophisticated routines to try and ensure an “in focus” projection when you pick the model up from the canvas. No matter how good those routines are, there are still some things that you can do to help ZBrush out. And that’s what this tutorial will help you do. :slight_smile:

ZBrush’s projection “focus” is based upon canvas pixols vs. texture pixels. If you have too many of one relative to the other, the result will be an out of focus, poor quality projection. To illustrate, I’m going to use Hiroshi’s fun little model from this thread, onto which we’ll be projecting the Pixologic logo.

For each use of Proejection Master, the only difference is the scale at which the model is being dropped to the canvas. Each of these gives us a different ratio of pixols-to-pixels, which gives different results when the model is picked up again. (Note: The ratios mentioned in the text beneath each illustration are approximate.)

In this first example, we’ve zoomed way in on the chest (left view). As a result, the logo takes up a LOT of canvas pixols – about 800 pixols across. On the other hand, the texture that the logo will be projected onto is only 2048x2048 in size. Relatively few of those are assigned to the chest. The result is that we have a large number of pixols being projected onto a relatively small number of texture pixels. Since there’s no such thing as a 1/2 pixel (much less 1/5 pixel), ZBrush has to discard a lot of information from the canvas in order to make it all fit onto the texture. The results, as shown on the right, aren’t great. Without the artist’s eye to know what details are important and what aren’t, the discarding gets applied uniformly across the canvas and the results are a lot of pixelation.

[![example-1.jpg|900x400](upload://u7UwiwChME2xYOTV8KxKTZGEFfs.jpeg)]![Yoshi.jpg|600x600](upload://wWqhBCqDiyhprhhhH0LPT4yHpnU.jpeg)

Happy ZBrushing!

Attachments

example-2.jpg

example-3.jpg

GettingTheRatio.jpg

Let me be the first to say Thank You for THIS! 50.

Great info! I second 50.
THANKS
Lemmo

Splendid stuff … thank you. I’m confused about point 4, where you’re talking about 20x20 pixols but, assuming that’s not a typo, I’m sure I’ll work it out.

Cool red monster tex, btw.

When dealing with scale, the info sliders measure from the center of the object to its edge. So a value of 10 means that your square is 20 pixols across. :slight_smile:

You can actually use any value that you want there. So long as the value is the same for both squares (the one you draw on your texture and the one that you draw onto the canvas), the technique will still work.

Thanks for the tutorial aurick - I remember being dumbfounded by this equation at first, (and still occasionally find myself getting caught out!) so it’s
certainly a welcome refresher - thanks again :+1:

C.

Thanks … didn’t realise how the Info Sliders worked. So the last paragraph in point 5 is a typo then? Square drawn on the screen, set to 10 with the Info Sliders, should be 20x20, rather than 10x10? Sorry if I’m being particularly slow here. :wink:

Can you put that in a tutorial Zscript?
were we could see it before and after on the old method and your method to compare
it would be less confusing and a little bit more understanding.:+1:

:+1: :+1: :+1: :laughing: :+1: :+1: :+1:

Nice tut. :+1:

You also use the Deco brush for placing a texture. :slight_smile:

Hi

I have a question related to the resolution painting. I have been trying to paint on a pattern in projection master (black on white) which I then wish to transform into a mask, once I have picked up the texture. The quality of the texture is nice and sharp once it has been picked up, however, when I convert this to a mask, the mask is pixelated and then does not have sharpness for inflating etc. If I do a depth pickup from PM itis pretty sharp, however I need to be able to masking on the model itself. Any clues as to what I should be doing. I get a similar result painting on mask on the mesh ie. it is fuzzy. The mesh up to level 7density is a

Thanks,

TrapDoor

Heh heh … sneaky bit of editing there, Master aurick. Now I understand. Couldn’t get my head around why it made any difference how large or small the model appeared to be on screen … if a texture map is a specific size, and it wraps all the way round an object, why would the apparent size of the model make any difference? Then I started going off on tangents, thinking about if my screen resolution made any difference and stuff like that. Then the penny dropped. I’m so used to applying a created texture map TO a model in other apps, I’d forgotten that colouring the mesh or painting in PM, I’m actually painting on the 3D mesh itself, and ZB is then creating a texture map from that information, which it then applies to the model. It’s so intuitive to paint like this, I’d never given a moment’s thought to how sophisticated it is.

In this case, size really does matter.

Very good info. I was wondering about that. Thanks for taking the time to explain.:+1:

This is one of the best tutorials yet!!! So eye opening, now I understood why the textures I painted weren’t so good. Agian, it’s so amazing!!! Thank you

Yong

thanks, Aurick! very clear explanation of something I wouldn’t have guessed and clever use of those reference squares to approach the 1:1 ratio

it also makes sense to stay a little on the side of the ratio that allows ZB to upsample, therefore smoothing the stroke edges

I also gather that it would be fairly easy to develop an eye for whether ZB is upsampling or downsampling too much, by painting a test stroke, picking up the model and seeing whether the stroke edges are too blurred (upsampled) or too pixelated (downsampled) – then the stroke could be undone and the model rescaled accordingly to “adjust the focus”

Yes, havran. If you take this approach you should remember that you can’t undo a texture edit. Start with a blank texture for your test strokes. To remove the stroke, press Texture>Clear. The texture will be recolored to the currently-selected color, clearing everything that’s painted on it.

As always thanks for taking the time to further enrich the forum and our better understanding.

Many thanks.

@ Aurick: I have a question about this…
so in order to have one pixol on canvas = 1 pixol on texture… can i do this?
Can i setup a 512x512 document and import a 512 x 512 picture in… Then i create an other layer… and draw my object on the second layer. asign 512 x512 texture to that object. Drop the object and use clone tool to pick up the detail in the picture on the first layer to the object.
In that case, is that correct that it will pick up the equal resolution on the picture in the first layer to the texture on the object since they are the same size?

I am using that method alot… and having trouble with pickup the same resolution on the imported picture to my texture on the object.
some time it works and pickup nicely details but sometimes it picks up very blurry… i have not idea what cause this problem.

An other thing,
I have tried to increase the size of the document and import a large picture in that document… such as 1040 x1040 document with 2080 x 2080 imported picture. then i try to pick up the details on the picture to my 512 x512 texture. ( does it meant every 2 pixol on canvas = 1 pixol on texture?)… i thought it would give me sharp details on my texture when i use clone tool to pick them up. How ever, i have not idea… why sometimes it does pick up nicely details but sometimes it doesn’t
.
Thank you so much
Cheer
Thao

Thank for you help.

You’re missing a very fundamental aspect of topology.

Your texture does not sit in front of your model; it wraps onto the model’s surface.

If your canvas is 512x512 across, the surface area of it is defined by the formula A= L x W (Area equals length times width.) That comes to 262,144 pixols in the example.

The surface area of a 3D object is considrably larger. For simplicity, let’s use a sphere that’s drawn to the same size as the canvas. The formula for a sphere’s surface is A = 4 x pi x radius squared. With a 512 pixol canvas, the radius of our sphere would be 128. So the surface area of the sphere is 823,132 pixols. If what you’re painting is only projected onto one side of the sphere, that’s still 411,566 pixols – about double the surface area of the canvas.

In other words, what you’re trying to do does not come even close to a 1 to 1 ratio between canvas pixols and texture pixels.

Doubling the canvas size wouldn’t help, either, since that quadruples the number of pixols rather than doubling them. Which still leaves you with a large difference between your canvas and your texture. And of course, you’ll rarely be texturing a sphere. It’s far more likely that your model is more complex, making the math of finding the surface area more complicated as well.

That’s why I provided the detailed step-by-step method of ensuring a 1 to 1 ratio. There are no shortcuts.

Thanks Aurick