Помогите импортировать объект из 3d max в OpenGL
|
|
zverpank | Дата: Понедельник, 16 Июня 2014, 07:20 | Сообщение # 1 |
уже был
Сейчас нет на сайте
| Ребят собственно интересует этот вопрос. Допустим у меня есть куб в формате obj. Как мне его прочитать, чтобы он отобразился в OpenGL. В инете информация есть, мне не понятен не код, не вообще что откуда берется(понимаю, что в коде используется цикл, и он создает массив в котором указываються положение вершин, но все равно не пойму откуда чего берется).
# 3ds Max Wavefront OBJ Exporter v0.97b - ©2007 guruware # File Created: 16.06.2014 05:06:18
mtllib cube.mtl
# # object Box001 #
v -25.000000 0.000000 25.000000 v -25.000000 0.000000 -25.000000 v 25.000000 0.000000 -25.000000 v 25.000000 0.000000 25.000000 v -25.000000 50.000000 25.000000 v 25.000000 50.000000 25.000000 v 25.000000 50.000000 -25.000000 v -25.000000 50.000000 -25.000000 # 8 vertices
vn 0.000000 -1.000000 -0.000000 vn 0.000000 1.000000 -0.000000 vn 0.000000 0.000000 1.000000 vn 1.000000 0.000000 -0.000000 vn 0.000000 0.000000 -1.000000 vn -1.000000 0.000000 -0.000000 # 6 vertex normals
vt 50.000000 0.000000 0.000000 vt 50.000000 50.000000 0.000000 vt 0.000000 50.000000 0.000000 vt 0.000000 0.000000 0.000000 # 4 texture coords
g Box001 usemtl wire_061135006 f 1/1/1 2/2/1 3/3/1 4/4/1 f 5/4/2 6/1/2 7/2/2 8/3/2 f 1/4/3 4/1/3 6/2/3 5/3/3 f 4/4/4 3/1/4 7/2/4 6/3/4 f 3/4/5 2/1/5 8/2/5 7/3/5 f 2/4/6 1/1/6 5/2/6 8/3/6 # 6 polygons
Это собственно сам объект, может кто нибудь если есть время напишет исходники. Заранее благодарен. И еще вопрос какие библиотеки из OpenGL потребуются
Сообщение отредактировал zverpank - Понедельник, 16 Июня 2014, 07:21 |
|
| |
SkmDeveloper | Дата: Понедельник, 30 Июня 2014, 19:20 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Для импорта различных 3D форматов есть библиотека assimp. Она используется во многих движках и SDK.
Пример использования есть в исходниках библиотеки ClanLib.
|
|
| |
cibergod | Дата: Среда, 20 Августа 2014, 00:06 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| У компании Nvidia есть SDK и в ней есть пример как загружать obj файлы в OpenGL
Я на основе этого примера делал проект вот тут сможешь взять исходник https://drive.google.com/file....sharing
Будут вопросы по коду спрашивай
Юнный недоигродел (( но очень стремлюсь Даже сайт завел cibergod.ru Но пока особо нечем хвастать
|
|
| |
wcpt | Дата: Среда, 20 Августа 2014, 10:21 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| советую взять полноценный импортер и разобраться. Иначе неприятно удивишься, когда узнаешь, что вершины необязательно содержат uv, n, объединены они могут быть не только в треугольники, да и вообще, индексы могут быть отрицательными. Плюс, есть еще и буковки, описывающие "гладкую" геометрию
Сообщение отредактировал wcpt - Среда, 20 Августа 2014, 10:25 |
|
| |
cibergod | Дата: Среда, 20 Августа 2014, 11:00 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| Цитата wcpt ( ) Иначе неприятно удивишься, когда узнаешь, что вершины необязательно содержат uv, n, объединены они могут быть не только в треугольники, да и вообще, индексы могут быть отрицательными. Плюс, есть еще и буковки, описывающие "гладкую" геометрию
Если прочитать спецификацию по Obj http://www.martinreddy.net/gfx/3d/OBJ.spec то отрицательные вершины встречаются в 1% случаев 3d max экспортирует ровно то что у меня учтено в проекте.
Юнный недоигродел (( но очень стремлюсь Даже сайт завел cibergod.ru Но пока особо нечем хвастать
|
|
| |
wcpt | Дата: Среда, 20 Августа 2014, 11:55 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| хочется, или нет,да вот только они есть. Так что в общем случае и это придётся учитывать.
Сообщение отредактировал wcpt - Среда, 20 Августа 2014, 11:57 |
|
| |
Archido | Дата: Среда, 20 Августа 2014, 16:57 | Сообщение # 7 |
Сэнсэй
Сейчас нет на сайте
| Для своего проекта проще и эффективнее написать собственный небольшой скрипт экспорта, который будет включать ровно столько, столько нужно (с воможностью дальнейшего расширения, при необходимости) и безо всяких сюрпризов. Для остального (вроде какого-нибудь редактора) заюзать либу, которая сама умеет уже все грузить и не тратить время.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |