Импорт моделей в проект OpenGL - PullRequest
13 голосов
/ 07 января 2010

Я прохожу курс OpenGL, и у нас есть возможность создавать модели для использования в наших заданиях с помощью приложения для 3D-моделирования, такого как Maya или Blender.

Я не с нетерпением жду ввода координат вручную, поэтому мне было любопытно, какие ресурсы я должен изучить для написания кода OpenGL и импорта моделей. (Текстуры будут позже). Я также обеспокоен масштабом, в который я импортирую, но, возможно, сейчас глупо беспокоиться.

Спасибо за любые предложения ресурса. В OpenGL так много всего, что я иногда перегружаюсь поиском того, что мне нужно.

EDIT: Это то, что я в конечном итоге использовал. http://www.spacesimulator.net/tut4_3dsloader.html Я скачал версию "Windows" и с несколькими изменениями пути к включенным, встал и работает. Он не обрабатывает файлы OBJ, а скорее 3DS. Гепард 3D экспортирует и в этот тип.

Ответы [ 4 ]

8 голосов
/ 07 января 2010

Blender может сохранять файлы в формате .obj, и простой поиск в Google вызывает несколько библиотек для загрузки этого в OpenGL. Здесь - один.

5 голосов
/ 07 января 2010

Один из самых простых форматов, который можно использовать для экспорта сеток, - это Wavefront OBJ (пожалуйста, поищите его в Википедии, поскольку мне разрешено публиковать только одну ссылку на данный момент). Это в основном текстовый файл, который не должен быть слишком сложным для анализа.

Или, на самом деле, если вам разрешено использовать GLUT, вы можете попробовать и использовать его загрузчик (как указано в FAQ по OpenGL 24.040 )

Не беспокойтесь о масштабе объекта в данный момент, вы всегда можете масштабировать объект позже. Просто убедитесь, что вы экспортируете его с локальными координатами, а не с глобальными (например, [0,0,0] должен быть центром объекта, а не миром, который вы моделируете).

4 голосов
/ 07 января 2010

Я бы посоветовал не беспокоиться о масштабе объектов прямо сейчас.

Теперь все, что вам нужно сделать, - это выбрать формат для 3D-файла. Существует множество опций при экспорте из 3D-программ, таких как Maya или Blender.

Могу ли я рекомендовать попробовать простой импортер COLLADA. Спецификация информация здесь: http://www.khronos.org/files/collada_spec_1_4.pdf

Другая спецификация, которую я использовал в последнее время, также, вероятно, подойдет для этого - OBJ.

Спецификация для OBJ находится здесь: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

Также, есть несколько бесплатных 3D OBJ-файлов, расположенных здесь здесь . Это позволит вам увидеть формат файлов и по-настоящему увидеть, насколько просто они могут быть проанализированы.

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

2 голосов
/ 07 января 2010

Я бы сказал, что формат Obj является хорошим балансом для удобочитаемости и функциональности, если вы хотите разобрать его самостоятельно.

http://en.wikipedia.org/wiki/Obj

Самый простой способ - найти библиотеку, которая сделает это за вас, но возможности будут ограничены выбранным вами языком.

Тебе не стоит беспокоиться о масштабе. Матрицы OpenGL могут легко масштабировать вершины.

...