Panda3D

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

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

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  (неопр.). Дата обращения: 10 мая 2024. Архивировано 9 апреля 2024 года.
  2. Panda3D Manual  (неопр.). Архивировано из оригинала 5 октября 2012 года.

Ссылки

  • Официальный сайт Panda3D
  • Русскоязычное сообщество
  • Devmaster.net (данные частично устарели)

Литература

  • Dave Mathews. Panda3D 1.6 Game Engine Beginner's Guide. — Packt Publishing, 2011. — 356 с. — ISBN 978-1849512725.
Перейти к шаблону «Игровые движки»
Графические
Свободные
GLScene
Horde3D[англ.]
Irrlicht
OGRE
OpenSceneGraph
Проприетарные
Outerra[англ.]
Физические
Свободные
Box2D
Bullet
Chipmunk[англ.]
Newton
ODE
Tokamak
Проприетарные
DMM
Havok Physics
PhysX
Общего назначения
2D
Свободные
Allegro
ClanLib
Cocos2d
Construct
Felgo[англ.]
idTech 1
Проприетарные
Construct 2
GameMaker: Studio
Retro Engine
Stencyl
Vicious Engine
3D
Свободные
Away3D
BGE
Bork3D[англ.]
Cafu[англ.]
Crystal Space
Defold
Delta3D
dim3[англ.]
Genesis3D[англ.]
Godot
id Tech 2, 3, 4
jMonkeyEngine
Lumberyard
Moai
Nebula Device
Panda3D
Pygame
QFusion
Проприетарные
Chrome Engine
CryEngine
Dagor Engine
Freescape
Gamebryo
GoldSrc
Havok Vision
id Tech 5, 6, 7
LithTech
Marmalade
RAGE
RenderWare
Source
Source 2
Unigine
Unity
Unreal Engine (список продуктов)
Специализированные
2D
Свободные
LÖVE
Ren'Py
Stratagus
VASSAL
Wintermute
Проприетарные
M.U.G.E.N
NScripter
RPG Maker
3D
Свободные
DarkPlaces
OpenMW
OpenSim
Spring Engine
WorldForge[англ.]
Проприетарные
HeroEngine[англ.]
Другие