Skip to main content
GameDev.net gamedev.net
🔒 Locked

Landscape Collision detection

Started by nvdmerwe Aug 4, 2001 at 4:16 AM 2 replies 2k views
Original Post
nvdmerwe
nvdmerwe
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.
Shannon Barber
Shannon Barber
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
TerranFury
TerranFury
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!
nvdmerwe
nvdmerwe
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.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.