PRZEGLĄD KOMPUTEROWYCH NARZĘDZI DO WIZUALIZACJI ZJAWISK FIZYCZNYCH NA PRZYKŁADZIE RUCHU POCISKU



Podobne dokumenty
Wykład Ćwiczenia Laboratorium Projekt Seminarium

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

WYKORZYSTANIE JĘZYKA PROGRAMOWANIA PYTHON I BIBLIOTEKI OPENCASCADE DO WIZUALIZACJI I OBLICZEŃ GEOMETRYCZNYCH

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie obiektowe - 1.

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Informatyka studia stacjonarne pierwszego stopnia

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Programowanie w C. dr inż. Stanisław Wszelak

Programowanie komputerów

PRZEWODNIK PO PRZEDMIOCIE

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

PRZEWODNIK PO PRZEDMIOCIE

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Podstawy programowania. Wprowadzenie

Uniwersytet Śląski w Katowicach str. 1 Wydział Informatyki i Nauki o Materiałach

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Narzędzia CASE dla.net. Łukasz Popiel

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Tworzenie oprogramowania

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Modelowanie i Programowanie Obiektowe

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Zaawansowane programowanie w języku C++

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

I rok. semestr 1 semestr 2 15 tyg. 15 tyg. Razem ECTS. laborat. semin. ECTS. konwer. wykł. I rok. w tym. Razem ECTS. laborat. semin. ECTS. konwer.

PRZEWODNIK PO PRZEDMIOCIE

METODY URUCHAMIANIA PROGRAMÓW JĘZYKA AutoLISP W ŚRODOWISKU AutoCAD

INŻYNIERIA OPROGRAMOWANIA

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Paradygmaty programowania

Podstawy programowania

INŻYNIERIA OPROGRAMOWANIA

PRZEWODNIK PO PRZEDMIOCIE

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

S Y L A B U S P R Z E D M I O T U

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Programowanie Komponentowe WebAPI

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

Technologie informacyjne - wykład 12 -

Praktyka Programowania

Król Łukasz Nr albumu:

Repetytorium z matematyki 3,0 1,0 3,0 3,0. Analiza matematyczna 1 4,0 2,0 4,0 2,0. Analiza matematyczna 2 6,0 2,0 6,0 2,0

Praktyczne zastosowanie grafiki komputerowej

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

WSKAŹNIKI ILOŚCIOWE - Punkty ECTS w ramach zajęć: Efekty kształcenia. Wiedza Umiejętności Kompetencje społeczne (symbole) MK_1. Analiza matematyczna

kodowanienaekranie.pl

Informatyczne fundamenty

Efekty kształcenia dla: nazwa kierunku

Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

Programowanie obiektowe zastosowanie języka Java SE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Zagadnienia programowania obiektowego

WYKORZYSTANIE PLATFORMY FireMonkey W PROCESIE URUCHAMIANIA I TESTOWANIA UKŁADÓW MIKROPROCESOROWYCH

Translacja wprowadzenie

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

System zarządzający grami programistycznymi Meridius

MINIMALNY ZAKRES PROGRAMU STAŻU dla studentów kierunku Informatyka

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

MULTIMEDIA W SYSTEMIE RECEPTUS

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

REFERAT PRACY DYPLOMOWEJ

FAKULTET PROJEKTOWANIE PARAMETRYCZNE BIM

Zastosowania Robotów Mobilnych

Informatyka studia stacjonarne pierwszego stopnia

Szybkie prototypowanie w projektowaniu mechatronicznym

Klaster obliczeniowy

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Języki i paradygmaty programowania - 1

KIERUNKOWE EFEKTY KSZTAŁCENIA

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa i multimedia

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

Internetowy system e-crm do obsługi biura podróży. Marek Bytnar, Paweł Kraiński

Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny) podstawowy (podstawowy / kierunkowy / inny HES)

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Transkrypt:

Dr hab. inż. Jan PIETRASIEŃSKI, prof. WAT Dr inż. Dariusz RODZIK Wojskowa Akademia Techniczna Mgr inż. Stanisław GRZYWIŃSKI Mgr inż. Paweł SIERGIEJUK Centrum Badań i Rozwoju Samsung Polska PRZEGLĄD KOMPUTEROWYCH NARZĘDZI DO WIZUALIZACJI ZJAWISK FIZYCZNYCH NA PRZYKŁADZIE RUCHU POCISKU Streszczenie: W pracy przedstawiono zestawienie komputerowych narzędzi przeznaczonych do tworzenia symulacji i wizualizacji. W szczególności skupiono się na porównaniu i dostosowaniu dostępnych środowisk oraz języków programowania na potrzeby wizualizacji zaburzenia fali uderzeniowej wywołanej naddźwiękowym ruchem pocisku w atmosferze. REVISION OF PROGRAMMING TOOLS TO VISUALIZATION OF PHYSICAL PHENOMENA FOR EXSAMPLE MOVEMENT OF PROJECTILE Abstract: This paper presents a summary of computer-based tools for creating simulation and visualization. In particular it focuses on the comparison and adjustment of the available environments and programming languages for visualization problems - the shock wave caused by supersonic projectile motion in the atmosphere. Słowa kluczowe: narzędzia do wizualizacji, ruch pocisku, fala uderzeniowa Keywords: visualization tools, projectile motion, shock wave 1. WPROWADZENIE W dzisiejszych czasach wizualizacja oraz komputerowa symulacja wszelkiego rodzaju zjawisk w ogólności upowszechniła się w wielu dziedzinach nauki i coraz częściej służy celom dydaktycznym. Sposoby komputerowej wizualizacji (często interaktywnej) i reprezentacji surowych danych wejściowych znacznie ułatwiają zrozumienie istoty problemu i pomagają również w tworzeniu hipotez oraz trafnym wyciąganiu wniosków nie tylko w zagadnieniach technicznych. Na przykład w telewizyjnej prognozie pogody komputerowe symulacje zastępują prawdziwe zdjęcia satelitarne, a podczas programów informacyjnych wszelkie mapy, rekonstrukcje wydarzeń i katastrof oraz dane statystyczne są przedstawiane w formie łatwo przyswajalnej dla przeciętnego odbiorcy. Problem wizualnego przetwarzania dostępnych informacji pojawia się niezwykle często w pracach naukowych i projektach komercyjnych, gdzie odnotowuje się największe korzyści z zastosowania technik komputerowej wizualizacji. W większości prac, w których stopień skomplikowania zjawisk uniemożliwia proste przedstawienie zagadnienia, starano się wykorzystać możliwości grafiki komputerowej do rozwiązywania problemów badawczych. 651

Tego typu podejście pozwala przedstawiać zarówno abstrakcyjne, nieprzetworzone bloki danych eksperymentalnych, jak i rezultaty obliczeń opartych na modelach teoretycznych. Rezultatem może być obraz znajdujący się w przestrzeni dwu- lub trójwymiarowej, co bardzo często pozwala na przedstawienie wielu aspektów danego zagadnienia, dając możliwość wglądu w jego dynamikę. W artykule skupiono się głównie na zagadnieniach związanych z akustyczną falą uderzeniową, której źródłem jest poruszający się w przestrzeni pocisk [1]. Zagadnienia tego typu, a w szczególności uderzeniowe fale dźwiękowe są trudne do zaobserwowania. Stosując zaawansowane metody fotografii, można zaobserwować powstałe zaburzenie w powietrzu (rys. 1), jednak nie oddają one pełni zjawiska. Rys. 1. Fala uderzeniowa wywołana ruchem pocisku z prędkością naddźwiękową Powyższe przesłanki dały podstawę do opracowania modelu, który przy wykorzystaniu odpowiednich narzędzi wspomagających proces tworzenia i modyfikacji obiektów trójwymiarowych pozwalałby na przedstawienie i animację zjawisk powstałych podczas naddźwiękowego ruchu pocisku. 2. PRZEGLĄD NARZĘDZI DO WIZUALIZACJI ROZPATRYWANEGO ZJAWISKA Do tworzenia symulacji i wizualizacji zostało opracowanych wiele programów oraz bibliotek na różne platformy sprzętowe i systemy operacyjne. Zwykle programy te dzieli się na modelery (tworzenie i obróbka scen trójwymiarowych) oraz renderery (generowanie trójwymiarowego obrazu lub animacji, wraz z nakładaniem tekstur, efektami świetlnymi itp.). Część aplikacji jest dystrybuowana na licencji Open Source, co pozwala na swobodne udostępnianie projektów i modyfikacje kodu źródłowego wedle własnych potrzeb. Na rynku dostępnych jest również wiele komercyjnych pakietów narzędziowych. Przed dokonaniem wyboru odpowiedniego narzędzia do komputerowej wizualizacji zjawiska rozchodzenia się fali akustycznej przeprowadzono przegląd projektów dostępnych na stronach internetowych ich autorów. Aby móc porównywać konkretne narzędzia oraz ewentualnie wizualizacje w nich opracowane, przyjęto założenia odnośnie do celu wizualizacji rozpatrywanego zjawiska. Przyjęto, że wizualizacja powinna: oddawać wizualnie charakter zjawiska oraz w jak największym stopniu powinna być zbliżona do rzeczywistego problemu, który w rzeczywistości nie jest widoczny dla ludzkiego wzroku, 652

niekoniecznie oddawać matematyczny charakter zjawiska (w celu lepszego odbioru oraz przejrzystości wizualizacji dla odbiorcy, zdecydowano się przede wszystkim na wizualizacje fizyki zjawiska), w zwolnionym tempie oddawać kształt, zwrot oraz kierunek rozchodzącej się fali akustycznej (ze względu na dużą dynamikę oraz prędkość rozchodzenia się fali uderzeniowej). Na podstawie powyższych założeń dokonano przeglądu oraz oceny możliwości realizacji powyższych warunków za pomocą dostępnych narzędzi. 2.1. Java Język Java jest jednym z najbardziej rozwijających się środowisk tworzenia aplikacji. Jego podstawowe koncepcje zostały przejęte z takich języków, jak C++ czy Smaltalk przy prostszej i bardziej czytelnej składni programów. Zawiera elementy programowania zarówno strukturalnego, obiektowego, zdarzeniowego, jak i współbieżnego. Poprzez różnego rodzaju biblioteki wkracza w różnorodne obszary zastosowań, takie jak np. systemy zarządzania bazami danych, obsługa multimediów, Internet, grafika 3D. Java jest językiem tworzenia programów źródłowych kompilowanych do kodu bajtowego wykonywanym przez maszynę wirtualną. Powstały kod jest niezależny od systemu operacyjnego i procesora, a wykonuje go tzw. wirtualna maszyna Javy, która (między innymi) tłumaczy kod uniwersalny na kod dostosowany do specyfiki konkretnego systemu operacyjnego i procesora. W tej chwili wirtualna maszyna Javy jest już dostępna dla większości systemów operacyjnych i procesorów. Z uwagi na to, że kod pośredni jest interpretowany, taki program jest wolniejszy niż kompilowany do kodu maszynowego. Z tego względu maszynę wirtualną często uzupełnia się o kompilator JIT (ang. Just In Time). Istnieją również niezależne kompilatory Javy (podprojekt GCC o nazwie GCJ), które w rezultacie generują szybszy kod, ale można go uruchamiać na jednej tylko platformie, a więc nie jest przenośny. Z uwagi na olbrzymią liczbę gotowych do wykorzystania bibliotek oraz specyfikę języka, Java znalazła wiele zastosowań. Jedna z nich jest wsparciem dla grafiki 3D. Istnieje wiele bibliotek wspierających graficzny interfejs dla platformy Javy. Jedną z nich jest Java 3D API. Biblioteka ta to interfejs programowania aplikacji wykorzystywany do pisania trójwymiarowych aplikacji graficznych, dający programistom duże możliwości w procesie tworzenia i manipulowania geometrii 3D oraz do budowy struktur wykorzystywanych w renderowaniu tej geometrii. W języku Java wizualizacje rozchodzenia się fali akustycznej wykonał Paul Falstad [2]. Do podstawowych wad jego aplikacji należy zaliczyć bardzo rozbudowany kod programu oraz słabą jakość grafiki. Poza tym zjawisko przedstawione jest w sposób bardzo uproszczony, a dla odbiorcy niedostatecznie pokazany jest charakter fali uderzeniowej generowanej przez poruszający się z prędkością naddźwiękową pocisk. Na rysunku 2 przedstawiono przykład działającej aplikacji. 653

a) b) c) d) Rys. 2. Symulacja fali uderzeniowej wykonanej w języku programowania Java [2] 2.2. Python Python jest to język programowania wysokiego poziomu o rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością. Python rozwijany jest jako projekt Open Source zarządzany przez Python Software Foundation, która jest organizacją non-profit. Python wspiera różne paradygmaty programowania: obiektowy, imperatywny oraz w mniejszym stopniu funkcyjny. Posiada w pełni dynamiczny system typów i automatyczne zarządzanie pamięcią, będąc w tym podobny do języków Perl, Ruby, Scheme czy Tcl. Podobnie jak inne języki dynamiczne, jest często używany jako język skryptowy. Interpretery Pythona są dostępne dla wielu systemów operacyjnych. Działanie aplikacji (rys. 3) opracowanej przez Andrása Szilágyi obrazuje rozchodzenie się fali, umożliwiając jednocześnie modyfikację jej parametrów (amplitudy, okresu trwania) oraz właściwości tłumiących atmosfery. Nie oddaje jednak wizualnie charakteru zjawiska, natomiast została zaprojektowana tak, aby obrazować akustyczną falę zmian ciśnienia generowaną przez pocisk poruszający się z prędkością naddźwiękową. Rys. 3. Symulacja fali uderzeniowej wykonanej w języku programowania Python [3] 654

Podana wyżej aplikacja oczywiście nie wyczerpuje możliwości, jakie niesie ze sobą Python. Rozszerzone, graficzne biblioteki pozwalają na bardzo dobre odwzorowanie podobnych zjawisk. Jedną z ciekawszych jest biblioteka OpenCascade, która jest typową platformą programistyczną przeznaczoną dla wsparcia grafiki 3D. 2.3. 3D Studio Max 3D Studio Max (3DS Max) należy do najpopularniejszych oraz najbardziej zaawansowanych programów do tworzenia i obróbki grafiki. Wykorzystywany jest do wielu przedsięwzięć między innymi w architekturze, grach komputerowych, publikacjach internetowych, wizualizacjach medycznych i naukowych. Ze względu na swoje ukierunkowanie na tworzenie grafiki trójwymiarowej wysokiej jakości jest bardzo dobrym narzędziem do tworzenia wizualizacji zjawisk fizycznych. Posiada bardzo rozbudowany interfejs graficzny oraz wiele prostych i złożonych funkcji. 3DS Max udostępnia użytkownikowi obszerne biblioteki gotowych materiałów oraz obiektów, dzięki czemu znacznie ułatwia wykonywanie podstawowych elementów projektu [4]. Na rysunku 4 przedstawiono wizualizację zjawiska rozchodzenia się fali akustycznej wywołanej ruchem pocisku artyleryjskiego. Z poruszającym się pociskiem równocześnie przemieszcza się zaburzenie przez niego wywoływane. Wizualizacja zajmuje 2,16 MB, trwa 25 sekund przy prędkości 30 klatek na sekundę i została wyrenderowana w rozdzielczości 640 x 480 pikseli. 2.4. Blender Rys. 4. Wizualizacja w programie 3DS Max [5] Blender jest zintegrowanym pakietem narzędzi wspierających tworzenie trójwymiarowych wizualizacji, fotosów, jak również przesyłu wysokiej jakości wideo. Zaimplementowany silnik 3D czasu rzeczywistego pozwala na kreowanie interaktywnych treści 3D, które mogą być potem odtwarzane bez pomocy Blendera. Blender jest platformą open source, w szczególności wykorzystywaną do modelowania i renderowania obrazów oraz animacji trójwymiarowych o niekonwencjonalnym interfejsie użytkownika. Stąd też zdecydowano się na przedstawienie tego środowiska w niniejszym artykule. Jedną z wielu zalet oprogramowania jest tworzenie prezentacji interaktywnych, m.in. gier na własnym silniku graficznym, gdzie cała animacja oraz kompilacja kodu jest realizowana w jednym pakiecie Blendera. Istnieje możliwość wykorzystania i obsługi zewnętrznych 655

wtyczek (programów, skryptów) i renderów, jak na przykład: Indigo, YafaRay, Luxrender, Sunflow, Renderman oraz V-ray, które pozwalają uzyskać wyższą jakość realizmu obrazu. Możliwości środowiska Blender zostały szerzej zawarte w pracy [6]. Jedną z najważniejszych cech, która wyróżnia to oprogramowanie od innych, jest możliwość skryptowego wspomagania procesu projektowania i wizualizacji w Pythonie. Program, który jest napisany w języku Python, wywołuje procedury tworzenia nowej funkcjonalności. Ponieważ Python jest popularnym interpretowanym językiem programowania, może on być stosowany w celu rozszerzenia funkcjonalności Blendera na szeroki wachlarz sposobów. Użytkownicy z całego świata napisali setki skryptów, które Blender wiki próbuje skatalogować i udokumentować. Ta dodatkowa zaleta pozwala na jeszcze wierniejsze odwzorowanie rzeczywistych zjawisk. Z powodzeniem można wprowadzić równania, które opisują propagację fali uderzeniowej i na ich podstawie modelować zachowanie się pocisku oraz fali zmian ciśnienia. Przykład części listeningu Blendera, który generuje modelowany pocisk przedstawiono poniżej. //*******Skrypt dla oprogramowania Blender*******// bpy.ops.mesh.primitive_cylinder_add(vertices=32, radius=1, depth=2, end_fill_type='ngon', view_align=false, enter_editmode=false, location=(0, 0, 0), rotation=(0, 0, 0)) bpy.data.window_managers["winman"].(null) = 'NOTHING' bpy.ops.mesh.primitive_cylinder_add(vertices=32, radius=1, depth=2, end_fill_type='nothing', view_align=false, enter_editmode=false, location=(0, 0, 0), rotation=(0, 0, 0)) bpy.data.window_managers["winman"].(null) = 'NGON' bpy.ops.transform.resize(value=(0.337683, 0.337683, 0.337683), constraint_axis=(false, False, False), constraint_orientation='global', mirror=false, proportional='disabled', proportional_edit_falloff='smooth', proportional_size=1, snap=false, snap_target='closest', snap_point=(0, 0, 0), snap_align=false, snap_normal=(0, 0, 0), texture_space=false, release_confirm=false) bpy.ops.mesh.loopcut_slide(mesh_ot_loopcut={"number_cuts":1, "smoothness":0}, TRANSFORM_OT_edge_slide={"value":0, "mirror":false, "snap":false, "snap_target":'closest', "snap_point":(0, 0, 0), "snap_align":false, "snap_normal":(0, 0, 0), "correct_uv":false, "release_confirm":false}) bpy.ops.transform.translate(value=(0, 0, -0.0268415), constraint_axis=(false, False, True), constraint_orientation='global', mirror=false, proportional='disabled', proportional_edit_falloff='smooth', proportional_size=1, snap=false, snap_target='closest', snap_point=(0, 0, 0), snap_align=false, snap_normal=(0, 0, 0), texture_space=false, release_confirm=false) bpy.ops.object.editmode_toggle() //********************************************// Opracowana symulacja fali uderzeniowej generowanej przez poruszający się z prędkością naddźwiękową pocisk została przedstawiona na rysunku 5. 656

MECHANIK 7/2013 Rys. 5. Symulacja zjawisk powstałych na skutek strzału z broni palnej w środowisku Blender [6] 3. WNIOSKI Podczas przeglądu narzędzi do tworzenia wizualizacji równocześnie oceniano następujące ich cechy: 1. Jakość odtworzenia realiów zjawisk fizycznych. Oceniając tę cechę, brano pod uwagę w szczególności walory wizualne oraz zgodność z rzeczywistym zjawiskiem. 2. Jakość grafiki, gdzie brano pod uwagę rozdzielczość docelowej animacji. 3. Łatwość modyfikacji, tzn. możliwość edycji na poziomie roboczym wszystkich parametrów animacji bez utraty poszczególnych zależności między obiektami i funkcjami oraz możliwość tworzenia materiałów i efektów związanych z oświetleniem i widokiem animacji. 4. Otwartość architektury oraz dostęp do kodu źródłowego programu. 5. Interfejs graficzny. Zestawienie oraz ocena przedstawionych wyżej narzędzi została zawarta w tabeli 1. Należy podkreślić, że wykonana ocena obejmuje dwa podejścia do problemu wizualizacji i symulacji. Z jednej strony przedstawiono języki wysokiego poziomu programowania, które przy wykorzystaniu odpowiednich bibliotek graficznych i umiejętnym programowaniu pozwalają na opracowanie niezależnej aplikacji graficznej. Największym ograniczeniem tego typu rozwiązań jest znajomość oraz umiejętności programowania i wykorzystania pełnej gamy graficznych możliwości dostarczonych przez dane środowisko. Z drugiej strony przedstawiono gotowe już oprogramowanie, jak 3DS Max czy Blender, służące wyłącznie do celów modelowania i symulacji. Tego typu rozwiązanie ułatwia proces tworzenia wizualizacji poprzez graficzny interfejs użytkownika. Co więcej, wykorzystuje się wewnętrzne lub zewnętrzne silniki graficzne, które wielokrotnie polepszają efekty wizualne. Pomijając otwartość architektury, można stwierdzić, że program 3DS Max spełnił wszystkie wymagania stawiane wcześniej. Dlatego też za jego pomocą udaje się przedstawić główne cechy zjawiska rozchodzenia się fali akustycznej wywołanej ruchem pocisku. Jednakże lepszym rozwiązaniem okazało się darmowe środowisko Blender. Niewątpliwą zaletą przemawiającą na korzyść tego oprogramowania jest oparcie aplikacji o wykorzystanie języka Python i możliwość wykorzystania pewnych realizacji algorytmów również w języku C, co pozwala na ścisłe zdefiniowanie fizyki zjawiska. Oprogramowanie Blender, pomimo że w niektórych punktach ustępuje możliwościami swoim płatnym odpowiednikom, 657

pozwala uzyskać bardzo dobre rezultaty. Nowe wersje tego środowiska coraz bardziej dorównują ich płatnym odpowiednikom. Tabela 1. Zestawienie podstawowych cech analizowanych narzędzi JAVA PYTHON 3DS MAX BLENDER Jakość odtworzenia realizmu +/- +/- +/- + Jakość grafiki +/- +/- + + Łatwość modyfikacji + + + + Otwartość architektury + + - + Interfejs graficzny - - + + Ze względu na przeznaczenie programów 3DS Max i Blender głównie do tworzenia grafiki i animacji, posiadają one narzędzia, za pomocą których można dowolnie modyfikować czas oraz tempo animacji, co powoduje, że spełniają one kolejne założenia dotyczące zwolnionego tempa zachodzenia zjawiska w opracowywanej wizualizacji. Rozbudowana biblioteka gotowych materiałów, możliwość ich modyfikacji oraz tworzenia własnych sprawia, że wszystkie wymagania są spełnione. 4. PODSUMOWANIE W pracy przedstawiono zestawienie komputerowych narzędzi pozwalających na opracowanie wizualizacji zjawiska fali uderzeniowej generowanej przez poruszający się z prędkością naddźwiękową pocisk. Przedstawione narzędzia pozwalają w mniejszym lub większym stopniu na oddanie charakteru zjawiska i zobrazowanie podstawowych zależności między zaburzeniem i jego źródłem. Praca nie wyczerpuje podjętego tematu, gdyż nie zostało poruszonych jeszcze wiele zagadnień związanych z graficzną reprezentacją zjawisk. Dalsze prace powinny objąć problem symulacji rzeczywistej fali akustycznej wywołanej ruchem pocisku oraz rozszerzyć opracowane modele symulacyjne o parametry, które w pracy zostały uproszczone lub pominięte. Szczególnie jeśli chodzi o matematyczny opis propagacji fali uderzeniowej, który może być uwzględniony w wykonywalnym skrypcie Pythona w środowisku Blender. Praca finansowana ze środków na naukę, jako projekt badawczo-rozwojowy realizowany w latach 2012-2015. LITERATURA [1] Pietrasieński J., Żygadło S., Rodzik D., Warchulski J., Warchulski M.: Badanie parametrów przestrzenno-czasowych zaburzeń ośrodka wywołanych lotem pocisku, Biuletyn WAT, vol. LVI, 2007, s. 413-422. [2] www.falstad.com [3] www.enzim.hu [4] Matossian M.: Po prostu 3ds max, Wydawnictwo Helion, Gliwice, 2004. [5] Panawa K.: Modelowanie i wizualizacja rozchodzenia się fali akustycznej wywołanej ruchem pocisku artyleryjskiego, praca magisterska (kier. Jan Pietrasieński), WAT, 2007. [6] Pietrasieński J., Grzywiński S.: Using Blender software for modeling and rendering three-dimensional images and animation, Mechanik, nr 7/2012, CD, s. 717-722. 658