Трассировка лучей с использованием k-d деревьев для модели Стэнфордского кролика

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


person Bharath    schedule 24.09.2011    source источник


Ответы (1)


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

Итак, вам необходимо:

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

Используйте Google, чтобы найти дополнительную информацию и пример кода для деревьев KD. Стандартная статья написана Властимилом Хавраном и доступна в Интернете.

person jon-hanson    schedule 07.10.2011