Interested Article - Panda3D
- 2021-03-02
- 1
Panda3D — игровой движок , включающий графику, звук, ввод-вывод , обнаружение столкновений и другие функции, относящиеся к созданию 3D игр.
Panda3D является открытым программным обеспечением под модифицированной лицензией BSD . Релизы до 28 мая 2008 года не считались свободным программным обеспечением в связи с определенными ошибками в проекте старой лицензии Panda3D. Несмотря на это, старые релизы Panda3D также могут быть использованы как для бесплатной, так и коммерческой разработки игр без каких-либо финансовых затрат.
Основным языком программирования, предназначенном для работы с SDK Panda3D, является Python , однако ядро движка написано на C++ . Для обеспечения доступа к функциям ядра из Python используется автоматическая генерация . Такой подход дает разработчику преимущества языка Python , такие, как скорость освоения и разработки, автоматическое управление памятью ( сборка мусора ), богатая библиотека дополнительных компонентов, и при этом сохраняет производительность компилируемого языка в ядре движка.
Среди пользователей Panda3D — разработчики нескольких крупных коммерческих игр ( 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);
- утилиты для работы с виртуальной файловой системой ;
- утилиты для создания и распространения дистрибутива разработанного приложения.
Примечания
- . Дата обращения: 19 марта 2020. 19 марта 2020 года.
- . Архивировано из 5 октября 2012 года.
Ссылки
- (данные частично устарели)
Литература
- Dave Mathews. Panda3D 1.6 Game Engine Beginner's Guide. — Packt Publishing, 2011. — 356 с. — ISBN 978-1849512725 .
- 2021-03-02
- 1