PDA

View Full Version : [Award Winner] Thatching for dummies...



Redrobes
05-02-2008, 09:11 PM
Been having a ball tonight playing with a new idea I have had. It worked so well I just had to share it. Working on the community mapping I have some towns and were gonna need a lot of buildings and there is no way I am going to draw each and every one of them. So a long time ago I figured that I could make bits of building and use them as stamps in ViewingDale or any other kind of stamp based drawing package like DungeonForge I guess. Did that pretty successfully with tiled houses but when I tried thatching it was a lot harder because thatched houses have a lot of curved surfaces and whilst tiled roofs have defined gutters, thatch does not. Basically it didn't work and I gave up.

That was a while ago and things have moved on. This tutorial is going to use some pretty advanced techniques in 3D and I don't know what package you might use for this and its going to be tough going unless you can automate the process too. But its the only way I have managed to get good results so far. Apologies in that I am not going to intimately describe key by key steps as all of the software I am using will be custom but the idea should apply to any 3D package that can do lighting with a paint package that can do alpha masking - gimp, PS, PSP etc all can for example.

So how to create fast thatch for curved surfaces.

The object to be thatched needs to be in 3D so as stated that this is for dummies here is one :)

What you need to do now is get that object in your 3D app. This could be a house object of course so making that might be a bit easier. The point here is to show that its good for curved surfaces.

You now need to set up two lights opposite the object, north and south and render it to give the first light image. Then you need to set it up so that the lights move around the object in steps. I am using 8 steps so that it goes :- 0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5 and 180 is the same as 0 so no need. You need one more which is lit from above too. You can do that as an 9 frame scene and render all of the frames out in the scene at once.

Right you have 9 mask renders. You need to get some thatch and I got mine from a composite of several at CGTextures.com as usual.

Make one with thatch going north south. Then make another with a 22.5 rotation, then another at 45 etc all the way to 157.5

For the top down mask I used several of the rotated thatches blended together to give a no-particular-direction thatch.

Now multiply all of the thatches by the masks and add them up. You should get something like that of the final render.

I have this scripted now so for any height map I can generate them thatched in no time. It could in theory do more than one house at the same time - maybe a whole village... The nice bit tho is that you now are freed from having to texture each part of every 3D object saving hours if not days of time.

Hope that is useful to somebody daring enough to try. I will of course be adapting this for all sorts of roof materials so I am on the hunt for non-copyrighted 3D houses now. If you wanna build them then I can thatch them for you.

:)

Redrobes
05-02-2008, 09:12 PM
And the final image since I reached my 5 image limit...

Redrobes
05-02-2008, 10:23 PM
Hah hah... yes, we're cookin now. :D

Arandil
05-02-2008, 10:54 PM
Nice! And no need for particle effects, kinda nifty.

ravells
05-03-2008, 12:09 AM
That is beautiful...time consuming, for the likes of me but beautiful (but not as time consuming as really thatching a roof).

If I make a bunch of houses will you thatch them for me using your magic script?

Redrobes
05-03-2008, 10:41 AM
Sure thing if I can use them in my co-op tile !

Redrobes
05-03-2008, 11:42 AM
Just need a height map 8 bit greyscale or a model that I can render one out from. I can take almost any kind of model but at the mo I don't have a sketchup format converter. I should be ok with 3dsmax, obj, lightwave, vrml + lots more like that.

If your building it yourself then its not worth putting huge amounts of detail in as it seems that the thatch covers it up.

Heres a basic hut. I have loads of huts and this is the best one I have. It took just a few seconds to generate.

Redrobes
05-03-2008, 04:26 PM
More cottage bits

RobA
05-04-2008, 09:47 PM
I was so impressed I had to try to see if I could do something similar with Gimp:
3442

I created a set layers of rotated thatch images, then set the layer mask for each as a bump mapped version of the heightfield with the light coming from the same direction as the thatch was rotated. I think I had the lighting elevation too low, and I only went with 45 degree rotations, cause I was just playing.

I realized afterward that I should have scaled the thatch down a bit, but I think the basics are there.

How did you blend the rotated layers to get the non-direction version?

I think this might be worth scripting...

-Rob A>

Redrobes
05-05-2008, 08:21 AM
Well done for having a go. I'll note some more tech details...

What I ended up doing was to add a whole bunch of light sources in a line going vertical. Like a vertical fluorescent strip light in the direction of thatching and I created a single image render made from the brightest parts of those light renders. I used directional light sources not point or spot. Then I clamped the lighting so that only the very brightest parts of the image stayed white and all else went black. That basically made only the parts of the model which faced in the exact horizontal (X-Z plane) direction of the thatch white but at any vertical angle (Y angle). So for example a ball like an orange would have a segment lit white and all else black.

So I had 8 image masks and an extra non directional thatch texture. The masking and compositing is done with a compositor that I have as part of GTS but the order I used was as follows.

Start with an image which is all floor color - say black.
Mask in the non directional thatch where the object is not floor only. That is to say if the height map is not black then render the non directional thatch.

Then multiply LightMask7 (157.5deg) with Thatch7 and add in.
Then multiply LightMask6 (135.0deg) with Thatch6 and add in.
...

Then multiply LightMask0 (0.0deg) with Thatch0 and add in.

And that should be it. So Thatch at 0.0 deg is the highest priority and the non directional thatch is least. I tried doing odd angled first like 22.5, 67.5 and then the 45's and then the 90's and then 0 but that didn't come out as well as doing them in rotation order. You could end up with small patches of one angle where everything around it was another completely different. By doing them in rotation order it seems to blend the angles better but the down side is that if you get the light clamping wrong then the bits of thatch which would be 90deg and well lit by the 90deg light mask could be wiped out by the overlap from the 22.5 Then when you get the final render all the angles are a bit out.

I accept that this is not the easiest thing to set up but once you have it it seems to work time and time again.

To get the non directed thatch I merely took 0 & 90 deg and put it in two layers in the bitmap editor and blended 50:50. I was hoping that I wouldn't have too much of that showing really. You cant have thatch pointing straight up as it would let the water in ! I don't know what real thatching does on the top of houses. I guess they put some flat thatching across. Sometimes you see these great bits like topiary with a thatched peacock or something very clever.

Redrobes
05-05-2008, 08:43 AM
Nice! And no need for particle effects, kinda nifty.

Hey Arandil, didn't see your post there ! Welcome to the guild. I'm looking forward to seeing Seers GMaps :)

Redrobes
05-05-2008, 08:48 AM
While I am posting, heres a bit of the town using them...

Torq
05-05-2008, 09:06 AM
Great post Redrobes. I'm definately going to try to implement it in my next city map.

Torq

su_liam
05-06-2008, 08:51 PM
The lighting on your buildings seems a little disarrayed. It looks like you need to create your thatch texture unshaded, and then apply your shading in situ.

So if I get what you are doing here, you are using your differently lit versions of the object to index the various thatch images by orientation.

Using a Sobel algorithm(I think) to calculate the partial derivatives of the HF in the vertical direction and then calculating atan(∂y/∂x). You can use the result, truncated to [0, 7] to select thatch images by index. This could be quicker than running a full 3d render eight times. I will leave the implementation as an exercise for smarter people than myself(you).

Redrobes
05-06-2008, 10:20 PM
The lighting on your buildings seems a little disarrayed. It looks like you need to create your thatch texture unshaded, and then apply your shading in situ.

So if I get what you are doing here, you are using your differently lit versions of the object to index the various thatch images by orientation.

Using a Sobel algorithm(I think) to calculate the partial derivatives of the HF in the vertical direction and then calculating atan(∂y/∂x). You can use the result, truncated to [0, 7] to select thatch images by index. This could be quicker than running a full 3d render eight times. I will leave the implementation as an exercise for smarter people than myself(you).Your right in that the shadows are in all directions. I try and avoid shadows and if I have them then I light stuff straight down. It looks a little fake but you can reuse bitmaps that have captured the lighting in them over and over.

Buildings tho don't ever look like buildings without some shadow. Its the same with terrain hills, humps, ditches and so on. You cant adequately show them without some shading or else they look flat.

So I could render them without the shading and use the height maps in place of the houses in VDale and render out a full height map of the whole town, then shade that and apply that to the flat color icons and it would look great but it would use one image for lighting for the whole town but each house would have its own color image. So the resolution of the shading would be much much less than the color. Probably not a big issue and it would also allow shadows from the houses too but its not ideal.

When rendering out the lightmaps in GTS I already have the normal vector for the height map so I don't need to do any more partial diff calcs. I could do a max of dot products for the 8 X-Z planar directions and get the index and your right I could add code to output an index image or even write some bigger code to take in 8 images and pick one. But this way is very similar and it has a little advantage of allowing some blending across two indexes - but I guess you could interpolate between two indexes too.

It takes about 30 secs from start to finish to generate the final shaded thatched model from the 8 bit gray-scale height map. Its not a huge wait thats worth coding up something special for.

Your points are all very valid tho.

ravells
05-07-2008, 06:30 AM
Using a Sobel algorithm(I think) to calculate the partial derivatives of the HF in the vertical direction and then calculating atan(∂y/∂x). You can use the result, truncated to [0, 7] to select thatch images by index.

I hate to disagree with you, Su Liam, but for my part, I prefer the third integral Myneesie flux density theorem as I find it gives a better finish, particularly when used in conjuction with a Loople Cadmaflow projection with a little bit of cheese cake at the end. :)

Midgardsormr
05-07-2008, 02:53 PM
Artists...

su_liam
05-07-2008, 03:19 PM
I like artists. I'd like to be one someday when I grow up.

I have to say Ravells, most of what you said went straight over my head, but I completely agree with you about the cheesecake. Mmmm, cheesecake!

SeerBlue
05-08-2008, 12:08 AM
I'm looking forward to seeing Seers GMaps
Well, pop on over and have a look, bigTF went up last night!

Any way, I gave your lighting method a modified run through in Global mapper using its sunlight shader(modifying sun azimuth and declination) to make masks for terrain cover based on direction/ sun exposure, works real good to position hi res Terragen generated textures (applied via photoshop in to an image)...then I realized I can get a mask out of Saga gis which can be set to an ungodly number of distinct colors for different facings/directionality of the terrain.....then I realized you probably already do it in GTS easier:( , so once again I am behind the curve...

SeerBlue

Kasim
05-08-2008, 01:47 AM
Using a Sobel algorithm(I think) to calculate the partial derivatives of the HF in the vertical direction and then calculating atan(∂y/∂x). You can use the result, truncated to [0, 7] to select thatch images by index. This could be quicker than running a full 3d render eight times. I will leave the implementation as an exercise for smarter people than myself(you).


Rockwell (http://www.youtube.com/watch?v=TuhYd9L_d7w)

I think you guys may enjoy this as much as your thesis on light effects.

RobA
12-09-2008, 11:09 AM
I'm trying to script this in GIMP, and running into issues with the angle lighting calculations.

I have tried using the bumpmap filter. adjusting the azimuth for each of the angle steps, then performing some thresholding. Unfortunately this doesn't give me the control I need to select only the surface angle I want without a tremendous amount of trial and error...

I have found a normalmap plugin for gimp that seems to do alot of the heavy lifting, converting a greyscale heightmap into a RGB normal map (nvidia standard?) with R as the X, G as the Y and B as the Z vector component. I'm thinking that I could use tehse as base components to determine my thatch angle. The "problem" is that I can think how to do this mathematically (i.e. calculating for each pixel) but this will be REALLY slow. Can anyone suggest an image processing way to accomplish this?

TIA-

-Rob A>

Redrobes
12-09-2008, 08:06 PM
First thoughts is to basically ignore blue for most of it cos thats Z and we wanted the angle. For the top down only we could use that blue tho.

You will have to elaborate on nVidia standard. I guess the 128,0,0 is no X component and 0,0,0 is full -X and 255,0,0 is full right yeah ? Well to pick off a certain angle you would need to get the red in a certain range and the green in a certain range. So where red is say 80 - 100 and green is 120 - 140 or something like that is one angle. If we go for 8 directions then you need - in clock wise order:

R G
128 255
192 192
255 128
192 64
128 0
64 64
0 128
64 192

all these +/- somewhere between 32 and 64. Better if you can fade down so for first angle it would be 128,255 for white fading down to 64,255 or 192,255 as black or 128,192 also as black.

So you would need to separate the RGB into 3 greyscales - in PSP thats a color split. Then take R&G and apply 8 pairs of color curves multiplying the resultant pairs together to give 8 greyscale images for the angles.

Then finally theres the blue multiplied by one curve to get the top image.

B
192 +/- 64

Ok ? Difficult to explain. I searched on the web and found this blender demo normal map man and did the curves and it came out ok. The first row is normal map, R,G and B. Second row is R * curve and G * curve. Third rown is second row mult together. Result is white where pointing north only. Do that 8 times in a script and get 8 directions.

Hope that works out ok.

Edit -- I have added the image for the last one with some contrast added to boost those angles like I did in my script. The result looks more like that which I get. Notice on the monkeys stomach that we have a cone and that north is the only place bright so I think it works ok.

Edit2 -- Just updated GTS to ouput normals so heres the normal dummy.

Edit3 -- Yeah then doing second angle - north east so it works ok.

Redrobes
12-10-2008, 08:41 AM
This is PSP adjust color -> curves dialog.

If you want to emulate that curve then just use a windowed triangle and forget trig. If you have to use trig then a windowed cos*cos function is approximate. Anything like this in Gimp ?

edit -- http://docs.gimp.org/en/gimp-tool-curves.html this is suggesting you have the same dialog. Can you program it from the scripting language ?

RobA
12-11-2008, 02:18 PM
Thanks for the extra description on the curves dialog. That seems to work now that I figured it out.

I manually ran through the steps using the results of each multiply as a layer mask for the appropriately rotated thatch pattern, and put a random oriented thatch (made by cloud masking horizontal, vertical and the two 45 degree angles) at the bottom of the stack:
8365

Masked out the waterline, and multiplied with the "z" (blue) layer from the normal map (i.e. "directionless"):
8366

And finally with a lighting effect bump map applied using the original heightfield:
8367

Now the real question is it worth scripting, or just writing up as a tutorial ;)

-Rob A>

Redrobes
12-11-2008, 02:55 PM
What would be cool would be if you can make a B&W mask for a city and then it blurs it a bit to round off the corners and assumes thats the height map. Then thatch it. Also at the same time use the mask as a source to get a shadow map for all of the houses too. So then you just block in all the houses and it generates you a village with shadow. Right now I create those images as tokens and put them into a map so the shadows are all wrong as you rotate them. I dont know whether the village thatching would have the res to do it justice compared to a high res token per house. Its only a small step then to get something that you define the outline of a village and get it to put some paths in, fill in the areas inside the paths with a collection of random squares or circles and then thatch and shade it.

There was a discussion with Torstan I think about trying to get Gimp to make up random city textures but I think thats pretty hard stuff. Whats really needed is an app or out of script which has a collection of house shapes and picks random ones and randomly rotates them to try and fit it into as yet unused ground. So it wont put a house over a path or over an existing placed house area. If you could get that bit then we have techniques to fill in from there to fully rendered villages. All randomly created.

One of the things I was trying way back in the pirate lighthouse challenge of Dec07 was to try and make height map tokens and spray them down - which did work really well. If you could 'spray' these house shaped down intelligently and keep the height map info in the bitmap then you could then thatch shade the result.

Theres just not enough time in the world to try out all the ideas I would like to see done.

RobA
02-04-2009, 05:01 AM
Redrobe's post in the other thread on city tiles reminded me to get back to this....

I am getting quite close to a finished script.

Here are some sample images using his funky face heightfield...

Straw:
9940

Shingles:
9941

Wood:
9942

Bark (90 degrees off):
9943

-Rob A>

RobA
02-04-2009, 05:07 AM
And a few more using my test image (first one).

The problems are still fairly evident...

-Rob A>

Steel General
02-04-2009, 08:38 AM
Probelms or not...this is still pretty neat stuff.

Redrobes
02-04-2009, 08:58 AM
Yeah thats working real well. The blue half round tiles look good. All we need to do now is find a way to put down those base height maps into regions between all the roads and we could auto gen a city. I'm gonna play with that side of things shortly - when I get time. Post any ideas you have for that tho.

su_liam
02-05-2009, 02:36 AM
I think the thatch and the shingles rock. The wood and the blue things still seem... odd. Still, I am in serious want of your script just for the thatch and the shingles! Good work, technical problems or no.

RobA
02-06-2009, 05:20 PM
I think the thatch and the shingles rock. The wood and the blue things still seem... odd. Still, I am in serious want of your script just for the thatch and the shingles! Good work, technical problems or no.

They are just seamless patterns... The script lets you apply any pattern to a heightfield.

Getting real close now....

10042

10043

-Rob A>

RobA
02-07-2009, 11:55 PM
I might have to rename it from "thatch" to "roof"...

sample hf:
10091

result (with shadow and ground added):
10092

99% done now...

-Rob A>

töff
02-08-2009, 09:53 PM
It seems to me, without having tried it, that the directional masks might be generated more easily from the height map with 4 applications (n,s,e,w) of photoshop's standard "render lighting" filter.

Feel free to Fred Picker Stamp me ...

This is all a very clever idea with great results. Cheers! :)

RobA
02-08-2009, 11:35 PM
It seems to me, without having tried it, that the directional masks might be generated more easily from the height map with 4 applications (n,s,e,w) of photoshop's standard "render lighting" filter.

Feel free to Fred Picker Stamp me ...

This is all a very clever idea with great results. Cheers! :)

If I had photoshop, I might try it ;)

I've actually come up with a much better way than the curves I was playing with.

I illuminate (emboss) three copies of the heightfield at 0, 120 and 240 degrees.
These get combines as RGB layers into a new image.
That RGB image gets converted into a HSV image and the H layer is grabbed out. This layer represents the direction (without magnitude) of the heightfield as a value from 0 to 255. I then posterize that layer into the number of faces desired, and select each colour sequentially, using that as a mask for rotated copies of the pattern.

It takes a while to run, especially for large images, but I like the results.

And it lets you (if desired) use up to 16 faces when generating the result:
10126

I think I worked out the last couple of bugs on the weekend, so I will post it up, hopefully tomorrow.

-Rob A>

ravells
02-09-2009, 02:08 AM
Hi Rob, as a test would you mind running your script against this city which I am in the process of drawing? I'd be interested to see the results. If you need the image manipulated in any way for better results just ask and I'll post it here.

Cheers!

Ravs

RobA
02-09-2009, 08:27 AM
Ravs-

All the purple areas?

-Rob A>

ravells
02-09-2009, 09:49 AM
perhaps not the big ones just the ones that are finished.

cheers!

RobA
02-09-2009, 12:03 PM
I'm not sure if the pattern scales works with the map scale...but here is a result running once with the light purple selected and once with the fark purple selected.

I made heightfields with simple shaped spherical gradients based on the selection shape.

10145

-Rob A>

töff
02-09-2009, 12:09 PM
I begin to see why my simpler n,s,e,w idea won't work: the roofing material needs more angles to match huts that are at odd angles.

OT: speaking of odd angles ... @ Ravells ... hey pal, that city is tweaking my head. It almost looks as if the TAN areas should be the buildings ... bcz the PURPLE area are the funkiest shapes for buildings that man or alien has ever seen. But then ... there's tan lines (hahah, I mean lines colored tan) that look like streets ... but are they like tunnels btwn bldgs? Please do explain!

Black Tower of Time
02-09-2009, 01:24 PM
@ Ravells ... hey pal, that city is tweaking my head. It almost looks as if the TAN areas should be the buildings ... bcz the PURPLE area are the funkiest shapes for buildings that man or alien has ever seen. But then ... there's tan lines (hahah, I mean lines colored tan) that look like streets ... but are they like tunnels btwn bldgs? Please do explain!

Hmm Purple and Tan colour? Hmm for me its just grey for the building arias and light sand yellow for the streets.
But your true when looking on the "rendered" version of RobA the buildings look strange. But I think this is that the building aria has been used as "one" building for test purpose. Maybe run RobA's Tutorial/Script method using Mosaic Filter to make building patterns for cities would gave a better result as you got a more regular structured pattern of single houses.
But on the other side I don't know about the maps cultural background so the strange look of the buildings basic form may be intended to be.

Black Tower of Time
02-09-2009, 01:29 PM
@RobA :
nice result for just a script run ;-)
Do the script make the highfield out of a multi selected aria/layer? or did you need to make the highfield layer for every "house" by fill every part step by step with a colour-fade-fill-to-form function (however this functions official name may be in GIMP or PS)

ravells
02-09-2009, 03:44 PM
That script works fantastically well, thanks Rob!

Toff: The city is an experiment with positive and negative space. The reason why some of the spaces look like buildings is because they use the same basic shapes I've used for the buildings but carved out of the buildings. Long way to go before I get the right shapes but it's still in 'experimental' stage.

Cheers

Ravs

Redrobes
02-09-2009, 07:24 PM
I haven't tried your script but it seems to be working pretty well based on the sample pics. I am using either 8 or 16 angles in mine too. If the pattern is pretty symmetrical then I do two light sources at a time but if the pattern is different on different sides of the roof then I go with the 16. In my city block renderings I discovered that you cant see any detail anyway so for overlapping tiles there's no point in doing the full 16. Still in a quandary about how to actually make the most from these scripts tho. Really its better to texture each house one by one and stamp them down and just use the shading for getting the sun angle and shadow right. For thatching and tiling complex shapes its the mutts nuts but for doing a whole city in one go it seems less effective. We still need an auto generating way of getting height map buildings into a drawn road mapped mask - then I think the thatching et al scripts would be very cool.

RobA
02-09-2009, 07:32 PM
Yeah. The script works well, but much is lost at the city level. It works best on individual buildings or a few blocks.

The real trick, as you say, is creatinf the heightfield. I either use the angular shapeburst or a carve script I wrote than can leave a heightfield.

-Rob A>

Redrobes
02-09-2009, 07:53 PM
I discovered a while ago that if you dont use the entire 255 range of white for the height field then you can sum up bits of towers and stuff using a stamp type program like ViewingDale. Say you have a clear PNG which is all white but the alpha is 0-64 then you can stamp up to 4 of these on top one another and put a tower on a barbican or whatever so I am wondering if its possible to use... now who was it... saganlichts ??? script to put down square houses but instead of ensuring that they don't overlap just let it rip an overlap them so that it builds up bits of house. Hmm not clear that - gimme a few secs...

There, thats two thousands words right there. See what you get when you thatch the first image.

EDIT -- Mneh thats not at all convincing either is it.

Sigurd
02-09-2009, 10:44 PM
Here is an article about some smart archeologist who is looking for medieval thatch in surviving buildings. He apparently has found over 200 sources of medieval thatch remains from which they are getting all sorts of food and farming info.

http://www.britarch.ac.uk/ba/ba58/feat1.shtml

The article is called 'Living under a medieval field'.

From the article

"These base coats contain the best preserved late medieval cereal remains ever recovered in western Europe, and include complete ears with intact grain and straw, as well as crop weeds and other vegetables."


Sigurd

Black Tower of Time
02-10-2009, 06:04 AM
I discovered a while ago....
Say you have a clear PNG which is all white but the alpha is 0-64 then you can stamp up to 4 of these on top one another and put a tower ...


Yeah it is a nice idea use kind of a stamp or maybe a (PhotoShop-) brush to stamp the roof of buildings. With a dynamic brush this maybe will also significantly simplify the placement and could add a bit randome like size and direction to the roof highfield. As you show in your example.
Now to the other Idea I got reading this tread. How about use the method we try to develop in here for mountain ranges? Making/painting highfields with a brush or stamp which contain the gray picture of a Julia-Set. Painting with the stamp-picture with direction and size variations as well as overlapping (like in Redrobes example picture done with normal squares) rows of mountains (maybe it would also be adaptable for cliffs and similar rocky slopes). After this preparation run the thatching script over it with kind of a matching rock-like material map selected.
Anyone would like to try that and show the results? If that get interesting maybe we can fork to a new thread for that.

Redrobes
02-10-2009, 03:10 PM
That's an interesting idea. Though rock on a cliff does not have a pattern on it that is very direction dependent I think it could be used to put say vines on it. Also it could be used for fortifications or even on an atlas style map to show patterns for height stuff like cliffs, cuttings and embankments.

A long while ago in the Dec 07 challenge I dropped lots of rock height maps down and then shaded the total in the cave system and that worked pretty well so I think the idea of stamped height maps is a goer.

It would be cool to think of 1 step of alpha being 1ft height then you can have up to 250ft or so height buildings but you can have them made in parts and put them on each other and then render out the result. If it weren't for lighting and shadows then you could just drop the stamps down and forget the height maps but to get a nice city shadow you need them all consistent so maybe I am swaying back to using height maps and a big thatching script rather than making individual houses.

For me the problem has now shifted from being able to tile/thatch it to how to get this height map of a city made. If anyone has a topo laser scan / LIDAR scan of buildings as a height map we can try that would be very cool. I know they exist, I just don't have one handy to try.

But back to original point - yes, wherever you have direction dependent patterns this script is potentially useful.

heres a link to that Dec 07 thread.
http://www.cartographersguild.com/showthread.php?t=1273

The big image has been removed but since I still have it here's a section of it below showing the shaded rubble.

töff
02-10-2009, 03:19 PM
wherever you have direction dependent patterns this script is potentially useful.

Which is exactly why my n,s,e,w idea won't work. It doesn't take all those various directions into account.

Redrobes
02-10-2009, 03:26 PM
Yeah but both myself and Robs script are using 16 directions which is still limited to 22.5 deg angles. If you get a square building at some funny angle the roof tiles can be up to 11 degrees out so it can look a little odd even then. We could do more angles but you need more processing to do it. Ideally you want to snap the angle for the buildings to 22.5 degrees and use house height maps that don't have long runs of odd angled bits of roof.

Theres an option in my app to spray down stamps at random angles but I might have to add an option to snap that angle to a value so that you can set 45 or 22.5 or whatever. That might be useful.

töff
02-10-2009, 03:32 PM
For thatch, 16 angles is surely enough. For a pattern like brick, you might easily see misalignments.

Still, the results I've seen so far are really good. Cheers! I hope to have a use for this some day!

Edit: did I just say what you just said? :p I do that. Free bonus in the Alzheimers/ADD combo package.

RobA
02-10-2009, 04:04 PM
If you build a set of gimp brushes with "random" rotation, you define the rotation angle, so can ensure the buildings line up with thatch/shingle angles.

-Rob A>

töff
02-10-2009, 04:09 PM
I'd hate to have to align my buildings to the roofing material. That seems backwards! (although, sometimes, practicality intervenes, dunnit).

This procedure begins to sound as if what it really needs to be fully automatic is an AI engine to recognize roof segments and their angles/curves.

Redrobes
02-10-2009, 04:41 PM
I know what you mean but its not too bad. It would just be a little better if a house like this was a few degrees anticlockwise.

Sagenlicht
02-18-2009, 04:44 PM
I might have to rename it from "thatch" to "roof"...

sample hf:
10091

result (with shadow and ground added):
10092

99% done now...

-Rob A>

Oh RobA, I'd really like to know how you did that heightfield.

RobA
02-18-2009, 06:13 PM
Manually.

I had snap to guides and used the pen tool to outline each of the shapes then filled them with B/W gradients.

For the two dormers, I also did the same then with those areas selected used the levels control to brighten them up to match the roof lines.

-Rob A>

shantedracule
11-16-2009, 12:40 PM
Did you actualy post this script I must have missed it

Redrobes
11-16-2009, 03:56 PM
I use my own tools so my scripts are custom jobs. RobA tho took the idea and ported it successfully to Gimp and that was posted here:
http://www.cartographersguild.com/showthread.php?t=4293