Существует ли формат 3D-сцены, специфичный или подходящий для трассировки лучей? - PullRequest
9 голосов
/ 19 января 2011

Я работаю над raytracer и не хочу изобретать велосипед, когда дело доходит до форматов файлов для 3D-сцен.Я также хочу иметь возможность проверить мою программу со сценами, сделанными другими.Я программист, а не 3D-модельер.

Существует ли формат 3D-сцены, специфичный или подходящий для трассировки лучей?

Ответы [ 3 ]

6 голосов
/ 19 января 2011

На самом деле нет формата, специфичного для трассировки лучей (если не считать формат PovRay).Трассировка лучей - это метод рендеринга изображений, который можно применять к любой сцене.Люди, моделирующие сцены, будут использовать программное обеспечение для моделирования по своему выбору и обычно сохраняют его в формате по умолчанию для моделировщика.

Похоже, у вас нет требований для загрузки определенного формата (или вы не захотитеспрашиваю) поэтому я предполагаю, что вы просто хотите иметь возможность импортировать различную геометрию из сети для тестирования.Если это так, посетите форум ompf по адресу: http://ompf.org/ У них есть раздел со ссылками на свободно доступные сцены.Вы можете почувствовать, что там общего.

Другой вариант - использовать Open Asset Import Library: http://assimp.sourceforge.net/

, это может импортировать большое количество форматов файлов для вас.Он загружает их все во внутреннюю структуру данных, которую вы можете затем обработать по своему усмотрению.Он использует лицензию BSD, поэтому он должен быть разумно совместим с тем, что вы делаете.

5 голосов
/ 20 января 2011

Когда я написал свой трассировщик лучей, я написал экспортер для Blender (это бесплатно).Сам Blender может загружать десятки форматов, тогда простой 20-строчный скрипт на Python даст вам нужные вам очки.

Супер приятная особенность заключается в том, что в Blender вы можете конвертировать все грани модели в треугольники.Большинство трассировщиков лучей будут работать только с треугольниками (или конвертировать полигоны в треугольники внутри).Поэтому очень приятно, когда Blender выполняет сложную работу по созданию этих многоугольников.

Начать с 20 строк кода позволит вам экспортировать только многоугольники.Оттуда вы можете распространить его на выходные материалы, нормали и т. Д. Мне нравится этот метод, потому что я могу получить нужные данные в нужном формате, но при этом у меня есть возможность импортировать более сложные модели.

Другие методы будут работать, но сначала вы должны выяснить, как анализировать файл, а затем получить его в нужном формате.Я бы лучше написал трассировщик лучей, чем парсер.

1 голос
/ 19 января 2011

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

...