|
![](/i/fill.gif) |
I had this idea, it's not particularly inspired (seemed fairly logical to me),
and i was just wondering what other ppl thought of it...
Currently, to create a decently size landscape, even a regular repeating one,
you have to make a really big heightfield or make copies, translated, of a
smaller one and bear the glitches running along the edges of each section - And
even then you have to make heaps of copies. Anyway, it seems to me that by
making the bounding volume the intersection of two planes (ie, an infinite
"slab"), using modulus arithmetic, you could implement infinitely tiling
heightfields quite simply.
I shall refer to the bounding volume as the bounding slab, and the single
repeating heightfield unit as a tile...
If we say a function RayHits finds out where, if anywhere, the ray hits on a
single hf tile, then we can use the following recursive wrapper function to
extend functionality to infinitely tiled:
Function RayHitsHF(Ray) {
Modulus the ray origin or entry point to find where on a single tile it
enters/starts
If (RayHits) then return hitpoint
else {
If(Ray Exits Top or bottom) then return no intersection
Else RayHitsHF(ray_exitpoint translated to the opposite edge of the tile
bounding box)
}
}
Some method of preventing endless loops would also probably be needeed
What do you think?
--
Sam Minnee
mailto:smi### [at] paradise net nz
http://www.geocities.com/SiliconValley/Horizon/4152/
Ignorance is bliss - And don't you go telling me otherwise!
Post a reply to this message
|
![](/i/fill.gif) |