SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Ljiljana Pintarić Mario Paravac JAVAFX SEMINARSKI RAD IZ KOLEGIJA RAČUNALNA

Слични документи
8. razred kriteriji pravi

Primenjeno programiranje - vezbe GUI i baze podataka

RG_V_05_Transformacije 3D

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Recuva CERT.hr-PUBDOC

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika BETTER PORTABLE GRAPHICS FORMAT Matej

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

MultiBoot Korisnički priručnik

Microsoft Word - privitak prijedloga odluke

Uputstvo za korištenje Moja webtv Smart TV aplikacije Moja webtv aplikacija dostupna je za korištenje putem Web Browsera, na Play Store-u (za mobilne

BDV-EF1100

Golden 7 Classic HTML5 na stolnim računalima i mobilnim uređajima. Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 95,00 % Golden 7 Classic

Trimble Access Software Upute za korištenje V2.0 Geomatika-Smolčak d.o.o.

PuTTY CERT.hr-PUBDOC

Napredno estimiranje strukture i gibanja kalibriranim parom kamera

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

8 2 upiti_izvjesca.indd

eOI Middleware Upute za instalaciju

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

Sadržaj Wi-Fi MESHtar...4 Upute za povezivanje osnovnog paketa od dva uređaja...6 Savjeti i napredne postavke A) Preporuke za optimalno postavljanje u

Slide 1

INTERPRETER LOGO NAREDBI Teodor Lozinski Tomislav Višnić Kolegij: Uporaba računala u nastavi, Fizički odsjek, PMF, Sveučilište u Zagrebu, UVOD Z

Elementarna matematika 1 - Oblici matematickog mišljenja

Definicija softvera Soft-GIS Soft-GIS: bazni modul svojstva Map-visio Desktop Alatna traka pomicanje mape zumiranje povratak na prija

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Seminar peti i ²esti U sljede a dva seminara rije²avamo integrale postavljene u prosturu trostruke integrale. Studenti vjeºbom trebaju razviti sposobn

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

Zadaci iz Nacrtne geometrije za pripremu apsolvenata Srdjan Vukmirović 27. novembar Projektivna geometrija 1.1 Koordinatni pristup 1. (Zadatak

Prikaz slike na monitoru i pisaču

Primenjeno programiranje - Vežbe

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

GLOBALNI IZVEDBENI PLAN I PROGRAM ZA IZVOĐENJE NASTAVE GEOGEBRE U OSNOVNOJ ŠKOLI (matematička grupa, 1 sat tjedno) 6. razred (35 sati) I. Uvod u GeoGe

PowerPoint Presentation

BDV-E6100/E4100/E3100/E2100

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

1 MATEMATIKA 1 (prva zadaća) Vektori i primjene 1. U trokutu ABC točke M i N dijele stranicu AB na tri jednaka dijela. O

ELFI: UPUTSTVO ZA KORIŠTENJE

MAS xlsx

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

Microsoft Word - 24ms241

Microsoft Word - CAD sistemi

Шифра ученика: Укупан број бодова: Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ и технолошког РАзвоја ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСП

Polovni Automobili - Media Kit.ai

Maxtv To Go/Pickbox upute

eredar Sustav upravljanja prijavama odjelu komunalnog gospodarstva 1 UPUTE ZA KORIŠTENJE SUSTAVA 1. O eredar sustavu eredar je sustav upravljanja prij

Geometrija molekula

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

Laboratorija za termičku obradu Inženjerstvo površina Kratko uputstvo za obradu i analizu profila u programskom paketu SPIP Programski paket SPIP preu

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

ПРОГРАМИ ЗА ПРАВЉЕЊЕ ПРЕЗЕНТАЦИЈА

MATEMATIKA EKSTERNA PROVJERA ZNANJA UČENIKA NA KRAJU III CIKLUSA OSNOVNE ŠKOLE UPUTSTVO VRIJEME RJEŠAVANJA TESTA: 70 MINUTA Pribor: grafitna olovka i

OpenVPN GUI CERT.hr-PUBDOC

Slide 1

Microsoft Word - Korisnički priručnik za liječnika.docx

Slide 1

PowerPoint Presentation

Kriteriji ocjenjivanja 6razred

Microsoft PowerPoint - Predavanje3.ppt

i-scope Primjena pametnih tehnologija na digitalnom 3D modelu grada Uputa za korištenje V.2.2. Srpanj CIP-ICT-PSP Ovaj materijal s

KONFIGURACIJA MODEMA THOMPSON SpeedTouch 500 Series (530/530i/510/510i)

2D računalna igra na engleskom jeziku namijenjena široj publici Žanr: Arcade / Story Teller / Rage game Autor: Vito Gambin 6.razred OŠ Fažana Mentor:

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

RAD SA PROGRAMOM

Upute za samostalni dizajn i grafičku pripremu plakata BOJE Plakat je najuočljiviji kada se koriste kombinacije kontrastnih boja npr. kombinacija crne

Instalacija R-project softvera Univerzitet u Novom Sadu April 2018 Contents 1 Uvod 2 2 Instalacija R: Instalacija

Objektno orjentirano programiranje 2P

Uputstvo za podešavanje za pristup eduroam servisu za Mac OS X Snow Leopard Copyright AMRES

Naziv studija

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

The Land of Heroes Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,17 % Pronađite magičan mlin kako biste se spasili od strašne hladnoće

atka 25 (2016./2017.) br. 98 Nastavak iz atke broj 97. U Nacrtaj i ti! Nikol Radović, Sisak prošlim brojevima atke upoznali smo neke metode vizualizac

Univerzitet u Beogradu Mašinski fakultet Konstrukcija i tehnologija proizvodnje letelica PODEŠAVANJE PROGRAMSKOG PAKETA CATIA V5 Miloš D. Petrašinović

Pharao s Riches Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,10 % / 95,13 % / 94,40 % Bogatstvo i ostala blaga nekadašnjeg vrhovnog vl

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

Sveučilište u Zagrebu Fakultet organizacije i informatike, Varaždin Uvod u Unity Vjež ba 1 1. Kreiranje projekta Kako bi započeli s kreiranj

Za formiranje JOPPD obrasca neophodno je točno popuniti šifre u osnovama primitaka. Svaka osnova primitka ima propisane šifre u prilozima JOPPD

gt1b.dvi

kriteriji ocjenjivanja - informatika 8

Microsoft Word - Urbano8_nove_funkcionalnosti_2.00.doc

Чича Глиша Аутор: Зора Гојковић и Валентина Рутовић ПРИПРЕМА ЧАСА И УПУТСТВО ЗА КОРИШЋЕЊЕ ПРЕЗЕНТАЦИЈЕ ЧИЧА ГЛИША За ове часове ликовне културе смо ис

UPUTSTVO ZA KORIŠĆENJE OPCIJE POGLEDAJ PROPUŠTENO 1

Microsoft Word - 15ms261

Microsoft PowerPoint - 08_CSS_4.ppt [Compatibility Mode]

Apache Maven Bojan Tomić

Anaconda Eye Rapids HTML5 na stolnim računalima i mobilnim uređajima Vrsta igre: Video slot PVI (povratak vrijednosti igraču): 96,08 % Dragulj poznat

Božo Online upute

knjiga.dvi

PITANJA I ZADACI ZA II KOLOKVIJUM IZ MATEMATIKE I Pitanja o nizovima Nizovi Realni niz i njegov podniz. Tačka nagomilavanja niza i granična vrednost(l

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Dvostruki integrali Matematika 2 Erna Begović Kovač, Literatura: I. Gusić, Lekcije iz Matematike 2

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o

UPUTSTVO ZA PODEŠAVANJE EON MENIJA 1

Microsoft Word - 6ms001

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

PowerPoint Presentation

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

Microsoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc

ЗАДАЦИ ИЗ МАТЕМАТИКЕ ЗА ПРИПРЕМАЊЕ ЗАВРШНОГ ИСПИТА

Транскрипт:

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Ljiljana Pintarić Mario Paravac JAVAFX SEMINARSKI RAD IZ KOLEGIJA RAČUNALNA GRAFIKA Varaždin, 2015.

SVEUČILIŠTE U ZAGREBU FAKULTET ORGANIZACIJE I INFORMATIKE V A R A Ž D I N Ljiljana Pintarić Mario Paravac JAVAFX SEMINARSKI RAD Mentor: doc.dr.sc. Ivan Hip Varaždin, siječanj 2015.

Sadržaj 1. Uvod... 1 2. Teoretski uvod... 2 2.1. 3D oblici i tijela... 2 2.2. Kamera... 2 2.3. Svjetla... 3 2.4. Materijal... 3 2.5. Organizacija čvorova i grupa... 3 3. Instalacija i pokretanje aplikacije... 5 5.1. Instalacija... 5 5.2. Pokretanje aplikacija... 5 5.3. Pokretanje primjera... 5 5.3.1. Kocka... 6 5.3.2. Piramida... 7 5.3.3. Vjetromjer... 9 5.3.4. Slovo F... 11 5.3.5. Videokocka... 12 5.3.6. Test dubine(z-buffer)... 12 4. Zaključak... 13 5. Literatura... 14 I

1. Uvod Tema ovog rada je JavaFX i njene mogućnosti vezane uz računalnu grafiku. U radu smo se koncentrirali na izradu primjera poput onih na vježbama i iz zadaća, te još nekih koji prikazuju dodatne mogućnosti JaveFX. Kod sadrži dodatne komentare koji nisu navedeni u seminaru budući da njihovo značenje ima smisla samo u kontekstu koda. Od primjera odlučili smo napraviti neke jednostavnije primjere poput kocke, piramide i sličnih, te neku integraciju svega toga kao što su vjetromjer i slovo F. Ovi primjeri pokazuju rad sa predefiniranim oblicima, svjetlom, kamerom, materijalima, videom i zvukom i drugim zanimljivim stvarima koje nude biblioteke JaveFX. 1

2. Teoretski uvod JavaFX 3D graphics API osigurava trodimenzionalnu grafičku biblioteku za JavaFX platformu. Omogućava korištenje 3D geometrije, kamera i svjetla za kreiranje, prikaz i manipulaciju objektima u trodimenzionalnom prostoru. 2.1. 3D oblici i tijela JavaFX sadrži SHAPE3D API dostupan u JavaFX 3d Graphics biblioteci. POstoje dva tipa oblika: predefinirani oblici i korisnički definirani. Predefinirani oblici su kocke odnosno "kutije", valjci i sfere. U nastavku vidimo Shape3D hijerarhiju klasa: java.lang.object javafx.scene.node javafx.scene.shape.shape3d javafx.scene.shape.meshview javafx.scene.shape.box javafx.scene.shape.cylinder javafx.scene.shape.sphere Korisnički definirani oblici koriste se TriangleMesh podklasom, koja je najtipičnija vrsta "mreže" koja se koristi u 3D layoutima. U nastavku vidimo JavaFX Mesh hijerarhiju klasa. java.lang.object javafx.scene.shape.mesh (abstract) javafx.scene.shape.trianglemesh TriangleMesh sadrži odvojena polja točaka, koordinata tekstura i naličja koja opisuju mrežu geometrijskog tijela. 2.2. Kamera Kamera je čvor koji je moguće dodati JavaFX scenskom grafu, te tako omogućuje pokretanje kamere u 3D layoutu. U JavaFX koordinatnom prostoru scene, kamera je pozicionirana na Z=0, X-os usmjerena je desno, Y-os usmjerena je prema dolje, a Z-os u dubinu ekrana. Budući da je kamera sada čvor, moguće je nad njom primjenjivati transformacije kao i na drugim čvorovima: rotaciju, translaciju itd. 2

2.3. Svjetla Dakle, svjetla su takoďer jedan od čvorova u scenskom grafu. Ukoliko nema posebno definiranih svjetala u aplikaciji, osigurano je neko "defaultno" svjetlo. Svako svjetlo odnosi se na neki skup čvorova, a ako je taj skup prazan, onda se svjetlo primjenjuje na sve čvorove mreže. TakoĎer, ukoliko je korijenski čvor u skupu čvorova tada se na sve druge primjenjuje svjetlo. Postoje dvije vrste svjetla: Ambijentalno svijetlo koje dolazi iz svih smjerova Usmjereno svjetlo koje se nalazi na nekoj fiksnoj točci u prostoru i isijava svjetlo jednakomjerno u svom smjerovima Hijerarhija klase svjetala: javafx.scene.node javafx.scene.lightbase (abstract) 2.4. Materijal U nastavku vidimo hijerarhiju klase materijala: java.lang.object javafx.scene.paint.material (abstract) javafx.scene.paint.phongmaterial PhongMaterial klasa osigurava definicije svojstava koja reprezentiraju formu Phong materijala: diffuse color, diffuse map, specular map, specular color, specular power, bump map or normal map, self-illumination map. Jednom kada definiramo materijal moguće ga je pridijeliti bilo kojem obliku na sceni. 2.5. Organizacija čvorova i grupa Na idućoj slici vidi se primjer organizacije čvorova odnosno grupa. Kao što vidimo, čvorovi su organizirani u stablo. Kao i svako stablo, postoji jedan čvor koji je korijen, kojem je zatim moguće dodijeliti druge čvorove. Čvorovi koji nemaju djece su listovi. 3

Slika 1, Čvorovi i grupe, Izvor: http://docs.oracle.com/javafx/2/scenegraph/img/figure1.png Na idućoj slici vidimo konkretan primjer u korijenu je konkretna grupa kojoj su zatim dodijeljeni drugi čvorovi: krug, pravokutnik te još jedna grupa, koja pak sadrži tekst i ImageView. Prednost ovakve organizacije je, osim same preglednosti, da se sve transformacije primijenjene nad roditeljskim čvorom odnose i na djecu čvorove. Slika 2, Primjer organizacije čvorova, Izvor: http://docs.oracle.com/javafx/2/scenegraph/img/figure2.png 4

3. Instalacija i pokretanje aplikacije 3.1. Instalacija Za instalaciju potrebno je skinuti Java Development Kit (JDK) 8 sa http://www.oracle.com/technetwork/java/javase/downloads/. (JDK 8 uključuje JavaFX APIje koji uključuju 3D grafičke funkcionalnosti) TakoĎer je potrebno instalirati NetBeans IDE dostupan na https://netbeans.org/downloads/. 3.2. Pokretanje aplikacija Nakon pokretanja, sve što je potrebno za otvaranje projekta je odabrati Open sa izbornika File te navigirati do željenog projekta. 3.3. Pokretanje primjera Za promjenu datoteka koje se izvršavaju prve, potrebno je u Properties izborniku pod Run odabrati željenu klasu. Sljedeća tri primjera (kocka, piramida, vjetromjer) imaju zajedničke odrednice vezano uz kameru i tipke koje je moguće koristiti u primjeru. Primjer koristi perspektivnu kameru. Budući da je kamera čvor, nad njom se mogu provoditi različite transformacije. Primjeri imaju tri osi različitih boja: os x je crvene, os y zelene i os z narančaste boje. Tipke kojima je moguće upravljati kamerom su sljedeće: ALT + SHIFT + PRIMARY_BUTTON - rotacija po z osi ALT + PRIMARY_BUTTON rotacija po x i y osi ALT + SECONDARY_BUTTON zoomin/zoomout ALT + MIDDLE_BUTTON premještanje kocke po sceni F centriranje, zumiranje i postavljanje na početne postavke A postavljanje na početne postavke Primjeri takoďer sadrže i svjetlo, koje je takoďer zaseban čvor kojim je takoďer moguće upravljati. 5

3.3.1. Kocka Ovaj primjer koristi TriangleMesh za crtanje kocke te konkretnu teksturu čije koordinate sadrži. Alternativa je crtanje kocke pomoću već gotove klase Box, no u tom slučaju je nemoguće upravljati lijepljenjem teksture. Tekstura je nalijepljena na sljedeći način: Slika 3. Vrhovi kocke Slika 4. Vrhovi kocke(1. slučaj) i koordinate teksture Slika 5. Rezanje teksture Kao što vidimo, iz teksture je izrezana odreďena površina i nalijepljena na kocku. Trebamo uzeti u obzir da se u javifx koristi trokut kao osnovni lik za crtanje (triangle mesh) pa tako i za odreďivanje strukture koordinata. Rezultat je sljedeća kocka: 6

Slika 6. Kocka TakoĎer, postoji alternativa moguće je i ne izrezivati teksturu nego samo nalijepiti cijelu teksturu na stranicu kocke. U tom slučaju bismo dobili malo manje cvjetiće. Ukoliko odaberemo raditi kocku već predefiniranim oblikom Box, tada nemamo izbora što se tiče koordinata tekstura automatski se koristi ovaj drugi pristup lijepljenju tekstura. 3.3.2. Piramida Za crtanje piramide se takoďer koristi TriangleMesh, no nisu definirane koordinate tekstura (odnosno postavljene su na 0). U ovom primjeru, kao i u prošlom,svjetlo je statički čvor sa ambijentalnim svjetlom te svjetlom usmjerenim na točno odreďene točke. Konkretno, koristili smo sljedeća svijetla: Group lightgroup = new Group(); //lijevo svijetlo PointLight light = new PointLight(); light.setcolor(color.white); light.settranslatex(-600); light.settranslatey(200); light.settranslatez(-600); lightgroup.getchildren().add(light); //desno svijetlo 7

PointLight light2 = new PointLight(); light2.setcolor(color.darkorange); light2.settranslatex(600); light2.settranslatey(200); light2.settranslatez(-600); lightgroup.getchildren().add(light2); AmbientLight ambientlight = new AmbientLight(Color.rgb(20, 20, 20)); Kao što vidimo, na vrhu je čvor koji sadrži svjetla. Nakon toga definirana su dva izvora usmjerenog svjetla ( PointLight ), kojima su dodijeljene boje, te su translatirana tako da optimalno osvijetle piramidu. TakoĎer je definirano i ambijentalno svjetlo, koje je neke srednje tamno sive boje, jer se u suprotnom svjetlo previše ili premalo odbija od površine. Slika 7. Piramida 8

3.3.3. Kugla Na primjeru kugle možemo vidjeti gašenje i paljenje svijetla. Pritiskom na tipku L svijetlo se gasi ili pali, ovisno o trenutnom stanju. Pritom ambijentalno svijetlo ostaje upaljeno, dok gasimo samo usmjereno svijetlo (tzv. PointLight ). Slika 8. Kugla 3.3.4. Vjetromjer Vjetromjer je kompozicija od nekoliko elemenata stošca, valjka, i polukugle. TakoĎer je nad njima primijenjena animacija rotacije. Nad čvorom svjetla primijenjena je animacija rotacije, pa se svjetlo vrti oko vjetromjera. U ovaj je primjer takoďer dodan i zvuk vjetra, kako bi efekt bio potpun. Za ovaj se primjer koriste dodatne klase: Cone za crtanje stošca, te HalfSpheroid za crtanje polusfere. 9

Slika 9. Vjetromjer U ovom je primjeru naglasak stavljen na rotaciju. Osim što su odreďeni elementi fiksno rotirani kako bi se dobila odgovarajuća slika, takoďer je i dodana animacija rotacije koja služi za rotiranje elemenata čvorova nad kojima je primijenjena. U nastavku vidimo funkciju za rotaciju. ProsljeĎujemo joj grupu elemenata, instanciramo klasu RotateTransition koja će nam omogućiti da odredimo karakteristike animacije, odredimo joj trajanje (iako ono kasnije gubi svoj smisao budući da se animacija vrti u beskonačnost), te dodamo grupu. Nakon toga odredimo kut rotacije (0-360 stupnjeva), os po kojoj želimo rotirati te dodatne postavke kao što su to vrijeme ponavljanja rotacije (INDEFINITE) te interpolator (LINEAR). Moguće je postaviti i nešto drugo, primjerice da se na početku onih 4.5 sekundi animacija vrti sporije, zatim ubrza i na kraju opet uspori ili nešto slično. private void rotatearoundzaxis(group elementgroup) { RotateTransition rotate = new RotateTransition(Duration.seconds(4.5), elementgroup); rotate.setfromangle(0); rotate.settoangle(360); rotate.setaxis(rotate.z_axis); 10

} rotate.setcyclecount(rotatetransition.indefinite); rotate.setinterpolator(interpolator.linear); rotate.play(); Nakon toga, definirana su svjetla: PointLight light = new PointLight(); light.setcolor(color.white); Group lightgroup = new Group(); light.settranslatex(-50); light.settranslatey(-100); light.settranslatez(-800); lightgroup.getchildren().add(light); PointLight light2 = new PointLight(); light2.setcolor(color.yellowgreen); light2.settranslatex(50); light2.settranslatey(200); light2.settranslatez(400); lightgroup.getchildren().add(light2); AmbientLight ambientlight = new AmbientLight(Color.rgb(20, 20, 20)); rotatearoundzaxis(lightgroup); te je nad njima primijenjena rotacija. Zbog toga se svjetla pomiču. Rotacija je takoďer primijenjena nad grupom valjaka i grupom sfera koje se rotiraju oko osi z. U animaciju je takoďer dodan i zvuk vjetra, sve da bi se dobilo na efektu pravog vjetromjera. 3.3.5. Slovo F Slovo F je sastavljeno od nekoliko kocki. Na nekim kockama prikazani su različiti primjeri teksture.primjer generira dvije gotovo identične scene. Druga scena se razlikuje po uključenom antialiasingu i dodanim video klipom. Funkcionalnosti primjera: 11 Tipka A - odreďuje način crtanja(žičano,punjeno) S - rotacija kocki on/off D - promjena scene

P - pokreće/pauzira video u drugoj sceni Q - pokreće animaciju W - pauzira animaciju B - prikazuje teksturu bumpmap - i + približavanje i udaljavanje kamere primary button + mouse dragged upravljanje kamerom 3.3.6. Videokocka Primjer prikazuje kocku koja na svakoj stranici prikazuje različiti video klip. Sastavljena od više media playera nad kojima su primjenjene transformacije translacije, rotacije i skaliranja te je primjenjena animacija rotacije glavnog čvora. Pritiskom tipke A razdvajaju se stranice kocke. Moguće je upravljati kamerom: primary button + mouse dragged. 3.3.7. Test dubine(z-buffer) Primjer uključuje 3 kocke, crvena (prednja), zelena (srednja) i plava (stražnja). Ukoliko je depth test isključen uočavamo da je poredak kocki drugačiji i prilikom rotacije zadržavaju svoju poziciju (npr. plava uvijek ostaje na prednjoj poziciji). Razlog tome je redosljed renderiranja. Depth buffer koristi se za sortiranje objekta na temelju njihove z vrijednosti. Sortiranje se vrši prema pikselima od strane GPU-a. Bez obzira kojim se redosljedom objekti renderiraju, onaj objekt čija je z vrijednost najbliža gledatelju biti će uvijek prikazan na vrhu. 12

4. Zaključak Na kraju možemo reći da je JavaFX vrlo organizirana i user friendly, te smo uživali u njenom korištenju. TakoĎer, Oracle nudi pristojnu dokumentaciju sa primjerima, te je moguće naći rješenja za sve probleme koji bi se mogli pojaviti početnicima u JaviFX poput nas. Nažalost JavaFX nije sofisticirana kao OpenGL, te ne pokriva sve njegove funkcionalnosti, no to nadoknaďuje jednostavnošću korištenja te kompaktnošću koda. Možemo je preporučiti za korištenje na kolegiju umjesto obične jave. 13

5. Literatura 1. Oracle, JavaFX, https://docs.oracle.com/javase/8/javafx/graphics-tutorial/javafx- 3d-graphics.htm, Dostupno 15. siječanj 2015. 2. Oracle, Animation and Other Effects, http://docs.oracle.com/javase/8/javafx/getstarted-tutorial/animation.htm, Dostupno 15. siječanj 2015. 3. Oracle, Transformation Types and Examples, https://docs.oracle.com/javase/8/javafx/visual-effects-tutorial/transformationtypes.htm#babdebga, Dostupno 15. siječanj 2015. 4. Oracle Learning Library, 3D Made Easy With JavaFX, https://www.youtube.com/watch?v=ebkhdv-_ric, Dostupno 15. siječanj 2015. 5. Sun Microsystems, Getting Started with Java 3D API, Creating Geometry, http://www2.hsfulda.de/caelabor/inhalte/java/j3d/j3d_tutorials/j3d_tutorial_ch2.pdf, Dostupno 15. siječanj 2015. 6. Weiqi Gao, OCI, Experiments with JavaFX 3D Scenes, http://sett.ociweb.com/sett/settmay2012.html, Dostupno 15. siječanj 2015. 7. Narayan G. Maharjan, Java and FX, Lights in JavaFX 3D, http://blog.ngopal.com.np/2013/06/14/lights-in-javafx-3d/, Dostupno 15. siječanj 2015. 14