Wprowadzenie do grafiki maszynowej. Wprowadzenie do historii OpenGL

Podobne dokumenty
Zaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL

Wprowadzenie do grafiki maszynowej. Wprowadzenie do wprowadzenia

Elementy do grafiki komputerowej. Wprowadzenie

Grafika Komputerowa. Wprowadzenie

GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu

Przyspieszanie sprzętowe

OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu

Grafika komputerowa. Grafika komputerowa. Grafika komputerowa

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Systemy graficzne. dr inż. Mariusz Szwoch

Podręcznik użytkownika PCI-x Karta przechwytująca 4xHDMI

Analiza moż liwości i porównanie nowych ję zyków do programowania grafiki

PORÓWNANIE WYDAJNOŚCI JĘZYKÓW CIENIOWANIA CG I HLSL

Karty graficzne możemy podzielić na:

Programowanie procesorów graficznych GPGPU

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Gry Komputerowe - laboratorium 0

Mobilne aplikacje multimedialne. OpenGL

Karty Graczne i Sprz towe Wsparcie Dla Graki 3D

Karty graficzne: budowa, zasada działania, standardy, parametry, dodatkowe funkcje

Projektowanie aplikacji graficznych. dr inż. Jarosław Zubrzycki

Architektura Komputerów

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

Przetwarzanie obrazów w czasie rzeczywistym za pomocą GPU

Grafika Komputerowa, Informatyka, I Rok

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

Biblioteka OpenGL: Wprowadzenie

i3: internet - infrastruktury - innowacje

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Wykład 5. Rendering (2) Geometria

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

dr inż. Jacek Dąbrowski, KSG

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

System 32-Bit 1: Microsoft Windows 7 Home Premium 2;, Professional, Ultimate, Enterprise Microsoft Windows 8/8.1, Pro, Enterprise 2;

Wykład 4. Rendering (1) Informacje podstawowe

Plan wykładu. Akcelerator 3D Potok graficzny

Projektowanie gier komputerowych. dr inż. Mariusz Szwoch

DirectX 10, przełom w grafice komputerowej?

Wprowadzenie do QT OpenGL

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

1 Temat: Vertex Shader

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

Grafika komputerowa i wizualizacja

CZYM JEST KARTA GRAFICZNA.

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

Bartłomiej Filipek

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Graficzny edytor cieniowania

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Karty graficzne. Dla DSI II

Architektura Systemów Komputerowych Rozwój akceleratorów grafiki 3D po 2001r.

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Przegląd metod renderingu czasu rzeczywistego dla fotorealistycznych wizualizacji architektonicznych

Wprowadzenie. Karty graficzne możemy podzielić na:

GUI - projektowanie interfejsów

PROJEKTOWANIE SYSTEMÓW KOMPUTEROWYCH

Vulkan API. Adam Sawicki Reg KNTG Polygon

Mobilne akceleratory grafiki

Surveillance Client. Program kliencki CMS z IP Search/Finder Toolem. Silas Mariusz MERX Nawojowska 88B, Nowy Sącz

Bartosz Bazyluk OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery)

Monitoring i benchmarking Sprzętu pod Linuksem

Przegląd architektur kart. Sławomir Król

Elementy składowe karty graficznej

Zdjęcia i opis stanowisk laboratoryjnych wykorzystywanych w ramach projektu

Przechwytywanie obrazu przy wykorzystaniu funkcji systemu Windows 10.

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

2 099,00 PLN OPIS PRZEDMIOTU AMIGO CORE I7 8X3,7GHZ 8GB 1TB USB3.0 WIN amigopc.pl CENA: CZAS WYSYŁKI: 24H

Opis efektów kształcenia dla modułu zajęć

Wyświetlanie terenu. Clipmapy geometrii

Programowanie warstwy wizualnej gry

PROGRAMOWANIE GRAFIKI 2D W ŚRODOWISKU EMBARCADERO RAD STUDIO XE4 Z WYKORZYSTANIEM BIBLIOTEKI DirectX

Dane Techniczne TH ALPLAST ADS-S25

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

Potok graficzny i shadery. Hubert Rutkowski

Problemy programowania gier. mgr Mateusz Rynk

USB 2.0 DVD MAKER INSTRUKCJA OBSŁUGI. Nr produktu Strona 1 z 6

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

Karta graficzna. Karta graficzna przyjmuje. rozszerzeń montowanej w magistrali wejścia/wyjścia na płycie głównej. Opcjonalnie układ graficzny

Temat: Wprowadzenie do OpenGL i GLUT

Dane Techniczne TH ALPLAST ADS-S25

komputery dla firm Katalog komputerów przenośnych Oferta specjalnie dla biznesu

Zaawansowane i efektywne systemy cząsteczkowe w grach komputerowych.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

SPECYFIKACJA TECHNICZNA (minimalne parametry techniczne)

/wpisać: model, symbol, producent urządzenia/

Dowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje!

WYKORZYSTANIE SILNIKA GRAFICZNEGO 3D OGRE W ŚRODOWISKU VISUAL STUDIO NET 2003

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

CARAT Zalecenia systemu

Przegląd architektury PlayStation 3

PlayStation3. Michał Zarychta

Instrukcja instalacji oprogramowania pixel-fox

Transkrypt:

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 OpenGL Najnowsza wersja tego dokumentu dostępna jest pod adresem http://wmii.uwm.edu.pl/~denisjuk/uwm 2 / 29

Poczatek OpenGL 1981: Silicon Graphics Koniec lat 1980: IRIS GL (Integrated Raster Imaging System Graphical Library) proprietarna 1992: OpenGL (Open Graphics Library) otwarta 3 / 29

Elastyczność Brak jekiegokolwiek kodu, sama specyfikacja każdy producent (sprętu jak i oprogramowania) może implemetować na swojej platformie Rozszerzenia (NV_,AGL_) brak standardowego mechanizmu rozszerzeń szególny problem na, gdzie nagłówki OpenGL sa nadal w wersji 1.1 4 / 29

Otwartość 1992: ARB (OpenGL Architecture Review Board) testy zgodności implementacji Wiodacy standard grafiki w czasie rzeczywistym jedyny wieloplatformowy 5 / 29

OpenGL a 1993: NT: rywal Uniksowi w sieci brak biblioteki graficznej decyzja zaimplementować OpenGL 1994: NT 3.5, implemntacja OpenGL prowizoryczna brak optymalizacji i przyśpieszenia sprzętowego Ostrzeżenie KB121282: OpenGL Screen Savers May Degrade Server Performance 6 / 29

DirectX Microsoft: własne 3W API dla gier pod WinG (translacja poleceń do GDI) 1995: Microsoft nabywa RenderMorphics Reality Lab 1996: DirectX DirectDraw DirectInput DirectPlay DirectSound Direct3D Direct3D: bardzo niewygona implementacja OpenGL 1.1 w 95 oraz NT 4.0 7 / 29

Wojna API Microsoft: OpenGL do grafiki profesjonalnej (CAD). Do programowania gier lepiej nadaje się DirectX 1996: John Carmack (id Software) port Quake na OpenGL dla, porównanie OpenGL a Direct3D 1997: Alex St. John odpowiedź w obronie Direct3D 8 / 29

Wojna API, cd Microsoft: OpenGL jest profesjonala biblioteka i nie będzie wspierana przez zwykłe karty graficzne SGI: Odpowiedź: porównanie OpenGL a Direct3D pod katem inżynierskim, nie marketologowym Direct3D w wersji 5 został porównywalnym z OpenGL 9 / 29

Rozgromienie sterowników Sterowniki implementuj ace OpenGL na NT zostały oparte o MCD (Mini-Client Driver) Microsoft nie pozwoliła na licencjonowanie MCD na 95 SGI: Installable Client Driver (ICD) Producenci sprzętu: nowe sterowniki Producenci gier: gry pod OpenGL 10 / 29

Ewolucja kart Koniec lat 1990: opengl standardem 3W grafiki CAD, Quake 2, Unreal, Half-Life Pierwsze dedykowane 3W karty graficzne ATI 3D Rage, S3 ViRGE Voodoo Graphics (3Dfx Interactive) Glide API NVIDIA GeForce 256 GPU (Graphics Processing Unit) T&L (Transform & Lighting) Poczatek 2000: NVIDIA GeForce 2, ATI Radeon 7000 OpenGL, Direct3D 11 / 29

Zmiana paradygmatu Na poczatku lat 2000 wydajność GPU wzrasta wykładniczo CPU nie jest potrzebny do renderowania 3W grafiki w czasie rzeczywistym CPU nawet jest wazkim gardłem w procesie renderowania potrzebne sa nowe metody, żeby obejść CPU 12 / 29

Obiekt tablicy wierzchołków Immediate mode: program przekazuje ciag poleceń do GPU Nowa metoda: obiekt bufora tworzony i przechowywany w pamięci GPU OpenGL: VAO (Vertex Array Object), VBO (Vertex Buffer Object) Direct3D: Vertex Buffer 13 / 29

Shadery 2000: Microsoft, Direct3D 8.0 vertex shaders pixel shaders Asembler GPU 2003: Direct3D 9.0 High-Level Shader Language (HLSL) 14 / 29

Stagnacja OpenGL Brak wsparcia shaderów Dopiero w 2004: OpenGL 2.0, OpenGL Shading Language (GLSL) 2004 2006: dominacja Direct3D 9.0, zaledwie kilka gier na OpenGL 2005: Xbox 360 ze wsparciem Direct3D 9.0 żadnych wiadomości od ARB 15 / 29

Stagnacja OpenGL 2006: OpenGL 2.1 Direct3D 10.0 (razem z Vista) Zmiana kierunku rozwoju sprzętu: eliminacja immediate mode, ustalonych funkcji co raz bardziej programowalne GPU ARB, SGI: brak odpowiedzi 16 / 29

Nowy OpenGL 2006, SIGGRAPH: zarzadzać rozwojem OpenGL będzie Khronos Group konsorcjum producentów (sprzętu i oprogramowania) rozwój otwartych standardów OpenGL COLLADA 17 / 29

Longs Peak, Mt. Evans Miały zostać opublikowane w 2007: latem oraz w październiku dociagn ać do Direct3D 10.0 wyeliminować immediate mode działać tylko na buforach i shaderach Technical Sub-Groups Longs Peak kompatybilna z ówczesnym sprzętem kompatybilna wstecz ze starym OpenGL Mt. Evans złamie kompatybilność wstecz będzie podstawa dla przyszłości 30 października 2007: trzeba poczekać 18 / 29

OpenGL 3.0 Lipec 2007 Nie było to Longs Peak został immediate mode nie został właczony w specyfikację nowy model obiektowy nie było planów, co właczyć w przyszłe wersje trochę nowych możliwości deprecation model wszystkie metody, zwi azane z immediate mode zostały zaznaczone jako przestarzałe pełna kompatybilność ze starymi metodami 19 / 29

Ciag dalszy Liczne protesty społeczności Programiści zaczęli porzucać OpenGL na rzecz Direct3D Czyżby wojna API została przegrana? 20 / 29

Ciag dalszy Okazało się, że nie jest tak źle :-) OpenGL 3.0 miał cechy, których nie było w Direct3D 10.0: dostęp do nowych funkcji w XP Marzec 2009: OpenGL 3.1 eliminacja immediate mode Czerwiec 2009: OpenGL 3.2 Geometry Shaders dorównanie z Direct3D 10.0 21 / 29

Nowy OpenGL. Kontekst Context obiekt pośredniczy pomiędzy programem a urzadzeniem OpenGL. Przy tworzeniu kontekstu: główny numer wersji drugorzędny numer wersji opcjonalne parametry Każda wersja OpenGL (powyżej 3.0) ma część funkcji deprecated, które moga zostać usunięte w następnych wersjach Core Profile flag Compatibility Profile flag Forward Compatible flag Debug flag 22 / 29

OpenGL 4.0 11 marca 2010 OpenGL 4.0 współczene GPU Direct3D 11 Teselacja 64-bitowa dokładność obliczeń OpenGL 3.3 kompatybilna ze starym sprzętem jak najwięcej możliwości opengl 4.0 W przykładach będzie używany opengl nowszy niż 3.3, Core profile w szególności, żadnych glglbegin,glend, glvertex3f,glcolor3f wszystkie przykłady pójda na 3.3 23 / 29

OpenGL 4.1 4.5 26 czerwca 2010 OpenGL 4.1 nowa wersja GLSL zupełna zgodność z OpenGL ES 8 sierpnia 2011 OpenGL 4.2 6 sierpnia 2012 OpenGL 4.3 sierpień 2013 OpenGL 4.4 sierpień 2015 OpenGL 4.5 24 / 29

OpenGL Przykład 25 / 29

OpenGL Przykład studencki 26 / 29

OpenGL Wieloplatformowość, Linux, MacOS, Linux, MacOS iphone, Android OpenGL ES WebGL 27 / 29

Wymagania sprzętowe. OpenGL 4 NVIDIA GPU GeForce GTX 400 AMD/ATI GPU Radeon HD 5000 najnowsze sterowniki prawie każda karta wyprodukowana po roku 2006 28 / 29

Biblioteki wspomagajace FreeGLUT GLEW 29 / 29