Панда3D
![]() Логотип для Panda3D. | |
Разработчик(и) | Disney Interactive до 2010 года, Walt Disney Imagineering , Университет Карнеги-Меллона |
---|---|
Первоначальный выпуск | 2002 |
Стабильная версия | 1.10.14 [1] ![]() |
Репозиторий | |
Написано в | С++ , С , Питон |
Операционная система | Microsoft Windows , Linux , macOS , FreeBSD |
Тип | Игровой движок |
Лицензия | Пересмотренный BSD ( Лицензия Panda3D для версий до 28 мая 2008 г.) |
Веб-сайт | www |
Panda3D — игровой движок , включающий в себя графику, звук, ввод-вывод, обнаружение столкновений и другие возможности, необходимые для создания 3D-игр. [2] Panda3D — бесплатное программное обеспечение с открытым исходным кодом под пересмотренной лицензией BSD .
Предполагаемым языком разработки игр Panda3D является Python . Сам движок написан на C++ и использует автоматический генератор-оболочку для раскрытия всей функциональности движка в интерфейсе Python. Этот подход дает разработчику преимущества разработки на Python, такие как быстрая разработка и расширенное управление памятью, но сохраняет производительность скомпилированного языка в ядре движка. Например, движок интегрирован со сборщиком мусора Python, а структуры движка управляются автоматически.
В руководстве и примерах программ по умолчанию используется Python, а в качестве альтернативы доступен C++. Оба языка полностью поддерживаются. Python — наиболее часто используемый язык разработчиков, но также распространен C++.
В число пользователей Panda3D входят разработчики нескольких крупных коммерческих игр, нескольких проектов с открытым исходным кодом и ряда университетских курсов, которые используют короткую кривую обучения Panda3D.
История
[ редактировать ]Студия Disney VR — это филиал Disney, созданный для создания 3D-аттракционов для тематических парков Диснея. Они построили аттракцион под названием «Волшебный ковер Аладдина», а созданный для него движок в конечном итоге стал Panda3D. Двигатель в его нынешнем виде мало похож на те ранние годы. Со временем Panda3D использовался для дополнительных VR-поездок в тематических парках Диснея и в конечном итоге использовался при создании Toontown Online , онлайн-игры, действие которой происходит в мультяшном мире, а позже и для второй MMORPG , Pirates of the Caribbean Online . [3]
В 2002 году движок был выпущен с открытым исходным кодом. По словам авторов, это было сделано для того, чтобы им «могло легче работать с университетами над исследовательскими проектами виртуальной реальности». [4] Однако потребовалось некоторое время, чтобы Panda3D стал проектом с открытым исходным кодом. Из статьи:
Система, хотя и вполне пригодная для использования командой, которая ее разработала, не была полностью «готова к использованию с открытым исходным кодом». Было несколько заинтересованных пользователей, но сборка и установка системы были невероятно сложными, а документации и примеров кода было мало, поэтому сразу не было значительного сообщества открытого исходного кода.
Однако открытый исходный код движка позволил Центру развлекательных технологий Карнеги-Меллона присоединиться к его разработке. В то время как инженеры Disney продолжали выполнять основную часть разработки, команда Карнеги-Меллона взяла на себя роль доводки движка для публичного использования, написания документации и добавления некоторых высококлассных функций, таких как шейдеры.
Название Panda3D когда-то было аббревиатурой: «Независимая от платформы архитектура сетевого дисплея». [5] Однако, поскольку эта фраза во многом утратила свое значение, слово «Panda3D» больше редко воспринимается как аббревиатура.
Дизайн
[ редактировать ]Panda3D — это движок графов сцен . [6] Это означает, что виртуальный мир изначально представляет собой пустое декартово пространство. в который программист игры вставляет 3D-модели. Panda3D не делает различия между «большими» 3D-моделями, такими как модель целого подземелья или острова, и «маленькими» 3D-моделями, такими как модель стола или меча. Как большие, так и маленькие модели создаются с использованием стандартной программы моделирования, такой как Blender , 3ds Max или Maya . Затем модели загружаются в Panda3D и вставляются в декартово пространство.
Граф сцены Panda3D раскрывает функциональность OpenGL и DirectX в довольно буквальной форме. Например, OpenGL и DirectX имеют возможности тумана . Чтобы включить туман в Panda3D, нужно просто сохранить параметры тумана в узле графа сцены. Параметры тумана точно соответствуют параметрам эквивалентных вызовов в базовых API. Таким образом, Panda3D можно рассматривать как тонкую оболочку API нижнего уровня. Отличие от них состоит в том, что он сохраняет сцену, а OpenGL и DirectX — нет. Конечно, он также предоставляет операторы более высокого уровня, такие как загрузка моделей, выполнение анимации, обнаружение столкновений и тому подобное.
Panda3D был впервые разработан до появления вершинных и пиксельных шейдеров. В 2005 году компания приобрела поддержку написанных вручную шейдеров. Однако пользователи не спешили использовать современные методы попиксельного освещения в своих играх. Разработчики предполагают, что это связано с тем, что программирование шейдеров может быть довольно сложным, и многие разработчики игр хотят, чтобы движок справлялся с этим автоматически. [ нужна ссылка ]
Чтобы исправить эту ситуацию, разработчики Panda3D недавно предоставили Panda3D возможность автоматического синтеза шейдеров. Этот синтез происходит, если разработчик 3D-моделирования помечает модель для попиксельного освещения или если он применяет карту нормалей , карту глянца, карту самоподсветки или другие возможности, которые превышают возможности конвейера с фиксированными функциями. [7] Целью синтеза является визуализация модели так, как задумал разработчик, без какого-либо вмешательства со стороны программиста.
Неграфические возможности
[ редактировать ]Panda3D предоставляет и другие возможности, помимо 3D-рендеринга. Главными среди них являются: [8]
- Инструменты анализа производительности
- Инструменты исследования графа сцены
- Инструменты отладки
- Полный конвейер экспорта/импорта произведений искусства
- 3D-аудио с использованием FMOD , OpenAL или Miles Sound System.
- Обнаружение столкновений
- Физическая система и полная интеграция с Open Dynamics Engine и Bullet.
- Поддержка клавиатуры и мыши
- Поддержка устройств ввода-вывода
- Конечные автоматы
- сеть
- Искусственный интеллект
Лицензия на программное обеспечение
[ редактировать ]Краткое содержание
[ редактировать ]Panda3D имеет открытый исходный код и по состоянию на 28 мая 2008 г. является бесплатным программным обеспечением под пересмотренной лицензией BSD . Релизы, выпущенные до этой даты, не считаются бесплатными программами из-за определенных ошибок в конструкции старой лицензии Panda3D. Несмотря на это, старые версии Panda3D также можно использовать как для бесплатной, так и для коммерческой разработки игр без каких-либо финансовых затрат.
Эволюция
[ редактировать ]В 2002 году, когда исходный код движка был открытым, целью разработчиков было создание лицензии свободного программного обеспечения . Однако у лицензии было несколько недостатков, которые делали ее несвободной: возможно, она требовала внесения изменений в [email protected] , [9] и он прямо запрещал экспорт программного обеспечения в различные страны, против которых Соединенные Штаты ввели торговое эмбарго. [10]
28 мая 2008 года направление разработки Panda3D перешло на лицензию BSD . Однако старые выпуски по-прежнему используют старую лицензию. [11]
Panda3D использует несколько сторонних библиотек, лицензии которых не являются свободным программным обеспечением , включая FMOD , Nvidia Cg , DirectX и MFC . Однако большинство этих модулей можно легко исключить из установки.
Проекты с использованием Panda3D
[ редактировать ]- Toontown Online (несуществующий) и их частные серверы
- Pirates of the Caribbean Online (несуществующие) и их частные серверы
- Пираты-призраки острова Вуджу
- История вампира
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Релиз 1.10.14» . 10 января 2024 г. . Проверено 19 января 2024 г.
- ^ «Руководство по Panda3D» .
- ^ «Посмертное: Мульттаун Disney Online» . www.gamasutra.com . 28 января 2004 года . Проверено 11 октября 2020 г.
- ^ «Материалы, PyCon 2004: Движок Panda3D — сценарии Python для разработки игр и моделирования» . Архивировано из оригинала 17 августа 2005 года.
- ^ «Освещение GameDev.net конференции разработчиков игр, Остин, 2008 г.» . Архивировано из оригинала 28 сентября 2008 года.
- ^ «Глава руководства Panda3D: «Граф сцены» » .
- ^ «Глава руководства Panda3D: «Генератор шейдеров» » .
- ^ «Функции | Panda3D» . www.panda3d.org . 16 августа 2018 г. Проверено 11 октября 2020 г.
- ^ «Ветка форума с юридическим комментарием Ричарда Столлмана по поводу старой лицензии Panda3D» . 10 мая 2005 г.
- ^ «Полный текст оригинальной (до 1.5.3) лицензии Panda3D» .
- ^ «Глава руководства по Panda3D: «Введение в Panda» » .
Внешние ссылки
[ редактировать ]- Кроссплатформенное бесплатное программное обеспечение
- Кроссплатформенное программное обеспечение
- Технология Диснея
- Бесплатное программное обеспечение для 3D-графики
- Бесплатные игровые движки
- Бесплатное программное обеспечение, написанное на C++.
- Игровые движки для Linux
- Игровые движки с поддержкой сценариев Python (язык программирования)
- Программное обеспечение, использующее лицензию BSD