I have created a terrain via a heightmap in Three.js and am using mrdoob's misc_controls_pointerlock for collision and movement. However, when I do objects.push(terrainobj); the performance goes down to about 3fps (from around 60) and there is no collision with the terrain. The collision is achieved via rays. How can I get around this?
If it's just a heightmap you could avoid using ray and do the collision checking right in the bitmap (using canvas and imagedata).
You just need to convert your XZ world position to the XY pixel in the heightmap. Then, if your Y position in the world is lower than the color vaue of the pixel then you move up the object.
来源:https://stackoverflow.com/questions/15687678/issue-with-terrain-collision-using-three-js