Проблема со столкновением с землей при использовании Three.js

Я создал ландшафт с помощью карты высот в Three.js и использую misc_controls_pointerlock mrdoob для столкновения и движения. Однако, когда я делаю objects.push(terrainobj);, производительность падает примерно до 3 кадров в секунду (примерно с 60), и столкновения с ландшафтом нет. Столкновение достигается с помощью лучей. Как я могу обойти это?


person YUMatty    schedule 28.03.2013    source источник


Ответы (1)


Если это просто карта высот, вы можете не использовать луч и выполнять проверку столкновений прямо в растровом изображении (используя холст и данные изображения).

Вам просто нужно преобразовать мировую позицию XZ в пиксель XY на карте высот. Затем, если ваша позиция Y в мире ниже, чем значение цвета пикселя, вы перемещаете объект вверх.

person mrdoob    schedule 28.03.2013