Making Logs Texture

HI Folks:

I am trying to create a good texture for the log walls of a log home I am drawing. I have been trying and trying to find a good photo texture that I can create the different maps from, but am not having any luck. I suspect that I can model the logs themselves, and put the colors on the etc, but that will really REALLY run my vert count through the roof, which my computer cant afford, so I’m wondering if I can create them, texture them etc, and then render them and then turn them into the different maps and the diffuse texture (by rendering a full color png). If so how should I go about this? Particularly not sure about the Normal, Specular and displacement maps to make the walls look like walls. The logs this project uses are milled logs, not natural shape logs.



I’m thinking Skorupa’s method for generating the rings procedurally. Geometry wise it would only be bevelled various lenghts and size, instancing them where you want them and letting the random input do all the variations - not a single log would be equal. In the one I downloaded, the pores seem to use object coords directly, so I had to make my own way of randomizing it. Once everything is done, you can delete unseen faces and bake out the result into complete walls wasting less texture space. This is what I got using that approach (I made a random generator (noise texture giving three random values per random) and fed pretty much everything with it, just for giggles):

Another way would be to use a single (long) texture with random UV lookup per random instanced object/log, based on a prerendered output of the skorupa procedural above, possibly mixed with real photos.

WOW, that looks FANTASTIC!!! the geometry of the logs is slightly different than what I use, but that’s easily adaptable, unfortunately, I am not nearly advanced enough to understand most of what you wrote, and would love an explanation, also where can I find that wood texture that you use in the example???


Hi Carl: Not sure how do do either of these things, could you possibly point me to a reference?


Hi Folks:

Sorry for the string of messages here, Im kinda adding stuff as I try it and it works out.

Here’s my first attempt at the log wall – the middle part looks ok, but for some reason the wood texture is not going the right length, I suspect I have something plugged in wrong in the node setup,

Thanks for all the help, this shows great promise


I’m not sure, but did you ensure the z coordinate is aligned with the correct direction? Iirc the setup is based on z pointing upwards, the way a natural tree is (rings going around z axis as on a natural standing tree). So when using it on laying logs, the z has to be pointing in the now laying direction. The logs/boards are essentially a part of a solid tree trunk.

In my version I found that the scratches setup was also using object coords (same as the pores), so I had to make same sort of randomization to them. Also, the scratches use a voronoi method I really don’t like (due to complete lack of gradient - which is required for a good bump effect), so I replaced “generic scratches” with more of a “wounds and cracks” in the wood. Decided to reduce the use of randomizing everything to get a more uniform look. This is what I ended up with:

Not perfect, but I think improved.

If you only need the inside walls, prior to bake you just delete all the faces that will never be seen. For an interior shack/lodge, that would be most of the top/bottom faces , back faces, and most endgrain faces. In most cases, just the bumpy (caused by bevelling of individual logs) face on the inside, which utilizes UV space better than baking a lot of faces you will never see.

For my own personal projects where I use this, I prefer the use of random and instanced logs with a very complex wood material setup that uses tons of generators. It will get very slow, but I don’t have to sacrifice memory for textures and spending time on UV unwrapping/baking.

The other approach I tend to use more for work projects which I need to render fast. Wood is a bit more unforgiving to work with than i.e. concrete, in that wood tends to have a defined direction to the texture (grain direction). Meaning I can’t do tricks like rotation and random scaling, making it harder to procedurally blend with similar textures. It’s based on using a few wood textures of similar characteristics (but not identical) on top of eachother, but randomizing coordinates and scale variations for each of them. They need to be decent resolution, but for work stuff I have enough memory for it (Quadro M4000). This is to get rid of that horrible texture repetition CG look. That comes for free using procedural textures (also no UV needed), which instead can be time consuming. I’ll most likely end up using way simpler “wood like” generators than this though (which I’ve never used before, but I keep it around for reference).

HI Carl:

Im not sure if I have the rings lined up correctly or not, nor am I sure if the nodes are set up right, could you upload your copy of it, so I can work from it, i cant follow the links on the picture from the thread.

I’ll start looking at the z direction here after dinner


Hi Taholmes,

I suggeast to look at the bcon14 - Youtube - Vid with Bartek… There is in general explained very well, what’s the issue, what are the solutions and how he did the wood-Procedual-textures…

Good luck…

(as far as I remember… it’s a bit less complicated, like your’s Carl… sorry for that, no ofense… ok ?)

Hi, Thanks Mike:

I’ll go have a look at that right now


Hi Mike et al

thank you very much for that link, and all the help. Does anyone have the original wood shader from BC2014? The one I have is an offshoot of it and Has a lot of additional inputs, and does not allow me to use some of the techniques that he outlines in the video? Ive tried searching here and on the greater web to find it but not having any success.


I believe what I used was based on Sir Skorupa’s (:p) wood grain pattern generator setup. I don’t know where I got it from, but it’s outdated (not using principled) and buggy (ref parts of it not using the randomized coords as mentioned above). What Skorupa creates iirc is the wood grain pattern (which may be enough, then do everything else based on a rendered out texture for speed which can be limited to single channel 8bit which is good for memory), not color selection, connection with roughness, bumps, and general shading of wood. Nor does I think he’s adding pores, knots, deep cracks and surface scratches.

His woodgrain pattern generator is located within main node group of the material I downloaded. I could upload that as standalone, I’m reluctant to upload something that doesn’t work well (I was only messing around with it so don’t have it around in “fixed” state).

If you want knots, you may want to check out this vid. They don’t have to be painted like he does, using a manipulated voronoi works pretty well too (no UV required).

Cool – Thanks Carl – Excellent stuff here – I really appreciate it a lot

I’ll keep fiddling with it :slight_smile:


Hi You two,

yes Bartec did tzhe base grain shader, with some hints on colouring. He also mentions, that he used the shader for every singel plank, whilst every single plank was a seperate object. (only by that You can get the variations on the object-coord-inputs). Then he baked everything and made a UV-picture for final render. (otherwise you might face issues with render-time and/or memory). Normal and Bump can be generated in the same way and afterwards “pushed” together in the final render-shader.

I remeber, that I reproduced the node-set-up once - long time ago - up to now I could not find the blend, where it’s in.

BUT!! I found something… did not look in yet, but I think it’s the one from Bartek:

If not… well… someone has to find the original, Carl or me… :slight_smile:

Add: Yes it’s the one from him, but the whole one, not only the partial he showed in the BCON. There’s also a readme, which explains the different meanings of he input/output of the main-shader. Good luck! It’s really fine done. :slight_smile:

Hey Thanks Mike – REALLY Appreciate the help – I’ll look now and again after I get home from work ( :smiley: ) dont really wanna go to work, would rather stay here and play with blender – LOL



You’re wellcome… :slight_smile: - And yes, that’s why we are here… :slight_smile: have a nice day too…

Yeah, that’s the one, couldn’t post it because I don’t have it at work.
The “bug”: Note how inside the main group pores and scratches use texture coord/object with no influence from the random input.
It doesn’t create an error in the example because all cubes are actual cubes and the origo offset is at world 0,0,0 for all of them.
If you use instanced cubes, the origo offset would be the same for each cube and pores and scratches would end up identical for each cube.

In some cases, such as scratches from usage on lacquer or something, you would wand them to not be influenced by random input. If that is the case, I would use texture coordinate/object and then link it to some empty outside for trial and error, with an image texture defining a mask on where those scratches would appear.

Why is it on github of all places? I would not have found it. Would it be okay to update it (what I consider to be problems, maybe add some features) and make it available through blendswap (it’s GPL)?

Hi Carl,

it has been pushed there about 3 years ago… I do not know, whether the pusher is reachable anymore there… But I guess updating?, yes, as fare as some readme or explaination to this would be uploaded also there… I did not look into the licence-file there, if it’s GPL or something similar… why not.

By the way, I found it by using Bartec’s full name :slight_smile:

Post-edit: Licence is GNU 3.0 - so no worries about adapting. Only to mention that it’s based on… in this case “Procedural-Wood Version 5 by Cédric Brandin”

2nd post-edit: And! I never used it seriously, so I did not find the issue, you found. But it sounds well, to change there something, for further use. :slight_smile: