Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D
|
|
- Renata Wasilewska
- 8 lat temu
- Przeglądów:
Transkrypt
1 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 tworzenia 3-wymiarowej grafiki czasu rzeczywistego, tworzenia buforów wierzchołków i indeksów, macierzy przekształceń i renderowania. 1. Bufory wierzchołków i indeksów oraz teksturowanie Celem niniejszej instrukcji jest stworzenie prostego terenu, po którym będzie mógł poruszać się czołg. Większość modeli 3D opisana jest za pomocą trójkątów. Trójkąty natomiast opisane są trzema wierzchołkami. Chcielibyśmy aby nasz teren był kwadratem o zadanej wielkości. Do zbudowania kwadratu potrzeba 2-ch trójkątów, a zatem 6 wierzchołków (rys. 3a). Łatwo zauważyć, że 2 wierzchołki z pierwszego trójkąta pokrywają się z 2-ma wierzchołkami drugiego trójkąta. Aby ograniczyć powtarzanie zbędnych danych stworzono indeksowanie. Każdy wierzchołek podawany jest tylko raz, a strukturę trójkątów opisujemy w buforze indeksów. Mechanizm ten ilustruje rys. 3b. Należy pamiętać, że domyślnie każdy trójkąt jest widoczny tylko z jednej strony. DirectX uznaje trójkąt za widoczny jeśli jego wierzchołki układają się zgodnie z ruchem wskazówek zegara (rys. 4), w przeciwnym razie trójkąt jest niewidoczny bufor indeksów = [1,2,4,2,3,4] widoczny niewidoczny Rys. 1 - a) kwadrat złożony z 6 wierzchołków, b) kwadrat złożony z 4 wierzchołków i bufor indeksów Rys. 2 - Widoczność trójkąta
2 Dodatkowo chcielibyśmy aby nasz teren pokryty był uprzednio dodaną teksturą trawy. Aby poprawnie teksturować obiekt 3D potrzeba dodatkowych danych zwanych współrzędnymi UV lub po prostu współrzędnymi tekstury. Górnemu lewemu rogowi tekstury przypisuje się współrzędne (0, 0), a dolnemu prawemu (1, 1). Następnie dodając do wierzchołków siatki odpowiednie współrzędne UV można opisać jak tekstura ma być nałożona na trójkąt (rys. 5). (0,0) (1,0) (0,0) (2,0) (0.3,0.3) (1,0.3) (0,0) (2,0) (0,1) (1,1) (0,2) (2,2) (0.3,1) (1,1) (1,0) (2,1) Rys. 3 - Tekstura nałożona na kwadrat przy różnych wartościach UV Potrzebny jest zatem bufor wierzchołków i indeksów. Deklarujemy dwie zmienne w klasie głównej gry: VertexBuffer terenwierzcholki; IndexBuffer terenindeksy; Stwórzmy też metodę, która zainicjuje oba bufory: protected void StworzTeren() { } Najpierw utworzymy wierzchołki. Posłuży nam do tego tablica typu VertexPositionTexture. Typ ten reprezentuje wierzchołek zawierający współrzędne pozycji i tekstury. Dodatkowe dwie zmienne typu float pomogą nam w prawidłowym zainicjowaniu wierzchołków. Pierwsza z nich określa wielkość terenu, natomiast druga określa stopień rozciągnięcia tekstury na płaszczyźnie terenu. VertexPositionTexture[] wierzcholki = new VertexPositionTexture[4]; float skala = 10.0f; float skalatekstury = 1.0f; Następnie wypełniamy tablicę wierzchołków odpowiednimi wartościami współrzędnych: 2
3 wierzcholki[0].position = new Vector3(-skala, 0.0f, -skala); wierzcholki[0].texturecoordinate.x = 0.0f; wierzcholki[0].texturecoordinate.y = 0.0f; wierzcholki[1].position = new Vector3(skala, 0.0f, -skala); wierzcholki[1].texturecoordinate.x = skalatekstury; wierzcholki[1].texturecoordinate.y = 0.0f; wierzcholki[2].position = new Vector3(-skala, 0.0f, skala); wierzcholki[2].texturecoordinate.x = 0.0f; wierzcholki[2].texturecoordinate.y = skalatekstury; wierzcholki[3].position = new Vector3(skala, 0.0f, skala); wierzcholki[3].texturecoordinate.x = skalatekstury; wierzcholki[3].texturecoordinate.y = skalatekstury; Wreszcie tworzymy i wypełniamy bufor wierzchołków: terenwierzcholki = new VertexBuffer(graphics.GraphicsDevice, typeof(vertexpositiontexture), 4, BufferUsage.WriteOnly); terenwierzcholki.setdata<vertexpositiontexture>(wierzcholki); W analogiczny sposób stworzymy bufor indeksów: short[] indeksy = new short[6]; indeksy[0] = 0; indeksy[1] = 1; indeksy[2] = 2; indeksy[3] = 1; indeksy[4] = 3; indeksy[5] = 2; terenindeksy = new IndexBuffer(graphics.GraphicsDevice, typeof(short), 6, BufferUsage.WriteOnly); terenindeksy.setdata<short>(indeksy); Na koniec pozostaje jedynie wywołanie napisanej właśnie metody w metodzie LoadContent klasy gry: StworzTeren(); 2. Macierze transformacji Przed przystąpieniem do renderingu musimy jeszcze zdefiniować macierze transformacji. Posłużą one do określenia gdzie znajdują się obiekty w scenie, jak są zorientowane, gdzie jest kamera, w którą stronę jest zwrócona oraz w jaki sposób obiekty 3D są rzutowane na 2- wymiarowy ekran. W zależności od pełnionej funkcji rozróżnia się trzy rodzaje macierzy: 3
4 macierz świata opisuje przesunięcie obiektu w przestrzeni, jego obrót oraz skalę macierz widoku reprezentuje obserwatora, w którym miejscu się znajduje oraz na co patrzy macierz projekcji opisuje w jaki sposób 3-wymiarowy obiekt jest rzutowany na płaszczyznę ekranu Ważną właściwością macierzy transformacji jest to, że można je łączyć wymnażając je ze sobą. Np. posiadając macierz translacji A i macierz obrotu B można utworzyć jedną macierz reprezentującą jednocześnie translację i obrót wykonując następujące działanie: = = Należy jednak pamiętać o zachowaniu odpowiedniej kolejności mnożenia. Działanie A*B da inny efekt niż B*A (rys. 6). przesunięcie obrót obrót przesunięcie Rys. 4 - Wynik zastosowania tych samych transformacji w różnej kolejności Macierze transformacji są bardzo istotnym elementem zagadnień związanych z grafiką trójwymiarową. Więcej informacji na temat macierzy transformacji można znaleźć w literaturze związanej z grafiką 3D. Deklarujemy zatem trzy macierze: Matrix projekcja; Matrix widok; Matrix swiat; Następnie przypisujemy im wartości korzystając z pomocniczych metod klasy Matrix. Metoda CreatePerspectiveFieldOfView pobiera jako parametr pole widzenia (w radianach), proporcje obrazu, przednią i tylną płaszczyznę (rys. 7). Pole widzenia oraz płaszczyzny 4
5 przednia i tylna określają obszar widzenia kamery. Wszystkie obiekty znajdujące się bliżej niż przednia płaszczyzna lub dalej niż tylna płaszczyzna są obcinane. CreateLookAt tworzy macierz widoku po podaniu położenia kamery, punktu na który jest zwrócona oraz wektora wskazującego górę. Chcemy aby teren znajdował się w środku sceny bez żadnych transformacji dlatego macierz świata ustawimy na macierz jedynkową. tylna płaszczyzna obserwator przednia płaszczyzna Rys. 5 - Przednia i tylna płaszczyzna projekcja = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(50), graphics.graphicsdevice.viewport.aspectratio, 0.1f, f); widok = Matrix.CreateLookAt(new Vector3(24.0f, 20.0f, 10.0f), new Vector3(0.0f, 0.0f, 0.0f), Vector3.Up); swiat = Matrix.Identity; 3. Rendering Ostatnim brakującym elementem potrzebnym do narysowania sceny jest shader. Shader y to małe programy odpowiedzialne za cieniowanie obiektów. Inaczej mówiąc shader y obliczają gotowy obraz na podstawie danych o wierzchołkach, oświetleniu, teksturach, itd. Rozwój sprzętu spowodował, że wykonywane na procesorze karty graficznej shader y służą już nie tylko cieniowaniu ale również rozmaitym efektom i obliczeniom nie związanym bezpośrednio z obliczaniem grafiki. W XNA klasą reprezentującą zbiór shader ów jest klasa Effect. My jednak skorzystamy z uproszczonej jej wersji BasicEffect, która zawiera wbudowane podstawowe mechanizmy renderowania. Deklarujemy zmienną typu BasicEffect: BasicEffect basiceffect; Następnie w LoadContent tworzymy nowy efekt i ustawiamy w nim macierze transformacji: basiceffect = new BasicEffect(graphics.GraphicsDevice, null); basiceffect.projection = projekcja; 5
6 basiceffect.view = widok; basiceffect.world = swiat; Wreszcie możemy przystąpić do rysowania sceny. Przechodzimy do metody Draw. Usuwamy kod rysujący obraz trawy, nie będziemy go już potrzebować. W podobny do rysowania 2- wymiarowych obrazów sposób rozpoczynamy i kończymy rysowanie metodami Begin oraz End ale na rzecz obiektu basiceffect. Określamy typ wierzchołków (VertexDeclaration) jakich zamierzamy używać w naszym przypadku będą to wierzchołki zawierające współrzędne 3D oraz współrzędne tekstury (VertexPositionTexture). Następnie ustawiamy na urządzeniu nasze bufory wierzchołków i indeksów. Każda siatka 3D może mieć przypisane różne materiały wymagające różnych shader ów. Dlatego efekt może zawierać różne techniki, a każda z technik może składać się z kilku przebiegów. W naszym przypadku wykorzystujemy tylko podstawowe mechanizmy, jedną technikę i jeden przebieg. Rozpoczynamy zatem rysowanie metodą Begin pierwszego przebiegu pierwszej techniki i rysujemy teren metodą DrawIndexedPrimitives. Po narysowaniu obiektu zamykamy przebieg metodą End. basiceffect.begin(); graphics.graphicsdevice.vertexdeclaration = new VertexDeclaration( graphics.graphicsdevice, VertexPositionTexture.VertexElements); graphics.graphicsdevice.vertices[0].setsource(terenwierzcholki, 0, VertexPositionTexture.SizeInBytes); graphics.graphicsdevice.indices = terenindeksy; basiceffect.techniques[0].passes[0].begin(); graphics.graphicsdevice.drawindexedprimitives(primitivetype.trianglelist, 0, 0, 4, 0, 2); basiceffect.techniques[0].passes[0].end(); basiceffect.end(); Po skompilowaniu powinniśmy otrzymać wynik jak na rys. 8. Ostatnią rzeczą jaką chcielibyśmy zrealizować jest nałożenie na teren tekstury trawy. Wracamy więc do metody LoadContent i określamy dwa dodatkowe parametry efektu: basiceffect.textureenabled = true; basiceffect.texture = trawa; Rys. 6 - Teren bez tekstury Rys. 8 - Teren bez tekstury 6
7 Teraz obraz powinien wyglądać jak na rys. 9. Tekstura wydaje się być zbyt rozciągnięta. Możemy to bardzo prosto naprawić zmieniając wartość zmiennej skalatekstury w metodzie StworzTeren. Jeżeli zmienimy ją na 10 uzyskamy efekt jak na rys. 10. Rys. 8 - Teren z teksturą dla skalatekstury = 1 Rys. 7 Teren z teksturą dla skalatekstury = 10 7
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
1. 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
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:
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
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
Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.
Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny
1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych
Instrukcja laboratoryjna 9 Grafika komputerowa 3D Temat: Manipulowanie przestrzenią Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Układ
Temat: 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
Wykł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
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
Transformacje obiektów 3D
Synteza i obróbka obrazu Transformacje obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Lokalny układ współrzędnych Tworząc model obiektu, zapisujemy
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
Programowanie telefonów z Windows Phone 7, cz. 3
Programowanie telefonów z Windows Phone 7, cz. 3 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój
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
Transformacje. dr Radosław Matusik. radmat
www.math.uni.lodz.pl/ radmat Cel wykładu Celem wykładu jest prezentacja m.in. przestrzeni modelu, świata, kamery oraz projekcji, a także omówienie sposobów oświetlania i cieniowania obiektów. Pierwsze
Grafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 12 Blender, teksturowanie UV Wstęp W poprzednim laboratorium poprawialiśmy strukturę otksturowanego domku. Dokonane naprawy spowodowały utratę rozłożenia
Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak
Modelowanie i wstęp do druku 3D Wykład 1 Robert Banasiak Od modelu 3D do wydruku 3D Typowa droga...czasem wyboista... Pomysł!! Modeler 3D Przygotowanie modelu do druku Konfiguracja Programu do drukowania
Krystalochemia białek 2016/2017
Zestaw zadań 4. Grupy punktowe. Składanie elementów symetrii. Translacyjne elementy symetrii grupy punktowe, składanie elementów symetrii, translacyjne elementy symetrii: osie śrubowe, płaszczyzny ślizgowe
Trójwymiarowa grafika komputerowa rzutowanie
Trójwymiarowa grafika komputerowa rzutowanie Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Rzutowanie w przestrzeni 3D etapy procesu rzutowania określenie rodzaju rzutu określenie
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
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ć
RENDERING 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
Laboratorium 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
Elementarne 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
GLKit. 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:
Grafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 6 Processing c.d. Wstęp Laboratorium 6 poszerza zagadnienie generowania i przetwarzania obrazów z wykorzystaniem języka Processing 2, dedykowanego
Karta 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
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
Ćwiczenia nr 4. TEMATYKA: Rzutowanie
TEMATYKA: Rzutowanie Ćwiczenia nr 4 DEFINICJE: Rzut na prostą: rzutem na prostą l (zwaną rzutnią) w kierunku rzutowania k (k l) nazywamy przekształcenie płaszczyzny przyporządkowujące: a) Punktom prostej
GRK 2. dr Wojciech Palubicki
GRK dr Wojciech Palubicki Macierz wektor produkt jako Transformacja T: R n R m T Ԧx = A Ԧx Przemieszczanie wierzchołków - Transformacje Skalowanie Rotacja Translacja -y -y Macierz rotacji M wobec punktu
Informatyka II. Laboratorium Aplikacja okienkowa
Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.
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ć
OpenGL przezroczystość
OpenGL przezroczystość W standardzie OpenGL efekty przezroczystości uzyskuje się poprzez zezwolenie na łączenie kolorów: Kolor piksela tworzy się na podstawie kolorów obiektu przesłanianego i przesłaniającego
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.
Politechnika Poznańska, Instytut Informatyki, SUM-TWO
Politechnika Poznańska, Instytut Informatyki, SUM-TWO 11 kwietnia 2015 Historia DirectX Gry pod DOS korzystały z własnych bibliotek graficznych. Pierwsze wersje Windows umożliwiały tworzenie grafiki tylko
Ć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
Laboratorium 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.
Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki
Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Mirosław Głowacki Obraz realistyczny Pojęcie obrazu realistycznego jest rozumiane w różny sposób Nie zawsze obraz realistyczny
Materiał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:
Architektura Procesorów Graficznych
Architektura Procesorów Graficznych Referat: Rendering 3D: potok 3D, możliwości wsparcia sprzętowego, możliwości przyspieszenia obliczeń. Grupa wyrównawcza Cezary Sosnowski 1. Renderowanie Renderowanie
Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym.
Praktyczne przykłady wykorzystania GeoGebry podczas lekcji na II etapie edukacyjnym. Po uruchomieniu Geogebry (wersja 5.0) Pasek narzędzi Cofnij/przywróć Problem 1: Sprawdź co się stanie, jeśli połączysz
Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.
Zadanie 1. Utworzyć klasę reprezentującą liczby wymierne. Obiekty klasy powinny przechowywać licznik i mianownik rozłożone na czynniki pierwsze. Klasa powinna mieć zdefiniowane operatory czterech podstawowych
3 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
Przekształcenia geometryczne w grafice komputerowej. Marek Badura
Przekształcenia geometryczne w grafice komputerowej Marek Badura PRZEKSZTAŁCENIA GEOMETRYCZNE W GRAFICE KOMPUTEROWEJ Przedstawimy podstawowe przekształcenia geometryczne na płaszczyźnie R 2 (przestrzeń
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,
Grafika komputerowa Tekstury
. Tekstury Tekstury są dwuwymiarowymi obrazkami nakładanymi na obiekty lub ich części, w celu poprawienia realizmu rysowanych brył oraz dodatkowego określenia cech ich powierzchni np. przez nałożenie obrazka
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
TRYGONOMETRIA FUNKCJE TRYGONOMETRYCZNE KĄTA SKIEROWANEGO
TRYGONOMETRIA Trygonometria to dział matematyki, którego przedmiotem badań są związki między bokami i kątami trójkątów oraz tzw. funkcje trygonometryczne. Trygonometria powstała i rozwinęła się głównie
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
GRAFIKA 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
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
Gry Komputerowe - laboratorium 2. Kamera FPP / TPP. mgr inż. Michał Chwesiuk 1/11. Szczecin, r
Gry Komputerowe - laboratorium 2 FPP / TPP mgr inż. Michał Chwesiuk 1/11 a model 2/11 Stwórz nową klasę Player a model Do stworzonej klasy Player w pliku player.h dodaj trzy pola (trzeba dodać #include
INSTRUKCJA UŻYTKOWANIA PROGRAMU MEB EDYTOR 1. Dane podstawowe Program MEB edytor oblicza zadania potencjalne Metodą Elementów Brzegowych oraz umożliwia ich pre- i post-processing. Rozwiązywane zadanie
Animowana grafika 3D Laboratorium 3
3DStudio MAX teksturowanie modelu budynku dla potrzeb gry 3D W ćwiczeniu tym zakładamy, że mamy już ukończony model naszego budynku. Składa się on z wielu elementów: ścian, okien, drzwi, dachu itp. W teorii
Rozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
Rozdział 1 Podstawowe koncepcje grafiki 3D
Rozdział 1 Podstawowe koncepcje grafiki 3D Wersja z 2014-03-20 Projektowanie gry musimy zacząć od przygotowania sobie środowiska pracy. Zakładam, że Czytelnik posiada już doświadczenie w programowaniu
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
Przekształ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
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.
SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y
SpriteKit SpriteKit Biblioteka do tworzenia gier wbudowana w SDK Wspiera grafikę 2D w oparciu o sprite y SpriteKit HelloWorld SpriteKit HelloWorld SpriteKit AppDelegate identyczny jak w innych szablonach
Mobilne Aplikacje Multimedialne
Mobilne Aplikacje Multimedialne Rozszerzona rzeczywistość (AR, Augmented Reality) w Systemie Android Cz.1 Krzysztof Bruniecki Podstawy Algebra liniowa, operacje na wektorach, macierzach, iloczyn skalarny
Grafika Komputerowa Materiały Laboratoryjne
Grafika Komputerowa Materiały Laboratoryjne Laboratorium 7b Teksturowanie Wstęp W poprzednim laboratorium poprawiliśmy kształt domku w trybie edycyjnym. Zmianom podlegał układ powierzchni obiektu ale nie
Ćwiczenie nr 5 i 6 Przygotowanie dokumentacji technicznej dla brył
Ćwiczenie nr 5 i 6 Przygotowanie dokumentacji technicznej dla brył Zadanie A Celem będzie wykonanie rysunku pokazanego NA KOŃCU zadania. Rysując proszę się posłużyć podanymi tam wymiarami. Pamiętajmy o
Przekształcenia geometryczne. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej
Przekształcenia geometryczne Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza w Krakowie Przekształcenia elementarne w przestrzeni D Punkty p w E na płaszczyźnie
Obiekt 2: Świątynia Zeusa
Obiekt 2: Świątynia Zeusa Rys 2-1. Wyobrażenie greckiej świątyni ku czci Zeusa Prezentowane w tym dokumencie zadanie polega na narysowaniu bryły, będącej wyobrażeniem greckiej świątyni ku czci Zeusa. Poniżej
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.
1 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ę
Programowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
Zatem 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,
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007
Symulacja samochodu z kamerą stereowizyjną Krzysztof Sykuła 15 czerwca 2007 1 1 Opis wykonanego projektu Symulacja samochodu z kamerą stereowizyjną była pretekstem do napisania Engine u 3D, wykorzystującego
Rozdział 4 Komponenty gry na przykładzie prostopadłościanu
Rozdział 4 Komponenty gry na przykładzie prostopadłościanu Wersja z 2014-03-21 Budowanie gry, nawet stosunkowo prostej, to spore wyzwanie dla programisty. Bardzo łatwo zgubić się w dużej ilości linii kodu
Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.
Spis treści: 1 Podstawy pracy z aplikacją... 2 1.1 Układ strony... 2 strona 1 z 7 1 Podstawy pracy z aplikacją InDesign jest następcą starzejącego się PageMakera. Pod wieloma względami jest do niego bardzo
Zad. 6: Sterowanie robotem mobilnym
Zad. 6: Sterowanie robotem mobilnym 1 Cel ćwiczenia Utrwalenie umiejętności modelowania kluczowych dla danego problemu pojęć. Tworzenie diagramu klas, czynności oraz przypadków użycia. Wykorzystanie dziedziczenia
4. Podstawowa konfiguracja
4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić
Wizualne 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
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki
> C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete
4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Ćwiczenie dodatkowe - Wybrane narzędzia modelowania Zadanie Przygotować model stołu z krzesłami jak na rysunku poniżej(rys. 1).
Ćwiczenie dodatkowe - Wybrane narzędzia modelowania Zadanie Przygotować model stołu z krzesłami jak na rysunku poniżej(rys. 1). Wymiary krzesła: wymiary przednich nóg: 1 x 1 x 6 wymiary tylnich nóg połączonych
Rys 3-1. Rysunek wałka
Obiekt 3: Wałek Rys 3-1. Rysunek wałka W tym dokumencie zostanie zaprezentowany schemat działania w celu przygotowania trójwymiarowego rysunku wałka. Poniżej prezentowane są sugestie dotyczące narysowania
GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych
GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok Synteza grafiki 3D Pod pojęciem syntezy grafiki rozumiemy
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
gdzie (4.20) (4.21) 4.3. Rzut równoległy
4.3. Rzut równoległy 75 gdzie (4.20) Punkt zbiegu, określony wzorami (4.19) (4.20), leży na prostej przechodzącej przez środek rzutowania i równoległej do wektora u. Zauważmy, że gdy wektor u jest równoległy
Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.
PYTHON Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program. Aby program napisany w danym języku mógł być wykonany, niezbędne
Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym
Zadanie 1. Ściana Zadanie W pliku walls.cpp znajduje się funkcja void draw_back_wall(). Należy uzupełnić ją, ustawiając odpowiednio parametry teksturowania tak, aby na ścianę, która w pierwotnej wersji
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)
Animowana grafika 3D. Opracowanie: J. Kęsik.
Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Rzutowanie Równoległe Perspektywiczne Rzutowanie równoległe Rzutowanie równoległe jest powszechnie używane w rysunku technicznym - umożliwienie
Programowanie 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
Plan wykładu. Wykład 3. Rzutowanie prostokątne, widoki, przekroje, kłady. Rzutowanie prostokątne - geneza. Rzutowanie prostokątne - geneza
Plan wykładu Wykład 3 Rzutowanie prostokątne, widoki, przekroje, kłady 1. Rzutowanie prostokątne - geneza 2. Dwa sposoby wzajemnego położenia rzutni, obiektu i obserwatora, metoda europejska i amerykańska
= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3
ZESTAW I 1. Rozwiązać równanie. Pierwiastki zaznaczyć w płaszczyźnie zespolonej. z 3 8(1 + i) 3 0, Sposób 1. Korzystamy ze wzoru a 3 b 3 (a b)(a 2 + ab + b 2 ), co daje: (z 2 2i)(z 2 + 2(1 + i)z + (1 +
Wprowadzenie 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
Projektowanie graficzne. Wykład 2. Open Office Draw
Projektowanie graficzne Wykład 2 Open Office Draw Opis programu OpenOffice Draw OpenOffice Draw umożliwia tworzenie prostych oraz złożonych rysunków. Posiada możliwość eksportowania rysunków do wielu różnych
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
Java. Wykład 9. Piotr Tronczyk
Java Wykład 9 Piotr Tronczyk Zegar analogowy Tarcza Cyferblat Wskazówki Timer 2 Zegar analogowy Tym razem postaramy się napisać program, który wyświetlał będzie zegar analogowy. Część odpowiedzialna za
OPROGRAMOWANIE UŻYTKOWE
R 3 OPROGRAMOWANIE UŻYTKOWE PROJEKTOWANIE Z WYKORZYSTANIEM PROGRAMU Solid Edge Cz. I Part 14 A 1,5 15 R 2,5 OO6 R 4,5 12,72 29 7 A 1,55 1,89 1,7 O33 SECTION A-A OPRACOWANIE: mgr inż. Marcin Bąkała Uruchom
Rachunek wektorowy - wprowadzenie. dr inż. Romuald Kędzierski
Rachunek wektorowy - wprowadzenie dr inż. Romuald Kędzierski Graficzne przedstawianie wielkości wektorowych Długość wektora jest miarą jego wartości Linia prosta wyznaczająca kierunek działania wektora
Autodesk 3D Studio MAX Teksturowanie modeli 3D
Autodesk 3D Studio MAX Teksturowanie modeli 3D dr inż. Andrzej Czajkowski Instyt Sterowania i Systemów Informatycznych Wydział Informatyki, Elektrotechniki i Automatyki 25 kwietnia 2017 1 / 20 Plan Wykładu
C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
GRAFIKA 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,