Panda3D — игровой движок, включающий графику, звук, ввод-вывод, обнаружение столкновений и другие функции, относящиеся к созданию 3D игр.[2]

Panda3D
Скриншот программы Panda3D
Тип Игровой движок
Разработчики Disney, CMU
Написана на C++, Python
Операционные системы Microsoft Windows, Linux, Mac OS X, FreeBSD
Первый выпуск 2002 года
Последняя версия 1.10.11 (7 января 2022 года[1])
Репозиторий github.com/panda3d/panda…
Лицензия Panda3D License (модифицированная BSD) с 28 мая 2008 года
До 28 мая 2008 года: BSD License
Сайт panda3d.org

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

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

Среди пользователей Panda3D — разработчики нескольких крупных коммерческих игр (Toontown Online  (англ.), Pirates of the Caribbean Online), несколько проектов с открытым исходным кодом и ряд университетских курсов.

Основные возможности править

Графика править

SDK Panda3D предоставляет универсальный интерфейс для работы с трёхмерной графикой, избавляя программиста от необходимости изучать особенности OpenGL и DirectX и использовать низкоуровневые графические операции. В качестве основного графического API Panda3D использует OpenGL в связи с его кроссплатформенностью. Опционально можно использовать и DirectX (только под Windows), однако на текущий момент DirectX в Panda3D имеет ряд ограничений.

Panda3D позволяет автоматически генерировать наиболее используемые шейдеры: Normal Map, Gloss Map, Glow Map, Tone Mapping, Bloom Filter, Threshold Lighting, Inking, Shadow Mapping, Cartoon Inking, Volumetric Lightning, Blur/Sharpen, Ambient Occlusion. Есть возможность подключать свои собственные шейдеры, написанные на Cg или GLSL. Движок использует три типа трёхмерных моделей:

  • Статичные полигональные модели
  • Анимированные модели (возможна как скелетная, так и вершинная анимация)
  • Полигональная поверхность на основе карты высот.

Первые два типа создаются в каком-либо пакете трёхмерного моделирования и затем экспортируются или конвертируются в формат, понятный движку. Третий — динамически строится на основе чёрно-белого изображения карты высот.

Физика править

Изначально в Panda3D был интегрирован физический движок ODE. Начиная с релиза 1.8.0 произведена экспериментальная интеграция PhysX и Bullet Physics Library. Помимо этого, если нет необходимости в использовании полноценного физического движка, имеются встроенные средства для определения столкновений.

GUI править

Panda3D имеет две системы построения GUI: встроенная, основанная на использовании трёхмерных моделей в качестве графического интерфейса и в версии 1.8.0 была включена библиотека libRocket GUI.

Звук править

Движок имеет функции для воспроизведения объемного звука.

Сеть править

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

Прочее править

Утилиты править

  • Анализ производительности и узких мест;
  • утилиты для просмотра и отладки трёхмерной сцены;
  • конвертеры для шрифтов и различных форматов 3D моделей;
  • плагины импорта/экспорта для пакетов 3D моделирования;
  • утилита для просмотра моделей в формате Panda3D (*.bam, *.egg, *.pz);
  • утилиты для работы с виртуальной файловой системой;
  • утилиты для создания и распространения дистрибутива разработанного приложения.

Примечания править

  1. Panda3D Developer Blog. Дата обращения: 19 марта 2020. Архивировано 19 марта 2020 года.
  2. Panda3D Manual. Архивировано из оригинала 5 октября 2012 года.

Ссылки править

Литература править

  • Dave Mathews. Panda3D 1.6 Game Engine Beginner's Guide. — Packt Publishing, 2011. — 356 с. — ISBN 978-1849512725.