Panda3D - Panda3D

Panda3D
Panda3Dlogo.png
Logo Panda3D.
Deweloper(zy) Disney Interactive do 2010 roku, Walt Disney Imagineering , Carnegie Mellon University
Pierwsze wydanie 2002
Wersja stabilna
1.10.10 / 31 sierpnia 2021 ; 19 dni temu ( 2021-08-31 )
Magazyn
Napisane w C++ , C , Python
System operacyjny Microsoft Windows , Linux , macOS , FreeBSD
Rodzaj Silnik gry
Licencja Zmienione BSD
( Licencja Panda3D dla wersji sprzed 28 maja 2008 r.)
Strona internetowa www .panda3d .org

Panda3D to silnik gier, który zawiera grafikę, dźwięk, we/wy, wykrywanie kolizji i inne możliwości związane z tworzeniem gier 3D. Panda3D to darmowe oprogramowanie na zmienionej licencji BSD .

Zamierzonym językiem tworzenia gier Panda3D jest Python . Sam silnik jest napisany w C++ i wykorzystuje automatyczny generator opakowań, aby uwidocznić pełną funkcjonalność silnika w interfejsie Pythona. Takie podejście daje programiście zalety programowania w języku Python, takie jak szybki rozwój i zaawansowane zarządzanie pamięcią, ale zachowuje wydajność skompilowanego języka w rdzeniu silnika. Na przykład silnik jest zintegrowany z garbage collectorem Pythona, a struktury silnika są zarządzane automatycznie.

Podręcznik i przykładowe programy domyślnie używają Pythona, a C++ jest dostępny jako alternatywa. Oba języki są w pełni obsługiwane. Python jest najczęściej używanym językiem przez programistów, ale C++ jest również powszechny.

Użytkownicy Panda3D to twórcy kilku dużych gier komercyjnych, kilku projektów open source i wielu kursów uniwersyteckich, które wykorzystują krótką krzywą uczenia się Panda3D. Społeczność jest mała, ale aktywna, a odpowiedzi na pytania na forum są zazwyczaj szybkie.

Historia

Studio Disney VR to oddział Disneya, który powstał, aby budować atrakcje 3D dla parków rozrywki Disneya. Zbudowali atrakcję o nazwie „Magiczny dywan Alladyna”, a stworzony przez nich silnik ostatecznie stał się Panda3D. Silnik w obecnej formie niewiele przypomina tamte lata. Z biegiem czasu Panda3D została wykorzystana do dodatkowych przejażdżek VR w parkach rozrywki Disneya i ostatecznie została wykorzystana do stworzenia Toontown Online , gry online osadzonej w świecie kreskówek, a później do drugiej gry MMORPG , Pirates of the Caribbean Online .

W 2002 roku silnik został wydany jako open source. Według autorów miało to na celu „łatwiejszą współpracę z uniwersytetami przy projektach badawczych wirtualnej rzeczywistości”. Jednak zajęło trochę czasu, aby Panda3D wystartowała jako projekt open-source. Z artykułu:

System, chociaż całkiem użyteczny dla zespołu, który go opracował, nie był do końca „gotowy na open source”. Było kilku zainteresowanych użytkowników, ale budowa i instalacja systemu była niezwykle skomplikowana, a dokumentacji i przykładowego kodu było niewiele, więc nie było od razu znaczącej społeczności open source.

Jednak otwarcie silnika pozwoliło Centrum Technologii Rozrywki Carnegie Mellon przyłączyć się do rozwoju silnika. Podczas gdy inżynierowie Disneya nadal pracowali nad większością prac nad rozwojem, zespół Carnegie-Mellon zbudował sobie rolę, dopracowując silnik do użytku publicznego, pisząc dokumentację i dodając pewne zaawansowane funkcje, takie jak shadery.

Nazwa Panda3D była kiedyś akronimem: „Platform Agnostic Networked Display Architecture”. Jednak odkąd ta fraza w dużej mierze straciła swoje znaczenie, słowo „Panda3D” rzadko jest już traktowane jako akronim.


Projekt

Panda3D to silnik graficzny sceny . Oznacza to, że wirtualny świat jest początkowo pustą kartezjańską przestrzenią, w którą programista gry wstawia modele 3D. Panda3D nie rozróżnia „dużych” modeli 3D, takich jak model całego lochu lub wyspy, oraz „małych” modeli 3D, takich jak model stołu lub miecza. Zarówno duże, jak i małe modele są tworzone przy użyciu standardowego programu do modelowania, takiego jak Blender , 3ds Max czy Maya . Modele są następnie ładowane do Panda3D i umieszczane w przestrzeni kartezjańskiej.

Wykres sceny Panda3D przedstawia funkcjonalność OpenGL i DirectX w dość dosłownej formie. Na przykład, OpenGL i DirectX mają możliwości mgły . Aby włączyć mgłę w Panda3D, wystarczy zapisać parametry mgły w węźle na wykresie sceny. Parametry mgły dokładnie odpowiadają parametrom równoważnych wywołań w bazowych interfejsach API. W ten sposób Panda3D może być postrzegana jako cienkie opakowanie wokół interfejsów API niższego poziomu. Różni się od nich tym, że przechowuje scenę, podczas gdy OpenGL i DirectX nie. Oczywiście zapewnia również operatory wyższego poziomu, takie jak ładowanie modeli, wykonywanie animacji, wykrywanie kolizji i tym podobne.

Panda3D została po raz pierwszy zaprojektowana przed pojawieniem się programów do cieniowania wierzchołków i pikseli. Wsparcie dla ręcznie pisanych shaderów uzyskało w 2005 roku. Jednak użytkownicy powoli wykorzystywali w swoich grach nowoczesne techniki oświetlenia na piksel. Twórcy teoretyzują, że dzieje się tak dlatego, że programowanie shaderów może być dość trudne i że wielu twórców gier chce, aby silnik obsługiwał to automatycznie.

Aby zaradzić tej sytuacji, twórcy Panda3D niedawno dali Panda3D możliwość automatycznej syntezy shaderów. Ta synteza ma miejsce, gdy modelarz 3D oznaczy model dla oświetlenia na piksel lub jeśli modelarz zastosuje mapę normalną , mapę połysku, mapę samoświetlenia lub inną funkcję, która przekracza możliwości potoku o stałej funkcji. Celem syntezy jest wyrenderowanie modelu zgodnie z zamierzeniami projektanta, bez jakiejkolwiek interwencji ze strony programisty.

Możliwości niegraficzne

Panda3D zapewnia możliwości inne niż renderowanie 3D. Najważniejsze z nich to:

  • Narzędzia do analizy wydajności
  • Narzędzia do eksploracji wykresów scen
  • Narzędzia do debugowania
  • Kompletny potok eksportu/importu dzieł sztuki
  • Dźwięk 3D przy użyciu FMOD , OpenAL lub Miles Sound System
  • Wykrywanie kolizji
  • System fizyki i pełna integracja dla Open Dynamics Engine i integracji Bullet
  • Obsługa klawiatury i myszy
  • Wsparcie dla urządzeń I/O
  • Maszyny skończone
  • GUI
  • Sieć
  • Sztuczna inteligencja

Licencja oprogramowania

Streszczenie

Panda3D jest oprogramowaniem typu open source i od 28 maja 2008 r. jest wolnym oprogramowaniem na zmienionej licencji BSD . Wydania przed tą datą nie są uważane za wolne oprogramowanie z powodu pewnych błędów w projekcie starej licencji Panda3D. Mimo to te starsze wersje Panda3D mogą być również wykorzystywane zarówno do tworzenia darmowych, jak i komercyjnych gier bez żadnych kosztów finansowych.

Ewolucja

W 2002 roku, kiedy silnik był open source, celem twórców było stworzenie licencji wolnego oprogramowania . Jednak licencja miała kilka wad, które czyniły ją niewolną: prawdopodobnie wymagała przesyłania zmian do Panda.Project@Disney.com i wyraźnie zabraniała eksportu oprogramowania do różnych krajów, na które Stany Zjednoczone nałożyły embarga handlowe.

28 maja 2008 r. pień rozwoju Panda3D przeszedł na licencję BSD . Jednak stare wydania nadal korzystają ze starej licencji.

Panda3D korzysta z kilku bibliotek innych firm, których licencje nie są wolnym oprogramowaniem , w tym FMOD , Nvidia Cg , DirectX i MFC . Większość z tych modułów można jednak łatwo wyłączyć z instalacji.

Projekty wykorzystujące Panda3D

Zobacz też

Bibliografia

Zewnętrzne linki