Итак, после неудачной попытки внедрить загрузку ландшафта карты высот в среду 3D-игры, я как бы сжульничал и загрузил свой ландшафт в 3D-игру, используя вместо этого модели из блендера в виде файлов OBJ. Я как бы понимал, что это будет дорого и, вероятно, потом укусит меня за задницу, но в то время мне было все равно.
Итак, теперь я нахожусь в точке, где мне нужно реализовать столкновение с ландшафтом и моделью. Обычно, если бы я загрузил свой ландшафт картами высот, это было бы легко, но теперь я не понимаю, как реализовать столкновение модели ландшафта, поскольку оба они технически являются сетками.
Как правило, меши, загружаемые из файлов OBJ, используют ограничивающую рамку или столкновение сфер для обнаружения столкновений между моделями. Но в моем случае сетка ландшафта огромна, и другие модели (танки, люди, деревья...) лежат поверх моего меша ландшафта. Так что ни один из этих методов не работает.
Еще одна моя попытка состояла в том, чтобы напрямую извлечь все данные о 80000 вершинах из моего OBJ-файла ландшафта, сравнить эти данные о вершинах с данными из других моих моделей. Но проблема в том, что это крайне неэффективно и дорого из-за того, что я должен проверять все 80000 вершин в каждом цикле рендеринга, что приводит к резкому падению FPS и делает игру неиграбельной.
Есть ли у кого-нибудь предложения о том, как реализовать столкновение моделей местности, когда и модель, и местность загружаются из файлов OBJ и являются сетками? Или мне просто нужно вернуться к загрузке ландшафта с карт высот?