Подтвердить что ты не робот

Отображение 3D-моделей в WPF

Я хотел бы отобразить 3D-модель в приложении WPF (модель подготовлена ​​во внешнем инструменте, таком как blender). Какова наилучшая практика? Есть ли какие-либо инструменты для облегчения этого? Как насчет производительности вращения/преобразования?

4b9b3361

Ответ 1

Zam3d - - отличный инструмент для преобразования 3D-моделей в Xaml, но похоже, что Electric Rain уже не работает, вы можете найти где-то копию Googling для него. Я очень рекомендую книгу Петцольда 3D-программирование для Windows. В то же время есть тонна учебных пособий в Интернете, я бы предложил Google для некоторых современных.

Ответ 2

Хороший вопрос! Результат-ответ зависит от ваших целей.

  • Подход. Вы заинтересованы поставить объект модели .3ds (.obj,..) как неподвижную часть вашей сцены без каких-либо интерактивных преобразований (перемещение, масштабирование и т.д.). Этот подход предназначен для простого воспроизведения (обучения WPF3D), как правило,
  • Подход. Вы планируете иметь полную интерактивную часть с поддержкой любых преобразований WPF3D в вашем Viewport3D. Как правило, этот подход предназначен для богатых 3D-манипуляций в профессиональном приложении.

Существует довольно много инструментов для решения этой задачи, но нет универсального решения для любых случаев. Для выполнения этой задачи есть две проблемы:

  • Несовместимые форматы между инструментами. Например, один инструмент создает .3ds (.obj,..), но второй инструмент для перевода его в .xaml(чтение .3ds,.obj,...) не понимают эту модель.
  • Модель, которую вы подготовили в профессиональном инструменте, таком как 3DMax,... не в WPF3D выглядит так хорошо.

Кроме того, будет очень хорошо поменять материалы в модели совместимым (для дальнейшего адекватного представления WPF).

Будьте готовы экспериментировать много раз для достижения наилучших результатов... Кажется, что вы примерно на 2 пункта - Подход. Итак, лучший инструмент для чтения .3ds,.obj файла - Helix 3D Toolkit

Рецепт очень прост. Например, в VB

Dim CurrentHelix3DSStudioReader As New StudioReader()
Dim MyToyModel3DGroup as Model3DGroup = CurrentHelix3DSStudioReader.Read("MyToy.3ds")

или

Dim CurrentHelixObjReader As New ObjReader()
Dim MyToyModel3DGroup as Model3DGroup = CurrentHelixObjReader.Read("MyToy.obj")

Лучший инструмент для манипуляций .3ds,.obj,... моделей, включая сохранение в .xaml - Deep Exploration. Мой образец в 3D-сцене WPF. Быстрый полный управляемый объект

My sample in WPF 3D scene. Fast full managed object

Ответ 3

Вы можете скачать пробную версию 3dsmax и преобразовать модель Xaml exporter для 3D Studio Max этот инструмент мне очень помогает.

Ответ 4

Вы можете импортировать и конвертировать OBJ файлы в XAML с помощью "Blend for Visual Studio", пожалуйста, загляните сюда:

alternative-to-zam-3d-editor