• Welcome to World Machine Community. Please login or sign up.
June 16, 2019, 02:55:26 am


Read the Development Diary for an inside look at World Machine's progress!

Texturing with real photo images

Started by Onkelpoe, January 24, 2014, 01:31:08 am

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


January 24, 2014, 01:31:08 am Last Edit: January 24, 2014, 05:07:00 am by Onkelpoe

I try to texture some areas of a terrain with a grass texture from a photograph.
It works (kind of), I use the "File input device" to load the image into WM.

After try various "projecting/sizing" settings in that device, I end up with textured grass-areas
but the outcome is not, what I´ve got in mind.

When setting a small texture scale in the device, you can easily spot the tiled-texture-patterns on the terrain.

When going up in scale, the terrain is covert with "one big texture"
(So, finding the right scale is one thing, I guess.)

What I am looking for, is an effect, that creates a similar to real texture-painting.
To avoid visible patterns, the texture is blended and could be rotated randomly .

I am looking for a way to mimic this in WM.

Like doing some "breaking up", "randomize" and "blending" with the texture from the file-input device...
The desired result is a "Bitmap output" with a "realistic" look, with no visible pattern.

What I´ve seen on the blog, a so called "Placer device" would be able to do this (sometime in future releases)?

If so - how does it work?!  :?



Yep, this and other scenarios are exactly what the upcoming local space and placer device support is intended to address! Especially when creating a megatexture-style uniquely textured world, its a pure crime to end up simply using repeating textures.

With that said, there are a lot of ways to improve the look of a simply-tiled terrain texture in the meantime:

  • High-pass filter your textures so that the objectionable low-frequency content (that turn into obvious patterns when tiled) are removed. You can do this in photoshop, or in WM although it takes a few devices (note to self: this would probably be a great macro to make. hmm).

  • Import the texture into several different file input devices, with slightly different scales and also offset the origin from each other a bit. Then use a Chooser (or Height Chooser for even more varieties) to choose between the two versions, driving the control input of the chooser with a noise function.

-- Stephen Schmitt
- Creator of World Machine


Here's a quick example of the second option:

The texture is imported 4 different times and varied with a height chooser.

Of course, if you said "this is a lot of work to do for each texture!" you'd be right. That's why this kind of functionality will become a simple built-in operation very soon.
-- Stephen Schmitt
- Creator of World Machine


Wow! Just awesome, thanks a ton - and when the spacer/placer is live - man this will be a sweet day - Megatexture, we´re comming! :)


January 26, 2014, 11:01:07 pm #4 Last Edit: January 27, 2014, 01:01:38 am by Onkelpoe
Ok, I played a bit with your attached example and it works nice, so far.

Now, I want to know, if there is a way to control the distribution of textures or colors in general a bit better?
(defining some "ranges")

What is the general way to "translate" something like "0-20m = textures from File Input device 1 ( height chooser 1)"
"20-250m = textures from File Input device 2 ( height chooser 2)" and so on?

Sorry again for beeing still kind of noob here...

But I did not get the concept in general. I mean, is selecting something like:

a) First clamp/select by height something and after this attach colorizing/textureing
b) Fist set colorizer/textureing then go to something like select height/clamp
c) another methode

A short explaination or reference to an example would be nice!

Like: "To color/texturize a terrain with a color or texture just from 0-20m you have to setup XY"

Best Regards

edit: attached two images - that look I want to create somehow... pls help!


January 27, 2014, 11:09:35 am #5 Last Edit: January 27, 2014, 11:13:06 am by Remnant
One of the good but also bad things about World Machine is that there's many ways to achieve your goal.

I've attached a world file that shows two ways of coloring by height.

The first method is completely general and you could use to also color by slope, erosion output, etc etc, and use textures instead of colors.
The second method (colorizer) works only with colors, and makes it harder to precisely place at a certain elevation, etc, but lets you quickly and easily create many color bands.

There are even more ways to do it than the above, but they represent probably a simplest way of looking at the problem.

So if you, for example, wanted to add an additional color band to either method:

Method 1: Copy-paste the three device set (selector, color generator, chooser). Wire the terrain into the selector input. Wire the previous color layer (last Chooser) into the first chooser input. Wire the output of the Chooser to the Overlay View.

Method 2: Open the Colorizer, click somewhere in the gradient range (left = bottom, right = top) to add a color stop, then adjust it to taste.

Back to your original question: So, if you want to, say, make 0-200m use texture 1, 200-800m use texture 2, you would use the first method described. Set the min max values in the selectors to correspond to those values, use a file input instead of a color generator to import your texture instead of just using a solid color, and you're good to go.

-- Stephen Schmitt
- Creator of World Machine


January 27, 2014, 02:12:19 pm #6 Last Edit: January 27, 2014, 02:15:33 pm by Onkelpoe
awesome! thank you one hundred times for your great support  :)

This was the thing, I was looking for  :D


Quote from: Remnant on January 24, 2014, 12:24:14 pm
Here's a quick example of the second option:

The texture is imported 4 different times and varied with a height chooser.

Of course, if you said "this is a lot of work to do for each texture!" you'd be right. That's why this kind of functionality will become a simple built-in operation very soon.

Any rough idea, when we will have the mentioned functionality ?

-Best Regards


...and if possible, please may add TriPlanar projection, this would make WM even better!


The placement device will at least at first give the primitives needed to do this easier. Achieving a multilayered/broken up tiling would be very possible at that point with a simple macro.

Regarding triplanar projection, I'm curious if you could go into more detail how you would see this working: I can't see myself how WM could bring anything to the table here. Along any axis but the vertical, there is not a unique relationship between a texturemap and the physical terrain; thus any side projection textures will not be unique, and might as well simply be basic textures without referencing to the underlying terrain. Or am I wrong?
-- Stephen Schmitt
- Creator of World Machine


Quote from: QuantumTheory on July 17, 2012, 10:38:53 am
I know I asked about alternate mapping methods earlier, but here goes again.

TriPlanar Projection allows artists to project textures on all 3 axes. Currently, only the Z axis is supported in World Machine which makes texturing strata, or vertical faces, impossible. IMO, World Machine badly needs this and if included would make it extremely powerful.

Here is a link regardin triplanar projection in CPU Gems 3, with source code:


Scroll down to Section 1.5 "Texturing and Shading"

I got something similar in mind, if that helps?

Basically, I want to project a texture on a steep surface, withour getting it streched and look rubbish...
Think of "Rage" game, this is how I want a step-terraced-canyon to look like: http://www.wallpaper4me.com/images/wallpapers/ragecanyons-686719.jpeg

Kind Regards


Hi Paul,

Not until we get the secondary displacement or similar functionality for producing overhangs or enhancing cliffs inside world machine, would we need Tri-planar projection feature. Until then, we cannot build consistent cliffs anyway. And for the rest of terrain profiles, a y-axis projection would be sufficient.



March 14, 2014, 12:17:04 pm #12 Last Edit: March 14, 2014, 01:27:43 pm by Remnant
More to the point, I'm not seeing the value that World Machine could bring to a tri-planar setup. Please correct me if I'm missing a use case! My reasoning is below:

Essentially, tri-planar projection is a render-side technology. It indeed can vastly improve cliff texturing, especially in volumetric scenarios. However, in tri-planar texturing the SAME texture is applied to ALL cliff faces along the non-overhead projections. Nothing to be done here -- there is NOT a 1-1 relationship between texel and worldspace location like there is with a heightfield/overhead projection scenario, so you can't create custom textures for world locations. This means that WM has nothing to add to the conversation -- all you do is create your texture to apply to the side, and then apply it in the renderer.

Now, there are a number of interesting tweaks you can do to get around this, such as varying the side projection textures based on a material map projected in plan view. This produces a pretty powerful result, but in that case for example WM can already produce the material-map output you need. Adding tri-planar support to WM's internal visualizer would help get you a look at what you're doing sooner, but it won't help WM generate content for it at all... which to me means that since WM is primarily a modeling tool, efforts would be better spent on things that will produce better model outputs.
-- Stephen Schmitt
- Creator of World Machine


@stephen: I agree, because if you do implement a proper projection scheme for secondary displacement or tri-planar projection, it has to work in object-space, which in turn means tiling goes out of the window! But still Users who work on non-tiled terrains could drastically benefit from some physically consistent cliffs. I just request a single device (a new overlay device for rendering in object-space), which would support an input and mapping scheme for a secondary displacement, so we can model cliff details and overhangs accurately.


Quote from: Stephen on January 24, 2014, 11:56:50 amOf course, if you said "this is a lot of work to do for each texture!" you'd be right. That's why this kind of functionality will become a simple built-in operation very soon.

Hello, where can I find this functionality? I was searching reference guide for local space and placer devices, but nothing there. Thanks!

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.

Please leave this box empty:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:

Shortcuts: ALT+S save/post or ALT+P preview