#### Archived

This topic is now archived and is closed to further replies.

# Landscape Collision detection

## Recommended Posts

nvdmerwe    122
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.

##### Share on other sites
Shannon Barber    1681
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

##### Share on other sites
TerranFury    142
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!

##### Share on other sites
nvdmerwe    122
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.