Računarska grafika

14
Računarska Računarska grafika grafika predavanja predavanja v.as.mr. Samir Lemeš v.as.mr. Samir Lemeš [email protected] [email protected]

description

Računarska grafika. predavanja v.as.mr. Samir Lemeš [email protected]. 18. API. API Jezici za sjenčenje OpenGL Microsoft API. API. Application Programming Interface Skup potprograma koje aplikativni softver koristi za upravljanjem procedura od strane operativnog sistema - PowerPoint PPT Presentation

Transcript of Računarska grafika

RačunarskaRačunarskagrafikagrafika

predavanjapredavanjav.as.mr. Samir Lemešv.as.mr. Samir Lemeš[email protected]@mf.unze.ba

18. API18. API

APIAPIJezici za sjenčenjeJezici za sjenčenjeOpenGLOpenGLMicrosoft APIMicrosoft API

APIAPI

Application Programming InterfaceApplication Programming InterfaceSkup potprograma koje aplikativni softver Skup potprograma koje aplikativni softver

koristi za upravljanjem procedura od koristi za upravljanjem procedura od strane operativnog sistemastrane operativnog sistema

Posrednik između softvera za obradu slike Posrednik između softvera za obradu slike i operativnog sistema / hardverai operativnog sistema / hardvera

Aplikacija API OS driver hardware

APIAPI

Programski jezici nemaju izvorno naredbe Programski jezici nemaju izvorno naredbe za rad s grafikomza rad s grafikom

Definišu se biblioteke potprogramaDefinišu se biblioteke potprogramaKako bi se osigurala portabilnost, kreatori Kako bi se osigurala portabilnost, kreatori

biblioteka se moraju pridržavati standarda biblioteka se moraju pridržavati standarda (specifikacije API-ja)(specifikacije API-ja)

Nedostatak: neiskorištenost svih Nedostatak: neiskorištenost svih mogućnosti hardveramogućnosti hardvera

APIAPI 3D CORE (Core Graphics System)3D CORE (Core Graphics System)

1979. ACM SIGGRAPH (Association for Computing Machinery 1979. ACM SIGGRAPH (Association for Computing Machinery Special Interest Group on Graphics)Special Interest Group on Graphics)

GKS (Graphics Kernel System)GKS (Graphics Kernel System) ISO 88, 94, 97, 98, 99 (International Standards Organization)ISO 88, 94, 97, 98, 99 (International Standards Organization) ANSI 85 (American National Standards Institute)ANSI 85 (American National Standards Institute)

PHIGS (Programmer's Hierarchical Interactive Graphics PHIGS (Programmer's Hierarchical Interactive Graphics System),System), PHIGS+ za pseudorealističanPHIGS+ za pseudorealističan prikazprikaz ISO 90, 97ISO 90, 97 ANSI 88ANSI 88

VRML (Virtual Reality Modelling Language) ISO 97, 98, 99

APIAPI Osim službenih standarda postoje industrijski standardiOsim službenih standarda postoje industrijski standardi

93’ GL, OpenGL93’ GL, OpenGL SGISGI 95’ Direct 3D95’ Direct 3D MicrosoftMicrosoft X Window System’s XlibX Window System’s Xlib MITMIT PEXPEX RenderManRenderMan PixarPixar PostScriptPostScript AdobeAdobe

Komercijalno značajniji od službenih standarda jer se Komercijalno značajniji od službenih standarda jer se jednostavnije mogu mijenjati.jednostavnije mogu mijenjati.

OpenGLOpenGL -- SIGGRAPHSIGGRAPH 2001. OpenML2001. OpenML –– integracija i sinintegracija i sinhhronizacija 3D grafike s video i ronizacija 3D grafike s video i

audio zapisima (Media-rich programming, Khronosaudio zapisima (Media-rich programming, Khronos group)group) 2004. OpenGL2.02004. OpenGL2.0

Jezici za sjenčenjeJezici za sjenčenje

(engl. shading languages)(engl. shading languages) programiranje grafičkog programiranje grafičkog hardverahardvera korištenjem korištenjem

jezika višejezika višegg nivoa nivoa ((da seda se ne bi moral ne bi moraloo programirati u asembleruprogramirati u asembleru za za grafičku grafičku karticu)karticu)

HLSL (engl. High-Level Shading Languages) –HLSL (engl. High-Level Shading Languages) –Direct3D, Microsoft, ’02.Direct3D, Microsoft, ’02.

CG (engl. C for graphics) –CG (engl. C for graphics) – Opengl, Direct3D, Opengl, Direct3D, NVidia, ’02.NVidia, ’02.

GLSL (engl.The OpenGL Shading Language) –GLSL (engl.The OpenGL Shading Language) –open standard, ARB, ’03.open standard, ARB, ’03.

Jezici za sjenčenjeJezici za sjenčenje

OpenGLOpenGL (engl. OpenGraphicsLibrary)(engl. OpenGraphicsLibrary) http://www.opengl.org/http://www.opengl.org/ IrisGLIrisGL -- SGI SGI osnovaosnova za OpenGL za OpenGL 1992. 1992. postaje postaje industrijski standardindustrijski standard programsko sučelje prema grafičkom programsko sučelje prema grafičkom hardveruhardveru, neovisan , neovisan

o platformio platformi koji kontrolikoji kontrolišeše skup specifičnih operacija skup specifičnih operacija crtanja 2D/3D (definicrtanja 2D/3D (definišeše kontekst za prikaz) kontekst za prikaz)

GLX X-server extensionGLX X-server extension API -API - definidefinišeše mrežni protokol mrežni protokol za OpenGLza OpenGL naredbe za prikazivanje (enkapsuliranenaredbe za prikazivanje (enkapsulirane u X u X protokol)protokol)

OpenGLOpenGL

Primjer naredbe u OpenGL:Primjer naredbe u OpenGL:

OpenGLOpenGL

Poređenje GLSL (OpenGL) sa jezikom za Poređenje GLSL (OpenGL) sa jezikom za sjenčenje HLSL (Direct3D)sjenčenje HLSL (Direct3D)

OpenGLOpenGL

Projektovan da može podržati napredne Projektovan da može podržati napredne grafičke tehnike za realističan prikaz:grafičke tehnike za realističan prikaz:preslikavanje tekstura na površinupreslikavanje tekstura na površinuuklanjanje nazubljenosti krivuljauklanjanje nazubljenosti krivulja transparentnosttransparentnostzamagljivanjezamagljivanjeosvjetljavanje (izvori svjetla)osvjetljavanje (izvori svjetla)glatko sjenčenjeglatko sjenčenjeperspektive i 3D transformacijeperspektive i 3D transformacije

Microsoft APIMicrosoft API

DirectX predstavljen 1995. kao integrisani DirectX predstavljen 1995. kao integrisani skup programerskih alata, za Windows skup programerskih alata, za Windows multimedijalne aplikacije (igre ;-))multimedijalne aplikacije (igre ;-))DirectX Graphics (Direct3D za prikaz 3D DirectX Graphics (Direct3D za prikaz 3D

grafike i DirectDraw za 2D grafiku)grafike i DirectDraw za 2D grafiku)DirectX Audio za zvuk (DirectSound i DirectX Audio za zvuk (DirectSound i

DrectMusic)DrectMusic)DirectPlay za mrežno povezivanjeDirectPlay za mrežno povezivanjeDirectInput za ulazne uređaje (joystick,...)DirectInput za ulazne uređaje (joystick,...)

Microsoft APIMicrosoft API

dxdiag.exedxdiag.exe

OpenGL screensaversOpenGL screensavers