One technique for texturing terrain I''ve seen used is the use of seperate textures which are blended together using a larger "blend map," or terrain attributes (slope, altitude, etc). For example: Different areas of a landscape can be dirt, snow or grass, and the textures are blended together at their edges. I have managed to do something like this using multipass techniques, but it''s much too slow to be of practical use. For one thing, it requires that the scene be transformed twice (is there a way around that, at least?)
I''m very willing to settle on one rule: No more than two textures can exist on the same face or vertex. That is, snow can blend to rock, and rock can blend to grass, but snow, grass, and rock cannot blend together over one face. The add-on to Quake III Arena: Team Arena supports terrains that follow these same rules. An entirely different game, Earth 2150, also uses similar techniques for rendering terrain. Actually, I was just browing my "Downloads" directory, and it seems that an amateur coder''s engine, "Heylow," also uses this technique. Too bad he didn''t release any source!
I have seen how multiple texture units of a video card can be used to perform multitexturing specifically with lightmaps, but I have not seen anything regarding alpha multitexturing, but I assume this just requires the use of an RGBA texture. And I assume these games use alpha channels in some manner. But each texture''s alpha map appears, at least, to be of a much lower resolution than the actual texture. And I have no idea how this can be done.
But I''d be willing to bet some people here have actually implemented systems like those I keep referring to. Mind sharing how?
Hmm... You could use a multi-texture idea like so. Have 4 textures, snow, snow trans, grass and grass trans setup 2 adjacent quads. one snow, one grass the snow-trans has a starting alpha of 255, and gradients down to 128 or 64. This is multi-textured onto the snow quad. Repeat with grass. This might work, it just off the top of my head
I came, I saw, I got programmers block. ~V''''lion
I actually thought of that myself, too. But I'm almost positive what I'm referring to can be done, and, if it is, I'd prefer to do that.
Although the author of "Halo" didn't release any source, I got a hint by looking at the game files. The engine has, in addition to the heightmap, two "alphamaps" of the same size which seem to correspond to different textures. Can a small part of a large alphamap be used as the alpha channel of a smaller texture?
Also, how can multipass rendering be done without re-transforming the scene's geometry at each pass? Specifically, the rendering of the same geometry multiple times, but with different alpha values for each vertex?
Edited by - TerranFury on September 2, 2001 8:55:36 AM