Языки программирования относятся к какому обеспечению сапр

Какой язык и среду программирования мы должны использовать для 3d-программирования? Если вы новичок в программировании, смотрите здесь. Какие есть варианты? Если мы просто хотим отобразить 2d-представление точек. То было бы относительно легко программировать на любом достаточно эффективном языке. Таком как C++ или Java. Если мы хотим отображать 3D-графику в режиме реального времени, например, в игре или 3D-симуляции. То нам нужны язык и среда. Которые работают быстро. А также эффективные 3D-библиотеки.

Возможности:

  1. Используйте C++. Существует довольно крутая кривая обучения, потому что мы должны не только изучать C++ (легкая часть!). Но и понимать библиотеку OpenGL (GLUT) или Direct3d и любые другие библиотеки. Которые вам могут понадобиться.

  2. Используйте Java и Java3D — Гораздо проще учиться, это то, что я использую, JBuilder6 предназначен для Java. Однако недостатком этого является то. Что Java может работать медленнее и сложнее распространять Java-приложения другим людям. Существует стандартное расширение для Java, которое поддерживает 3D-дисплей, это Java3D.
  3. Языки .Net, такие как C# или Visual Basic, которые (версии 2003/ net1.1) теперь поддерживают DirectX 9.
  4. Напишите программу в виде скрипта для управления VRML или 3D-программой, которую вы используете.

Графические стандарты и библиотека классов

  • OpenGL, как правило, используется как графическими, так и САПР-программами и играми.
  • GLUT-это библиотека для использования OpenGL из C++.
  • Direct3d менее точен и, как правило, используется играми.
  • OpenGL поддерживается на рабочих станциях Windows, Macintosh, UNIX, ПК, X-Box, Linux и др.
  • Direct3D поддерживается только на платформах Microsoft Windows и X-box.
  • Я думаю, что другие игровые платформы, как правило, используют свои собственные графические интерфейсы.

Для получения дополнительной информации об этом пожалуйста смотрите это открытое обсуждение на форуме


Коммерческие графические и/или физические движки

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

Одной из возможностей является использование Quake III Arena (TM). Который представляет собой игровой движок для игр типа shoot-em. Использующий OpenGL.

покрытие 3D gamemaker — Позволяет создавать простые игры типа Вы можете использовать своих собственных персонажей в игре. При условии. Что вы можете найти способ построить их в формате файла Microsoft .X.


Ява

Java поддерживается на многих платформах, таких как Windows, UNIX, Linux и т. Д. Исходный код компилируется в код, который работает на виртуальной машине Java (JVM). Sun предоставляет виртуальные машины для поддерживаемых платформ.

Синтаксис языка происходит от C.

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

Есть несколько очень хороших бесплатных инструментов разработки для Java, таких как Eclipse и JBuilder7. Я поместил здесь информацию о настройке Eclipse.

На данный момент Java не имеет встроенной поддержки отображения 3D. Чтобы использовать 3D-библиотеку, такую как OpenGL, нам нужна java — Существует целый ряд возможностей:

  • Java3D — Это Java3D-это одновременно оболочка OpenGL или Direct3D и модель scenegraph.

    Sun прекратила эту разработку, и ее будущее находится под сомнением, есть ли вероятность. Что она может стать открытым исходным кодом?

  • JOGL — Это всего лишь оболочка OpenGL. Поэтому ее загрузка намного меньше, чем Java3D. Есть вероятность. Что в будущем он может быть распространен с Java.

На данный момент есть некоторые недостатки использования Java для 3D.

  • Производительность — JVM является интерпретатором, и это замедляет производительность. Just In Time (JIT) компиляция вместо интерпретации может помочь. Если каждая часть кода выполняется много раз.

    Для больших 3D-моделей также могут возникнуть проблемы с требуемым объемом памяти. Который необходимо настроить во время выполнения. Кроме того, векторная и матричная библиотеки могут не использовать инструкции SIMD. Встроенные в машинный код большинства компьютеров.

  • Распространение — Использование Java3d требует виртуальной машины Java2, большинство ПК этого не имеют. Текущие браузеры все еще используют более старую JVM. Поэтому для загрузки из Интернета и последующего запуска java-приложения на большинстве ПК потребуется: скачать программу. А также скачать Java 2 и скачать Java3d.

    Средний пользователь не был бы готов к этому.

Поэтому Java относительно проста для разработчика, но не очень практична для конечного пользователя.

книги о Java3D

внешние ссылки: http://www.javagaming.org/

покрытие JBuilder — На сайте borland также есть бесплатная версия Jbuilder . Однако его лицензионные условия довольно ограничительны, поэтому вы можете предпочесть другую java IDE.


.NET

Это специфический фреймворк Microsoft. Как и Java, он компилируется в промежуточный код. Преимущество .NET заключается в том. Что он позволяет выбирать между C++. C#al Basic и другими языками и даже смешивать эти языки.

Есть некоторые версии Linux , такие как mono, я не знаю, насколько они полны или надежны, и если они зацепятся. Однако выбор платформ меньше, чем Java.

Программы, написанные для этого фреймворка. Будут распространяться в виде промежуточного кода (CLI = Common Language Infrastructure). Это интерпретируется (или более точно компилируется как раз вовремя) при запуске.

Оригинальные версии этих программ 2002 года не имеют библиотеки, поддерживающей ActiveX или OpenGL. Поэтому единственный способ использовать эти версии-использовать оболочку .NET anOpenGL, которая может быть включена в вашу программу .NET в качестве компонента AxHost.

Версии этих программ 2003 года (.net version 1.1) теперь поддерживают DirectX 9 без необходимости использования каких-либо сторонних плагинов.

В настоящее время используются версии этих программ 2005 года .net version 2.0. Это означает, что код, созданный с использованием версий 2005 года. Будет работать только на КОМПЬЮТЕРАХ с установленным .net 2.0.

С#

покрытие Visual C# .NET только для платформ Microsoft.

Это язык Microsoft, который использует идеи из Java. Например, он использует виртуальную машину и сборщик мусора.

Основное отличие заключается в том. Что промежуточный код (CLI = Common Language Infrastructure) не так тесно связан с C#. Поэтому виртуальная машина может использоваться другими языками.

Существуют различные способы написания кода с использованием C#, такие как:

  • Используйте среду разработки Mono с открытым исходным кодом в Linux.
  • Используйте Microsoft Express 2005 edition, это бесплатно в течение года (на момент написания статьи). Однако это очень большая загрузка и reqires .net 2.0 на любых машинах, которые запускают код.

Программирование игр .Net на языке C#

покрытие Введение в дизайн 3D-игрового движка с использованием DirectX 9 и C# (Net Developer)

Учебник — Использование C# для написания 2D-игры


C++

покрытие Visual C++ .СЕТЬ только для платформ Microsoft.

C++ , как правило, является языком выбора для программистов игр.

C++ и C, как правило, соответствуют непосредственно машинному языку используемой платформы. Кроме того, C и C++ позволяют писать таким образом. Который довольно близок к большинству машинных кодов (инкрементные указатели и т. Д.). Из-за этих вещей создаваемый код может быть очень эффективным и работать очень быстро. Однако очень легко создавать ошибки, такие как не высвобождение ресурсов, приводящее к утечке памяти. Или неправильная установка указателей и т. Д.

Существует очень крутая кривая обучения для программиста, который должен изучить сам язык, библиотеки. Любую используемую 3D-библиотеку. А также любые библиотеки для компонентов интерфейса. Эти библиотеки не всегда Однако в C++ вы мало что можете сделать, если сможете справиться со сложностью.

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

  • Microsoft Visual C++ with MFC — MFC — это набор библиотек классов для поддержки вдов, кнопок, текстовых полей. Элементов управления и т. Д. Если вы пишете игру, то MFC не понадобится, если вы хотите, чтобы экран состоял только из 3D-окна. Заменяется .NET, если только вам не нужны функции, еще не поддерживаемые .NET, такие как OpenGL или Direct3D.
  • Microsoft Visual C++ с библиотекой шаблонов ATL — Active-это легкая альтернатива MFC. Предназначенная для включения в веб-страницы. Созданная вместе. Чтобы конкурировать с Java-апплетами без защиты. Теперь вытесненными .NET.
  • Microsoft Visual C++ с OpenGL и GLUT (пока не может использоваться непосредственно с .NET).
  • Microsoft Visual C++ с Direct3D.
  • Microsoft Visual C++ NET — Это ограничивает вас подмножеством C++ (например, без множественного наследования). Кроме того, он не поддерживает OpenGL. Однако я написал оболочку, позволяющую обеспечить элемент управления OpenGL в программе .NET.
  • Linux + Gnome + Glade-это бесплатный конструктор пользовательских интерфейсов для GTK+ и GNOME.
  • Linux + KDE + KDevelop — C/C++ IDE (информация о программировании на C++ с помощью KDevelop здесь)
  • Linux + OpenGL

Поскольку на большинстве ПК уже установлен код для 3D-библиотек, программы. Скомпилированные с C++ на родную платформу. Могут быть гораздо проще для пользователя установить. Чем программы Java. Пользователю остается только загрузить сам код из Интернета в виде EXE-файла и запустить его. При условии. Что они доверяют сайту, откуда пришел код!


Машинный код

Если вам нужен действительно быстрый и эффективный код, вы можете закодировать его самостоятельно, используя ассемблер. Чтобы создать более быстрый код. Чем компилятор.

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

Одним из примеров, когда написание машинного кода вручную может помочь. Является использование расширений машинного кода. Предназначенных для 3D. Это SIMD Single Instruction Multiple Data instructions, такие как MMX и 3DNow. Которые могут выполнять несколько операций с целыми числами или плавающей запятой одновременно.


Visual Basic

покрытие Visual Basic .СЕТЬ только для платформ Microsoft.

Visual Basic легче изучать, чем некоторые другие языки. Но он может быть не так хорошо структурирован и не так хорошо масштабируется по мере того. Как программа становится больше. Он может быть либо интерпретирован, либо скомпилирован, но он не будет производить такой эффективный код. Как C++. 3D-библиотеки. Такие как Direct3D. Могут быть вызваны с помощью компонентов ActiveX.

Microsoft Express 2005 editionявляется бесплатным в течение года (на момент написания статьи). Однако это очень большая загрузка и reqires .net 2.0 на любых машинах, которые запускают код.