Трассировка лучей с использованием деревьев kd для модели кролика Стэнфорда - PullRequest
1 голос
/ 24 сентября 2011

Я пытаюсь отследить модель кролика Стэнфорда в формате PLY.У меня есть анализатор, который анализирует файл PLY и дает мне значение координат треугольников, а также их вершин.Теперь я не понимаю, как действовать дальше.Должен ли я поместить эти вершины треугольника в вектор, а затем передать их, чтобы построить дерево KD?Также есть ли у кого-то учебное пособие или пример исходного кода, в котором модель ply передается в дерево kd, а затем дерево kd пересекается, чтобы проследить луч сцены?Если у кого-нибудь есть пример кода, которым он может поделиться, пожалуйста, дайте мне знать.Спасибо.

1 Ответ

3 голосов
/ 07 октября 2011

PLY - это формат файла для объектов, описанных как набор полигонов. KD Tree - это структура оптимизации, предназначенная для ускорения времени рендеринга за счет исключения ненужных тестов пересечений.

Так что вам нужно:

  1. Определите свои собственные структуры данных для представления объектов в виде набора точек и набора полигонов (которые ссылаются на точки).
  2. Напишите загрузчик, который использует анализатор для чтения объекта в формате PLY и создает экземпляр вашего типа многоугольника.
  3. Определить структуру данных KD Tree.
  4. Напишите конструктор KD Tree, который перебирает полигоны, составляющие ваш объект, и создает KD Tree.
  5. Расширьте свой трассировщик лучей, чтобы использовать дерево KD.

Используйте Google, чтобы найти больше информации и образец кода для KD Trees. Стандартная бумага Vlastimil Havran, которая доступна в режиме онлайн.

...