OpenGL, выбраковка объектов вне вида - PullRequest
0 голосов
/ 01 декабря 2018

В моем случае я хочу визуализировать 50 000 или более кубов, которые распределены случайным образом внутри большого ограничивающего прямоугольника, я не хочу прямо сейчас использовать инстансинг, поэтому мне нужно визуализировать каждый куб, я хочу улучшить производительность, отбирая кубыкоторые находятся вне поля зрения камеры.У меня есть класс камеры, который имеет две матрицы view и projection, у каждого куба есть свой ограничивающий прямоугольник, поэтому я планирую проверить каждый кадр, если ограничивающий прямоугольник вида камеры содержит центр каждого куба, если да, вызвать его отрисовкуфункция, если не игнорировать ее.

У меня есть для матрицы просмотра 3 вектора глаз, цели и вверх, а также для ширины проекции, высоты, ближнего, дальнего и поля зрения.

, поэтому у меня есть два вопроса:

  • Это правильный сценарий?Я буду вычислять коробку обзора камеры для каждого кадра, а затем проверять каждый куб.
  • Как рассчитать ограничивающую камеру камеры для каждого кадра?

1 Ответ

0 голосов
/ 02 декабря 2018

У меня есть идея отсюда how_to_check_if_vertex_is_visible_for_user , которая отлично работала со мной.

умножение матрицы проекционного вида камеры на любую точку в трехмерном пространстве, видимые должны быть между[-1,1].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...