many thanks again Philip,
your answer was very clear and detailed..
 
so i guess i'll stuck with 2-3 detail textures (i don't need a lightmap, cause lighting is done by vertex normals..)
 
but i still don'T know how to texture my terrain now:
 
is it possible in java3D to blend those 2-3 detail textures together depending on the height value..?
if not perhaps depending the vertex color ?
 
 
till now i generate a unique texture from the height-data and four detail-textures for every part in the map:
 
______________________
|         |         |        |         |
|__12_|__13_|__14_|__15_|
|         |         |        |         |
|__8__|___9_|__10_|__11_|
|         |         |        |         |
|__4__|___5_|__6__|__7__|
|         |         |        |         |
|__0__|___1_|__2__|__3__|
 
here every part'S texuture is generated with following algo.
(in my app i got 128x 128 parts each with a big stride)
 
but is this necesary, because every textures is mixed from only four..?
 
how do you apply your terrain textures ?
 
 
greetings
Michael Nischt
------------------------------
e-mail:          [EMAIL PROTECTED]
homepage:    http://zero.atariflys.de
---------------------------------------------------------------
 

....
for(int y=0; y < height; y++)
    for(int x=0; x < width; x++)
    {
        heightValue = heightmap[(y*width)+x];
        for(int i=0; i < cnt; i++)
        {
            texFactors[i] = getTexFactor((cnt-(i+1))*part, heightValue+1.0f);
            colorBits = textures[i].getRGB(x,y);
            red[i] = (colorBits & 0x00ff0000) >> 16;
            green[i] = (colorBits & 0x0000ff00) >> 8;
            blue[i] = colorBits & 0x000000ff;
        }
        for(int i=0; i < cnt; i++)
        {
            mixedRed += texFactors[i] * red[i];
            mixedGreen += texFactors[i] * green[i];
            mixedBlue += texFactors[i] * blue[i];
        }
        mixedColorBits = mixedRed << 16 | mixedGreen << 8 | mixedBlue;
        mixedImage.setRGB(x,y, mixedColorBits);
        mixedRed = mixedGreen = mixedBlue = 0;
    }
    return mixedImage;
}
...
 
 
 
 
----- Original Message -----
Sent: Friday, June 29, 2001 1:31 AM
Subject: Re: [JAVA3D] multitexturing and OpenGL Extensions

its not the size of the texture. fetching texels is relatively cheap.
 
its the number of passes, and for how many pixels in the scene.  consider that each additional pass burns fill-rate. 
 
so if you do this for an object that affects most of the pixels in the render-target, like terrain,  then your fill rate cost equation is effectively base-fill-rate/2*number-of-passes. that chews up fill-rate fast.
 
if its only for characters, and only for the main ones, then you can probably get away with this since the number of pixels in the render-target affected by the character primitive draws isnt such a large percentage of the entire render-target to burn fillrate at quite the same ratio.
 
think about how you plan to use multi-texture. its hard to see how 4 layers of texture arent sufficient in most cases:
    base texture
    lightmap texture
    detail texture 1
    detail texture 2
 
2 layers of detail texture allows you to apply noise/grain textures for ground, rock, vegetation at 2 differing pixel frequencies. which is usually enough to simulate variation across the pixels at an acceptable level of quality unless you are flying/moving right up on the ground/grass...in which case you need to think if your camera controls need to be that fine or if you need to burn more fill rate for visual quality.
 
think about why anything more than 4 layers of texture would be required to get the effect you are after. it might be with bump-mapping, specular, etc that you do need multiple passes. but think it thru. its really about what you are trying to achieve, and efficiently using the hw resources to accomplish that task.
 
and thats before we get to texture renderstate changes, which arent cheap and you will have a lot of them in cases like this - but in this case the loss of fill-rate due to inordinate number of passes dominates the cost equation.
 
final note - Gary Tarolli, ex of 3Dfx, used to show a "Borg cube" demo where he built up 8 layers of multi-texture, the last 4 or 5 being detail textures at different frequencies ( tiling at 2x 3x, 5x, 9x, etc number of times across each face ) which produced quite a huge amount of visual variation and depth.  what could you possibly be doing that would need more layers of texture than that? how does that contribute to the visual quality of the scene, and at what cost?

Reply via email to