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

Как мне начать играть с 3D?

Я разработчик всего около 6 месяцев, и, поскольку мне нравится программировать, я начал создавать небольшие программы, такие как энциклопедии, калькуляторы, инструменты и т.д., чтобы играть с DropBox (hehe), материал, который воспроизводится с растровыми изображениями, графикой и даже программой для обновления отображаемого изображения MSN в соответствии с изображением музыки, которую вы слушаете на iTunes.

Одним из моих увлечений является 3d-моделирование (полностью любительский), и я хотел бы объединить эти хобби вместе! Поэтому я немного почитал об этом и подумал, что мне нужно будет иметь хорошие представления о геометрии, математике, точке пространственного положения (что я делаю, из моего опыта моделирования 3d), но я не знаю, как использовать API для это, поэтому я "смоделировал" простой 3d с простой программой, которую я сделал (вращающийся куб).

Вот несколько вопросов:
1) Что было бы хорошим инструментом разработки 3d для .NET-программиста, такого как я?
2) Есть ли способ использования 3d-моделей, сделанных в 3DS Max? (Я намерен моделировать персонажей)
3) Какое знание должно быть у меня, чтобы сделать это, и переместить его?
4) Какой API я должен использовать?

ПРИМЕЧАНИЕ: Не обманываюсь, я прошу указания, специфичные для разработки .NET, возможно, используя 3ds MAX, и до сих пор не было вопросов об этом


EDIT:

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

  • portable (click'n'run, не нужно устанавливать и (надеюсь) не нужно отправлять DLL)
  • "3D-вложение" в приложении winforms, например, изображение, которое вы можете отобразить.
  • Реальный winforms, похожий на приложение (имеющий все System api, как IO, Drawing и т.д.)

Окружение разработки было бы неплохо, если бы оно:

  • Если бы была возможность импортировать существующие 3D-модели (не обязательно, но плюс)
  • Если бы была возможность создавать 3d модели программно (обязательно)
  • Возможно, есть инструмент для материалов и текстур (что было бы огромным плюсом)
  • Хорошо известно (высокая доступность учебников, вопросы в S.O., форумы..)

И было бы очень приятно, если бы я мог использовать С# полностью:)

4b9b3361

Ответ 1

Я собираюсь предоставить еще один голос за XNA. Комментарий, что он слишком "ориентирован на игру" не является стартером - он обеспечивает цикл рендеринга с обратной связью о том, как быстро все работает, поэтому вы можете настроить рендеринг, чтобы попытаться поддерживать определенную частоту кадров (если хотите). Это не особенно ориентировано на игры, так как это должно беспокоить большинство 3D-приложений. Единственное, что действительно необычно ориентировано на игры, заключается в том, что он обеспечивает легкий доступ к игровым контроллерам. Не стесняйтесь игнорировать этот бит, если вы не хотите его использовать.

Единственным недостатком для вас, использующим XNA, является ваше требование, чтобы оно было нажато, XNA имеет распространяемый, который вам нужно беспокоюсь о. Обратите внимание, что Win7 установлен по умолчанию, но Vista и раньше этого не делают.

EDIT: XNA создан для приложений, которые являются строго 3D. Как таковой он не поддерживает основную систему, используя обычные элементы управления окном внутри проекта XNA. Но есть способы обойти это... Несколько полезных ссылок. Внедрение XNA в winform: http://forums.xna.com/forums/p/6471/34180.aspx#34180 WPF контролирует непосредственно внутри проекта XNA: http://www.c-sharpcorner.com/UploadFile/iersoy/256/Default.aspx

Ответ 2

Лично я нашел XNA немного "Game Centric" для моих вкусов. Меня больше интересовало использование типов дизайна/архитектуры.

Вы можете найти SlimDX по своему вкусу.

Ответ 3

Несмотря на то, что в этом сообщении есть большие предложения (например, SlimDX и XNA), я хотел бы упомянуть OpenTK.

OpenTK ближе к OpenGL, чем Direct3D, но это может быть лучшим решением для кросс-платформенных приложений .NET.NET.

Ответ 4

Поскольку вы используете С#.Net, библиотека XNA будет отличной для вас. Он свободен от веб-сайта Microsoft и интегрируется в VS IDE. Много полезных руководств, чтобы помочь начать.

Кроме того, если я правильно помню. для использования 3D-модели в XNA просто экспортируйте завершенную модель как (.X). Затем он может быть загружен в вашу работу.

Ответ 5

Я проголосую за Блендера. www.blender.org

Он бесплатный, с открытым исходным кодом и имеет отличное сообщество как на форумах, так и на IRC. Прогресс в приложении каждый год продвигается крупными проектами сообщества, некоторые из которых являются фильмами и играми и завоевали некоторые награды. Это набирает популярность в отрасли как способ очень быстро моделировать.

Недостатки: он не считается "про" как майя или ZBrush, и у него совсем другой мозг об интерфейсе. Кривая обучения может быть интересной, в зависимости от того, как вы учитесь и какую помощь вы получаете.

Upsides: это бесплатное, отличное сообщество, регулярно обновляемое, множество обучающих программ и проектов сообщества для работы.

Сообщество:

Предыдущие проекты сообщества:

Ответ 6

Мое голосование за Povray. Это 3D-рендерер с c-подобным языком синтаксиса. Он не удовлетворяет вашим потребностям .net, но если прохладно, тем не менее, для 3D-рендеринга. Если у вас есть какая-либо интерактивность XNA, вероятно, лучше всего. Но меня интересуют ваши находки.

Ответ 7

Re: "Имеет ли возможность создавать 3d модели программно (обязательно)"

Несколько указателей:

Нет библиотек .NET, о которых я знаю, что позволяет использовать вышеупомянутые библиотеки/методы. Вам нужно будет использовать PInvoke или С++/CLI, чтобы звонить в эти библиотеки из управляемого мира.