Home Technical Talk

Wooden beams and planks without baking - Texturing / uv tip

grand marshal polycounter
Offline / Send Message
Obscura grand marshal polycounter
Hi! I'm currently working on a scene that has some wooden props in it, and I wanted to approach it with just a tiling texture , and no baking because I thought it would look fine, and it would save me a lot of time. Also, they are just boxes.  ;)

Some of the results:


This is the material I used on all of the wooden assets. The material also adds some color variation, random offsets on the u of the uv to add extra variation,  and bending on the duplicates of the meshes...


The textures were made in Substance Designer, but the more important part is the horizontal dent lines in the normal , that gives some "edge damage" to our planks and beams to make it look a little bit less tiling, if we align the uvs nicely.

Here is an example with a crate , and the uvs of one plank. The anothers planks uvs looks the same, but they are offset horizontally or vertically to add variation. The mesh uses face weighted normals.


Result on some beams - face weighted normals


More crates:

And thats it...

I hope some of you will find this useful!

Replies

  • FourtyNights
    Options
    Offline / Send Message
    FourtyNights polycounter
    Kinda cool that face weighted normals can skip the HP to LP baking, but I guess that depends on the complexity of the object. But it seems to work fine on those more or less simple wooden things you've done. Interesting.
  • Mant1k0re
    Options
    Offline / Send Message
    Mant1k0re polycounter lvl 8
    Any chance you can show us your material setup a bit more? I curious about the random offset function :)
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Sure. Come back soon.
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    here is a video showing the variations in unlit (my lighting is really dark and orange in this scene, it doesn't help with this). This is a group of meshes making up a stand. When you move them around, they get the variations:
    https://www.youtube.com/watch?v=kNIhXzJ0_IU&feature=youtu.be

    And this is how the material looks like. I marked the more important parts:


    The top left part is the actual offset. It could be done in a couple of different ways as well, there is even one that would remove the need of separated meshes but its too much work for what I need. I could lay out the planks next to each other on the uvmap and just make a procedural idmap based on v position, in the material. But for what I need, this is good enough. The second top section adds the hue and brightness changes, and the bottom section makes the small shape changes.

    More:

  • Mark Dygert
    Options
    Offline / Send Message
    You do have to be careful with this method. With a lot of separate objects, come a lot of separate draw calls and big hits to performance. To help with this you will want to combine those separate objects into one. In unreal you can combine a bunch of meshes into a single new mesh Window > Developer Tools > Merge Actors.
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Thanks Mark, I know about that and I only need a few hundred. Merge actors won't work because of the object position node. Instanced meshes maybe would. If I will hit any performance issue I will look into merging them without loosing the variation. So far no problem. 

    I would also assume it would be kinda hard to put so many at one location in a not retarded level, that it would cause you too many drawcalls for your powerful modern videocard? Maybe I'm overestimating them. Like okay you will maybe see 100 or more at once but that isn't really a big number. If I would have a huge open area with houses only built like this, then yeah I can imagine, it would hurt. I also wouldn't recommend constructing a city like that. For these props here and there, it works fine in my opinion if you can live with the drawcalls. But basically that happens any time when you copy a mesh.

    Thanks for the heads up though.
  • Mant1k0re
    Options
    Offline / Send Message
    Mant1k0re polycounter lvl 8
    Thanks @Obscura, you're the best! That ought to work nicely for what I am doing - I've been working on timber-framed walls for medieval buildings and going the traditional route of sculpting a few of them in Zbrush to use them in a modular fashion, but I'm not super happy about the variation I'm getting and also it's pretty slow. So when all is said and done and I made my modules using Obscura method I can definitely merge actors to cull down the number of drawcalls.

    EDIT: oops, yeah, I missed the part about the object position node :/ I'll have to try for myself and see what kind of result I am getting. 

  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    @Mant1k0re - Here is an idea about how to go around the object position node with minimal amount of work. After all wooden pieces were placed, throw it back into Zbrush and assign random polypaint per subtool if there is such an option for that. This can serve as an Id map. So then you can just use xy component of that multiplied by some number or even by the object position itself. Should give you the same result.
  • Mant1k0re
    Options
    Offline / Send Message
    Mant1k0re polycounter lvl 8
    @Obscura I do not know if Zbrush allos that but I'm pretty sure I can put together a quick little script in Max to assign random colors to sub element in a mesh which should accomplish the same thing if I understand your idea correctly!
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    If you can assign them to vertex colors then, then yeah that should work fine. Single channel should be also enough.
  • Butthair
    Options
    Offline / Send Message
    Butthair polycounter lvl 11
    You can break apart a subtool per element with auto groups, otherwise you can create groups per UV island.

    Another simple variation is having 2 noise masks at different large scales, that way tiling across multiple UV spaces will still have unique noise detail.
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Yeah that could work as well. I did something like that on something else in an another project. It gives a different look though. Also If you accidentally have the uvs of the parts that are next to each other on the mesh, also next to each other on the uv, thats not good.
Sign In or Register to comment.