On Thursday 29 December 2005 07:20, Carol Spears wrote:
> the one other thing that would make them useful as patterns is if
> they can be made tileable. there is at least one plug-in that
> does this.
OK... having a stab at doing this "manually" for one herringbone pattern
of brick pavers now, and it ain't as easy as it looks. (-:
This would be a really handy thing to have a dedicated tool (or at least
plugin) to do. The following comments apply to real-world objects being
converted to patterns; they may not apply to computer-generated
Each potential tiled texture will probably need some fisheye correction,
which Dave Hodson's "Telephoto" plugin does reasonably well -- thanks,
Joao, for reminding me that the plugin existed. This is made a little
easier by lining image features up against guides, but it's still very
much trial-and-error. Being able to do it on the main image in real-ish
time would help a lot.
Many of them will also require "keystone" correction to make them square
(or at least symmetrical across the X and Y axes). Those which require
both would be a lot easier to deal with if both this and the fisheye
correction could be done interactively, realtime(ish) and full-scale on
a single set of sliders.
Next, we need to isolate (crop to) a section of the subject which is
suitable for one of the algorithms below. Interactivity would help this
a lot as well, see discussion for each.
Having made the subject basically rectangular, the next step is to make
it repeatable. There are two techniques that I've looked at so far.
One consists of replicating the original rectangle in each direction,
flipping the image over its edge to achieve an image twice as large in
each direction but which matches exactly along the edges.
This does not work well for asymmetrical subjects, such as those
containing text or lit predominantly from one side.
Being able to tweak the corrections and cropping on the fly and have it
displayed as an "endless" pattern would make achieving near-perfect
results considerably easier.
Storing a single copy of the basic pattern rather than a fourfold-larger
copy woulod be good, but would require the addition of a different
tiling mode rather than simple repetition, call it "flip-tiling" if it
doesn't already have a name.
The other method consists of overlapping the original image with itself
and alpha-blending the edges of each copy to smooth over differences
between each edge of the image. This does not work very well if the
subject is not consistent from edge to edge, but does handle
asymmetries such as sunlight coming from one side reasonably well.
There is already a plugin to do something like this, but it is *very*
clumsy and only works acceptably with very complicated, fine-grained
subjects, or with very near-featureless subjects. Even then, there is
rectangular meta-pattern visible at larger scales because of the
unsubtle blending at the edges of the image.
Real-time interactivity would greatly help this mode as well.
It would also benefit from being able to do "gradiented" corrections of
at least brightness across the subject, possibly automatically or
semi-automatically by selecting tiles along each edge and adjusting the
intensity gradient so that they are equal, then another pass to smooth
Another pair of useful features would be the ability to draw the
alpha-blending border on each edge of the image freehand and/or with
beziers, and to adjust the slope (or possibly even curve) of the
blending. This would allow the operator to better duck around
A final useful feature would be the ability to arbitrarily deform areas
of the subject, PowerGoo(tm)-style, in order to better match up the
edges of random/chaotic patterns like waves or gravel.
http://cyberknights.com.au/ Modern tools; traditional dedication
http://plug.linux.org.au/ Member, Perth Linux User Group
http://slpwa.asn.au/ Member, Linux Professionals WA
http://osia.net.au/ Member, Open Source Industry Australia
http://linux.org.au/ Member, Linux Australia
Gimp-developer mailing list