Пересечь выбранный луч с фигурами в OpenGL - PullRequest
1 голос
/ 26 июля 2011

Я пытаюсь выполнить сбор в OpenGL, и у меня есть 3 вопроса в 1.

  1. Я дважды использую команду Unproject, один раз с 0 и один раз с 1 как ближние / конечные плоскости,Некоторые статьи говорят, что 0 и 1 в порядке, другие говорят, что я должен использовать вычисленную глубину.Какой из них мне взять?

  2. Затем, предполагая, что я могу вычесть оба результата, я получу луч (луч идет от моей "камеры" в направлении, указанном как x, y, z, верно? x, y, z - абсолютные значения или относительно моей «камеры»?

  3. Теперь, когда у меня есть луч, как я могу пересечь его с фигурами?Кстати, как я могу перечислить существующие фигуры и рассчитать их координаты против луча?

1 Ответ

2 голосов
/ 27 июля 2011

2 - Ваш луч будет относительно камеры, просто умножьте его на обратное преобразование камеры.

3 - Для почти всех целей вам необходим алгоритм пространственного разделения (двоичное пространство, ограничивающий объемИерархия и т. Д.) И вы должны вести список созданных вами фигур ...

...