Jump to content

Панда3D

Разработчик(и) Disney Interactive до 2010 года, Walt Disney Imagineering , Университет Карнеги-Меллона
Первоначальный выпуск 2002
Стабильная версия
1.10.14 [1]  Отредактируйте это в Викиданных / 10 января 2024 г .; 6 месяцев назад ( 10 января 2024 г. )
Репозиторий
Написано в С++ , С , Питон
Операционная система Microsoft Windows , Linux , macOS , FreeBSD
Тип Игровой движок
Лицензия Пересмотренный BSD
( Лицензия Panda3D для версий до 28 мая 2008 г.)
Веб-сайт www .panda3d .org

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

[ редактировать ]

См. также

[ редактировать ]
  1. ^ «Релиз 1.10.14» . 10 января 2024 г. . Проверено 19 января 2024 г.
  2. ^ «Руководство по Panda3D» .
  3. ^ «Посмертное: Мульттаун Disney Online» . www.gamasutra.com . 28 января 2004 года . Проверено 11 октября 2020 г.
  4. ^ «Материалы, PyCon 2004: Движок Panda3D — сценарии Python для разработки игр и моделирования» . Архивировано из оригинала 17 августа 2005 года.
  5. ^ «Освещение GameDev.net конференции разработчиков игр, Остин, 2008 г.» . Архивировано из оригинала 28 сентября 2008 года.
  6. ^ «Глава руководства Panda3D: «Граф сцены» » .
  7. ^ «Глава руководства Panda3D: «Генератор шейдеров» » .
  8. ^ «Функции | Panda3D» . www.panda3d.org . 16 августа 2018 г. Проверено 11 октября 2020 г.
  9. ^ «Ветка форума с юридическим комментарием Ричарда Столлмана по поводу старой лицензии Panda3D» . 10 мая 2005 г.
  10. ^ «Полный текст оригинальной (до 1.5.3) лицензии Panda3D» .
  11. ^ «Глава руководства по Panda3D: «Введение в Panda» » .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 967fc1e1671ec2d56d2ed58f060197f0__1708510320
URL1:https://arc.ask3.ru/arc/aa/96/f0/967fc1e1671ec2d56d2ed58f060197f0.html
Заголовок, (Title) документа по адресу, URL1:
Panda3D - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)