Загрузить 3D-объект в Silverlight 3/4 - PullRequest
3 голосов
/ 16 ноября 2009

Можно ли загружать 3D-объекты в приложении Silverlight 3 или Silverlight 4? (3DS Max объекты или другие форматы). Помимо загрузки объекта мне также нужно несколько базовых взаимодействий - простые повороты, увеличение / уменьшение.

Ответы [ 4 ]

5 голосов
/ 12 декабря 2009

Я думаю, что управляемый 3D-движок Balder может быть правильным выбором для вас. Он хорошо работает в Silverlight, и я использовал его с Silverlight 3 и 4b. В настоящий момент Balder поддерживает формат ASE, но Эйнар и его сотрудники усердно работают над движком и хотят в будущем поддерживать больше форматов сетки.

3 голосов
/ 16 ноября 2009

Не совсем.

Там могут быть некоторые библиотеки, которые могут принести некоторые ограничения 3D-esq для SL (действительно, SL 3 поставляется с небольшим количеством этого самого). Однако на самом деле SL не имеет хорошей поддержки 3D.

Есть старый Kit3D проект, но пока его нет, он не обновлялся в прошлом году.

1 голос
/ 11 декабря 2009

Конечно, это возможно. Сколько кода вы хотите написать? Насколько хорошо это должно выглядеть?

Идея 3D в Silverlight такая же, как 3D во Flash. Вы можете сделать это, если вы в курсе тригонометрии и базовой алгебры. Это довольно легко, если вы не ржавый.

Во-первых, вам нужно будет экспортировать вершины в формат, который можно прочитать или встроить непосредственно в ваш проект. Затем вам нужно создать несколько треугольников и поместить их в массив.

Вы не можете делать освещение вершин очень эффективно, поэтому вы, вероятно, застряли с плоским затенением. Перед каждым кадром необходимо:

  • Пройдите свою геометрию
  • Применение ваших вращений и преобразований (положение, масштабирование)
  • Настройте один треугольник в вашем массиве для каждого треугольника в вашей геометрии (с применением матриц)
  • Сортируй свои треугольники обратно вперед
  • Отрегулируйте цвет каждого треугольника (лучше всего один раз)
  • 1020 * Etc. *

Вам будет трудно превзойти 1000 треугольников / 3000 вершин. Вы можете сделать это, но не если вы хотите делать другие вещи одновременно.

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

0 голосов
/ 12 декабря 2009

Почти невозможно загрузить объект 3Ds Max в Silverlight 3/4.

Google o3D , вероятно, ваш путь.

...