Rendering of a sidewalk

aths

Newcomer
Inspired by Xmas' general idea to compose a large texture out of smaller tiles, I tried to do that for a sidewalk, since it is also a sort of compression of photographed textures, which is the main topic for my diploma thesis.

This is the result:

6.jpg



To come to that point, I was outside and made some photographs of typical sidewalk tiles. Then I cutted some tiles out and resized them to 128x128. I also applied a sharpening filter. The first idea was, to took randomly a tile out of the pool from 18 tiles:

1.jpg



One can easely see that some tiles are repeated. To make that harder the second idea was, to mirror, flip or resample with X<->Y swap. These are 8 combinations of rendering the same tile! This came out to such picture:

2.jpg



While this is better, it is still not good enough. The next idea was, to use randomly different shades of brightness. Then one need only very few tiles to offer variety:

3.jpg



This leads to another problem: Tiles with noticeable attributes make it easy to see the repetition. Therefore its better to "roll" such tiles less often:

4.jpg



This looks good enough to assemble large textures.

5.jpg



That texture was used for the initial screenshot.



Another point is magnification. Since a single tile is only 128x128, one can easily see the bilinear artifacts:

detail0.jpg



I made a detailmap out of pure noise and applied it which came out to:

detail1.jpg



Since the noise is no real information, I am surprised what this "details" can to: For me its a real improvement.
 
What about doing some work on tile edges to sort of clean them up, before you render an adjacent tile or mip level? Similar to what you have to for a correct Wang tile, I think.

I've tried finding software to help me create Wang tiles from photographs, for a benchmark I'm in the middle of writing, and I remember there's a step for cleaning up tile edges when mipmapping.

Your noise texture does really help, too. Is it because it's detailed image data to start with? Sorry, my knowledge isn't too great with these things.
 
You mean pavement right? :LOL:

Nice, I think the cleaning of tile edges is a good idea, but what about combining a normal map, that may sort out both areas. The noise helps a lot, but how about using 256x256 textures for the tiles?
 
Thanks to all for the feedback.

What is more common in english for the shown textures? Sidewalk or pavement?

My exercise is not to find a way for a best sidewalk renderer, because it is more important, to store a lot of high-res textures. So I will try to discuss ways to compress photographed textures, for example with colour subsampling.

Dave B(TotalVR) said:
The noise helps a lot, but how about using 256x256 textures for the tiles?
That is exactly what I suggest in my diploma thesis. While we can use a detail map, in the end it is better to have "real" resolution.

Nevertheless I also tried a detail map based on perlin noise. Lets compare the normal shot, then the pure noise map and then the perlin noise map (with additional pure noise, though)

base.jpg


base_noise.jpg


base_pnoise.jpg


Perlin noise obviously adds pretended "real" information which is noticeable due its heavy repeat, though. Its extremely important to fade such low-frequency detail content out with using user-defined MIPs. That screenshot is faked, I blended the perlin shot with a blured alpha border with the base shot.
 
aths said:
Thanks to all for the feedback.

What is more common in english for the shown textures? Sidewalk or pavement?
Pavement would mean a hard, man-made surface similar to your image.


A "footpath" is the term used in English speaking countries for what Americans call a "sidewalk" :p :p :p
 
I agree with Squarewithin,

Please no more shiny bricks, unless rain, water and other liquids are in the equation. Metal is another item that some people have really gotton shine happy with. Trust me, my father is a master metal fabricator and not every type of metal is shinny :LOL:
 
By the way that's some nice work.

It's a lot along the same idea I had back in the day which I just never got around to implementing/testing. The difference being I was thinking about using a single high resolution texture, and procedurally adding variations to it then tiling it to get the desired effect.

I was primarily thinking about bricks, or some other form of building siding where there isn't really a whole lot of variation between the different pieces. Where I think your aproach is much better suited to surfaces that do vary a lot.
 
jpr27 said:
I agree with Squarewithin,

Please no more shiny bricks, unless rain, water and other liquids are in the equation. Metal is another item that some people have really gotton shine happy with. Trust me, my father is a master metal fabricator and not every type of metal is shinny :LOL:
I think it is good to bumpmapp such textures – but only with a specular map. Only certain parts, i. e. very smooth single stones in such tiles should be reflective for specular lighting.

Of course offset-mapping would also improve the realism. I think the effect of offset mapping only would be greater than with bumpmapping only.

How to render a photographed texture with a most realistic result is not an issue of my work, though. How to render large areas with tiles is also only a part of the side-show.
 
Killer-Kris said:
By the way that's some nice work.

It's a lot along the same idea I had back in the day which I just never got around to implementing/testing. The difference being I was thinking about using a single high resolution texture, and procedurally adding variations to it then tiling it to get the desired effect.

I was primarily thinking about bricks, or some other form of building siding where there isn't really a whole lot of variation between the different pieces. Where I think your aproach is much better suited to surfaces that do vary a lot.
Procedural textures are an interesting topic, however I focus on photo-textures. Some time ago I tested how to render marble with a 2d displacement, but the results are not that promising:

pt1.png


pt2.png



At least I got acceptable results to render a seamless landscape map with perlin noise:

pt3.png
 
interesting work, just thought id say that you have some serious scale inconsistencies on your dirtmap version ;)
 
Matt B said:
interesting work, just thought id say that you have some serious scale inconsistencies on your dirtmap version ;)
What is that supposed to mean? The dirtmap shows sand. Since there is no infinite resolution its hard to show every single grain.
 
aths said:
Inspired by Xmas' general idea to compose a large texture out of smaller tiles, I tried to do that for a sidewalk, since it is also a sort of compression of photographed textures, which is the main topic for my diploma thesis.
Aths,
One thing I ought to point out is that there are two reasons to use texture compression. The first is to reduce the memory footprint of the textures, and what you are doing here will do that admirably.

The second, which is far more important from a renderering performance point of view, is to reduce the data transfer from texture memory to the chip. Unless the graphics chip has a very big cache (i.e. unlikely), I don't think this technique on its own will solve that issue. Of course, you could perhaps compress each tile with another technique.

I guess, in a sense, your technique is vector quantisation where each vector is "enormous".
 
Back
Top