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.
Landscape Collision detection
Started by nvdmerwe, Aug 03 2001 10:16 PM
3 replies to this topic
Sponsor:
#3 Members - Reputation: 142
Posted 07 August 2001 - 07:56 AM
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!
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!
#4 Members - Reputation: 122
Posted 07 August 2001 - 10:53 AM
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.
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.






