2012-05-12 2 views
2

Я программист Java, у которого есть большой опыт работы с Swing, который я использовал для 2D-программирования игр. Мне интересно писать 3D-игры и не знаю, какой API использовать - OpenGL или Direct3D.OpenGL против Direct3D?

  • Я не забочусь о переносимости или обратной совместимости или об этом. Я программирую как хобби на Windows-машине.
  • Самый большой фактор в моем выборе таков: какой API дает мне лучшее соотношение производительности и скорости?
  • Однако я также хочу, чтобы API, который достаточно хорошо документирован в Интернете. Я не хочу терять время, нащупывая темноту.

Другие менее основные факторы

  • Какой из них имеет "чистого" кода? Какой из них более объектно-ориентирован?
  • Я понимаю, что OpenGL обычно используется с C++. Я бы предпочел использовать C#. Какой из двух проще использовать в C#?

ответ

8

Оба могут использоваться с C#, благодаря OpenTK и SharpDX соответственно. Из них SharpDX является самым молодым, но наиболее активно развитым.

Оба варианта обеспечивают отличную производительность при правильном использовании. Я не думаю, что можно доказать, что либо быстрее, чем другой.

Конечно, OpenGL имеет гораздо более широкую совместимость между платформами, но если все, о чем вы заботитесь, это Windows, то это не проблема.

Direct3D несколько более объектно-ориентированный, чем OpenGL; это COM API, в то время как OpenGL - это API C. Ни один из них не приводит к хорошему коду, в конце концов, они очень низкоуровневые API. Если объектно-ориентированное и чистое - то, что вы хотите, вы должны изучить некоторые более высокоуровневые утилиты, чем эти API, например XNA/MonoGame.

3

Я не сторонник, но все, что вы говорите, предполагает, что вы, вероятно, будете более комфортно - и, возможно, более продуктивным - с решением Microsoft.

Вы не указали свою ОС или окружающую среду. Но предположим, что у вас достаточно быстрый ПК (с аппаратным ускорением), много оперативной памяти, много дисков ... и, в идеале, Windows 7/64-бит.

Вы можете скачать Visual Studio бесплатно здесь:

Вы можете скачать DirectX SDK здесь:

И вы с найти множество полезных руководств, документации и примера кода во всем мире.

Удачи - и получайте удовольствие!

Смежные вопросы