Mobilne aplikacje multimedialne. OpenGL
|
|
- Henryk Grabowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Mobilne aplikacje multimedialne OpenGL Marek Kulawiak Katedra Systemów Geoinformatycznych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej
2 Open Graphics Library API do tworzenia aplikacji wyświetlających grafikę 2D i 3D w czasie rzeczywistym z akceleracją sprzętową Możliwość programowania w: Ada, C, C++, C#, Common Lisp, Delphi, Fortran, Haskell, Perl, Python, Java,... Dostępność na systemach operacyjnych: Windows, Linux, OS X Pochodne standardu OpenGL: OpenGL ES (Android, ios) WebGL (przeglądarki internetowe)
3 Pierwsza połowa lat 90. wyliczanie grafiki na procesorze dostosowanie do różnego sprzętu na PC Źródło:
4 Początki OpenGL Rok 1992: specyfikacja OpenGL 1.0 Rok 1995: pierwsze karty graficzne dostosowane do wyświetlania grafiki 3D Rok 1996: wydanie przez Microsoft pierwszej wersji standardu Direct3D Rok 1997: OpenGL 1.1
5 Druga połowa lat 90. GLQuake rasteryzacja z użyciem karty graficznej wyższa rozdzielczość Źródło:
6 Druga połowa lat 90. Rok 1997: ostra krytyka standardu Direct3D Chris Hecker: An Open Letter to Microsoft: Do the Right Thing for the 3D Game Industry Rok 1999: GeForce pierwsza karta graficzna oferująca T&L (Transform & Lighting) znaczne odciążenie procesora dostępność T&L w OpenGL
7 Druga połowa lat 90. Quake III Arena (OpenGL) wykorzystanie silnika id Tech 3 w innych popularnych grach Źródła:
8 Struktura programu w OpenGL funkcja tworząca kontekst graficzny funkcja rysująca scenę funkcja skalująca obraz do nowych rozmiarów okna
9 GL_LINES gl.glbegin(gl2.gl_lines); gl.glcolor3f(1f, 1f, 1f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 0, 100, 0); gl.glvertex3f( 0, 100, 0); gl.glvertex3f(-100, -100, 0); gl.glend();
10 GL_LINE_STRIP gl.glbegin(gl2.gl_line_strip); gl.glcolor3f(1f, 1f, 1f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 0, 100, 0); gl.glvertex3f(-100, -100, 0); gl.glend();
11 GL_TRIANGLES gl.glbegin(gl2.gl_triangles); gl.glcolor3f(1f, 0.8f, 0f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 0, 100, 0); gl.glend();
12 GL_TRIANGLE_STRIP gl.glbegin(gl2.gl_triangle_strip); gl.glcolor3f(1f, 0.8f, 0f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, 100, 0); gl.glvertex3f(-100, 100, 0); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 100, 100, 0); gl.glend();
13 GL_QUADS gl.glbegin(gl2.gl_quads); gl.glcolor3f(1f, 0.8f, 0f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 100, 100, 0); gl.glvertex3f(-100, 100, 0); gl.glend();
14 GL_QUADS gl.glbegin(gl2.gl_quads); gl.glcolor3f(1f, 1f, 0f); gl.glvertex3f(-100, -100, 0); gl.glcolor3f(0f, 1f, 0f); gl.glvertex3f( 100, -100, 0); gl.glcolor3f(0f, 0.5f, 1f); gl.glvertex3f( 100, 100, 0); gl.glcolor3f(1f, 0f, 0f); gl.glvertex3f(-100, 100, 0); gl.glend();
15 Atrybuty wierzchołków obiektu glvertex glcolor gltexcoord glnormal...
16 Wektory normalne Normalne wyliczone dla każdej ściany. Normalne wyliczone dla każdego wierzchołka.
17 Wektory normalne (2) Źródło:
18 Zmiana atrybutów sceny gl.glpushattrib(gl2.gl_lighting); gl.gldisable(gl2.gl_lighting); gl.glbegin(gl.gl_quads); gl.glcolor3f(1f, 1f, 0f); gl.glcolor3f(0f, 1f, 0f); gl.glcolor3f(0f, 0.5f, 1f); gl.glcolor3f(1f, 0f, 0f); gl.glend(); gl.glpopattrib(); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 100, 100, 0); gl.glvertex3f(-100, 100, 0);
19 Zmiana atrybutów i transformacji gl.glpushmatrix(); gl.gltranslatef(-10f, 0f, -10f); gl.glpushattrib(gl2.gl_lighting); gl.gldisable(gl2.gl_lighting); gl.glbegin(gl.gl_quads); gl.glcolor3f(1f, 1f, 0f); gl.glcolor3f(0f, 1f, 0f); gl.glcolor3f(0f, 0.5f, 1f); gl.glcolor3f(1f, 0f, 0f); gl.glend(); gl.glpopattrib(); gl.glpopmatrix(); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 100, 100, 0); gl.glvertex3f(-100, 100, 0);
20 Macierze transformacji (1) gl.glmatrixmode(gl2.gl_modelview); gl.glloadidentity(); [ ] [ ] [] [] modelviewmatrix = x x 0100 y = y 0010 z z 0001 w w
21 Macierze transformacji (2) gl.gltranslatef(-10f, 0f, -10f); [ ][ ] [ ] [] [ ] 100 X Y translationmatrix = = 001 Z =
22 Macierze transformacji (3) gl.glscalef(2f, 2f, 2f); [ ][ ] [ ] [] [ ] X Y scalingmatrix = = 0 0 Z x 2x y = 2y 0020 z 2z 0001 w w
23 Listy rozkazów Listy rozkazów (ang. display lists) OpenGL, które są przekazywane do karty graficznej tylko raz i pozostają w jej pamięci. Do narysowania obiektu wystarczy wywołanie jednej funkcji: glcalllist(identyfikator_listy). Zaleta: szybsze działanie programu. Wada: listy nadają się tylko do obiektów o stałym kształcie.
24 Przykład stworzenia listy rozkazów int listid; // Stworzenie listy. listid = gl.glgenlists(1); gl.glnewlist(listid, GL2.GL_COMPILE); gl.glbegin(gl2.gl_triangles); gl.glcolor3f(1f, 0.8f, 0f); gl.glvertex3f(-100, -100, 0); gl.glvertex3f( 100, -100, 0); gl.glvertex3f( 0, 100, 0); gl.glend(); gl.glendlist(); // Narysowanie obiektu. gl.glcalllist(listid);
25 Vertex Buffer Objects Technika polegająca na przechowywaniu obiektów zawierających dane o wierzchołkach w pamięci GPU. Podobna prędkość jak przy użyciu list. Możliwość późniejszej modyfikacji zawartości VBO. Wada: trudniejsze w użyciu.
26 VBO: indeksy wierzchołków float[] vertexarray = {-100, -100, 0, 100, -100, 0, 100, 100, 0, -100, 100, 0}; [0] [1] [2] [3] float[] colorarray = {1f, 1f, 0f, 0f, 1f, 0f, 0f, 0.5f, 1f, 1f, 0f, 0f}; [0] [1] [2] [3] short[] indexarray = {0,1,2, 0,2,3};
27 VBO: przygotowanie danych FloatBuffer vertices, colors; ShortBuffer indices; int VBOVertices, VBOColors, VBOIndices; float[] vertexarray = {-100, -100, 0, 100, -100, 0, 100, 100, 0, -100, 100, 0}; vertices = BufferUtil.newFloatBuffer(vertexArray.length); vertices.put(vertexarray); vertices.flip(); float[] colorarray = {1f, 1f, 0f, 0f, 1f, 0f, 0f, 0.5f, 1f, 1f, 0f, 0f}; colors = BufferUtil.newFloatBuffer(colorArray.length); colors.put(colorarray); colors.flip(); short[] indexarray = {0, 1, 2, 0, 2, 3}; indices = BufferUtil.newShortBuffer(indexArray.length); indices.put(indexarray); indices.flip();
28 VBO: inicjalizacja buforów int[] temp = new int[3]; gl.glgenbuffers(3, temp, 0); VBOVertices = temp[0]; gl.glbindbuffer(gl2.gl_array_buffer, VBOVertices); gl.glbufferdata(gl2.gl_array_buffer, vertices.capacity() * BufferUtil.SIZEOF_FLOAT, vertices, GL2.GL_STATIC_DRAW); gl.glbindbuffer(gl2.gl_array_buffer, 0); VBOColors = temp[1]; gl.glbindbuffer(gl2.gl_array_buffer, VBOColors); gl.glbufferdata(gl2.gl_array_buffer, colors.capacity() * BufferUtil.SIZEOF_FLOAT, colors, GL2.GL_STATIC_DRAW); gl.glbindbuffer(gl2.gl_array_buffer, 0); VBOIndices = temp[2]; gl.glbindbuffer(gl2.gl_element_array_buffer, VBOIndices); gl.glbufferdata(gl2.gl_element_array_buffer, indices.capacity() * BufferUtil.SIZEOF_SHORT, indices, GL2.GL_STATIC_DRAW); gl.glbindbuffer(gl2.gl_element_array_buffer, 0);
29 VBO: rysowanie gl.glenableclientstate(gl2.gl_vertex_array); gl.glenableclientstate(gl2.gl_color_array); gl.glbindbuffer(gl2.gl_array_buffer, VBOColors); gl.glcolorpointer(3, GL2.GL_FLOAT, 0, 0); gl.glbindbuffer(gl2.gl_array_buffer, VBOVertices); gl.glvertexpointer(3, GL2.GL_FLOAT, 0, 0); gl.glbindbuffer(gl2.gl_element_array_buffer, VBOIndices); gl.gldrawelements(gl2.gl_triangles, indices.capacity(), GL2.GL_UNSIGNED_SHORT, 0); gl.gldisableclientstate(gl2.gl_color_array); gl.gldisableclientstate(gl2.gl_vertex_array);
30 VBO: modyfikacja danych // Inicjalizacja buforów. gl.glbindbuffer(gl2.gl_array_buffer, VBOVertices); gl.glbufferdata(gl2.gl_array_buffer, vertices.capacity() * BufferUtil.SIZEOF_FLOAT, vertices, GL2.GL_STREAM_DRAW); gl.glbindbuffer(gl2.gl_array_buffer, 0); // Rysowanie. gl.glbindbuffer(gl2.gl_array_buffer, VBOVertices); gl.glvertexpointer(3, GL2.GL_FLOAT, 0, 0); FloatBuffer verticesbuffer = gl.glmapbuffer(gl2.gl_array_buffer, GL2.GL_WRITE_ONLY).asFloatBuffer(); verticesbuffer.position(9); verticesbuffer.put(-50.f); verticesbuffer.put(50.f); gl.glunmapbuffer(gl2.gl_array_buffer);
31 VBO: modyfikacja danych (2) glbufferdata() GL_STATIC_DRAW GL_DYNAMIC_DRAW GL_STREAM_DRAW GL_STATIC_READ GL_DYNAMIC_READ GL_STREAM_READ GL_STATIC_COPY GL_DYNAMIC_COPY GL_STREAM_COPY glmapbuffer() GL_WRITE_ONLY GL_READ_ONLY GL_READ_WRITE
32 Początki shaderów Rok 2000: GeForce 3 - pierwsza karta graficzna z obsługą shaderów możliwość programowania shaderów w DirectX 8, ale nie w OpenGL 1.2 Rok 2004: wprowadzenie GLSL w OpenGL 2.0 spoźniona obsługa shaderów w OpenGL
33 OpenGL Shading Language GLSL jest językiem programowania wysokiego poziomu służącego do tworzenia tzw. shaderów, czyli programów wykonywanych na specjalizowanych procesorach karty graficznej. Użycie shaderów powoduje nadpisanie domyślnego potoku renderowania bardziej elastycznym rozwiązaniem, zezwalającym m.in. na dokładniejsze wyliczanie oświetlenia.
34 Wyliczanie oświetlenia Dla wierzchołków (per-vertex lighting) Dla pikseli (per-pixel lighting) Źródło:
35 Struktura shaderów Najczęściej wykorzystywane rodzaje shaderów: są dwa vertex shader: wykonywany dla każdego wierzchołka fragment/pixel shader: wykonywany dla każdego fragmentu zrasteryzowanego obrazu fragmenty odpowiadają pikselom obrazu, ale część z nich jest usuwana
36 Typy proste w GLSL Skalary Wektory bool bvec2, bvec3, bvec4 uint uvec2, uvec3, uvec4 int ivec2, ivec3, ivec4 float vec2, vec3, vec4 double dvec2, dvec3, dvec4
37 Wektory Możliwe metody dostępu do składowych: Jak do elementów tablicy [] Za pomocą masek: xyzw, rgba, stpq Przykład: różne sposoby pobrania wartości drugiej składowej: float tmp = vcolor[1]; float tmp = vcolor.g; float tmp = vcolor.y; float tmp = vcolor.t;
38 Wektory (2) Sposoby tworzenia wektorów: vec4 rgbavector = vec4(0.3, 0.6, 0.9, 1.0); vec3 rgbvector = rgbavector.rgb; vec3 bgrvector = rgbvector.bgr; vec4 anothervector = vec4(bgrvector, 0.5); vec2 yetanothervector = anothervector.zz; yetanothervector[0] = 1.0 yetanothervector[0]; Pytanie do publiczności: Jaka jest zawartość wektora yetanothervector?
39 Najprostszy możliwy przykład Zastosowanie poniższej pary shaderów spowoduje pokolorowanie obiektu jednolitym, czerwonym kolorem: // Vertex Shader void main(void) { // Wyznaczenie położenia wierzchołka. gl_position = ftransform(); } // Fragment Shader void main(void) { // Przypisanie koloru fragmentowi obrazu. gl_fragcolor = vec4(1.0,0.0,0.0, 1.0); }
40 Komunikacja z shaderami W OpenGL istnieje mechanizm umożliwiający komunikację z shaderami za pomocą specjalnych rodzajów zmiennych: uniform: zmienne globalne przekazywane z programu głównego do shaderów varying: zmienne tworzone w vertex shaderze i następnie odczytywane we fragment shaderze w zinterpolowanej postaci attribute: wartości dotyczące konkretnych wierzchołków (położenie, kolor, normalne, itp.)
41 Nieco trudniejszy przykład Uwzględnienie koloru wierzchołków i przekazanie wartości kanału alpha (przezroczystości): // Vertex Shader varying vec4 vcolor; void main(void) { // Wyznaczenie położenia wierzchołka. gl_position = ftransform(); // Zapisanie koloru wierzchołka do zmiennej vcolor. vcolor = gl_color; } // Fragment Shader uniform float alpha; varying vec4 vcolor; void main(void) { // Przypisanie aktualnemu fragmentowi obrazu // automatycznie zinterpolowanego koloru wierzchołka. gl_fragcolor = vec4(vcolor.rgb, alpha); }
42 Macierze transformacji Zmienne predefiniowane w GLSL: uniform mat4 gl_modelviewmatrix; macierz widoku modelu uniform mat4 gl_projectionmatrix; macierz projekcji uniform mat4 gl_modelviewprojectionmatrix; iloczyn macierzy widoku modelu i projekcji
43 Macierze transformacji (2) Różne sposoby wyznaczenia pozycji wierzchołka w vertex shaderze: void main() { // Przemnożenie pozycji wierzchołka przez macierz projekcji oraz // macierz widoku modelu. gl_position = gl_projectionmatrix * gl_modelviewmatrix * gl_vertex; // Przemnożenie położenia wierzchołka przez wcześniej wyliczoną // macierz będącą wynikiem iloczynu macierzy projekcji // i macierzy widoku modelu. gl_position = gl_modelviewprojectionmatrix * gl_vertex; // Wykorzystanie gotowej funkcji transformującej pozycję wierzchołka // (brak możliwości dokonania dodatkowych przekształceń). gl_position = ftransform(); }
44 Stan obecny OpenGL Sukces DirectX na systemach Windows John Carmack: Direct3D is a rather better API today OpenGL still works fine and we wouldn t get any huge benefits by making the switch Komercyjne wykorzystanie OpenGL: Blizzard: porty gier na OS X Valve: porty gier na Linuxa
45 OpenGL for Embedded Systems Uprosczona wersja OpenGL dostosowana do urządzeń mobilnych 2003: specyfikacja OpenGL ES 1.0 ES oparte na OpenGL : specyfikacja OpenGL ES 2.0 ES 2.0 oparty na OpenGL 2.0 Dostępność na systemach operacyjnych: Android, ios, BlackBerry, Symbian Możliwość programowania w: Java, Objective-C, C, C++
46 Różnice pomiędzy OpenGL a OpenGL ES 1.0 brak glbegin i glend (konieczność korzystania z tablic wierzchołków i VBO) brak wsparcia dla Quadów (trzeba operować na trójkątach) brak display lists i wiele innych braków...
47 Różnice pomiędzy OpenGL ES 1.1 a ES 2.0 Rezygnacja ze stałego potoku renderowania (konieczność stosowania shaderów nawet w najprostszych aplikacjach). Mniej uproszczeń związanych z transformacją widoku (w tym glpush i glpop, trzeba samemu wyliczać macierze transformacji i przekazywać je do shaderów.
48 Porównanie OpenGL z OpenGL ES 2.0 Zmiana jednego z atrybutów sceny i wyczyszczenie jej tła: // OpenGL (JOGL) // Włączenie trybu testowania głębokości. gl.glenable(gl2.gl_depth_test); // Wyczyszczenie sceny. gl.glclearcolor(0.0f, 0.0f, 0.0f, 0.0f); gl.glclear(gl2.gl_color_buffer_bit GL2.GL_DEPTH_BUFFER_BIT); // OpenGL ES (Android) // Włączenie trybu testowania głębokości. GLES20.glEnable(GLES20.GL_DEPTH_TEST); // Wyczyszczenie sceny. GLES20.glClearColor(0f, 0f, 0f, 0f);
49 Porównanie OpenGL z OpenGL ES 2.0 Transformacje macierzy: // OpenGL (JOGL) // Wybór macierzy widoku modelu. gl.glmatrixmode(gl2.gl_modelview); // Przypisanie aktualnej macierzy wartości macierzy jednostowej. gl.glloadidentity(); // Dokonanie transformacji. gl.gltranslatef(x, y, z); // OpenGL ES (Android) // Przypisanie macierzy widoku modelu wartości macierzy jednostkowej. Matrix.setIdentityM(mModelMatrix, 0); // Dokonanie transformacji. Matrix.translateM(mModelMatrix, x, y, z);
50 Zmienne predefiniowane W OpenGL istnieje wiele predefiniowanych zmiennych dostępnych w shaderach: attribute vec4 gl_color; attribute vec3 gl_normal; attribute vec4 gl_vertex; attribute vec4 gl_multitexcoord0; uniform mat4 gl_modelviewprojectionmatrix; W OpenGL ES 2.0 wszystkie zmienne wykorzystywane w shaderach muszą być odpowiednio zadeklarowane...
51 Przekazywanie zmiennych do shaderów // Vertex Shader uniform mat4 umvpmatrix; // odpowiednik gl_modelviewprojectionmatrix attribute vec4 aposition; // odpowiednik gl_vertex void main() { gl_position = umvpmatrix * aposition; } // Rysowanie obiektu int mpositionhandle = GLES20.glGetAttribLocation(mProgram, "aposition"); GLES20.glEnableVertexAttribArray(mPositionHandle); GLES20.glVertexAttribPointer(mPositionHandle, 3, GLES20.GL_FLOAT, false, 0, vertexbuffer); int mmvphandle = GLES20.glGetUniformLocation(mProgram, "umvpmatrix"); GLES20.glUniformMatrix4fv(mMVPHandle, 1, false, mvpmatrix, 0); GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, vertexcount); GLES20.glDisableVertexAttribArray(mPositionHandle);
52 Web Graphics Library (WebGL) API oparte na OpenGL ES w wersji 2.0 renderowanie w obiekcie Canvas dostępnym w standardzie HTML5 działa na wielu różnych platformach (również mobilnych) oferuje sprzętową akcelerację nie wymaga żadnych wtyczek do przeglądarek (w przeciwieństwie do VRML i X3D)
53 Dostępność WebGL Na komputerach stacjonarnych: Chrome, Firefox, Opera, Safari, Internet Explorer Na urządzeniach mobilnych: Chrome, Firefox for Mobile, Opera Mobile (Android), Internet Explorer, Blackberry Playbook,...
54 Przykład Stworzenie kontekstu WebGL: var canvas = document.getelementbyid("nazwa_elementu_canvas"); var gl; try { gl = canvas.getcontext("webgl"); gl.viewportwidth = canvas.width; gl.viewportheight = canvas.height; } catch (e) { } if (!gl) { alert("błąd inicjalizacji WebGL."); }
55 Przykład (2) VBO (z użyciem biblioteki glmatrix): var trianglevertexpositionbuffer = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, trianglevertexpositionbuffer); var vertices = [ 0.0, 1.0, 0.0, 1.0,-1.0, 0.0, 1.0,-1.0, 0.0 ]; gl.bufferdata(gl.array_buffer, new Float32Array(vertices), gl.static_draw); trianglevertexpositionbuffer.itemsize = 3; trianglevertexpositionbuffer.numitems = 3; var trianglevertexcolorbuffer = gl.createbuffer(); gl.bindbuffer(gl.array_buffer, trianglevertexcolorbuffer); var colors = [ 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0 ]; gl.bufferdata(gl.array_buffer, new Float32Array(colors), gl.static_draw); trianglevertexcolorbuffer.itemsize = 4; trianglevertexcolorbuffer.numitems = 3;
56 Przykład (3) Rysowanie (z użyciem biblioteki glmatrix): var mvmatrix = mat4.create(); var pmatrix = mat4.create(); gl.viewport(0, 0, gl.viewportwidth, gl.viewportheight); gl.clear(gl.color_buffer_bit gl.depth_buffer_bit); mat4.perspective(45, gl.viewportwidth / gl.viewportheight, 0.1, 100.0, pmatrix); mat4.identity(mvmatrix); mat4.translate(mvmatrix, [-1.5, 0.0, -7.0]); gl.bindbuffer(gl.array_buffer, trianglevertexpositionbuffer); gl.vertexattribpointer(shaderprogram.vertexpositionattribute, trianglevertexpositionbuffer.itemsize, gl.float, false, 0, 0); gl.bindbuffer(gl.array_buffer, trianglevertexcolorbuffer); gl.vertexattribpointer(shaderprogram.vertexcolorattribute, trianglevertexcolorbuffer.itemsize, gl.float, false, 0, 0); setmatrixuniforms(); gl.drawarrays(gl.triangles, 0, trianglevertexpositionbuffer.numitems);
57 Silniki 3D oparte na WebGL J3D Three.js SpiderGL Babylon.js
58 Dziękuję za uwagę
Grafika trójwymiarowa
Strona 1 Grafika 3D w systemie Android Wprowadzenie do OpenGL ES Podstawy rysowania Rzutowanie i kamera Klasa GLSurfaceView Algorytm rysowania Tekstury Strona 2 Grafika 3D w systemie Android W komputerach,
Bardziej szczegółowoProgramowanie Procesorów Graficznych
Programowanie Procesorów Graficznych Wykład 1 9.10.2012 Prehistoria Zadaniem karty graficznej było sterowanie sygnałem do monitora tak aby wyświetlić obraz zgodnie z zawartościa pamięci. Programiści pracowali
Bardziej szczegółowoWprowadzenie do QT OpenGL
Wprowadzenie do QT mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/21 - Open Graphics Library Open Graphics Library API pozwalające na wykorzystanie akceleracji sprzętowej do renderowania
Bardziej szczegółowo1 Temat: Vertex Shader
Instrukcja Architektura procesorów graficznych 1 Temat: Vertex Shader Przygotował: mgr inż. Tomasz Michno 1 Wstęp 1.1 Czym jest shader Shader jest programem (zazwyczaj krótkim), wykonywanym przez kartę
Bardziej szczegółowoBartłomiej Filipek www.ii.uj.edu.pl/~filipek
Bartłomiej Filipek www.ii.uj.edu.pl/~filipek Nasz Cel Prehistoria krótki wstęp Nowa era! Vertex Shaders Fragment Shaders Podstawy GLSL Obsługa GLSL z API OpenGL Dodajmy parę efektów! Podsumowanie Dodatkowe
Bardziej szczegółowoWprowadzenie do WebGL
Wprowadzenie do WebGL Monika Falarz, Grzegorz Jaśko, Patryk Kiepas 9 listopad 2012 Streszczenie Dokument prezentuje podstawy i wprowadza w proces tworzenia grafiki przestrzennej przy użyciu biblioteki
Bardziej szczegółowoZaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL
Zaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 7 października 2014 1 /
Bardziej szczegółowoGLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Bardziej szczegółowoMapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie
Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie Korekcja perspektywy http://en.wikipedia.org/wiki/file:perspective_correct_texture_mapping.jpg GL_TEXTURE_MIN_FILTER Zmniejszanie
Bardziej szczegółowoShadery. Artur Staszczyk Bartłomiej Filipek
Shadery Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Potok graficzny Vertex shader Fragment shader GLSL Przykłady Inne shadery? Vertex shader
Bardziej szczegółowo3 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 3 1/5 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Rysowanie prymitywów 3 Przygotował: mgr inż. Maciej Lasota 1) Rysowanie prymitywów Podstawową rodziną funkcji wykorzystywanych
Bardziej szczegółowoRealizacja prostej gry polegającej na symulacji jazdy samochodem
Realizacja prostej gry polegającej na symulacji jazdy samochodem zadanie Należy zaprogramować symulator jazdy samochodem Sterowany kursorami odpowiadającymi odpowiednio za skręty w lewo i w prawo oraz
Bardziej szczegółowoJanusz Ganczarski. OpenGL Pierwszy program
Janusz Ganczarski OpenGL Pierwszy program Spis treści Spis treści..................................... 1 1. Pierwszy program.............................. 1 1.1. Rysowanie sceny 3D...........................
Bardziej szczegółowoWprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa
Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL Dorota Smorawa Pierwszy program Pierwszy program będzie składał się z trzech etapów: Funkcji rysującej scenę 3D, Inicjacji okna renderingu,
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL
GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,
Bardziej szczegółowoGRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.
GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok PROGRAMOWANIE GRAFIKI KOMPUTEROWEJ CZASU RZECZYWISTEGO Grafika
Bardziej szczegółowoKarta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER
Karta przedmiotu Podstawy programowania procesorów graficznych realizowanego w ramach projektu PO WER 2017-2019 Wydział Inżynierii Elektrycznej i Komputerowej Kierunek studiów: Informatyka Profil: Ogólnoakademicki
Bardziej szczegółowoWprowadzenie. Artur Staszczyk Bartłomiej Filipek
Wprowadzenie Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Podstawy grafiki 3D GPU Co to jest OpenGL Potok Graficzny Inicjalizacja Rendering
Bardziej szczegółowoPlan 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
Bardziej szczegółowoWprowadzenie do grafiki maszynowej. Wprowadzenie do historii OpenGL
Wprowadzenie do grafiki maszynowej. Wprowadzenie do historii OpenGL Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 1 / 29 Wprowadzenie do historii
Bardziej szczegółowoANDROID. OpenGL ES 1.0. Tomasz Dzieniak
ANDROID OpenGL ES 1.0 Tomasz Dzieniak Wymagania JRE & JDK 5.0 + IDE (Eclipse 3.3.1 + / Netbeans 7.0.0 +) Android SDK Starter Package Android SDK Components Pierwszy program Project name: OpenGL Build Target:
Bardziej szczegółowografika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie
grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie Krzysztof Czech, 2 rok IZ Grzegorz Duszyński, 2 rok IZ Daniel Engel, 2 rok IZ Łukasz Olech, 2 rok IZ Radek Wilczak, 2 rok EKA Nadpisywanie
Bardziej szczegółowoZatem standardowe rysowanie prymitywów wygląda następująco:
Instrukcja laboratoryjna 10 Grafika komputerowa 3D Temat: Prymitywy Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Prymitywy proste figury geometryczne,
Bardziej szczegółowoGRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu
Synteza dźwięku i obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
Bardziej szczegółowoMateriały. Dorota Smorawa
Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:
Bardziej szczegółowoElementarne obiekty geometryczne, bufory. Dorota Smorawa
Elementarne obiekty geometryczne, bufory Dorota Smorawa Elementarne obiekty Tworząc scenę 3D, od najprostszej, po najbardziej skomplikowaną, używamy obiektów złożonych, przede wszystkim podstawowych, elementarnych
Bardziej szczegółowoGRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu
Synteza i obróbka obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złożonych obliczeń, szczególnie jeżeli chodzi o generowanie płynnej
Bardziej szczegółowoKarty graficzne możemy podzielić na:
KARTY GRAFICZNE Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest odbiór i przetwarzanie otrzymywanych od komputera
Bardziej szczegółowoTemat: Transformacje 3D
Instrukcja laboratoryjna 11 Grafika komputerowa 3D Temat: Transformacje 3D Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Bardzo często programując
Bardziej szczegółowoOpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23
OpenGL : mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/23 Folder z plikami zewnętrznymi (resources) Po odpaleniu przykładowego projektu, nie uruchomi się on poprawnie. Powodem
Bardziej szczegółowoSystemy graficzne. dr inż. Mariusz Szwoch
Systemy graficzne dr inż. Mariusz Szwoch Systemy Graficzne Sem. 2 studiów magisterskich Przedmiot specjalności ISI i uzupełniający Wymiar: wykład 15 h (7 2h + 1h zaliczenie) laboratorium 15 h (5 3h) Prowadzący
Bardziej szczegółowoBiblioteka OpenGL: Wprowadzenie
Biblioteka OpenGL: Wprowadzenie Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie OpenGL - Koncepcja i architektura Aplikacja odwołuje się poprzez funkcje API
Bardziej szczegółowoPrzyspieszanie sprzętowe
Synteza dźwięku i obrazu GRAFIKA KOMPUTEROWA Rozwiązania sprzętowe i programowe Przyspieszanie sprzętowe Generowanie obrazu 3D wymaga złoŝonych obliczeń, szczególnie jeŝeli chodzi o generowanie płynnej
Bardziej szczegółowoGry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,
Gry Komputerowe Laboratorium 1 Zajęcia organizacyjne mgr inż. Michał Chwesiuk 1/22 projektowych Zajęcia projektowe składają się zajęć (plus jedno zajęcie godzinne). Zajęcia polegają na programowania grafiki
Bardziej szczegółowoGrafika 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
Bardziej szczegółowoRENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski
RENDERING W CZASIE RZECZYWISTYM Michał Radziszewski Plan wykładu Programy geometrii wprowadzenie Miejsce w potoku graficznym Wejścia i wyjścia programów geometrii Wierzchołki, prymitywy, ich nowe rodzaje
Bardziej szczegółowoLaboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny
Laboratorium grafiki komputerowej i animacji Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Przygotowanie do ćwiczenia: 1. Zapoznać się ze zdefiniowanymi w OpenGL modelami światła i właściwości materiałów.
Bardziej szczegółowoGry 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
Bardziej szczegółowoWykład 4. Rendering (1) Informacje podstawowe
Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie
Bardziej szczegółowoPotok graficzny i shadery. Hubert Rutkowski
Potok graficzny i shadery Hubert Rutkowski 1. Coś o mnie Zakład Technologii Gier Uniwerytetu Jagiellońskiego 2. Potok graficzny jak w OpenGL Cry Engine 3 (zródło: CryTek) Vertex specification
Bardziej szczegółowoOpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)
OpenGL - Open Graphics Library Programowanie grafiki komputerowej Rados$aw Mantiuk Wydzia$ Informatyki Zachodniopomorski Uniwersytet Technologiczny! OpenGL: architektura systemu do programowania grafiki
Bardziej szczegółowoWizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD
Wizualne systemy programowania Wykład 11 Grafika 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Grafika GDI+ GDI+ - Graphics Device Interface jeden z trzech podstawowych komponentów
Bardziej szczegółowoSystemy 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
Bardziej szczegółowoWykład 5. Rendering (2) Geometria
Wykład 5. Rendering (2) Geometria 1. Z ogólnego, niezależnego od implementacji punktu widzenia, dane stanowiące opis geometrii modelu zorganizowane są w skończoną sekwencję (lub grupę sekwencji), którego
Bardziej szczegółowoImplementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek
Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja
Bardziej szczegółowoGRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie
GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46
Bardziej szczegółowoInformatyka 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
Bardziej szczegółowo6 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy
Bardziej szczegółowoProgramowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska
Programowanie gier 3D w HTML5 Andrzej P.Urbański Politechnika Poznańska Moje marzenie Od dawna jest znany pakiet Open GL napisany w C++ i bardzo ułatwiający tworzenie gier 3D Zaproponowałem kiedyś jako
Bardziej szczegółowoCo to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.
Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl OpenGL (Open Graphics Library) jest niskopoziomowa biblioteka graficzna (API - programowy
Bardziej szczegółowoOpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Bardziej szczegółowoSystemy wirtualnej rzeczywistości. Podstawy grafiki 3D
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Podstawy grafiki 3D Wstęp: W drugiej części przedstawione zostaną podstawowe mechanizmy
Bardziej szczegółowoIdź do. Spis treści Przykładowy rozdział Skorowidz. Katalog książek. Katalog online Zamów drukowany katalog. Twój koszyk.
Idź do Spis treści Przykładowy rozdział Skorowidz Katalog książek Katalog online Zamów drukowany katalog Twój koszyk Dodaj do koszyka Cennik i informacje Zamów informacje o nowościach Zamów cennik Czytelnia
Bardziej szczegółowoWprowadzenie do grafiki komputerowej. W. Alda
Wprowadzenie do grafiki komputerowej W. Alda Grafika komputerowa w pigułce Zacznijmy od tego co widać na ekranie Grafika rastrowa 2D Spektrum fal elektromagnetycznych Promieniowanie gamma ~ 10-12 m Fale
Bardziej szczegółowoOświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.
Oświetlenie w OpenGL Oprogramowanie i wykorzystanie stacji roboczych Wykład 8 Dr inż. Tomasz Olas olas@icis.pcz.pl W OpenGL źródło światła w scenie składa się z trzech składowych oświetlenia: otoczenia,
Bardziej szczegółowoDYNAMICZNE PRZYDZIELANIE PAMIECI
DYNAMICZNE PRZYDZIELANIE PAMIECI Pamięć komputera, dostępna dla programu, dzieli się na cztery obszary: kod programu, dane statyczne ( np. stałe i zmienne globalne programu), dane automatyczne zmienne
Bardziej szczegółowoOpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska
OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoBartosz Bazyluk OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery)
OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery) Programowanie Gier Komputerowych, Informatyka S, III Rok PLAN WYKŁADU Transformacje geometryczne Pożegnanie
Bardziej szczegółowoJę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++...
Bardziej szczegółowoGrafika 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
Bardziej szczegółowoSposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
Bardziej szczegółowoOpenGL Światło (cieniowanie)
OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);
Bardziej szczegółowoPodstawy Processingu. Diana Domańska. Uniwersytet Śląski
Podstawy Processingu Diana Domańska Uniwersytet Śląski Processing jest językiem programowania opartym na języku Java. Jest on nastawiony na aplikacje związane z grafiką, animacją. Projekt został zainicjowany
Bardziej szczegółowo8 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 8 1/6 Grafika Komputerowa Instrukcja laboratoryjna Temat: Listy wyświetlania i tablice wierzchołków 8 Przygotował: mgr inż. Maciej Lasota 1) Listy wyświetlania Listy wyświetlania (ang.
Bardziej szczegółowoGrafika komputerowa i wizualizacja. dr Wojciech Pałubicki
Grafika komputerowa i wizualizacja dr Wojciech Pałubicki Grafika komputerowa Obrazy wygenerowane za pomocy komputera Na tych zajęciach skupiamy się na obrazach wygenerowanych ze scen 3D do interaktywnych
Bardziej szczegółowoInformacje i porady dotyczące pisania shaderów.
Informacje i porady dotyczące pisania shaderów. 1. Informacje ogólne Będziemy się zajmować shaderami w wersji 2.0, które są obsługiwane przez karty graficzne z procesorami ATI Radeon serii 9000 (premiera
Bardziej szczegółowoGrafika Komputerowa, Informatyka, I Rok
SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Wstęp do programowania grafiki 3D z użyciem OpenGL. Transformacje geometryczne. Grafika Komputerowa, Informatyka, I Rok Synteza grafiki 3D
Bardziej szczegółowoProgramowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe
Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Czym są tekstury? Tekstury są tablicowymi strukturami danych o wymiarze od 1 do 3, których elementami są tzw. teksele.
Bardziej szczegółowoWyświetlanie publikacji w formacie DjVu. Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby:
Wyświetlanie publikacji w formacie DjVu Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby: 1. Za pomocą wbudowanego apletu DjVu (na komputerze wymagana jest Java).
Bardziej szczegółowoKompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main
Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem
Bardziej szczegółowoLaboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.
Laboratorium 1 Część I Podstawy biblioteki graficznej OpenGL. I. Konfiguracja środowiska 1. Ściągamy bibliotekę freeglut i rozpakujemy do głównego folderu dysku systemowego np. C:\freeglut 2. Uruchamiamy
Bardziej szczegółowoSystemy Geoinformatyczne
Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Systemów Geoinformatycznych Profil dyplomowania: Systemy Geoinformatyczne Specjalność: Technologie geoinformatyczne i mobilne
Bardziej szczegółowoProgramowanie aplikacji na urządzenia mobilne
Informatyka I Programowanie aplikacji na urządzenia mobilne dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 JME - Java Platform Micro Edition JME platforma Java przeznaczona
Bardziej szczegółowoWprowadzenie do grafiki maszynowej. Wprowadzenie do wprowadzenia
Wprowadzenie do grafiki maszynowej. Wprowadzenie do wprowadzenia Aleksander Denisiuk Uniwersytet Warmińsko-Mazurski Olsztyn, ul. Słoneczna 54 denisjuk@matman.uwm.edu.pl 1 / 17 Wprowadzenie do wprowadzenia
Bardziej szczegółowoOpis efektów kształcenia dla modułu zajęć
Nazwa modułu: Grafika komputerowa Rok akademicki: 2015/2016 Kod: ITE-1-514-s Punkty ECTS: 5 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Teleinformatyka Specjalność: - Poziom studiów:
Bardziej szczegółowoTemat: Wprowadzenie do OpenGL i GLUT
Instrukcja laboratoryjna 8 Grafika komputerowa 3D Temat: Wprowadzenie do OpenGL i GLUT Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny OpenGL
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoOprogramowanie i wykorzystanie stacji roboczych. Wykład 5
Wykład 5 p. 1/? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 5 p. 2/? Co
Bardziej szczegółowoktóra metoda jest najlepsza
która metoda jest najlepsza dr inż. Marek Żabka Instytut Matematyki Wydział Matematyki Stosowanej Politechnika Śląska 20 września 2012r Nowa metoda tworzenia grafiki na stronie internetowej: element,,canvas
Bardziej szczegółowoStrona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Bardziej szczegółowoGrafika 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)
Bardziej szczegółowoProgramowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1
Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1 Wprowadzenie Procesory graficzne GPU (Graphics Processing Units) stosowane są w kartach graficznych do przetwarzania grafiki komputerowej
Bardziej szczegółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU GRAFICZNE MODELOWANIE
Bardziej szczegółowoCloud Customers Relationships Wymagania wersja systemu: 4.1.10
Cloud Customers Relationships Wymagania wersja systemu: 4.1.10 Marzec, 2012 2012 EMK Wszystkie prawa zastrzeżone. Ten dokument zawiera informacje, które są wyłączną własnością firmy EMK. Adresat dokumentu
Bardziej szczegółowoProceduralne podejście do generowania tekstur
Proceduralne podejście do generowania tekstur Paweł Sabat Praca zamieszczona na http://noni.hswro.org Wersja z obrazkami na końcu Praca inżynierska Promotor: dr Przemysław Kobylański Wydział Podstawowych
Bardziej szczegółowoDowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje!
Dowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje! Jak sprawnie tworzyć podstawowe obiekty, oświetlać je i cieniować? Jak napisać własne programy, korzystając
Bardziej szczegółowoTworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski
Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji
Bardziej szczegółowoGrafika komputerowa i wizualizacja
Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet
Bardziej szczegółowoSmarty 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
Bardziej szczegółowoGRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D
GRY KOMPUTEROWE 3D 1. Napisać grę komputerową 3D o dowolnej tematyce oraz dowolnego rodzaju z wykorzystaniem OpenGL (bez dodatkowych framework'ów). Mile widziane dodatkowe efekty graficzne oraz dźwiękowe.
Bardziej szczegółowoPOLITYKA PLIKÓW "COOKIES"
POLITYKA PLIKÓW "COOKIES" Wyrażanie zgody na instalację przez witrynę plików cookies podczas każdej wizyty z serwisie mogłoby być uciążliwe. W myśl nowelizacji ustawy Prawo Telekomunikacyjne internauta
Bardziej szczegółowo1. Prymitywy graficzne
1. Prymitywy graficzne Prymitywy graficzne są elementarnymi obiektami jakie potrafi bezpośrednio rysować, określony system graficzny (DirectX, OpenGL itp.) są to: punkty, listy linii, serie linii, listy
Bardziej szczegółowoProceduralne podejście do generowania tekstur
Proceduralne podejście do generowania tekstur Paweł Sabat Praca zamieszczona na http://noni.hswro.org Wersja bez obrazków na końcu Praca inżynierska Promotor: dr Przemysław Kobylański Wydział Podstawowych
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoPrzekształcenia geometryczne. Dorota Smorawa
Przekształcenia geometryczne Dorota Smorawa Przekształcenia geometryczne Na poprzednich laboratoriach już dowiedzieliśmy się, na czym polegają podstawowe przekształcenia geometryczne. Trzy podstawowe przekształcenia
Bardziej szczegółowoGrafika Komputerowa. Wprowadzenie
Grafika Komputerowa. Wprowadzenie Aleksander Denisiuk Polsko-Japońska Akademia Technik Komputerowych Wydział Informatyki w Gdańsku ul. Brzegi 55 80-045 Gdańsk Ò Ù Ô º ÙºÔÐ 1 / 17 Wprowadzenie Najnowsza
Bardziej szczegółowoUlotka. Zmiany w wersji Data produkcji wersji: 26 marca Wersja
Zmiany w wersji Data produkcji wersji: 26 marca 2018 Wersja Spis treści wymagania... 3 Nowe API Paczkomatów InPost... 5 Liquid Sync tylko z SSL... 5 Zmiana adresu serwisu wymiany danych... 5 Zmiana adresu
Bardziej szczegółowoPROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI DirectX
Mgr inż. Witold BUŻANTOWICZ Dr inż. Jacek WARCHULSKI Dr inż. Marcin WARCHULSKI Wojskowa Akademia Techniczna PROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI
Bardziej szczegółowoGRK 3. Dr Wojciech Palubicki
GRK 3 Dr Wojciech Palubicki Potok graficzny Potok graficzny World Space View Space Orthographic view Window space Canonincal view Potok graficzny World Space View Space Orthographic view Canonincal view
Bardziej szczegółowoUlotka. Zmiany w wersji
Ulotka Zmiany w wersji Data produkcji wersji: 12 stycznia 2017 Spis treści 1 Instalacja systemu... 3 1.1 Współpraca z przeglądarkami... 3 1.2 Współpraca z urządzeniami mobilnymi... 3 2 Ogólne... 4 2.1
Bardziej szczegółowo