Ok, I've been testing this out. Apparently anything over 4k pixels won't run, it will only generate 1k x 1k squares. I also noticed that it seems to load with the non-filled defaulted, and it won't generate a new fill if I toggle the fill on/off for the 4k images like it does for the 1k squares. (if you follow what i mean).
Hope that helps some!
I tried some images myself, and when an image reaches 50mb, it won't load.
I might be able to increase the heap memory.
But the fil-box it's actually supposed to be off by default. I just have to find out how to erase parts of an image based on another image, so the trunks don't overlap.
(sorry, this post turned out a lot longer than I expected)
Originally Posted by Fluesopp
Isn't it possible to have your program turn the brush into a mask and then make two placements? So have your program select a position to stamp the brush, stamp the mask brush first and then stamp the actual brush in the same place? Of course, this would need doing from top to bottom so you don't get a mask erasing a tree below it on the Y axis, but I'm guessing if you can write a program like this then that would be easy for you. :)
I still need to check out your program, which I will do today, but from what has been said so far I can see it still lacks a few things that would make it perfect. Maybe you already intend to add these but I'll list out a bunch of features that I personally would love. Sorry if this seems cheeky, feel free to ignore this of course.
1) The ability to load other brush packs. I'm sure you intend this, whether or not it's in yet.
2) Size variation. A minimum and maximum size for the tree brushes so you can get a little variation in the forest.
3) Forest density. Obviously how closely packed you want your trees and also maybe a checkbox whether you want any overlapping trees or not.
4) This would be the trickiest I imagine but super cool for me... an ability to create a separate layer that contains just the shading of the trees. And while I'm at it, if that last one is possible then one for shadows too. :D
I guess I need to embelish on how I think that would be possible and then you can say whether it is theoretically sound or just plain bobbins.
I would guess that you would need a series of brushes linked by filename.
So maybe there is a brush called "Tree1" and then following that there could be a "Tree1_Shading" (maybe "Tree1_Shading2" etc. for variation) and then obviously "Tree1_Shadow".
So, when your program works out all the positions of the forest, it would go down, from top to bottom, stamp the tree mask, stamp the tree brush (which would be just the outline), stamps the shading on a new layer or image but in the same position, stamps the shadow, again on a new layer (if a shadow is required) and then moves on to the next point down the Y axis, returns to the first image and carries on the process.
Is that possible? So you'd end up with one layer with tree outlines. One layer with tree shading and then one with tree shadows.
I would imagine that it is actually, although as I see it, the main problem would be linking the different brushes that would make up each tree (or even mountain or hill :D ) together so that they would be in the right position relative to each other as each one will be a different size or shape. To do that you would either need an extra bit of UI where you could link them together and save the co-ordinates relative to each other in your program. Or if that isn't possible be a little more creative during the brush creation.
Anyway, I can see your program is already an excellent tool but if you can tailor it so that it becomes more editable in these ways then I can see this program being used by just about everyone who wants to make a hand-drawn style map and I gotta say, I'm quite excited by the prospect.
It would literally save me hours per map.
Really hoping you keep developing this. Great stuff. :)
Actually, that's what I'm doing right now, drawing a mask first, and then drawing the outline afterwards (if fill is selected). But just a quick question... Those tree brushes of yours, how do you apply them to your maps? The brushes are just outlines, are they not? Do you create a shading layer behind? And if so, how do you do that?
1) Currently I have a png image for each tree, and one png image for each mask. It's pretty simple, but not very customizable. I would add support for loading brush packs, but I don't know how to do that. It might not even be possible in Java. (Talking about those abr files now) What I did was to make a macro in photoshop to extract them. It required some effort on my part (as in drawing the tree in photoshop and selecting the name of the files). With it, making the images only takes a minute.
2) It should not be a problem. I just need a proper UI first.
3) I have something here, but I'm not sure it's actually working properly. Definitely something I'm going to add.
4) It's possible, and if you could provide me with such a brush pack, I'll see what I can do. (I can't draw myself...)
And I plan on adding mountains support, and the ability to create the mask inside the program as well, so it might become a complete map tool. Perhaps even landmass generation.
Ok, so I just re-read the posts in the thread and I see you have already created another brush out of white to act as a mask.
Did you physically create these yourself? Or does the program do it?
I'm guessing you did them yourself otherwise you already have most of the ability you need to load in other brush packs.
Anyway... from what I can gather, and I could be wrong here, your problem is that on successive passes of your program generating random positions, the new trees paint over the old ones? And you want to figure out how to stop it drawing the new ones over the old?
If that is the case, is it not possible for your program to keep the X, Y co-ordinates of every tree placed, and then if it makes another pass and adds more tree positions add these new X, Y co-ordinates to the array and then re-draw the whole image again, from the top down.
Edit: Heh, I typed this as you were typing yours...
The tree brushes that you have used in your program are already shaded. I don't place a shading layer behind them other than the colour of the background. They are transparent so unless you use Midgardsomr's clone stamping trick you have to be very careful in how you place them. So my problem with them is that they are not very customizable.
I find that I much prefer it to keep shading, shadows and the outlines of the elements (trees, mountains, hills) on different layers so I can edit them and treat them separately. And this just isn't feasibly possible with brushes.
On the new map I am working on I used a single tree outline brush and with the clone stamping technique I was able to place trees in front of the others without the ones behind showing through. But I still wanted some variation in them so I hand shaded every tree on a new layer which took a long time.
So I'd absolutely love it if your program would be able to get me to this stage. A layer of outlines and a layer of shading.
I will certainly draw some sample brushes for you to use in your experimenting if you need them. And I can understand if your program cannot read the .abr files, but if you could get it so that it could import a .zip file full of png's then that would be awesome too.
I'm sure whoever would use this program in the future would be willing to create and share their own packs of brushes for it if it had that functionality.
Edit: Oh, and before I forget again, RobA, your Gimp script is amazing. I do wish you'd hurry up and get PS and a Java manual and start writing your fantastic scripts for PS as well. :D
I did notice, however, a few misplaced trees on your Ascadia map. For instance, there's one a little to the left of the "rd" in "Dorderoth". Does your script resolve the tree positions from top to bottom?
So for a forest, you only have two layers, right? One for the trees and one for the shadows?
What I'm aiming to do, to resolve that, is to draw the outline of a tree, without anything behind. And for the tree underneath, I draw the mask, only instead of drawing in a color, everything it draws should become transparent. This solves the problem with trunks overlapping a tree below. (The problem with trees coming on top of another tree is because of I draw them when they are assigned. It will be changed, but it's a different
And what's the clone stamp technique?
Yes, for the forests I did on my first two maps I only had two main layers, trees and shadows.
My new map has three.
The clone stamp technique is explained here...
but it is basically what you are doing anyway, with the white behind a brush to mask off previous trees. It's nice but one problem is you have to the tree layer on multiply, or mess around with the magic wand to delete the white - something which doesn't really work if you have shading on the brush.
I see. That's what the program is doing right now. But what I'm aiming to do is to achieve the same look, but without the shading layer. (see image)
Ok, but I think we may have crossed wires with what you define as the "shading" layer.
I've whipped up a quick example of what I was hoping you would be able to use...
If you could take two brushes like that and somehow get the program to recognise where they fit in relation to each other and then have them on two separate layers.... easy peasy. Hehe.