Pl/FlightGear: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 19: Line 19:
[[File:OV10A-NASA-in-action.jpg|thumb|right|270px|NASA [[OV-10]] we FlightGear 1.0]]
[[File:OV10A-NASA-in-action.jpg|thumb|right|270px|NASA [[OV-10]] we FlightGear 1.0]]


'''FlightGear Flight Simulator''' (w skrócie '''FlightGear''' lub '''FGFS''') to stworzona przez ochotników, wyrafinowana i darmowa platforma symulacji lotu na licencji Open Source. FlightGear jest wydany na zasadach licencji [[GNU General Public License]] i jest on w większości napisany przy użyciu języka programowania C++.
'''FlightGear Flight Simulator''' (w skrócie '''FlightGear''' lub '''FGFS''') to zaawansowana, darmowa i całkowicie open-source'owa platforma symulacji lotu, stworzona przez wolontariuszy. FlightGear jest wydany na zasadach licencji [[GNU General Public License]] i jest on w większości napisany przy użyciu języka programowania C++.


Coraz bardziej szczegółowe i zaawansowane wersje FlightGear są corocznie wydawane od zapoczątkowania projektu w 1996 roku.
Coraz bardziej szczegółowe i zaawansowane wersje FlightGear są corocznie wydawane od zapoczątkowania projektu w 1996 roku.


Najnowsze publiczne wydanie dostępne jest do pobrania na [http://www.flightgear.org/Downloads/ http://www.flightgear.org/Downloads/] wraz z właściwymi wersjami dla Microsoft Windows (Win 32), Mac OS X, Linux, IRIX, i Solaris.
Najnowsze publiczne wydanie dostępne jest do pobrania na [https://www.flightgear.org/download/ https://www.flightgear.org/download/] wraz z wersjami dla Microsoft Windows, macOS, Linux, IRIX i Solaris.


== Historia ==
== Historia ==
{{main article|FlightGear History}}
{{main article|FlightGear History}}


Rozwój FlightGear rozpoczął się od propozycji w 1996 roku, w oparciu o własny kod 3D. Rozwój wersji opartej na [[OpenGL]] rozpoczął się w 1997 roku Curtis Olson. Wiele innych osób miało wkład w projekt od jego zapoczątkowania.
Rozwój FlightGeara rozpoczął się od propozycji stworzenia otwarto-źródłowego symulatora w 1996 roku, w oparciu o własny kod renderowania grafiki 3D. Rozwój wersji opartej na [[OpenGL]] rozpoczął Curtis Olson w 1997 roku. Wiele innych osób miało wkład w projekt od jego zapoczątkowania.


FlightGear włączył w projekt inne oprogramowanie oparte na licencji Open Source, włączając w to model lotu NASA - LaRCsim, jak również darmowy Numeryczny Model Terenu (DEM). Pierwsze wydanie binarne z kodem 3D opartym na OpenGL zostało udostępnione w 1997 roku.
FlightGear włączył inne otwarto-źródłowe zasoby, w tym model lotu LaRCsim od NASA oraz powszechnie dostępne dane o elewacji terenu. Pierwsze działające pliki binarne, wykorzystujące OpenGL dla grafiki 3D, pojawiły się w 1997 roku. Entuzjastyczny rozwój kolejnych wersji przez kilka lat zaowocował stopniowo coraz bardziej stabilnymi i zaawansowanymi wersjami. W 2001 roku zespół regularnie wydawał nowe wersje beta, a w 2005 roku dojrzałość oprogramowania doprowadziła do szerszych recenzji i wzrostu popularności. W 2007 roku nastąpiło formalne wyjście z wersji beta wraz z wydaniem wersji 1.0.0, dziesięć lat po pierwszym wydaniu FlightGear w 1997 roku.


[[File:FG-A-10.jpg|thumb|270px|Kokpit 3D [[A-10]] w wersji 1.0.0 rok 2008]]
[[File:FG-A-10.jpg|thumb|270px|Kokpit 3D [[A-10]] w wersji 1.0.0 rok 2008]]


W 2008 roku wersja 1.9.0 FlightGear przeszła z biblioteki [[PLIB]] na [[OSG]] co spowodowało tymczasową utratę niektórych funkcji programu, takich jak wyświetlanie chmury 3D i cienie, za to nowo wprowadzone funkcje programu wprowadziły symulacje na nowy poziom realizmu.  
W 2008 roku wersja 1.9.0 FlightGeara przeszła z biblioteki [[PLIB]] na [[OSG]] co spowodowało tymczasową utratę niektórych funkcji programu, takich jak wyświetlanie chmury 3D i cienie, za to nowo wprowadzone funkcje, takie jak cząsteczki, nadały symulacji kolejny stopień realizmu.


== Program ==
== Program ==
Line 40: Line 40:
Silnik symulacji we FlightGear to [[SimGear]]. Jest on używany zarówno jako aplikacja użytkownika końcowego jak i przy pracach badawczych w środowiskach akademickich w celu rozwoju zagadnień związanych z symulacją lotu.
Silnik symulacji we FlightGear to [[SimGear]]. Jest on używany zarówno jako aplikacja użytkownika końcowego jak i przy pracach badawczych w środowiskach akademickich w celu rozwoju zagadnień związanych z symulacją lotu.


Przykładem na możliwość dostosowywania FlightGear jest szeroki wachlarz modeli dostępnych statków powietrznych, od [[:Category:Gliders|glider]] do [[Helicopter]], przez [[:Category:Airliners|airliners]] do [[Military aircraft|fighter jets]]. Modele te zostały wykonane i dodane do projektu przez wielu ochotników ze społeczności FlightGear.
Przykładem na możliwość dostosowywania FlightGear jest szeroki wachlarz modeli dostępnych statków powietrznych, od [[:Category:Gliders|glider]] do [[Helicopter]], przez [[:Category:Airliners|airliners]] do [[Military aircraft|fighter jets]]. Modele te zostały wykonane i dodane do projektu przez wielu ochotników ze społeczności FlightGeara.


Od wersji 0.9.10 statki powietrzne we FlightGear używają jednego z trzech Modeli Danych Lotu (FDM), są to: JSBSim, YAsim lub UIUC. Obecnie wyłącznie jeden silnik terenu jest w użyciu, jest nim TerraGear. Dostępne efekty pogodowe to między innymi chmury 3D, efekty świetlne, pory dnia i nocy.  
Od wersji 0.9.10 statki powietrzne we FlightGear używają jednego z trzech Modeli Danych Lotu (FDM), są to: JSBSim, YASim lub UIUC. Obecnie wyłącznie jeden silnik terenu jest w użyciu, jest nim TerraGear. Dostępne efekty pogodowe to między innymi chmury 3D, efekty świetlne, pory dnia i nocy.  


=== Modele Dynamiki Lotu ===
=== Modele Dynamiki Lotu ===
[[Flight Dynamics Models]] (FDM) odpowiada za to w jaki sposób w programie jest symulowany lot statku powietrznego. FlightGear korzysta z własnych oraz zewnętrznych projektów Modeli Dynamiki Lotu. Każdy statek powietrzny musi być tak zaprogramowany, aby korzystał z jednego z dostępnych modeli dynamiki lotu. Obecnie FlightGear jest jedynym graficznym symulatorem lotu korzystającym ze wszystkich wspomnianych Modeli dynamiki Lotu, a UIUC and YASim zostały rozwinięte z myślą i w szczególności dla FlightGear.
[[Flight Dynamics Models|Model dynamiki lotu]] (FDM) odpowiada za to w jaki sposób w programie jest symulowany lot statku powietrznego. FlightGear korzysta z własnych oraz zewnętrznych projektów modeli dynamiki lotu. Każdy statek powietrzny musi być tak zaprogramowany, aby korzystał z jednego z dostępnych modeli dynamiki lotu. Obecnie FlightGear jest jedynym, graficznym symulatorem lotu korzystającym ze wszystkich wspomnianych modeli dynamiki Lotu, a UIUC i YASim zostały rozwinięte z myślą i w szczególności dla FlightGear.


Wczesne wersje programu używały FDM opartym na [[:aRCsim]] od NASA, który w kolejnych wersjach został zastąpiony przez bardziej elastyczne FDM.
Wczesne wersje programu używały FDM opartym na [[LaRCsim]] od NASA, który w kolejnych wersjach został zastąpiony przez bardziej elastyczne FDM.


* [[JSBSim]] - Domyślny Model Dynamiki Lotu od 2000 roku.
* [[JSBSim]] - Domyślny Model Dynamiki Lotu od 2000 roku.
* [[YASim]] - Inny FDM, używający odmiennych metod obliczeniowych. Wprowadzony od wersji 0.7.9 w 2002 roku.
* [[YASim]] - Inny FDM, używający odmiennych metod obliczeniowych. Wprowadzony od wersji 0.7.9 w 2002 roku.
* [[UIUC]] - Kolejny FDM, rozwinięty przez UIUC Applied Aerodynamics Group z Uniwersytetu w Illinois na Urbana-Champaign, jako podstawę użyty został LaRCsim.
* [[UIUC]] - Kolejny FDM, rozwinięty przez UIUC Applied Aerodynamics Group z Uniwersytetu w Illinois na Urbana-Champaign, jako podstawę użyty został LaRCsim.
* FlightGear może być tak skonfigurowany, aby przyjmować dane z zewnętrznych źródeł FDM takich jak MatLab.
* FlightGear może być tak skonfigurowany, aby przyjmować dane z zewnętrznych źródeł FDM takich jak [[MATLAB]].
* Inne FDM zostały rozwinięte dla szczególnych przypadków statków lotniczych takich jak balony i sterowce.
* Inne FDM zostały rozwinięte dla szczególnych przypadków statków lotniczych takich jak balony i sterowce.


=== Zależności FlightGear ===
=== Zależności FlightGear ===


W przeciwieństwie do komercyjnych tytułów, głównym wynikiem pracy projektu jest wydanie zestawu kodów źródłowych. Aby użyć programu należy skompilować udostępniony kod dla docelowej platformy, na której ma pracować. Biblioteki użyte przez FlightGear były różne w zależności od okresu. Główną biblioteką zależną jest SimGear, która jest silnikiem symulacji dla FlightGear. [[TerraGear]] nie jest zależnością, a raczej tylko nazwą dla domyślnego silnika odpowiadającego za generowanie terenu we FlightGear. OpenAL jest używany dla obsługi dźwięku, włączając wsparcie dla SDL (od wersji 0.9.5). PLIB jest użyte do obsługi sprzętowej, przed wprowadzeniem OpenAL, także dla obsługi dźwięku. [[OpenGL]] jest użyty dla swoich funkcji 3D, DirectX nie jest wspierany. [[OpenSceneGraph]] jest również zintegrowany we FlightGear. Na koniec do kompilacji jest konieczna biblioteka Simple Direct Media Layer (SDL) Niektóre zależności mogą się różnić w zależności od tego na jaką platformę docelową jest kompilowany kod. Użytkownicy FlightGear powinni sami kompilować kod, lub jeżeli nie jest ona dostępna w ramach projektu, korzystać z wersji binarnej udostępnionej przez osoby trzecie.
W przeciwieństwie do komercyjnych tytułów, głównym wynikiem pracy projektu jest wydanie zestawu kodów źródłowych. Aby użyć programu należy skompilować udostępniony kod dla docelowej platformy, na której ma pracować. Biblioteki użyte przez FlightGear były różne w zależności od okresu. Główną biblioteką zależną jest SimGear, która jest silnikiem symulacji dla FlightGear. [[TerraGear]] nie jest zależnością, a raczej tylko nazwą dla domyślnego silnika odpowiadającego za generowanie terenu we FlightGear. OpenAL jest używany dla obsługi dźwięku, włączając wsparcie dla SDL (od wersji 0.9.5). PLIB jest użyte do obsługi sprzętowej, przed wprowadzeniem OpenAL, także dla obsługi dźwięku. [[OpenGL]] jest użyty dla swoich funkcji 3D, DirectX nie jest wspierany. [[OpenSceneGraph]] jest również zintegrowany we FlightGear. Na koniec do kompilacji jest konieczna biblioteka Simple Direct Media Layer (SDL). Niektóre zależności mogą się różnić w zależności od tego na jaką platformę docelową jest kompilowany kod. Użytkownicy FlightGeara powinni sami kompilować kod, lub jeżeli nie jest on dostępny w ramach projektu, korzystać z wersji binarnej udostępnionej przez osoby trzecie.


== Sprzęt==
== Sprzęt==


Sprzęt konieczny do uruchomienia FlightGear jest ograniczony do sprzętu, który wspiera [[OpenGL]] i akceleracje 3D, przy czym najlepiej wspierana jest NVIDIA. Wczesne wersje posiadały wsparcie dla kart 3dfx, jednak wsparcie to zostało wycofane wraz z zwiększającymi się wymaganiami sprzętowymi.
Sprzęt konieczny do uruchomienia FlightGeara jest ograniczony do sprzętu, który wspiera [[OpenGL]] i akcelerację 3D, przy czym najlepiej wspierana jest NVIDIA. Wczesne wersje posiadały wsparcie dla kart 3dfx, jednak wsparcie to zostało wycofane wraz ze zwiększającymi się wymaganiami sprzętowymi.


[[File:Fgrun-page2.jpg|thumb|left|270px|The [[FlightGear Launch Control|FlightGear Launcher]]]]
[[File:Fgrun-page2.jpg|thumb|left|270px|The [[FlightGear Launch Control|FlightGear Launcher]]]]
== Dodatki i dostosowywanie ==
== Dodatki i dostosowywanie ==


Oprogramowanie może być zintegrowane z FlightGear poprzez zależności lub jest zewnętrzne, współdziałające z nim. Oprogramowanie to może być częścią projektu FlightGear lub takie, które jest rozwijane niezależnie, ale udostępniane przez projekt FlightGear.
Istnieją programy, które są zintegrowane z FlightGear (zależności) lub zewnętrzne i współpracują z nim. Oprogramowanie takie może być częścią projektu FlightGear lub może być rozwijane niezależnie, ale udostępniane przez projekt FlightGear.


Ważnym dodatkowym oprogramowaniem jest interfejs graficzny służący do wykonania pliku startowego FlightGear. We wczesnych wersjach FlightGear był wykonywany jedynie poprzez [[comman line]], jednak w 2003 roku od wersji 0.9.3 FlightGear Launch Control został załączony z Front-Endem "[[FG Launcher]]".
Ważnym dodatkowym oprogramowaniem jest interfejs graficzny, służący do uruchomienia pliku wykonywalnego FlightGeara. We wczesnych wersjach, FlightGear mógł być uruchomiony jedynie z wykorzystaniem [[Pl/Opcje wiersza poleceń|opcji wiersza poleceń]]. Jednakże, w 2003 roku od wersji 0.9.3, został dołączony ''[[FlightGear Launch Control|FGRun]]'' - program startowy z interfejsem graficznym. Obecnie tę rolę spełnia ''[[FlightGear Qt launcher|QT Launcher]]''.
Podobną rolę spełnia ''[[KFreeFlight]]'' dla środowiska KDE. ''FGTools'' jest alternatywnym front-endem dla środowiska Windows. ''FGKicker'' jest używany dla GTK+.
Podobną funkcję spełnia ''[[KFreeFlight]]'' dla środowiska KDE. ''FGTools'' jest alternatywnym front-endem dla środowiska Windows. ''FGKicker'' jest używany dla GTK+.


Inne ważne oprogramowanie to edytory i projekty dla danych terenu. ''[[Atlas]]'' pozwala na wspieranie map we FlightGear; ''[[Kelpie Flight Planner]]'' to rozwijane w Javie narzędzie do planowania lotów.
Inne ważne oprogramowanie to edytory i projekty dla danych o terenie. ''[[Atlas]]'' jest mapą dla FlightGear; ''[[Kelpie Flight Planner]]'' to rozwijane w Javie narzędzie do planowania lotów.
''[[FlightGear Scenery Designer]]'' to edytor scenerii pomocny przy pracy z danymi terenu. Projekt ''[[World Custom Scenery Project]]'' to projekt pomagający koordynować wspólne wysiłki na rzecz tworzenia scenerii. Na koniec edytor ''[[TaxiDraw]]'' do tworzenia nowych pasów startowych i dróg kołowania.
''[[FlightGear Scenery Designer]]'' to edytor scenerii, pomocny przy pracy z danymi terenu. ''[[World Custom Scenery Project]]'' to projekt pomagający koordynować wspólne wysiłki na rzecz tworzenia scenerii. Na koniec edytor ''[[TaxiDraw]]'' do tworzenia nowych pasów startowych i dróg kołowania.


=== Statki Powietrzne ===
=== Statki Powietrzne ===
{{Main article|Table of models}}
{{Main article|Table of models}}


Na początku FlightGear dysponował tylko jednym statkiem powietrznym, był to Navion zawarty w projekcie LaRCsim od NASA, który w 2000 roku został zastąpiony przez Cessnę 172. Wprowadzenie i rozwój UIUC, jak też JSBSim jak również późniejsze wprowadzenie YAsim, który został głównym FDM projektu FlightGear, zaowocowało wprowadzeniem do projektu kilku dodatkowych statków powietrznych. W projekcie 1.9.0 jest dostępnych ponad 230 statków powietrznych, jednak tylko część jest zawarta w głównej dystrybucji.
Na początku FlightGear dysponował tylko jednym statkiem powietrznym, był to Navion zawarty w projekcie LaRCsim od NASA, który w 2000 roku został zastąpiony przez Cessnę 172P. Wprowadzenie i rozwój UIUC, jak też JSBSim jak również późniejsze wprowadzenie YASim, który został głównym FDM projektu FlightGear, zaowocowało wprowadzeniem do projektu kilku dodatkowych statków powietrznych. Ponad 400 samolotów, w ponad 900 unikalnych malowaniach, jest dostępnych dla wersji 2.12, choć tylko kilka jest zawartych w pakiecie podstawowym.


[[File:EHAM.jpg|thumb|270px|[[Boeing 737-300|Boeing 733]] zaparkowany w scenerii [[EHAM]] ]]
[[File:EHAM.jpg|thumb|270px|[[Boeing 737-300|Boeing 733]] zaparkowany w scenerii [[EHAM]] ]]
Line 85: Line 85:


Projekt [[WorldScenery]] dla FlightGear zawiera dane o wysokości i klasie terenu całego świata.
Projekt [[WorldScenery]] dla FlightGear zawiera dane o wysokości i klasie terenu całego świata.
Obiekty takie jak terminale, wiatraki i mosty są zebrane w [[FlightGear Scenery Database|Scenery Database]].
Obiekty takie jak terminale, wiatraki i mosty są zebrane w [[FlightGear Scenery Database|bazie danych scenerii]].


=== Sieć i wiele monitorów ===
=== Sieć i wiele monitorów ===


Istnieje kilka możliwości, które pozwalają komunikować się FlightGear z inną instancją FlightGear. Dostępny jest protokół [[Multiplayer Howto|multiplayer]], co umożliwia lot w formacji lub symulowanie kontroli ruchu lotniczego w sieci lokalnej. Protokół Multiplayer zostanie wkrótce tak rozbudowany, aby także pozwalał na pracę w internecie. Dodatkową cechą możliwości sieciowych jest opcja podglądu innych graczy na mapach Google.
Istnieje kilka możliwości, które pozwalają komunikować się jednej instancji FlightGeara z inną. Dostępny jest protokół [[Multiplayer Howto|multiplayer]], co umożliwia lot w formacji lub symulowanie kontroli ruchu lotniczego w sieci lokalnej. Protokół Multiplayer zostanie wkrótce tak rozbudowany, aby także pozwalał na pracę w internecie. Dodatkową cechą możliwości sieciowych jest opcja podglądu innych graczy na mapach Google.


Kilka instancji FlightGear może zostać tak zsynchronizowane, aby korzystać z wielu monitorów. Możliwe jest uzyskanie bardzo dobrej synchronizacji między monitorami jeżeli wszystkie instancje FlightGear będą pracować z tą samą częstotliwością wyświetlania klatek.
Kilka instancji FlightGeara może zostać tak zsynchronizowana, aby korzystały z wielu monitorów. Możliwe jest uzyskanie bardzo dobrej synchronizacji między monitorami jeżeli wszystkie instancje FlightGeara będą pracowały z tą samą częstotliwością wyświetlania klatek.


== Kod FlightGear vs wersja binarna ==
== Kod FlightGear vs wersja binarna ==


W przeciwieństwie do komercyjnego oprogramowania, data wydania dotyczy wyłącznie kodu źródłowego, a nie do wersji binarnej. Aby stworzyć wykonywalny program, kod źródłowy musi zostać skompilowany, co wymaga kilku bibliotek, włączając w to kilka ogólnych oraz szczegółowych dla poszczególnych platform, jednak
W przeciwieństwie do komercyjnego oprogramowania, data wydania dotyczy wyłącznie kodu źródłowego, a nie wersji binarnej. Aby stworzyć wykonywalny program, kod źródłowy musi zostać skompilowany, co wymaga kilku bibliotek, włączając w to kilka ogólnych oraz szczegółowych dla poszczególnych platform. Jednak jest to zbyt trudne zadanie dla wielu zwykłych użytkowników, dlatego ochotnicy społeczności pracują, aby udostępnić wersje binarne dla poszczególnych platform i systemów operacyjnych. Dystrybucje te różnią się poziomem stabilności, wydajnością, zależnościami, a także tym, jak aktualne są one w stosunku do kodu źródłowego. Dla przykładu, niektóre ze starszych wersji binarnych pracują poprawnie pod Mac OS 9, ale nowsze wersje wymagają szczególnych wersji macOS.
jest to zbyt trudne zadanie dla wielu zwykłych użytkowników, dlatego ochotnicy społeczności pracują, aby udostępnić wersje binarne dla poszczególnych platform i systemów operacyjnych. Dystrybucje te różnią się poziomem stabilności, wydajnością, zależnościami, a także tym, jak aktualne są one w stosunku do kodu źródłowego. Dla przykładu, niektóre ze starszych wersji binarnych pracują poprawnie pod Mac OS9, ale nowsze wersje wymagają szczególnych wersji Mac OS X.


Inny przykład, najnowsza wersja kodu w 2007 roku to 0.9.11-pre1 (pre-release ) i 0.9.10 (finalna) Jednak dostępne wersje binarne znacznie się różniły. Oto kilka dostępnych wersji binarnych rok po udostępnieniu kodu 0.9.10:
Inny przykład, najnowsza wersja kodu w 2007 roku to 0.9.11-pre1 (pre-release ) i 0.9.10 (finalna). Jednak dostępne wersje binarne znacznie się różniły. Oto kilka dostępnych wersji binarnych rok po udostępnieniu kodu 0.9.10:


* Win-32 pakiet ~138MB (v0.9.10) Dla Windows 98, 2000, ME, 32 bitowe XP
* Win-32 pakiet ~138MB (v0.9.10) Dla Windows 98, 2000, ME, 32 bitowe XP
Line 108: Line 107:
** Wersja binarna SGI binaries (v0.9.9)
** Wersja binarna SGI binaries (v0.9.9)
* Mac OS X
* Mac OS X
** Mac OS 10.4 (v0.9.10)
** Mac OS X 10.4 (v0.9.10)
** Mac OS 10.3 (v0.9.9)
** Mac OS X 10.3 (v0.9.9)
* Pakiet FreeBSD (v0.9.10)
* Pakiet FreeBSD (v0.9.10)


1,089

edits

Navigation menu