Кроссплатформенная графика 3D с .NET - PullRequest
7 голосов
/ 25 июня 2010

Я бы хотел запрограммировать приложение .NET, которое обеспечивает 3D-рендеринг анимированного мира. Я пишу код на ПК с Windows, но многие из моей целевой аудитории будут работать на Linux.

Существует множество фреймворков, которые выглядят полезными, и делятся на верхние и нижние уровни, насколько я могу:

Графика низкого уровня

  • OpenTK
  • Tao Framework , кажется, был заменен OpenTK, и сайт в настоящее время не работает, хотя сайт Mono имеет некоторую информацию
  • SDL

Основы разработки игр

Кто-нибудь из этих не претендует? Что вы считаете лучшим вариантом и почему? Я ищу любые глубокие сравнения и рекомендации за / против. Некоторые из них утверждают, что работают как заменители XNA. Означает ли это буквально, что вы можете развернуть на Win / Mac / Linux, а также Xbox? Есть ли подвох?

Я еще не знаком с API OpenGL / DirectX / XNA для 3D-графики. Легче ли с ними работать, чем с другими? Вы теряете какую-либо гибкость / мощность / производительность из-за более высоких уровней абстракции?

Обратите внимание, что у меня не будет доступа к машине Linux в течение месяца или около того, поэтому я не смогу протестировать свою разработку под Linux (отсюда и этот вопрос).

РЕДАКТИРОВАТЬ Я нашел эту таблицу , которая добавляет еще несколько в список. Я слил их выше.

РЕДАКТИРОВАТЬ 2 Я склоняюсь к Аксиоме. Это дает довольно грубую посадку, но показывает реальные перспективы с точки зрения возможностей. Вот отличная сводная статья с отзывами пользователей . Но до сих пор довольно сложно использовать документацию для начинающих и примеры проектов. Все учебники ссылаются на разные версии API, и все они рекомендуют использовать разные базовые классы (не включенные в API) для начала. Конечно, не предназначен для Ямы Успеха , но все еще многообещающе.

Ответы [ 4 ]

7 голосов
/ 25 июня 2010

Может быть, не совсем то, что вы ищете, но Unity3D - это кроссплатформенная игровая среда 3D, основанная на Mono, что означает, что вы можете кодировать нужные биты в C #. Есть инди и про версии с инди-версией, которая бесплатна. http://unity3d.com/

3 голосов
/ 27 июня 2010

Использовать OpenTK

  • Это OpenGL Это платформа независимый. Это сильно напечатано
2 голосов
/ 25 июня 2010

Я бы поддержал идею взглянуть на Unity, которая, если я правильно помню, использует C # в качестве языка сценариев, чтобы позволить вам написать код игры (используя Mono), позволяя фактическому движку рендеринга и так далее использовать собственный код (предположительно C ++).

В противном случае, я бы с осторожностью использовал Mono для чего-либо, например, для 3D-графики или другого «жесткого ядра» ... всего, что связано с графическим интерфейсом или рендерингом, я бы нервничал.Но это мой личный выбор, если у вас есть время потратить на исследования, возможно, стоит собрать прототип вместе ... но я бы не стал писать много кода на C # без возможности тестировать его на Linux очень рано в случае большихвопросы.

1 голос
/ 25 июня 2010

Вы можете изучить использование Qt и OpenGL. Однако я полагаю, что OpenGL, вероятно, слишком низкоуровневый (читай: «ненужно сложный») для ваших конкретных потребностей.

...