Shawn:

I don't think they are doing anything magical.  His description of how the
textures are being generated are very similar to the techniques we are
using.  The multitexturing he is doing, if any, is just for shading, but I
believe they are using high density texture cells using several different
blending algorithms.  It looks like he is willing to pay a high price in
texture memory, but take another look at the rest of the images in that
article.  Most are being taken at some height, which we know always favors
texture rendering of over stretched textures.  But look at terrain3 from
their scenes, the only one that is ground level and you can see a fair
amount of stretching.  My guess is they are using 128x128 textures per 100m
x 100m cell.  The textures are mipmapped so its only the close ones that use
all the memory.

I am pretty sure I could reproduce those exact shots using our engine.

The way we have written the texture generator I can ask the engine for a
texture over any space and at any resolution and it returns the appropriate
image.  This is great for increasing precision for "closer" shots.  So I can
ask the engine for a 256x256 texture covering a 5km x 5km area, or ask for a
128x128 texture for a 100m x 100m area and they both will be right, just one
will be more localized with more detail.


Here is a excerp from some design notes from our team:

/SNIP:
5. Each 100m x 100m cell has a multi-textured, texel painted texture
stretched over the
entire cell.  The game as the ability to build these textures on the fly,
but I see that more helpful for world building than production, but time
will tell.  Some of the techniques we wil be using to calculate the textures
will be time intensive.  Right now it is bulding them in about 400 ms
each, but that would improve with pre-calcuated texel heights.

6. Paint : either a texture or a color.  Textures used for terrain should be
128 x 128, which will likely be downsampled to 64x64.  Right now you can
configure the cell textures to be any size you want.  The bigger the
texture, the nicer the result and the more texture memory that is used.  I
have found 64x64 over the 100m cell looks quite nice multit textured.  By
making all "base textures" to be 128x128, we create an environment which can
be automatically configured in the future to look better as the cards get
better.

7. Paint Brush: Every texel in a terrain texture is produced by blending
multiple paints.  This definition on how to mix the paints is called a
brush. When you define a brush you define sequence of blending criteria and
its associated paints.  I am trying to make this as flexible as possible.
There are many different blending options which can be applied in sequence:

- Blend two paints according to the slope of the texel.  You define the
"steep" paint and the "flat" paint (remember paint can be a texture or a
color).
- Alpha blend a paint.  This allows you to define a texture which has an
alpha (0..1 : transparent..opaque) and lay it on top of your belnded
texture.
- Use a height based criteria.  You can specify : belowHeight,
belowHeightCompletely, aboveHeight, aboveHeightCompletely, equalHeight.  You
also determine the blend color to be either replace or height range based.
The height range based blend lets you specify heightStart and heightMax.
This will scale the paint alpha by
(height-heightStart)/(heightMax-heightStart).  This is the technique I use
to put snow on mountain tops so it gets more intensely white the higher you
go.  I set it up so that 300m to 500 meters is snow, but it doesn't get to
full white until 500 meters, thus 300-400 meters is scaled to go from less
white to more white.  This stops perfect height based "lines" to appear in
the terrain.
- Each step in the blending can be assigned a random application density.
You can specify that you want this applied a certain percent of the time.
This random criteria works at the texture level, not the texel level.  This
means, apply this "step" only a certain percent of the time.  This is great
for, say creating an alpha blended "moss" texture and blending it into a
rock texture 10 percent of the time.

You will be able to create the brush definitions and save them by name in
the world builder, plus retrieve and change them when you want.

8. Brushes are then applied to terrain according to another set of
criterion.  This means that for any one "zone" you define a series of
brushes to apply to the zone in a series of criteria.  The most common will
be a "named region".  Named regions are areas you will define in the world
builder using an overhead map.  You will draw an arbitrary line on the map,
looping around until the begin point connects to the endpoint.  This region
will be given a name, and you can apply a brush to that area.  There will
also be a "catch all" region which you can also apply brushes (like water)
that will apply to all regions.  This will allow you to create a "desert"
brush and for one region and a "forest brush" for another.  You can overlap
regions, but regions are stacked and will be processed top down.
Transitions from one region to another will be totally smooth because it is
all blended at the texel level, not the texture level.  This means that for
every texel, we apply all this criteria and come up with a single color.
There will also be an "overlay" region.  The overlay region you cannot see
or workwith, but will be used for laying down roads and paths on top of the
finally calculated texture.

/END SNIP



Dave Yazel
Cosm Development Team


----- Original Message -----
From: Shawn Kendall <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, December 02, 2000 2:04 AM
Subject: [JAVA3D] Multi-texturing and what is possible?


In January of next year we will be having our big demo of most of our
Java3D work here at Full Sail.  We are opening a brand new lab, etc. etc.
One of the demos is large terrain visualation.  We have terrain
generation code, and our hardware is going to be the Gladiac, so
naturally we figured we would give multi-texturing a try.  So far, it
has worked pretty good.

However, there is a multi-texturing techique used in gaming that I can
not for the life of me recreate in Java3D.

Here is a picture of a multi-textured terrain in "UT: Game of the Year
Edition" that is using "alpha-maps" to blend between different
textures.(as per THERE explanation).

Take a GOOD look at the .jpg attached.  It is not one giant texture either.
For those interested, here is the link to some of the explanation behind
how they are doing it, but I can not reproduce this with any OpenGL
modeler or Java3D, at this time.  UT is a D3D based game, is it possible
this is Direct3D feature that is not avaible in OpenGL and therefore Java3D?
http://www.dailyradar.com/features/game_feature_page_1444_1.html


Can it be done?
Thanks for any help!

--
___________________________________________________________

Shawn Kendall               Full Sail Real World Education
Course Director             3300 University BLVD
Real Time 3D for Gaming     Winter Park FL 32792
[EMAIL PROTECTED]       http://www.fullsail.com
___________________________________________________________



----------------------------------------------------------------------------
----




cosm45.jpg

cosm44.jpg

cosm42.jpg

Reply via email to