Niektóre zaawansowane możliwości biblioteki Three.js
|
|
- Anatol Paluch
- 6 lat temu
- Przeglądów:
Transkrypt
1 Piotr Siekański Wydział Mechatroniki PW Niektóre zaawansowane możliwości biblioteki Three.js Fotorealizm w animacji...2 Cube mapping...2 Skybox...3 Skybox w Three.js...3 Różne materiały dla jednej bryły...4 Sterowanie kamerą za pomocą myszy...6 Ładowanie modeli z Blendera do Three.js...7 Eksport modeli z Blendera do Three.js...7 Funkcje anonimowe w JavaScript...8 Import wyeksportowanych modeli w Three.js...8 Modelowanie powierzchni zwierciadlanych...9 Systemy cząsteczkowe...10 Podstawy systemów cząsteczkowych...10 Liczby losowe w JavaScript...13 Parametry cząsteczek zależne od odległości...14 Zadania
2 Fotorealizm w animacji We współczesnej grafice komputerowej duży nacisk kładzie się na uzyskanie tzw. fotorealizmu, czyli stworzenia za pomocą komputera obrazów, które będą dobrze imitować rzeczywiste obiekty. Jeżeli rendering nie musi być przeprowadzany w czasie rzeczywistym, często stosuje się technikę śledzenia promieni (ang. ray tracing), która wymaga bardzo wielu obliczeń i nie nadaje się do generowania animacji w czasie rzeczywistym. Istnieje jednak wiele technik wymagających mniejszej ilości obliczeń, które w konkretnych zastosowaniach dają efekty zbliżone do śledzenia promieni. Cube mapping Cube mapping jest jedną z technik tzw. mapowania środowiskowego (ang. environment mapping). Polega na stworzeniu wirtualnego sześcianu wielokrotnie większego od sceny, którą otacza. Na każdą z jego ścian nakładana jest wcześniej przygotowana tekstura, która odpowiada widokowi z kamery ustawionej prostopadle do ściany (patrz: Rysunek 1). Najczęściej poszczególne ściany w cube mappingu nazywa się zgodnie z następującą regułą: strona osi po której leży dana ściana i nazwa osi. Np. ściana leżąca po dodatniej stronie osi x będzie nazwana px (positive x), a leżąca po ujemnej stronie osi y ny (negative y). Rysunek 1: Cube mapping 2
3 Skybox Cube mapping jest szeroko stosowany w tworzeniu skyboxów. Skybox jest techniką, która pozwala niskim kosztem uzyskać wrażenie realistycznej sceny o znacznie większych wymiarach niż jest w rzeczywistości. Stosowanie skyboxów stwarza wrażenie dużej odległości obiektów tła, a w rezultacie wrażenie głębi. Skybox w Three.js Dołączony plik Podstawy threejs.html zawiera podstawowy kod HTML konieczny do rozpoczęcia pracy z biblioteką Three.js. oraz zdefiniowane podstawowe zmienne i funkcje. Działanie kodu jest wyjaśnione szczegółowo w pierwszej części instrukcji. Dodano jedynie polecenie lookat, które ustawia kamerę tak, aby patrzyła na obiekt będący argumentem. Jeżeli nie zaznaczono inaczej, wszystkie poniższe polecenia należy dodawać w funkcji init(), żeby zachować czytelność kodu. Skybox jest sześcianem, a więc najpierw należy zdefiniować geometrię sześcianu oraz materiał, z którego będzie wykonany: var skyboxgeometria = new THREE.CubeGeometry( 1000, 1000, 1000); var skyboxmaterial = new THREE.MeshLambertMaterial( { color: 0x00ff00, side: THREE.BackSide ); Warto zwrócić uwagę na parametr side pojawiający się w materiale. Odpowiada on za stronę, po której będzie renderowany materiał. Może przyjmować trzy wartości: THREE.FrontSide THREE.BackSide THREE.DoubleSide Jeśli parametr nie zostanie zdefiniowany, przyjmuje domyślnie wartość THREE.FrontSide, która renderuje materiał po stronie zewnętrznej bryły. W przypadku skyboxa, konieczna jest zmiana wartości tego parametru na THREE.BackSide, ponieważ materiał ma być widoczny wewnątrz sześcianu. Możliwy jest też rendering na obu powierzchniach bryły zewnętrznej i wewnętrznej, wtedy należy ustawić wartość THREE.DoubleSide. Po zdefiniowaniu materiału należy stworzyć bryłę i dodać ją do sceny. var skybox = new THREE.Mesh( skyboxgeometria, skyboxmaterial ); scena.add( skybox ); Materiał skyboxa jest typu lambertowskiego, a więc wymaga zdefiniowania oświetlenia i dodania go do sceny w określonym miejscu: var swiatlopunktowe = new THREE.PointLight( 0xffffff, 2, 1000 ); scena.add(swiatlopunktowe); swiatlopunktowe.position.set(100,100,100); 3
4 Po zapisaniu i uruchomieniu pliku w przeglądarce, powinno wyświetlić się wnętrze zielonego sześcianu (Rysunek 2). Rysunek 2: Zielony skybox Różne materiały dla jednej bryły Do tej pory każda bryła korzystała z jednego materiału. Skybox musi mieć ich sześć, ponieważ wymaga zastosowania sześciu różnych tekstur. Do tego celu konieczna jest tablica przechowująca każdy z materiałów: var tablicamaterialow = []; Następnie do tablicy muszą zostać dodane materiały, najprostszy sposób to użycie polecenia push, które dodaje jeden lub więcej elementów na koniec tablicy: THREE.MeshBasicMaterial( { color: 0xff0000, side: THREE.MeshBasicMaterial( { color: 0x00ff00, side: THREE.MeshBasicMaterial( { color: 0x0000ff, side: THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.MeshBasicMaterial( { color: 0xff00ff, side: THREE.MeshBasicMaterial( { color: 0x00ffff, side: Po wykonaniu powyższego fragmentu kodu do tablicy zostanie dodanych sześć materiałów typu basic różniących się kolorem. Kolejnym krokiem jest zmiana typu materiału skyboxa z: var skyboxmaterial = new THREE.MeshLambertMaterial( { color: 0x00ff00, side: THREE.BackSide ); na: var skyboxmaterial = new THREE.MeshFaceMaterial( tablicamaterialow ); 4
5 Materiał typu MeshFace przyjmuje jako parametr tablicę materiałów, której poszczególne materiały są dodawane do poszczególnych ścian bryły. Materiały w tablicy są typu basic, więc światło punktowe nie będzie już potrzebne i można usunąć fragment kodu odpowiedzialny za dodanie światła: //var swiatlopunktowe = new THREE.PointLight( 0xffffff, 2, 1000 ); //scena.add(swiatlopunktowe); //swiatlopunktowe.position.set(100,100,100); Po zapisaniu pliku i uruchomieniu go w przeglądarce powinien wyświetlić się kolorowy sześcian (Rysunek 3). Rysunek 3: Rózne materiały na każdej ze ścian skyboxa Ostatnim krokiem jest dodanie tekstur do każdej ze ścian. W tym celu należy zmienić fragment kodu odpowiadający za dodawanie materiałów do tablicy z THREE.MeshBasicMaterial( { color: 0xff0000, side: THREE.MeshBasicMaterial( { color: 0x00ff00, side: THREE.MeshBasicMaterial( { color: 0x0000ff, side: THREE.MeshBasicMaterial( { color: 0xffff00, side: THREE.MeshBasicMaterial( { color: 0xff00ff, side: THREE.MeshBasicMaterial( { color: 0x00ffff, side: na 5
6 THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/px.jpg' ),side: THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/nx.jpg' ),side: THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/py.jpg' ),side: THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/ny.jpg' ),side: THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/pz.jpg' ),side: THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( 'tekstury/nz.jpg' ),side: Powyższy fragment kodu ładuje odpowiednie tekstury z dołączonego katalogu nazwanego tekstury i przypisuje je do każdego z materiałów. Nazwa pliku z teksturą odpowiada jej położeniu w skyboxie. Autorem tekstur użytych w przykładzie jest Emil Persson. Rysunek 4: Skybox z teksturami Sterowanie kamerą za pomocą myszy Skybox nie wygląda realnie, gdy obserwator nie znajduje się w jego środku. Należy poprawić pozycję kamery tak, by znajdowała się w środku skyboxa np. poleceniem: kamera.position.set(0,150,0); Tak ustawiona kamera dzięki poleceniu lookat, które jak już wspomniano ustawia kamerę tak, aby patrzyła na obiekt będący argumentem, jest ustawiona zgodnie z kierunkiem wektora kamera centrum sceny - punkt (0,0,0). Dlatego jest skierowana wzdłuż osi y, czyli patrzy na dolną ścianę 6
7 skyboxa. Kolejnym krokiem będzie implementacja sterowania kamerą za pomocą myszy. W tym celu należy dodać na początku dokumentu dodatek do biblioteki Three.js nazwany OrbitControls znajdujący się w katalogu js. W przypadku ściągnięcia całej biblioteki Three.js znajduje się on w: folder z biblioteką threejs > examples > js > controls > OrbitControls.js <script src="js/orbitcontrols.js"></script> Następnie należy zadeklarować nową zmienną globalną odpowiadającą za sterowanie kamerą: var kontrolakamery; i wewnątrz funkcji init() przypisać ją do kontroli kamery: kontrolakamery = new THREE.OrbitControls( kamera, renderer.domelement ); Parametry odpowiadają kolejno za element, który będzie poruszany za pomocą myszy oraz odwołanie do elementu, HTML wewnątrz którego będzie poruszać się obiekt. W tym przypadku jest nim renderer. Ostatnim krokiem jest dodanie w funkcji animate() polecenia uaktualniającego stan kontroli kamery: kontrolakamery.update(); Po zapisaniu pliku i uruchomieniu go w przeglądarce możliwe będzie sterowanie kamerą za pomocą myszy: lewy przycisk - obrót kamery, prawy przycisk - przesuwanie w płaszczyźnie równoległej, kółko myszy oddalanie/zbliżanie. Ładowanie modeli z Blendera do Three.js Eksport modeli z Blendera do Three.js Blender domyślnie nie wspiera formatu plików używanego przez Three.js, dlatego do biblioteki dołączony jest specjalnie napisany eksporter, który instaluje się jako dodatek do Blendera. Instalacja dodatku przebiega następująco: 1. Skopiowanie dołączonego katalogu io_mesh_threejs do katalogu scripts/addons Blendera. W przypadku ściągnięcia całej biblioteki Three.js znajduje się on w: folder z biblioteką threejs > utils > exporters > Blender. Pełna ścieżka instalacji zależy od używanego systemu operacyjnego: Windows: C:\Users\USERNAME\AppData\Roaming\Blender Foundation\Blender\2.6X\scripts\addons lub C:\Program Files\Blender Foundation\Blender\2.6X\scripts\addons OSX: zależna od katalogu, w którym zainstalowana jest aplikacja; w przypadku instalacji w katalogu Applications: /Applications/Blender/blender.app/Contents/MacOS/2.6X/scripts/addons Linux: /home/username/.config/blender/2.6x/scripts/addons lub /usr/lib/blender/scripts/addons 2. Aktywacja dodatku w Blenderze. W tym celu należy wybrać: File > User Preferences > Addons i w polu wyszukiwania wpisać three. Nastepnie należy zaznaczyć pole wyboru przy Import-Export: Three.js format. 7
8 3. Model stworzony przy użyciu Blendera można wyeksportować do formatu tekstowego przy pomocy File > Export > Three.js (js). Funkcje anonimowe w JavaScript Funkcja anonimowa rożni się od zwykłej funkcji tym, że nie ma nazwy. Jest deklarowana i natychmiast wywoływana w konkretnym miejscu w kodzie, później nie można się do niej odwołać. Przykład zastosowania funkcji anonimowej do ładowania modelu znajduje się w następnym akapicie. Funkcje anonimowe są często stosowane, ponieważ poprawiają czytelność kodu i przyspieszają jego wykonanie. Są stosowane w działaniach, które wykonują się tylko raz podczas działania skryptu, np. ładowanie modelu z pliku. Import wyeksportowanych modeli w Three.js Biblioteka Three.js posiada wbudowany loader, który umożliwia import modeli zapisanych w tekstowym formacie JSON. Najpierw należy zadeklarować zmienną globalną przechowującą referencję do wczytanego modelu na przykład: var malpa; Loader, przy ładowaniu pliku korzysta z funkcji anonimowej: var zrodlo = "monkey.js"; var loader = new THREE.JSONLoader(); loader.load( zrodlo, function(geometriamodelu){ var malpamaterial = new THREE.MeshBasicMaterial({color: 0x00ff00); malpa = new THREE.Mesh(geometriaModelu, malpamaterial); malpa.position.set(0,0,0); malpa.scale.set(10,10,10); scena.add(malpa); ); Najpierw deklarowana jest zmienna przechowująca ścieżkę do ładowanego pliku, następnie tworzona jest instancja loadera i wywoływana jest jego metoda load(). Przyjmuje ona dwa parametry, pierwszy to ścieżka do modelu, który należy wczytać, a drugi to funkcja anonimowa, która przyjmuje za parametr geometrię modelu wczytaną z pliku. Działanie kodu wewnątrz funkcji anonimowej jest oczywiste: najpierw tworzony jest materiał, później na jego podstawie i geometrii przekazanej przez parametr funkcji anonimowej tworzony jest nowy obiekt, który następnie jest dodawany do sceny. Warto podkreślić, że po wyjściu z funkcji anonimowej wszystkie zmienne użyte w jej wnętrzu staną się niedostępne, więc jeśli nie zostałaby utworzona zmienna globalna przechowująca odwołanie do modelu, model zostałby dodany do sceny i wyświetlany, ale nie można by się do niego w żaden sposób odwołać. Działanie loadera w threejs opiera się o mechanizm AJAX (ang. Asynchronous JavaScript and XML, asynchroniczny JavaScript i XML), który umożliwia asynchroniczne ładowanie poszczególnych elementów strony internetowej. Kod zawarty wewnątrz loadera wykonuje się niezależnie od pozostałej części skryptu, inaczej niż w przypadku klasycznego programowania strukturalnego, w którym kod jest wykonywany linia po linii, a wykonanie kolejnej linii zacznie się dopiero po zakończeniu wykonywania poprzedniej linii. Z tego powodu kod wykonywany asynchronicznie może być znacznie trudniejszy do debugowania. 8
9 Po zapisaniu pliku i uruchomieniu go w przeglądarce internetowej powinien wyświetlić się zielony model małpy wyeksportowanej z dołączonego pliku monkey.blend i wczytanego z pliku tekstowego JSON monkey.js. Modelowanie powierzchni zwierciadlanych Jak już wspomniano we wstępie do niniejszej instrukcji, raytracing jest zbyt kosztowną techniką, żeby stosować ją w animacjach, które muszą wykonywać się w czasie rzeczywistym. Powierzchnię zwierciadlaną można jednak uzyskać korzystając z wspomnianego już cube mappingu, umieszczając wirtualny sześcian na miejscu obiektu zwierciadlanego i wykonując rendering otoczenia na każdej z jego ścian (patrz Rysunek 1). Tak przygotowaną teksturę należy później nałożyć na obiekt. Biblioteka Three.js posiada gotowy obiekt kamery do cube mappingu. Należy zadeklarować nową zmienną globalną: var kameralustrzana; i w funkcji init() przypisać ją do nowej kamery i dodać ją do sceny: kameralustrzana = new THREE.CubeCamera( 0.1, 5000, 512 ); scena.add( kameralustrzana ); Parametry przyjmowane przez konstruktor to: near obiekty bliższe niż wartośc near nie będą renderowane far obiekty dalsze niż wartośc far nie będą renderowane cuberesolution rozdzielczość kamery; im mniejsza wartość tym mniej dokładne odwzorowanie otoczenia i wrażenie bardziej matowej powierzchni. Następnie należy utworzyć nowy materiał, który będzie zawierał teksturę będącą obrazem z kamery. Umożliwia to parametr envmap: var materiallustrzany = new THREE.MeshBasicMaterial( { envmap: kameralustrzana.rendertarget ); Aby przypisać ten materiał do modelu, należy wrócić do anonimowej funkcji ładującej model i zamienić: var malpamaterial = new THREE.MeshBasicMaterial({color: 0x00ff00); malpa = new THREE.Mesh(geometriaModelu,malpaMaterial); na: malpa = new THREE.Mesh(geometriaModelu,materialLustrzany); Zmienna malpamaterial nie będzie już potrzebna, ponieważ materiał dla obiektu został utworzony poza funkcją anonimową. Jak już wspomniano, w przypadku wykorzystania cube mappingu, konieczne jest aby kamera była ustawiona dokładnie tam, gdzie obiekt, dlatego należy wewnątrz funkcji anonimowej przypisać położeniu kamery realizującej cube mapping położenie obiektu: kameralustrzana.position = malpa.position; 9
10 Po zapisaniu pliku i uruchomieniu go w przeglądarce załadowany model będzie czarny, ponieważ w każdej klatce animacji należy renderować obraz z kamery realizującej odbicie lustrzane. W tym celu w funkcji render() należy dodać instrukcję uaktualniającą kamerę. Żeby zapobiec sytuacji, w której część obiektu zasłania kamerę powodując powstanie artefaktów na powierzchni obiektu, należy przed uaktualnieniem kamery ukryć obiekt, natomiast po uaktualnieniu, ponownie go pokazać, używając właściwości visible: malpa.visible=false; kameralustrzana.updatecubemap( renderer, scena ); malpa.visible=true; Żeby sprawdzić poprawność działania mapowania środowiskowego można w funkcji animate() dodać obrót modelu: malpa.rotation.x+=0.01; Po zapisaniu pliku i uruchomieniu go w przeglądarce powinien wyświetlić się obracający się model głowy małpy z odbiciem środowiska na powierzchni. Systemy cząsteczkowe Podstawy systemów cząsteczkowych Systemy cząsteczkowe są techniką pozwalającą stosunkowo niewielkim nakładem pracy symulować wiele zjawisk fizycznych, takich jak: ogień, dym, poruszająca się woda, śnieg, deszcz itp. System cząsteczkowy składa się z wielu bardzo prostych elementów, które są animowane niezależnie od siebie. Ze względu na fakt, że aby uzyskać dobry efekt, cząsteczek musi być bardzo dużo, stosuje się wiele metod optymalizacji renderingu. Jedną z nich jest, stosowana w bibliotece Three.js, rezygnacja z geometrii cząsteczki. Są one płaskie i zawsze zwrócone w stronę kamery. W omawianym przykładzie system cząsteczkowy zostanie użyty do tworzenia prostych fajerwerków. System cząsteczkowy tak, jak każdy element w bibliotece Three.js wymaga zdefiniowania geometrii i materiału. Należy zdefiniować dwie nowe zmienne nielokalne fajerwerk, odpowiadającą za wskaźnik do modelu oraz materialfajerwerku, odpowiadającą za przechowywanie materiału: var fajerwerk, materialfajerwerku; Zmienna przechowująca geometrię nie jest potrzebna, ponieważ w omawianym przykładzie, będzie ona tworzona dynamicznie. Następnie w funkcji init(), należy przypisać im wartości: materialfajerwerku = new THREE.ParticleSystemMaterial({ size: 8, map: THREE.ImageUtils.loadTexture( 'tekstury/gwiazdka.png' ), opacity: 1.0, transparent: true, depthtest: false ); fajerwerk = new THREE.ParticleSystem( new THREE.SphereGeometry(30,15,15), materialfajerwerku ); scena.add(fajerwerk); 10
11 Materiał Fajerwerku jest typu ParticleSystem, co oznacza, że reprezentuje on system cząsteczkowy. Zdefiniowane parametry odpowiadają kolejno za: size rozmiar cząsteczki (domyślnie 1). map tekstura, która będzie wyświetlana. W tym przypadku gwiazdka. Jeśli tekstura nie byłaby zdefiniowana wyświetlany jest kwadrat. Jest to rozwiązanie akceptowalne, jeżeli rozmiar cząsteczki jest mały. opacity stopień przezroczystości cząsteczki w skali 0-1, gdzie 1 oznacza całkowicie nieprzezroczystą. transparent zmienna logiczna, jeśli ma wartość true, umozliwia sterowanie stopniem przezroczystości. depthtest parametr określający, czy cząsteczki mają mieć sprawdzany test głębii. Wartość false przyspiesza rendering i zapobiega powstawaniu artefaktów na krawędzi cząsteczek. Następnie stworzony zostaje system cząsteczkowy na bazie geometrii sfery i wcześniej zdefiniowanego materiału. Cząsteczki pojawiają się w miejsce wierzchołków geometrii. Ostatnim krokiem jest dodanie gotowego systemu do sceny (Rysunek 5). Rysunek 5: Scena z dodanym systemem cząsteczkowym 11
12 Kolejnym krokiem będzie symulacja efektu wybuchu. Najprostszym wyjściem jest sterowanie skalą systemu, w tym celu utworzone zostaną dwie nowe zmienne globalne skala, odpowiadająca za aktualną skalę systemu oraz maxskala, która będzie zapobiegać rozrostowi fajerwerku w nieskończoność. var skala=1, maxskala=150; Następnie tak przygotowane zmienne należy wykorzystać do sterowania rozmiarem systemu cząsteczkowego. Żeby zwiększyć czytelność kodu, poza funkcą init() zdefiniowane zostaną dwie nowe funkcje resetfajerwerku() i animacjafajerwerku(). function resetfajerwerku(){ skala=1; function animacjafajerwerku(){ skala+=10; fajerwerk.scale.set(skala, skala, skala); if (skala>maxskala) { resetfajerwerku(); Działanie kodu obu funkcji jest oczywiste. Funkcja animacjafajerwerku() zwiększa skalę i na jej podstawie ustawia nową skalę Fajerwerku. Następnie sprawdza czy przekroczona została wartość graniczna, jeśli tak, to wywołana zostaje funkcja resetfajerwerku(), która na obecnym etapie tylko ustawia wartość zmiennej skala z powrotem na 1. Aby rozpocząć animację Fajerwerku należy w funkcji animate() dodać wywołanie funkcji animacjafajerwerku(): function animate() { requestanimationframe( animate ); animacjafajerwerku(); kontrolakamery.update(); render(); Ostatnim krokiem jest zmiana promienia sfery w geometrii Fajerwerku, ponieważ rozrasta się on zdecydowanie za szybko. Należy zamienić: fajerwerk = new THREE.ParticleSystem( new THREE.SphereGeometry(30,15,15), materialfajerwerku ); na: fajerwerk = new THREE.ParticleSystem( new THREE.SphereGeometry(1,15,15), materialfajerwerku ); Po zapisaniu pliku i uruchomieniu go w przeglądarce gwiazdy dookoła małpy powinny pulsować. 12
13 Liczby losowe w JavaScript Emisję fajerwerku można opisać w bardzo prosty sposób. Wymagane będą do tego dwie nowe zmienne globalne prędkosc odpowiadająca za prędkość lotu fajerwerku i kierunekfajerwerku będąca jego kierunkiem ruchu: var kierunekfajerwerku, szybkosc=10; Następnie, aby tor ruchu każdego z fajerwerków był inny, należy zainicjalizować wektor kierunekfajerwerku trzema losowymi wartościami dzięki poleceniu Math.random(), które zwraca losową liczbę z przedziału (0-1): kierunekfajerwerku = new THREE.Vector3(-1+Math.random()*2, 0.8+Math.random()*0.2, 1+Math.random()*2) Zakres zmienności składowych wektora jest równy odpowiednio dla osi x i z: (-1,1), a dla osi y (0.81). Dzięki tak dobranym parametrom, fajerwerki będą zawsze leciały w kierunku górnej części skyboxa. Następnie należy uaktualnić funkcję animacjafajerwerku() do postaci: function animacjafajerwerku() { if (fajerwerk.position.y <500){ fajerwerk.position.x+=kierunekfajerwerku.x*szybkosc; fajerwerk.position.y+=kierunekfajerwerku.y*szybkosc; fajerwerk.position.z+=kierunekfajerwerku.z*szybkosc; else { skala+=10; fajerwerk.scale.set(skala, skala, skala); if (skala>maxskala) { resetfajerwerku(); Po zapisaniu pliku i uruchomieniu go w przeglądarce internetowej fajerwerk zostanie wystrzelony raz, a później będzie pulsował w górnej części skyboxa. Żeby stworzyć wyrzutnię fajerwerków, należy uaktualnić funkcję resetfajerwerku() do postaci: function resetfajerwerku(){ scena.remove(fajerwerk); fajerwerk = new THREE.ParticleSystem( new THREE.SphereGeometry(1,15,15), materialfajerwerku ); fajerwerk.position.set(0,0,0); scena.add(fajerwerk); skala=1; fajerwerk.scale.set(skala, skala, skala); kierunekfajerwerku = new THREE.Vector3(-1+Math.random()*2, 0.8+Math.random()*0.2, -1+Math.random()*2); 13
14 Najpierw ze sceny usuwany jest fajerwerk, żeby nie dopuścić do wycieku pamięci przy tworzeniu kolejnych fajerwerków, później na jego miejsce tworzony jest nowy i ustalana jest jego pozycja i skala początkowa, a następnie losowany jest nowy kierunek ruchu. Każdy z fajerwerków może wybuchać w trochę inny sposób. W tym celu można dodać małe składowe losowe do współrzędnych każdej cząsteczki. Do funkcji animacjafajerwerku(), w części odpowiadającej za zachowanie cząsteczek po wybuchu, należy dopisać pętlę iterującą po wszystkich cząsteczkach i dodającą bardzo małe losowe wartości do pozycji każdej z nich: for( var i=0; i<fajerwerk.geometry.vertices.length; i++) { fajerwerk.geometry.vertices[i].x +=(-0.01+Math.random()*0.02); fajerwerk.geometry.vertices[i].y +=(-0.01+Math.random()*0.02); fajerwerk.geometry.vertices[i].z +=(-0.01+Math.random()*0.02); fajerwerk.geometry.verticesneedupdate = true; Działanie powyższej pętli jest proste. W każdej klatce animacji do współrzędnych pozycji każdej cząsteczki dodawane są losowe wartości z przedziału ( ), powodując lekkie zaburzenia geometrii po wybuchu. Aby efekt tych zniekształceń był widoczny należy ustawić zmienną sygnalizującą konieczność uaktualnienia wierzchołków geometrii, co jest realizowane poleceniem: fajerwerk.geometry.verticesneedupdate = true; Parametry cząsteczek zależne od odległości Obecnie cząsteczki po wybuchu oddalają się od centrum wybuchu i po przekroczeniu maksymalnej wartości skali gwałtownie znikają. Dodana zostanie przezroczystość cząsteczek zależna od skali, a przez to od czasu i od odległości od miejsca wybuchu, a także w podobny sposób zmienny kolor. W funkcji animacjafajerwerku() należy dodać aktualizację przezroczystości i koloru na przykład: fajerwerk.material.color.r fajerwerk.material.color.g fajerwerk.material.color.b fajerwerk.material.opacity = = = = 1; 1-(skala/maxSkala); 1; 1-(skala/maxSkala); Dzięki temu w miarę oddalania się cząsteczek od miejsca wybuchu zwiększać się będzie przezroczystość i zmniejszać składowa koloru zielonego, co skutkować będzie fioletowym kolorem wybuchu. Ostatnim krokiem jest aktualizacja funkcji resetfajerwerku(), w której należy dopisać instrukcję odpowiadającą za ustawianie początkowej wartości przezroczystości: fajerwerk.material.opacity = 1; Po zapisaniu pliku i uruchomieniu go w przeglądarce powinien uruchomić się pokaz fioletowych fajerwerków. 14
15 Zadania 1. Znaleźć w Internecie i wczytać inną teksturę dla skyboxa. 2. Dodać sterowanie połyskiem materiału za pomocą suwaka. Rozdzielczość kamery powinna być zawsze potęgą liczby Wyeksportować dowolny model z Blendera i wczytać go z wykorzystaniem techniki prezentowanej w instrukcji. 4. Zmienić materiał modelu tak, aby zamodelować kolorowe szkło używane do produkcji bombek choinkowych materiał odbijający otoczenie, wrażliwy na światło i posiadający określony kolor (Rysunek 6). 5. Za pomocą systemów cząsteczkowych dodać kilka fajerwerków wystrzeliwanych jeden po drugim. Rysunek 6: Materiał z zadania 4. 15
Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.
Ćwiczenie 5 - Tworzenie animacji Podczas tworzenia prostej animacji wykorzystywać będziemy okno Timeline domyślnie ustawione na dole okna Blendera (Rys. 1). Proces tworzenia animacji polega na stworzeniu
Aleksandra Zając. Raport. Blender. Pokemon: Eevee
Aleksandra Zając Raport Blender Pokemon: Eevee 1. Modelowanie Przed rozpoczęciem modelowania do Blendera załadowałam obraz przedstawiający wybranego pokemona, aby podczas modelowania jak najlepiej odwzorować
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji
Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania
Sieciowe Technologie Mobilne. Laboratorium 2
Sieciowe Technologie Mobilne Laboratorium 2 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 2 Na dzisiejszym laboratorium skupimy się na implementacji
Animacje z zastosowaniem suwaka i przycisku
Animacje z zastosowaniem suwaka i przycisku Animacja Pole równoległoboku Naukę tworzenia animacji uruchamianych na przycisk zaczynamy od przygotowania stosunkowo prostej animacji, za pomocą, której można
Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.
1 Spis treści Ćwiczenie 1...3 Tworzenie nowego rysunku...3 Ustawienia Siatki i Skoku...4 Tworzenie rysunku płaskiego...5 Tworzenie modeli 3D...6 Zmiana Układu Współrzędnych...7 Tworzenie rysunku płaskiego...8
Systemy wirtualnej rzeczywistości. Komponenty i serwisy
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki
Wprowadzenie do WebGL i Three.js
Piotr Siekański Wydział Mechatroniki PW Wprowadzenie do WebGL i Three.js Wprowadzenie do JavaScript...2 Co to jest WebGL?...3 Konfiguracja systemu...3 Debugowanie w WebGL...3 Biblioteka Three.js...3 Rysujemy
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.
Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy
Funkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Przy dużej wielkości głębokości uzyskamy wrażenie nieskończoności: Dla głębokości zerowej uzyskamy tekst płaski:
Temat 6: Tekst w przestrzeni trójwymiarowej. Podstawy tworzenia animacji. Instrukcja warunkowa if. Program pozwala umieszczać na scenie nie tylko bryły, czy figury płaskie, ale też tekst. Polecenie tworzące
Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.
Ustawienia materiałów i tekstur w programie KD Max. 1. Dwa tryby własności materiału Materiał możemy ustawić w dwóch trybach: czysty kolor tekstura 2 2. Podstawowe parametry materiału 2.1 Większość właściwości
IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące
IRONCAD IRONCAD 2016 TriBall o Narzędzie pozycjonujące Spis treści 1. Narzędzie TriBall... 2 2. Aktywacja narzędzia TriBall... 2 3. Specyfika narzędzia TriBall... 4 3.1 Kula centralna... 4 3.2 Kule wewnętrzne...
Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30
Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego
Wprowadzenie do rysowania w 3D. Praca w środowisku 3D
Wprowadzenie do rysowania w 3D 13 Praca w środowisku 3D Pierwszym krokiem niezbędnym do rozpoczęcia pracy w środowisku 3D programu AutoCad 2010 jest wybór odpowiedniego obszaru roboczego. Można tego dokonać
Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38
Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego
Ćwiczenie 1 Galeria zdjęć
Galeria zdjęć Pobierz przykład (http://jsekulska.kis.p.lodz.pl/studia.htm). Krok 1 Ustawienie stołu montażowego Otwieramy nowy plik i nazywamy go (np. gallery.fla). Ustawiamy wielkość pola roboczego na
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły
BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły Po uruchomieniu programu Blender zawsze ukaże się nam oto taki widok: Jak
Misja#3. Robimy film animowany.
Po dzisiejszej lekcji będziesz: tworzyć programy animujące obiekty na ekranie komputera określać położenie i orientację obiektu w kartezjańskim układzie współrzędnych Zauważ że... Ludzkie oko charakteryzuje
Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23
Wykład 6 mgr inż. 1/23 jest to technika w grafice komputerowej, której celem jest zwiększenie szczegółowości renderowanych powierzchni za pomocą tekstur. jest to pewna funkcja (najczęściej w formie bitmapy)
GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18
Ćwiczenie nr 6 efekty i filtry Tak, jak każdy program graficzny GIMP posiada wbudowane narzędzia umożliwiające osiągnięcie różnego rodzaju efektów. Dostępne są one w menu edytowanego rysunku [filtry].
Badanie ruchu złożenia
Badanie ruchu złożenia W wersji Standard programu SolidWorks mamy do dyspozycji dwie aplikacje: Podstawowy ruch symulacja ruchu z użyciem grawitacji, sprężyn, napędów oraz kontaktu między komponentami.
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa
weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, 02-146 Warszawa www.adh.com.pl Spis treści 1. Wydajność aplikacji po stronie klienta... 3 2. Wybór przeglądarki
Grafika 3D program POV-Ray - 1 -
Temat 1: Ogólne informacje o programie POV-Ray. Interfejs programu. Ustawienie kamery i świateł. Podstawowe obiekty 3D, ich położenie, kolory i tekstura oraz przezroczystość. Skrót POV-Ray to rozwinięcie
Techniki wizualizacji. Ćwiczenie 10. System POV-ray tworzenie animacji
Doc. dr inż. Jacek Jarnicki Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej jacek.jarnicki@pwr.wroc.pl Techniki wizualizacji Ćwiczenie 10 System POV-ray tworzenie animacji Celem ćwiczenia
Pętle. Dodał Administrator niedziela, 14 marzec :27
Pętlami nazywamy konstrukcje języka, które pozwalają na wielokrotne wykonywanie powtarzających się instrukcji. Przykładowo, jeśli trzeba 10 razy wyświetlić na ekranie pewien napis, to można wykorzystać
Ćwiczenie 1 Automatyczna animacja ruchu
Automatyczna animacja ruchu Celem ćwiczenia jest poznanie procesu tworzenia automatycznej animacji ruchu, która jest podstawą większości projektów we Flashu. Ze względu na swoją wszechstronność omawiana
Przewodnik po soczewkach
Przewodnik po soczewkach 1. Wchodzimy w program Corel Draw 11 następnie klikamy Plik /Nowy => Nowy Rysunek. Następnie wchodzi w Okno/Okno dokowane /Teczka podręczna/ Przeglądaj/i wybieramy plik w którym
Mapowanie sześcienne otoczenia (cubic environment mapping)
Mapowanie sześcienne otoczenia (cubic environment mapping) Mapowanie środowiska jest techniką pozwalającą na odwzorowanie otoczenia na powierzchni przedmiotu przy użyciu specjalnie spreparowanej tekstury.
Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r
Gry Komputerowe Laboratorium 4 Teksturowanie Kolizje obiektów z otoczeniem mgr inż. Michał Chwesiuk 1/29 Klasa Stwórzmy najpierw klasę TextureManager, która będzie obsługiwała tekstury w projekcie. 2/29
Opis funkcji modułu Konwerter 3D
Opis funkcji modułu Konwerter 3D www.cadprojekt.com.pl Kliknij na tytuł rozdziału, aby przejść do wybranego zagadnienia MODUŁ KONWERTER 3D...3 Wygląd i funkcje okna modułu Konwerter 3D...3 Konwertowanie
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Smarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Rys 3.2. 17 Odtwarzacz filmu. Możemy także skorzystać z programów służących do odtwarzania filmów np. Windows Media Player.
Powoduje to odtworzenie filmu : Rys 3.2. 17 Odtwarzacz filmu Możemy także skorzystać z programów służących do odtwarzania filmów np. Windows Media Player. 3.3 Ruch kamery Tematem tego ćwiczenia będzie
Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?
Google Earth Co to jest Google Earth? Google Earth jest to program umożliwiający wyświetlanie na trójwymiarowym modelu kuli ziemskiej zdjęć lotniczych/satelitarnych, zdjęć zrobionych z poziomu powierzchni
Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61
Animacja Instrukcja wykonania animacji metodą klatek kluczowych Autor: Bartosz Kowalczyk Blender 2.61 Do wykonywania prostych animacji, np. ruchu, zmiany koloru, kształtu, itp. wykorzystuje się technikę
Studia Podyplomowe Grafika Komputerowa i Techniki Multimedialne, 2017, semestr II Modelowanie 3D - Podstawy druku 3D. Ćwiczenie nr 4.
Ćwiczenie nr 4 Metaobiekty 1 Materiały ćwiczeniowe Wszelkie materiały ćwiczeniowe: wykłady, instrukcje oraz ewentualne pliki ćwiczeniowe dla potrzeb realizacji materiału dydaktycznego z przedmiotu Modelowanie
2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:
SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,
SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Wykład 3 1 SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Przykład Bingo 2 Treść przykładu Jak wygląda karta do
przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,
Baltie Zadanie 1. Budowanie W trybie Budowanie wybuduj domek jak na rysunku. Przedmioty do wybudowania domku weź z banku 0. Zadanie 2. Czarowanie sterowanie i powtarzanie W trybie Czarowanie z pomocą czarodzieja
Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy stworzenie grafiki
Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE
Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE Tworzy światło punktowe emitujące światło we wszystkich kierunkach. Lista monitów Wyświetlane są następujące monity. Określ położenie źródłowe : Podaj wartości
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty
1. Co to jest funkcja? Funkcja jest oddzielnym blokiem kodu, który może być wielokrotnie wykonywany w danym programie, poprzez jej wielokrotne wywoływanie. Do funkcji przekazujemy przeważnie jakieś argumenty,
DesignCAD 3D Max 24.0 PL
DesignCAD 3D Max 24.0 PL Październik 2014 DesignCAD 3D Max 24.0 PL zawiera następujące ulepszenia i poprawki: Nowe funkcje: Tryb RedSDK jest teraz dostępny w widoku 3D i jest w pełni obsługiwany przez
Jak zrobić klasyczny button na stronę www? (tutorial) w programie GIMP
Jak zrobić klasyczny button na stronę www? (tutorial) w programie GIMP Niniejszy tutorial jest wyłączną własnością Doroty Ciesielskiej Zapraszam na moją stronę http://www.direktorek03.wm studio.pl oraz
Raytracer. Seminaria. Hotline. początkujący zaawansowani na miejscu
Seminaria początkujący zaawansowani na miejscu Hotline wsparcie techniczne +420 571 894 330 zdalne sterowanie przez Team Viewer email carat@technodat.cz Zespół Spis treści Spis treści... - 2 - Informacja...
Liczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.
Unity Unity Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.5 Unity Wymagania systemowe: Windows 7SP1, 8, 10 Mac
Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt
Dynamiczne wczytywanie tekstu z pliku.txt Wykonamy dwa zadania z wczytywaniem zewnętrznych plików tekstowych. W pierwszym zadaniu wczytamy jeden plik tekstowy. W drugim podejściu za pomocą przycisków będziemy
wersja 1.0 ośrodek komputerowy uj cm ul. mikołaja kopernika 7e, Kraków tel
S Y S T E M B A D A Ń A N K I E T O W Y C H wersja 1.0 uj cm, 31-034 Kraków tel. 12 422 99 63 Opis konfiguracji Tworzenie ankiety rozpoczynamy ikoną znajdującą się w prawym górnym rogu ekranu. Ilustracja
1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA 4 ŚRODKI DYDAKTYCZNE. Scenariusz lekcji. Scenariusz lekcji. 2.1 Wiadomości: 2.
Motyle Scenariusz lekcji Scenariusz lekcji 1 TEMAT LEKCJI: Motyle 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: opisać sposób tworzenia animacji; opisać sposób zmiany postaci żółwia; wyjaśnić pojęcie klatki;
Grafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 14 Blender, podstawy animacji Wstęp Zagadnienie tworzenia animacji 3D w Blenderze jest bardzo szerokie i wiąże się z wieloma grupami rozwiązao.
Sieciowe Technologie Mobilne. Laboratorium 4
Sieciowe Technologie Mobilne Laboratorium 4 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 4 Urozmaicone zostaną animacje potworów, aby odpowiadały
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy
Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy Temat: Przekształcanie fotografii cyfrowej w grafikę
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą
Wizualizacja płomienia
Politechnika Wrocławska Instytut Informatyki Automatyki i Robotyki Wizualizacja danych sensorycznych Wizualizacja płomienia Autor: Weronika Matlakiewicz Opiekun projektu: dr inż. Bogdan Kreczmer 4 czerwca
Spora część kodu programu jest dla nas nieprzydatna. Dokonaj zmian tak, aby kod miał postać:
Temat 8: Rodzaje kamery. Ustawienia kamery. Animacja ruchu kamery. Aby prześledzić różne możliwości zastosowania kamery zbudujemy najpierw jakąś ciekawą scenę. Ćwiczenie 053 Otwórz nowy plik. Z menu programu
- dodaj obiekt tekstowy: /** Maciej */ Stage { title : "First JavaFX App" scene: Scene { width: 300 height: 300 content: [ ] } }
1. Krótki opis technologii JavaFX jest technologią do tworzenia bogatych wizualnie aplikacji internetowych (RIA Rich Internet Application), przeznaczona nie tylko pod wiele systemów operacyjnych, ale też
Unity 3D - własny ekran startowy i menu gry
www.math.uni.lodz.pl/ radmat Cel ćwiczeń Celem bieżących ćwiczeń jest stworzenie własnego ekranu startowego oraz menu gry. Własny ekran startowy Tworzymy nowy, pusty obiekt GameObject Create Empty i nadajemy
Zastosowania Robotów Mobilnych
Zastosowania Robotów Mobilnych Temat: Zapoznanie ze środowiskiem Microsoft Robotics Developer Studio na przykładzie prostych problemów nawigacji. 1) Wstęp: Microsoft Robotics Developer Studio jest popularnym
Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki
Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki Ćwiczenie laboratoryjne 2 Temat: Modelowanie powierzchni swobodnych 3D przy użyciu programu Autodesk Inventor Spis treści 1.
Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
1. Opis okna podstawowego programu TPrezenter.
OPIS PROGRAMU TPREZENTER. Program TPrezenter przeznaczony jest do pełnej graficznej prezentacji danych bieżących lub archiwalnych dla systemów serii AL154. Umożliwia wygodną i dokładną analizę na monitorze
Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.
Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1
Dokąd on zmierza? Przemieszczenie i prędkość jako wektory
A: 1 OK Muszę to powtórzyć... Potrzebuję pomocy Dokąd on zmierza? Przemieszczenie i prędkość jako wektory Łódź żegluje po morzu... Płynie z szybkością 10 węzłów (węzeł to 1 mila morska na godzinę czyli
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
HELIOS pomoc społeczna
Instrukcja przygotowania pliku wsadowego do zasilenia SEPI przy pomocy dodatkowej aplikacji HELSepi 1. Instalacja aplikacji Pobieramy plik instalacyjny HelSEPIsetup.exe ze strony internetowej www.ops.strefa.pl
Plan wykładu. Akcelerator 3D Potok graficzny
Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D
Tytuły Wykonawcze. Opis systemu tworzenia dokumentacji TW-1
Tytuły Wykonawcze Opis systemu tworzenia dokumentacji TW-1 Program pozwala na tworzenie tytułów wykonawczych według Rozporządzenia Ministra Finansów z dnia 16 maja 2014 r. 1.Główne cechy systemu -ewidencja
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Ćwiczenie 14 Dmuchawce
Dmuchawce Celem ćwiczenia jest wykorzystanie właściwości programu Flash do generowania animacji o charakterze losowym. Prezentowany efekt można wykorzystać do wielu różnych celów np. spadające liście,
Unity 3D - podpowiedzi w grze. System cząstek
www.math.uni.lodz.pl/ radmat Cel ćwiczeń Celem bieżących ćwiczeń jest dodanie podpowiedzi, które będą się wyświetlały nad przedmiotami, a także systemu cząstek. Wyświetlanie podpowiedzi Dodamy teraz do
Język C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Chocofur szkolenie średniozaawansowane
Chocofur szkolenie średniozaawansowane Lech Sokołowski CHOCOFUR.COM Poniższe opracowanie stanowi esencję wiedzy przekazywanej na szkoleniu. Jest to zbiór notatek zawierający najważniejsze punkty omawianych
Załącznik techniczny przedmiotu zamówienia komponentu
Załącznik nr 1 mapowego dla portalu WWW Załącznik techniczny przedmiotu zamówienia komponentu 1.1 Komponent mapowy Zleceniodawcy pozostawia się wolną rękę w wyborze technologii w jakiej zostanie stworzony
TEMAT :Animacja Komputerowa. Projekt współfinansowany w ramach Europejskiego Funduszu Społecznego
TEMAT :Animacja Komputerowa Projekt współfinansowany w ramach Europejskiego Funduszu Społecznego Animacja komputerowa: Animacja komputerowa jest generalnie rzecz biorąc cyfrowym spadkobiercą sztuki animacji
Spis treści. 1: Wyszukiwanie elementu : Do linii modelu : Powiel arkusze : Długość kabla : Rozmieszczenie widoków...
Co nowego 2018 R2 Spis treści NOWOŚCI... 5 1: Wyszukiwanie elementu... 5 2: Do linii modelu... 6 3: Powiel arkusze... 7 4: Długość kabla... 8 5: Rzędne poziomów... 9 ULEPSZENIA... 10 1: Połączenie z Excel...
JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.
IŚ ćw.8 JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Skrypt JavaScript
1 Tworzenie brył obrotowych
1 Tworzenie brył obrotowych Do tworzenia brył obrotowych w programie Blender służą dwa narzędzia: Spin i SpinDup. Idea tworzenia brył obrotowych jest prosta i polega na narysowania połowy przekroju poprzecznego
WSTĘP DO GRAFIKI KOMPUTEROWEJ
WSTĘP DO GRAFIKI KOMPUTEROWEJ Miłosz Michalski Institute of Physics Nicolaus Copernicus University Październik 2015 1 / 15 Plan wykładu Światło, kolor, zmysł wzroku. Obraz: fotgrafia, grafika cyfrowa,
Programowanie obiektowe
Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć
0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do
0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi
Badanie zależności położenia cząstki od czasu w ruchu wzdłuż osi Ox
A: 1 OK Muszę to powtórzyć... Potrzebuję pomocy Badanie zależności położenia cząstki od czasu w ruchu wzdłuż osi Ox 1. Uruchom program Modellus. 2. Wpisz x do okna modelu. 3. Naciśnij przycisk Interpretuj
RYSUNEK TECHNICZNY I GEOMETRIA WYKREŚLNA INSTRUKCJA DOM Z DRABINĄ I KOMINEM W 2D
Politechnika Białostocka Wydział Budownictwa i Inżynierii Środowiska Zakład Informacji Przestrzennej Inżynieria Środowiska INSTRUKCJA KOMPUTEROWA z Rysunku technicznego i geometrii wykreślnej RYSUNEK TECHNICZNY
Animacje cz. 2. Rysujemy koło zębate
Animacje cz. 2 1. Do wykonania poniższej animacji będziemy potrzebować dodatkowego desenia. Znajduje się on w folderze z instrukcją, żeby program Gimp mógł z niego skorzystać musimy wskazać mu ścieżkę
Multimedia i interfejsy. Ćwiczenie 5 HTML5
Multimedia i interfejsy Ćwiczenie 5 HTML5 Celem ćwiczenia jest poznanie nowych elementów wprowadzonych w HTML 5, do których należą m.in. video oraz canvas. Poniższy opis przedstawia sposób użycia tych
Języki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
Podstawy technologii WWW
Podstawy technologii WWW Ćwiczenie 14 AJAX, czyli jak odświeżyć bez odświeżania, część trzecia Na dzisiejszych zajęciach będziemy kontynuować realizację serwisu do wymiany wiadomości z wykorzystaniem technologii
Tworzenie i modyfikacja modelu geologicznego
Tworzenie i modyfikacja modelu geologicznego Program: Stratygrafia 3D Plik powiązany: Demo_manual_39.gsg Poradnik Inżyniera Nr 39 Aktualizacja: 12/2018 Wprowadzenie Celem niniejszego Przewodnika Inżyniera
Animacje oraz ciekawe efekty dostępne w programie GIMP
Animacje oraz ciekawe efekty dostępne w programie GIMP Tworzenie Gifów Aby zobrazować różnice w tworzeniu plików z rozszerzeniem gif wykonamy na początek krótkie ćwiczenie. 1.Utwórz niebieską warstwę nad
Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
Funkcja Raytracer. Przed korzystaniem z funkcji Raytracer należy zmienić/dostosować jego ustawienia.
Funkcja Raytracer Spis treści: 1. Ustawienia nowych profili 2. Ustawienia podglądu perspektywy 3. Porady i triki w pracy z Rytracer 4. Uruchomienie Raytracer w planowaniu 5. Administrator wizualizacji
KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH
Wstęp Ten multimedialny program edukacyjny zawiera zadania konstrukcyjne pozwalające na samodzielne ćwiczenie i sprawdzenie wiadomości w zakresie konstrukcji podstawowych figur geometrycznych. Jest przeznaczony