Landscape Collision detection

Started by
2 comments, last by nvdmerwe 22 years, 8 months ago
Now that the terrain is finished I need to put characters on it. The problem is I have no idea how get them to walk around on this kind of surface. As the x and y positions change the z has to change according to the height at those points. What kind of approach can I use? and can I use the same thing for camera collision detection.
Advertisement
Though I have very limited knowledge of them, I think a BSP trees can be used to do CD efficently on terrain.



Magmai Kai Holmlor
- Not For Rent
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
I''m assuming you''re using a heightmap? I''ll say it''s a 2d array (change it to whatever data structure you want).

z = (map[(int)x][(int)y] * (1 - (x - (int)x)) + map[(int)x + 1][(int)y] * (x - (int)x)) * (1 - (y - (int)y)) + (map[(int)x][(int)y + 1] * (1 - (x - (int)x)) + map[(int)x + 1][(int)y + 1] * (x - (int)x)) * (y - (int)y)

That can be optimized a LOT.

If I''ve made a mistake in there (I often do) someone please correct me!
It took me a few minutes but the formula makes perfect sense now. Thanks.

I''m actually using an imported mesh, but I think it could be modified without too much trouble.

Another thought I had was too use the the whole ''map'' datastructure and fit it on an approximated polynomial function. That way you could feed the function the x and y values and just get the z-value at those points.
This would give you the approximated z-value in one go.

Can someone tell me if this sounds like a valid method and/or if someone is using something similar.

This topic is closed to new replies.

Advertisement