Dennis Pierce (dpierce++at++dolphin.orlando.sgi.com)
Tue, 24 Sep 1996 11:38:09 -0400
Nuno, et al.;
Ok, references that I know about from old literature:
Photographic Texture And CIG: Modeling Strategies
For Production Databases, Clark, et al.,
I/ITSC '87 Proceedings
Applying Frequency Domain Constructs To A Broad Spectrum Of
Visual Simulation Problems, Zimmerman, et al.,
IMAGE IV ('87) Proceedings
I/ITSC is the Interservice/Industry Training Systems Conference which is
now I/ITSEC and is back in Orlando, FL this year. IMAGE IV is the fourth
IMAGE Society conference. I don't know where to find these articles other
than to contact the various organizations for reprints. I would like to
think that the US Library of Congress has copies on the web, so that may
work. Finally, if you want me to send you a copy, I can probably do that.
Basically, you take the image (texture), filter it into a series of sub-
images of different frequency, blend the sub-images (blend the top with the
bottom and the left with the right), then recombine the sub-images into
a new final image. This uses a technique known as MRIPping which stands
for multiple resolution image pyramid. The technique is really quite
simple and works because you blend the different frequencies in the image
with corresponding frequencies -- what frequency means here is simply
big things, smaller things, still smaller things, and finally tiny things.
For example, in your wave/ocean example, the image is composed of big
waves, ripples and white caps. You can't tile this image because you
will end up with ripples and white caps juxtaposed with like entities
that are not naturally spaced. So, take the image and sample it into
several sub-images by taking every other pixel for sub-image_1, every
3rd of 4th pixel for sub-image_2, and so forth, down to sub-image_n
which just has two or so pixels from the edges or the edges and middle
of the original source image. Then blend the edges of the sub-images
(once for each sub-image) by averaging some boundary pixels between
the top and bottom and the left and right edges. Note that the corners
will be special cases and you may also need to back up from just the
edge pixels and use a cosine blend across the edge. Once you have the
sub-images blended, composite each back into a NEW original image (remember,
you started with the first sub-image_0 which was the original image).
As long as the starting image was not too aliased, you should have a
very remarkable tile that will provide seemless coverage. Please note
that you still need to choose a good starting image because anything
causes a repeating pattern when viewed at the right distance. So any
texture is only useful in a certain range and must be replaced by a
better representation when it starts to repeat.
Finally, it is very good to use the basic tile as a detail texture for
those really close approaches. Then, as you pull back, you loose the
pattern in the detail texture and take on the pattern of the basic
texture. Continuing in this manner (and this is optimum), replace the
basic texture with a better "big" texture as you start to pull really
far away, or modify the polygons to make the textures start to "disappear".
This is really necessary if you have a very high contrast pattern such
as blue water, dark waves, and white caps. What you'll see is the
darkness of the waves start to repeat. In reality, the waves start
to disappear, so if you start to remove the texture you'll have just
the blue water, which is what you really see at 15K m. SGI's texture
MIP mapping filter helps to blur the texture from a distance, but if you
choose too high a contrast starting image, you may still see some pattern.
Good Luck!
bye.
---- Dennis Pierce SGI / Ste 130 / 900 Winderley PL / Maitland FL 32751work : 407.660.0073 vmail: 800.326.1020 x58548 ======================================================================= List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/ Submissions: info-performer++at++sgi.com Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:53:37 PDT