I logged into asheron's call, like I do every day
to observe how they do things, and was was admiring their ground. Whats
new. I have always been impressed with their terrain. Our game
ground is looking good, but it resembles EQ ground more than AC ground. So
I was fooling around with their graphics settings, and found a setting for
"texture detail" When I turned it off, the AC ground changes to look just
like mine, a little stretched and interpolated looking. I'm like hmmm. So
I spent 20 minutes turning it on and off trying to figure out the
difference.
Well then I went to the opengl tech site and
started searching their message boards and saw people asking how to make their
terrain look better, and one person said use "texture detail".
Hmmmm, so this is a technique not specific to AC. So I dug some more and
found that "Texture Detail" is a technique which uses multi-textures to overlay
a high detail shadow texture on top of a stretche texture. So I dug into
the Java3d docs and found they have full support for multi-textures.
Basically, the way I think it works is to define a texture which has "dirty
specks" ranging from grey to black, with all the non-spec space alpha channel
masked. Then you set up your terrain polygon mesh and create 2 texture
states, each with their own texture coordinate systems. Then you set up
two texture units, the first one is the normal one, the second one is the
texture detail. The normal one has texture coordinates of 0.0..1.0, which
fully stretches it out, the second has texture coordinates 0.0 ... n.0.
You set up the texture to wrap, and the N value determines the number of times
the texture detail is tiled. When its rendered, the two textures are
smooshed together, probably with a multiply, not really sure.
The effect should be that a non-stretched (or less
stretched) detail texture is intertwined with the stretched texture, fooling the
eye into feeling it is all a high res texture.
I will give this a try next week and let you all
know how it works out.
Dave Yazel
|