Panda3D - Panda3D

Panda3D
Panda3Dlogo.png
Логотип для Panda3D.
Разработчики)Disney Interactive до 2010 г., Уолт Дисней Imagineering, Университет Карнеги Меллон
изначальный выпуск2002
Стабильный выпуск
1.10.7 / 17 сентября 2020 г.; 2 месяца назад (2020-09-17)
Репозиторий Отредактируйте это в Викиданных
Написано вC ++, C, Python
Операционная системаМайкрософт Виндоус, Linux, macOS, FreeBSD
ТипИгровой движок
ЛицензияПересмотренный BSD
(Лицензия Panda3D для версий до 28 мая 2008 г.)
Интернет сайтwww.panda3d.org

Panda3D это игровой движок включая графику, звук, ввод / вывод, обнаружение столкновения и другие возможности, относящиеся к созданию 3D-игр.[1] Panda3D - бесплатное программное обеспечение под пересмотренной Лицензия BSD.

Язык разработки игр Panda3D: Python. Сам движок написан на C ++, и использует автоматический генератор-оболочку, чтобы предоставить полную функциональность движка в интерфейсе Python. Этот подход дает разработчику преимущества разработки Python, такие как быстрая разработка и расширенное управление памятью, но сохраняет производительность скомпилированного языка в ядре движка. Например, движок интегрирован со сборщиком мусора Python, и структурами движка управляют автоматически.

В руководстве и примерах программ используется Python, хотя разработчики работают над переводом руководства на C ++ и предоставлением примеров программ на C ++. Разработчик, использующий Panda3D, обычно пишет код на Python, но также возможен прямой доступ к движку с помощью кода C ++.

Пользователи Panda3D включают разработчиков нескольких крупных коммерческих игр, нескольких проектов с открытым исходным кодом и ряда университетских курсов, в которых используется короткая кривая обучения Panda3D. Сообщество небольшое, но активное, и вопросы по форум обычно отвечают быстро.

История

Студия Disney VR - это филиал Disney, созданный для создания 3D-аттракционов для тематических парков Disney. Они построили аттракцион под названием «Волшебный ковер Аладдина», а движком, который они создали, в конечном итоге стал Panda3D. Двигатель в его нынешнем виде мало похож на те ранние годы. Со временем Panda3D использовался для дополнительных VR-аттракционов в тематических парках Диснея, и в конечном итоге был использован при создании Toontown Интернет, онлайн-игра, действие которой происходит в мультяшном мире, а позже во второй MMORPG, Пираты Карибского моря онлайн.[2]

В 2002 году движок был выпущен с открытым исходным кодом. По словам авторов, это было сделано для того, чтобы им «было легче работать с университетами над исследовательскими проектами виртуальной реальности».[3] Однако потребовалось некоторое время, чтобы Panda3D стала проектом с открытым исходным кодом. Из статьи:

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

Тем не менее, открытый исходный код двигателя позволил Центру развлекательных технологий Карнеги-Меллона принять участие в его разработке. В то время как инженеры Disney продолжали выполнять основную часть разработки, команда Carnegie-Mellon создала для себя роль, оттачивая движок для публичного использования, написав документацию и добавив некоторые высокотехнологичные функции, такие как шейдеры.

Название Panda3D когда-то было аббревиатурой: «Сетевая архитектура дисплея, не зависящая от платформы».[4] Однако, поскольку эта фраза в значительной степени утратила свое значение, слово «Panda3D» уже редко считается аббревиатурой.


Дизайн

Panda3D - это граф сцены двигатель.[5] Это означает, что виртуальный мир изначально пустой Декартово пространство, в которое игровой программист вставляет 3D-модели. Panda3D не делает различий между «большими» 3D-моделями, такими как модель целого подземелья или острова, и «маленькими» 3D-моделями, такими как модель стола или меча. И большие, и маленькие модели создаются с использованием стандартной программы моделирования, такой как Блендер, 3ds Max, или же майя. Затем модели загружаются в Panda3D и вставляются в декартово пространство.

Граф сцены Panda3D раскрывает функциональность OpenGL и DirectX в довольно буквальной форме. Например, OpenGL и DirectX имеют туман возможности. Чтобы включить туман в Panda3D, нужно просто сохранить параметры тумана в узле графа сцены. Параметры тумана точно соответствуют параметрам эквивалентных вызовов в базовых API. Таким образом, Panda3D можно рассматривать как тонкую оболочку API нижнего уровня. Он отличается от них тем, что хранит сцену, а OpenGL и DirectX - нет. Конечно, он также предоставляет операторы более высокого уровня, такие как загрузка моделей, выполнение анимации, обнаружение коллизий и тому подобное.

Panda3D был спроектирован до появления вершинных и пиксельных шейдеров. В 2005 году он получил поддержку шейдеров, написанных вручную. Однако пользователи не спешили использовать современные методы попиксельного освещения в своих играх. Разработчики предполагают, что это связано с тем, что программирование шейдеров может быть довольно сложным, и что многие разработчики игр хотят, чтобы движок обрабатывал это автоматически.[нужна цитата ]

Чтобы исправить эту ситуацию, разработчики Panda3D недавно предоставили Panda3D возможность автоматически синтезировать шейдеры. Этот синтез происходит, если разработчик 3D-моделирования отмечает модель для попиксельного освещения или если разработчик модели применяет карту нормалей, карту блеска, карту самосвета или другие возможности, которые превышают возможности конвейера с фиксированными функциями.[6]Цель синтеза состоит в том, чтобы визуализировать модель, как задумано разработчиком модели, без какого-либо вмешательства со стороны программиста.

Неграфические возможности

Panda3D предоставляет возможности, отличные от 3D-рендеринга. Главные из них:[7]

  • Инструменты анализа производительности
  • Инструменты исследования графа сцены
  • Инструменты отладки
  • Полный конвейер экспорта / импорта произведений искусства
  • 3D Audio, используя либо FMOD, OpenAL или же Звуковая система Майлза
  • Обнаружение столкновений
  • Физическая система и полная интеграция для Open Dynamics Engine и интеграция Bullet
  • Поддержка клавиатуры и мыши
  • Поддержка устройств ввода-вывода
  • Конечные автоматы
  • GUI
  • Сети
  • Искусственный интеллект

Лицензия на программное обеспечение

Резюме

Panda3D является открытым исходным кодом и по состоянию на 28 мая 2008 г. является бесплатным программным обеспечением в соответствии с пересмотренной Лицензия BSD. Релизы до этой даты не рассматриваются. бесплатно программное обеспечение из-за определенных ошибок в дизайне старой лицензии Panda3D. Несмотря на это, эти старые версии Panda3D также можно использовать как для бесплатной, так и для коммерческой разработки игр без каких-либо финансовых затрат.

Эволюция

В 2002 году, когда движок был открыт с открытым исходным кодом, целью разработчиков было создание лицензия на бесплатное программное обеспечение. Однако у лицензии было несколько недостатков, которые делали ее несвободной: возможно, она требовала отправки изменений на [email protected],[8] и он прямо запрещал экспорт программного обеспечения в различные страны, против которых Соединенные Штаты наложили торговое эмбарго.[9]

28 мая 2008 года магистраль разработки Panda3D перешла на Лицензия BSD. Однако в старых выпусках по-прежнему используется старая лицензия.[10]

Panda3D использует несколько сторонних библиотек, лицензии которых не бесплатно программное обеспечение, включая FMOD, Nvidia Cg, DirectX, и MFC. Однако большинство этих модулей можно легко исключить из установки.

Проекты с использованием Panda3D

Смотрите также

Рекомендации

  1. ^ "Руководство по Panda3D".
  2. ^ "Посмертное: Мультяшный город Disney Online". www.gamasutra.com. Получено 11 октября, 2020.
  3. ^ «Труды, PyCon 2004: The Panda3D Engine - Python Scripting for Game and Simulation Development». Архивировано из оригинал 17 августа 2005 г.
  4. ^ "Репортаж GameDev.net о конференции разработчиков игр, Остин, 2008 г.". Архивировано из оригинал 28 сентября 2008 г.
  5. ^ "Глава руководства Panda3D: 'Граф сцены'".
  6. ^ "Глава руководства Panda3D: 'Генератор шейдеров'".
  7. ^ «Особенности | Panda3D». www.panda3d.org. 16 августа 2018 г.. Получено 11 октября, 2020.
  8. ^ «Тема на форуме с юридическим комментарием Ричарда Столлмана о старой лицензии Panda3D».
  9. ^ «Полный текст оригинальной (до 1.5.3) лицензии Panda3D».
  10. ^ "Глава руководства Panda3D: 'Введение в Panda'".

внешняя ссылка