Adding texture detail with noise shaders in maya

procedual_texturing_with_noise

I am working in this old-looking scene where I need too add some dirt/moss. Most of the textures are done in photoshop where I add all the details needed, but in some objects it would be less efficient doing that way, which requires some sort of uv editing and hand painting the details in a way that “looks good”. So instead of that we can use procedual shaders/nodes to mix some tileable textures untill we get a decent result.

The problem

tiles_problem

As you can see in the above image I am trying to texture the tiles (wire brown objects) and I could make some uv’s and transfer between the objects since they are copies of each other, but I need to add some textured dirt and other details that are not “per-object based”, so every object will have a base texture and I will had some procedual map to mix the moss between them, that way all the tiles have a different look and it looks more natrual, hopefully more realistic.

The main textures

textures_tile_and_moss

So I started by downloading some textures of tile and moss, did some editing in photoshop to make the textures more even and somehow tileable to avoid too pronounced seems.

Basic network

tiles_network

In maya I made a simple network, creating a basic lambert for “look development”, and loaded the tile texture as a projection, in this case triplanar projection will help since I didnt make uv editing at all ( remember you should have uv’s, dont delete them ). The triplanar projection comes in handy sometimes to quick texture some objects, like the maya docs says, this is somewhat like fabric being wrapped around the object.

I also placed/scaled the place3Dtexture node to fit a single tile, it’s not 100% necessary but you will be able to control better the placement and scale of the texture in the object as you are doing your test renders.

Test render

tile_preview_render

I did a test render to check how is looking and for the work that we had so far it’s good enough. We can see some seems but I should say at this point that my goal was to render this as “middle-ground” objects so we are doing fine.

Noise shader setup

first_aiNoise

I am working with arnold renderer so I will use the aiNoise shader to create the mixing pattern, you can use the default maya noise nodes if you wish. So hock up the aiNoise to your test lambert, above you can see my setting, you will have to experiment with it, remember that this map will be used for a mask so keep it somehow contrasty by increasing the ocataves, amplitude, etc. I give it a bit of distortion to avoid the “noise look”, the scale is very important, you can experiment with the offset to get some sort of  ”seed” and the most important thing in this particular scene is the “Coord Space” attribute. You have to set it to “world”, so the noise is in 3D space, like intersecting the objects, if you set it to “object” space all the tile objects will have the same pattern.

noise_network

Layered textures works preety well with arnold, and I like to use them to mix maps, noises, materials and so on. As you see in the image I create a layered texture with a white and a black swatches, then I connect the aiNoise message to the layered texture input 0 ( 0 is the first ) alpha, the first swatch should have an over blending mode by default. Then just assign the layered texture to the test lambert.

aiNoise_render

This is the result that I have, here the shader is already for both tile objects, the rounded and the bottom squared ones.

Final shader network

aiNoise_render

So by now you already understood the workflow, as you see in my final maya network, I imported the moss texture and used it in the layered texture as a second map, using between another aiNoise shader to mix it with some color.

At this stage you should setup your render resolution and see how it looks from the distance/angle you will eventually render it and make some changes. In my case I used the layered texture result to make some bump mapping, did some minor color correction ( remap hsv node, file texture color gain ) and also I felt like I needed to add some contrast between the top tiles and the bottom squared ones, so I used another material with a multiply node for the bottom tiles. Too bad we can’t (yet) use tripleSwitch node with arnold, that way we would not need 2 materials.

Final Render

aiNoise_render

In the end I was happy enough with the result, the main goal was to add some random detail to the tiles to give it a bit more life and not be that orangy flat color. And it fits the scene’s old look. As a final render if you are using arnold I like to use a sharper filter like “catrom”, it will make your textures look better, with the downside of having more noticeable noise. I could have increased the anti aliasing settings but it will work for preview purpose. In my full render these objects will be more distant and they will look even better, if it looks good it is good.

Hope you guys picked up some tips in this article to apply to your own projects, see you next time.

Usefull Links

http://www.mayzie.net/maya-tips/triplanar-projection-mapping
  • r l

    Are those XSI-like render regions?!

    • therenderblog

      Hi there. It is a viewport render tool that I wrote, still work in progress. But yes, it’s similar to the XSI render regions.

      • r l

        Looking very nice! ;)

      • Adam Cheshire

        Wow, looks like a brilliant tool, any chance of a future release?

        • therenderblog

          I have been working on that ;)

  • therenderblog

    I just released a detailed guide on how to build your own viewport render in maya:

    http://therenderblog.com/maya-viewport-render/

  • Christopher R

    Is it safe to assume; that 3D textures are the same as using World coordinates within the aiNoise for Arnold ?

    • therenderblog

      For sure, same concept.

      Be aware that some custom procedurals that you might download from 3rd party sources can be bitmap based, and you cant fully take advantage of “resolution free” feature for example.

      • Christopher R

        How do you know if they are bitmap procedurals ?

        • therenderblog

          You will easily start to notice the tiling pattern, and zooming in you will notice the lost of resolution. But to be honest I see that kind of procedurals more in other 3D apps, like C4D.