ZBrushCentral

Ptex in ZBrush - Disney's open-source per-face painted textures

http://www.disneyanimation.com/library/ptex/

Seems like this would work really well with ZBrush allowing for more detailed texture painting that’s independent of canvas resolution. No need for UVs either. It’s similar to the polypainting method that ZBrush currently has but Ptex has the ability to increase or decrease texture resolution independently of the mesh and store the result in an exchangeable open source format that is virtually resolution independent. ZBrush could perhaps output a Ptex map for use in compatible renderers like Renderman. Additionally, the texels could be used as a virtually resolution independent source to bake pixel based textures for any tool that has non-overlapping UVs. I guess the trick would be sculpting and storing RGB values as ptex data simultaneously.

When I first read about Ptex, I immediately thought about using it in ZB. It just seems like a perfect marriage. An open source library will be available soon. What do you guys think?

In essence, PTex and ZBrush-AUVTiles mapping are similar. In AUVtiles, the rectangular area of the assigned UV/pixel space can be the same for all polygons or auto-adjusted based on the actual 3D area of the polygon. It should be possible to export AUVtiles in format that is compatible with ptex and this feature will be considered for future versions of ZBrush.

UV mapping has hampered my productivity on quite a few projects. In many cases junior artists (and sometimes even senior ) will construct models in Maya and improperly UV those models: no UVs; empty UV sets; duplicate UV sets; winding order mixed up; overlapping; inefficient use of texture space; etc.

[Ptex](http://www.disneyanimation.com/library/ptex/) would solve all of those problems - which may not necessarily be caused by an artist using Zbrush.:D The most relevant feature for Zbrush artists would be the capability to dynamically and non-destructively alter local texture resolution on a set of faces - eliminating the need to adjust adjacent UV's, and possibly resize entire texture maps. The [Ptex website](http://www.disneyanimation.com/library/ptex/) has more comprehensive details and even a couple of videos.

Actually I don’t think that Zbrush can do this:
http://www.disneyanimation.com/library/ptex/ptex-slides.pdf
Any area can have it’s texture resolution increased or decreased (locally willout a global subd level added
http://www.youtube.com/watch?v=GxNlAlOuQQQ&feature=related

a lot of the advantages of ptex seem to be shared with polypainting (and i have a sneaking suspicion that there is a very close connection, perhaps just having a separate texture subdivision that is connected but distinct from the resolution of the general mesh)… ability to 3d paint, graceful ability to deal with seams, can locally subdivide areas to gain more “pixels”.

it also shares the same (big) problem - no photoshop! non human readable/editable texture (you can’t open a ptex image in photoshop and paint intelligibly) (until you bite the bullet and uv map and then bake, but then this creates a conversion procedure going back and forth). basically, with ptex, you need your 3d app to be a capable painter… fortunately, zbrush is very very capable in this regard.

the only real advantage seems to be growing support in rendering apps (polypainting has to be baked to be used in maya, etc) and having ability to control the texture resolution independent of mesh resolution.

oh and that “sizing by derivative sampling” on pg 26… that’s pretty nice. in zb with polypainting, we’d get “sizing by limit surface” i think and that should be fine for most purposes but the ptex version is very very cool.

but that’s a pretty cool advantage. would definitely be a nice feature to have and especially with mari and renderman jumping onboard, increasingly important as an industry feature.

jin

yah… i have a feeling that it actually still is polypainting (or vertex painting)… it’s just creating a paint mesh that is connected somehow to the polys of the model mesh.

It is not Polypainting. It is AREA painting. Zbrush can’t achieve this at today day.

Try to paint a long table, whose main surface is composed only by four vertices. You can’t paint it the high area of the table with detail, you can only paint a four gradient color on the main table surface.

Actually Zbrush users would need to waste time in subidvide the model getting all polygons at the same area size for paint all table areas homogeneously.

I recently read somewhere that Disney Animation Studios has pretty much eliminated traditional UV’s entirely and now use only ptex. Makes sense considering the time savings involved, especially in big projects that are already expensive enough as it is.

I also just came across this about real-time ptex, which surprised me since it didn’t seem very well suited for that type of use:

http://developer.nvidia.com/siggraph-2011/

This isn’t true at all.

This is true unfortunately, but then again the same can sometimes be said for traditional UV’s, especially when dealing with difficult unwraps.

Polypaint is awesome, but ptex can do everything it can, without being limited by polycount, and support for it is growing. Plus you can use multiple textures for different things (displacements, diffuse color, specularity, etc). How many can polypaint handle (serious question, I don’t actually know now that Z4r2 is out)?

UV’s are the bane of the computer graphics world and why this Ptex isn’t fast becoming the standard is beyond me. 3DCoat has implemented them, Mudbox is on their way (rumor is next release if it isn’t already there) so I hope Zbrush is on the band wagon. Regardless, Zbrush still rules.

Its been there since version 2011. :slight_smile:

oop - then I’m way behind :slight_smile: I try to stay away from Autodesk products. It’s tough since I use Inventor 9 hours a day :lol: That ends tomorrow! Woohoo!!! Freedom at last!

Ptex is a very new technology and is only used by the big companies. It will be some time before it becomes the standard but it looks great. Weta studios used it for Avatar using Mari. I think the biggest reason was to eliminate stretching and seam placement.

Im not sure about editing the texture later. Can it be unwrapped at all to then paint on a flat surface and photoshop textures?

Flatten? No. Photoshop? Yes. :slight_smile:

Actually, it probably would be possible to flatten a selection of contiguous polygons and then flatten them as if they were a plane aligned to screen, within limits of course. This might cause stretching of anything you paint when re-wrapped though, unless there is a way to unwrap those squares in such a way that it takes possible stretching into account (i.e. make them non-square for painting while unwrapped). I can visualize it, but I’m no programmer so I don’t know if it would be possible.

As for Photoshop, I watched a Mudbox video showing that projection painting can be done (click on ptex in my sig). The image (of your model) that you paint on is locked and can’t be rotated within PS though, meaning you would have to go back and forth a lot if you wanted to do all of your texture painting that way. When you look at Mudbox, and especially Mari, I can’t help but wonder why you would even need Photoshop, other than to edit/create 2D textures for projecting like a stencil in whatever app you’re using to 3d paint.

Ptex is a different way to approach UV mapping, and thus requires a different way of thinking, very much like polypainting. If one desires traditional unwrapping, there is nothing stopping an artist from doing it that way. It too requires a different way of thinking though, because the unwrapped UV’s usually form a pelt and likely other various UV islands. Personally I find 3d projection painting much simpler, plus it saves time. I never enjoyed unwrapping to begin with though lol. :wink:

The fact that there are already commercially available apps (Mari to name one) means that it IS a standard.

Ptex should not replace UVs. It should just be another option in the toolkit. There’s no reason to get rid of UV mapping, especially for painting in UV space. Ptex is just another option that makes work more efficient.

You wouldn’t have to subdivide to get resolution (as we do with polypaint). You don’t have to spend tons of time on a temp UV setup for models which are being updated near the beginning of a project. UV unwrapping when topology changes is hellish: you introduce new UVs and make sure that they don’t overlap, stretch, compress, etc. Models can change so much that you have to throw out an entire UV set and start over. Ugh.

Ptex should function much like UV mapping does already: If a model changes, you transfer maps from one Ptex set to another. You should also be able to use more than one Ptex set per object.

Dealing with seams is my biggest problem with UV mapping. Ptex seems to solve this problem.

ptex support please