Topics by tag:
Recently published articles by Dave G:
Stacks of paper and money are one of those things that would be complete slowverkill to create as individual planes with SSS. Unless you need them to flap at the edges, a stack of bills can be easily faked with a series of lines along the edges that are then used as a mask for a stretched edge fake in Photoshop, and later as a separate bump map:
The render (notice the light catching the bump on the stack at the bottom):
The one complication to this workflow is that Photoshop will usually detect that you’re trying to edit a bank note image and not let you edit it:
That’s why I had to do the initial layering in the excellent and cheap photo editor Pixelmator and the banknote image wasn’t detected in the layered image used above. If you want to do a dollar stack, you might need to use The GIMP if you’re looking for a free Photoshop alternative.
You can spend all day making low-compression UVs but if you have seams, there is only one way to avoid them showing up for displacements and normal maps (without using Ptex): they must meet parallel in UV space. There’s no way to have two pixels rotated along the seam and have them meet nicely. Notice my meteorite’s UVs and how the displacement is perfect along the seam:
A clearer picture with no texture:
The dead-simple UV layout might surprise you:
Watch what happens if I use a set of UVs that have lower compression but form an organic shape with no hard edges:
The displacement render shows a seam:
The goods news is that this makes UV layouts pretty easy. All you do is pin the edges after squaring them and relax/unfold the inside edges. Sure, you’re getting a wonky proportion of object to UV space along the edge but it’s a lot better than having a seam. Here’s the Maya workflow for making squared-edge UV shells:
Headus UV Layout has a better method for preserving straight edges while unfolding and relaxing. You just hit the i key over the edges and it will straighten them when you do the f key unwrap. If you don’t have UV Layout and you have to deal with UVs, it’s an amazing app and highly recommended.
Where Ptex fails
The reason Ptex works so well with quadrangle faces is that there is no shearing of pixels and every texture edge is meeting parallel. Add in a triangle and Ptex suddenly doesn’t work so well. Look at a default Mudbox sphere near the poles:
So, if you’re going to use Ptex, make sure you are using a nice quadrangle topology or keep any triangles well tucked away.
0 notes | Permalink
UVs are, more often then not, something you cope with rather than welcome into your workflow. But they aren’t always the spawn of Satan. If you use UV overlapping, it can save you a lot of time texturing repetitive areas like the windows of a building. If these areas all have the same topology (number and layout of faces), you can save yourself a lot of work. Here is a quick video showing how you can extract areas of similar topology into distinct units that can then share one set of unwrapped UVs:
The video shows a quick-and-dirty unwrap so don’t think I’m that sloppy in general. I’m using my Facer MEL script palette for the UV transfer portion. Once you’re done, combine the separated mesh and then you can just drop one window graphic into the texture and have them all share that:
If you are working on a mobile game, this kind of high-efficiency texturing is needed to reduce load times and bandwidth.
If you need more variety for your windows, or want to later bake a separate occlusion dirt map that uses unique UVs for the windows, take a look at my tutorial here. This way, you can combine the quick work of a tiled texture with the variety of a hand-tweaked dirt map by using two UV sets and a multiply/divide node.
Sorry about the low post count lately. Been very busy finishing a magazine, writing articles for Ars Technica and I’m finishing an e-book that I’ll be announcing and publishing soon.
After using procedural texture workflows for a while, you get used to having access to individual components of a shader and, if you’ve ever used something like UDK where vertex weights can be used for rapidly mixing shader components, going back to a big, static, memory-hog texture for something like terrain is just not appealing. So if you’re looking for way to get the blending benefits of a paint workflow with the control of multiple layers with individual UVs, there is a simple way to do it. Create a Blend Colors utility and plug your two textures into the two slots of the Blend Colors and plug that into a Maya Phong, Lambert or Blinn material (the V-Ray or mental ray shaders come later) so you can see a good preview of the material. Then duplicate your object and assign a new dummy material that will be your paint surface. Once you assign a 3D Paint Tool texture, you can use that resulting file as the input for your blend (you only need to plug in the red, green or blue channel of the texture to the blend slot since it needs a luminance value, not an RGB texture):
The benefit of this slightly odd workflow is that you can get a realtime preview of the blending and change UV parameters for each material. If you lock the layer that the paint object is on and don’t offset the duplicate, it makes it more intuitive without eyeballing two different objects. Here’s an example of that with a slightly more complex shader network, showing that you can blend the bumps (or anything else) with that Paint Tool file:
At that stage, it’s a bit overkill for previewing though. Once you have a good idea of the blend, just plug the textures into V-Ray materials and then plug those into a V-Ray Blend Material, using the 3D Paint Tool texture as the blend amount. Make sure you have Save Texture On Stroke set for this since V-Ray relies on the disk file, not just what’s in memory. If you were really adventurous, you could paint only on the R, G, and B channels and use those separately as inputs for different blends or Fresnel amount, etc, much like a vertex painting operation in UDK (I made a sample file with this setup if you want it). If you want to keep your preview material on your object but render the V-Ray Blend material, that’s easily done. Just link up your two materials:
And have Maya toggle the V-Ray shader at render time using this method. That way, you get the best of both worlds: flexible materials, good visualization, and a proper V-Ray mat for renders.
If you would rather not worry about UVs and things like that, you can always use a Ptex texture painted in Mudbox or 3D-Coat and plug it into the blend slot of a V-Ray Blend Material. But that doesn’t give you a real-time preview like the method above does (at least not yet in Maya 2012 - hopefully we’ll see this in the future). This is really just a technique for preserving UV materials as layers and quickly visualizing things all in Maya.
15 notes | Permalink
My workflow for creating linearized swatches is pretty simple. I usually use the LWFMe button in V-Ray Tuner and use the automatic LWF in V-Ray. But it’s a bad idea to use the automatic LWF when using SSS materials, so this is what I do for swatches in those cases (after hitting LWFMe to set up the linear workflow but then disable the LWF toggle so everything else like gamma is correct but swatches and images still need correction):
11 notes | Permalink
I found a bug in Mudbox 2012 where 16-bit channel PNGs load as 8-bit but wanted to preserve the edits I’d done on this texture. So I copied the edited map to the 16-bit original and used difference mode to show where the changes were done and loaded that as a mask:
This is a good way of checking if two images that look similar are actually different.
0 notes | Permalink
I often select areas of meshes by using the select UV shell command – “polySelectBorderShell 0;” mapped to a hotkey and use temporary UV shells as a faster alternative to selection sets. It’s much easier to select an edge loop, split a UV shell in two and then use the command key to select the rest of an arm, as opposed to using a haphazard drag selection:
If you already have a finalized set of UVs that you don’t want to mess with, just make a set that can be used for these temporary shells and your textures will be preserved while making these new shells:
Delete that set when you’re done or keep it around for tricky shell selections that might spring up later.
I’ve been doing a lot of skin stuff lately and getting into the proper SSS workflows for V-Ray. While many people have different settings they prefer for a different type of look, some favouring ultra-realism, where I set mine to be slightly on the illustrated side, the workflow is the same between those two looks: you make a V-Ray blend mat with a V-Ray SSS2 base material with its reflectance set to black (none) and use a coat V-Ray Material with black diffuse (contributing nothing) but a mapped, glossy reflectivity for the shine. That is blended by a Fresnel material, which is extremely important – it handles all of your reflectance and gives your skin the healthy Palmolive shine that nosy witch Madge always carries on about. This shader softens your hands while your girlfriend asks you to do the dishes:
Here’s the general layout of the V-Ray Blend Mat shader network:
and a snapshot of what those three input textures within the V-Ray SSS2 material:
You can see which they drive in the title bar name of the image.
Since this workflow has you create at least four materials (diffuse, SSS, overall and specularity), one of the things I learned to do early was to use Nuke to convert my single Mudbox-painted skin texture to these four output textures that have completely different balance and contrast. Since most of my skins are pretty similar and I often revise things mid-project, this non-destructive workflow is a staple of all my skin pics (nyuk). Here’s a peek at the Nuke scene that I use as a template:
At the left is the flattened Mudbox texture and the right half is the SSS material generated from the adjustments to the Mudbox diffuse texture. The initial rotopaint is a dodge to lower contrast since any contrast with SSS textures will show up a lot. The second rotopaint at the right is a painting in of increased finger nail reflectance. All our textures done in one shot. Not bad.
3 notes | Permalink
Often the source material you have for a texture isn’t ideal, forcing you to do some finicky Photoshop work to remove distortion. This has always been most complicated when you have a curved surface and you need to build a straight edge out of it for texture painting. The Photoshop Edit/Transform/Warp can help with these but it’s never perfect, so you end up layering and mixing edits, which is slow. Photoshop CS5’s Puppet Warp is the ideal way to fix these things:
You can see how there’s minimal blurring going on there. If you have something more complex as a source shape, you might need to do it in parts:
I just picked that one off of Google Images as an example – you can tell the blurry parts aren’t really a great for texturing. Puppet Warp is great but it doesn’t save you from the “crap in, crap out” rule.
5 notes | Permalink
This workflow tutorial has been sitting on my desk since I finished the last illustration project and shows how to use a Multiply/Divide texture utility to composite textures. It applies to all rendering programs that recognize the Multiply/Divide utility (Maya’s software renderer, mental ray, V-Ray being ones I know that do and Maxwell is one I know that doesn’t). The need for this comes up when you consider the following problem: you need a very detailed tile, like asphalt, but you want to add dirt or other elements that aren’t tiled over the diffuse colour, to give it randomness or painted details over top; Or maybe you want to have a camera-based illustration projection but you want localized dirt over top. While you could potentially do this with a very high res texture, handling it with Maya gives you more control over the final result, especially as you add complexity, and it also saves memory.
So here is a quick rundown of the process to multiply a dirt (AO) pass over a tiled texture to be plugged into your diffuse colour slot:
Here’s a video to show it clearly, using a greeble object so it’s obvious what’s the occlusion and what’s the texture you want to multiply over:
V-Ray 1.5 for Maya had problems rendering Multiply/Divide nodes as a supported texture format but it’s been fixed in 2.0 (and earlier 1.5SP1 nightlies). Anyway, once you get that technique under your belt, you can start to build much more complex procedural textures.
Update: here’s the greeble file with baked AO file if you’re wanting to look at the setup.