MDX C# Загрузка Wavefront OBJs

Я пытаюсь загрузить и отобразить (ЧРЕЗВЫЧАЙНО ПРОСТО) OBJ-файл wavefront.

У меня парсер работает на 100%... он загружает данные из файлов и сохраняет их в структурах в программе.

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

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

Сейчас я пытаюсь работать с Managed Direct X, и у меня возникают серьезные проблемы, связанные с этим.


Есть несколько вещей, которые я запутался в...

1) Есть ли хорошие уроки о том, как хранить и визуализировать простые объекты VB и IB в MDX?

2) Какой формат вершины мне использовать? Спецификация OBJ позволяет вам пропустить текстуру или нормальные индексы, если у вершины нет определенного (таким образом, у некоторых граней могут быть индексы нормалей, текстур и позиций, в то время как у других может быть местоположение JUST). Так что мне просто сохранить его в CustomVertex.PositionNormalTexture, а затем оставить нормаль и текстуру пустыми, если они не определены в OBJ?

3) Это труднее всего понять (возможно, из-за моего незнания концепций VB и IB). Спецификация OBJ допускает (и мой пример файла) грани с произвольным числом индексов вершин. По сути, лицо может быть определено как

f 1/1 2/2 3/3 4/4 5/5 6/6 7/7 8/8 9/9 10/10

Проблема в том, как я могу это сделать? Это полоса треугольника, многоугольник и т. Д.?


В качестве альтернативы, если кто-то знает о каких-либо ранее существовавших решениях для этого (очень легкая и хорошо документированная 3D-система на C#, которая может загружать OBJ самостоятельно или через уже созданный плагин), это также было бы хорошо.

Mogre отсутствует, такая плохая документация это смешно (неверная информация вики, несоответствия в документах и ​​т. Д.)

Я попробовал Иррлихт, и это самое близкое, что я получил. Он имеет встроенный загрузчик OBJ, что приятно (и не выдает никаких исключений, как у 90% других встроенных OBJ-зрителей) (я думаю, что это из-за произвольного числа вершинных граней, большинство парсеров, кажется, фиксируют на максимум 3 или 4). Единственная проблема с Irrlicht - это A.) Я не могу понять, как применить текстуры к файлам OBJ, и B.) Я не могу понять, как сделать это INTO элементом управления. чем вся форма (нужно, чтобы оконная форма создавала пользовательский интерфейс с трехмерным окном просмотра, встроенным в элемент управления).

Если вы можете решить любую из проблем Ирлихта, это также будет приемлемым ответом.

Редактировать: Кроме того, если вы знаете библиотеку C# или ДЕЙСТВИТЕЛЬНО небольшую командную строку.exe, которую я могу использовать для преобразования из OBJ в другой формат 3D, который будет гораздо проще использовать, я также хотел бы знать.

0 ответов

Другие вопросы по тегам