Как мне начать играть с 3D? - PullRequest
17 голосов
/ 23 мая 2010

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

Одним из моих других увлечений является 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, похожий на приложение (имеющий все системные API, такие как IO, Drawing и т. Д.)

Среда разработки была бы хороша, если бы она была:

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

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

Ответы [ 7 ]

7 голосов
/ 24 мая 2010

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

Единственный недостаток использования XNA - это ваше требование, чтобы это был click'n'run, у 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

4 голосов
/ 24 мая 2010

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

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

4 голосов
/ 23 мая 2010

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

Вам может понравиться SlimDX .

3 голосов
/ 23 мая 2010

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

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

2 голосов
/ 07 июля 2010

Я голосую, чтобы вы попробовали Blender. www.blender.org

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

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

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

Сообщество:

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

1 голос
/ 24 мая 2010

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

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

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

1 голос
/ 24 мая 2010

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

...