Author Topic:   Detail texturing matters
posted January 04, 2000 09:15 AM            
I've started thinking about good ways to implement detail texturing to ROAM terrain (detail texturing as in Tread Marks, see demo if you don't get it

It would be easy to use secondary texture that would be tiled over and over when drawing the terrain. However that would restrict uses of second texture (does Tread Marks use them that way?)

What I'm looking for is a good way to use different detail textures in different areas of map. Problems start when triangles overlap texture borders. One solution would be to lock border triangles to certain level to see that correct detail textures will be used. Doesn't seem so fast and handy, though.

One could just ingnore overlapping and texture triangles with detail texture they should mostly be textured with. Has anyone tried anything like this and would it look like ****?

Other thoughts? Btw. I think detail textures must in any case tile with each other at least for some accuracy. Any ways around this?


Bryan T
posted January 04, 2000 10:55 AM            
Have you tried using a texture that's (for instance) twice the size? Take one patch as an example. A 64x64 pixel texture would be the 'low' detail version applied across the diamond that makes up that patch. When the user requests the 'high' detail version, load a 128x128 pixel texture for that patch instead.

This is 4x the detail and 4x the memory though. I think the method you are suggesting (adding another layer on top of the original texture) would work better on lower-end systems.

Perhaps a merging of the two; use a more detailed second texture that is just random noise (grayscale, not B&W) for the alpha channel. This would take whatever texture was under it and lighten some spots while darkening others, thus giving the feel of added-detail.



LDA Seumas
posted January 04, 2000 09:41 PM           
Following the KISS principle, Tread Marks uses a single Detail Texture tiled over all terrain, with I believe a 16 to 1 texel ratio (so for every color texture texel, which is 1m x 1m in world size, there is a 16x16 block of Detail texels). It sounds cheesy, but it works great in practice.


Putting the Detail Texture in the Alpha channel would not work for a couple of reasons: 1) Alpha channels have to be the same size, in width and height, as the color channels, and 2) using RGBA 4444 textures in 16-bit looks very ugly when doing Tread Marks style terrain texturing, and RGB 565 is really the only viable option.

Random noise modulating the color texture is essentially what I'm doing, though with two-pass or one-pass Multi-textured rendering.

-- Seumas McNally, Lead Programmer, Longbow Digital Arts