Graphics and Game Engines GPU...
Transcript of Graphics and Game Engines GPU...
![Page 1: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/1.jpg)
Programming of Graphics
GPU overviewGraphics and Game Engines
Peter Mileff PhD
University of MiskolcDepartment of Information Technology
![Page 2: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/2.jpg)
2
Overview of the GPU...
![Page 3: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/3.jpg)
GPU Overview⦿ Graphics Processing Unit (GPU) is the central unit
of your graphics card⦿ Its objective:
● Performing complex graphical operations● Directly accelerate the visualization● Offload the CPU:
○ taking high-level visualization tasks from the CPU○ therefore CPU can be used to do other things
⦿ The reason of the spread of the GPUs:● Hardware manufacturers quickly recognized the business
opportunities. Creating:○ Multimedia applications (e.g. Photoshop)○ Engineering systems (e.g. CAD systems)○ Games
3
![Page 4: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/4.jpg)
⦿ In 1996, 3dfx company released Voodoo I⦿ Voodoo I characteristics:
● The first 3D accelerator card (4MB RAM, 50 Mhz)● Huge success● Support only the 3D visualization
○ It required an additional 2D video card
⦿ The idea: ● The 2D transformations are performed by a fast 2D video card
○ E.g. the popular Matrox video card● The 3D transformations are performed by the Voodoo card
○ its hardware were able to make faster calculations than software rendering.
First Achievements
4
![Page 5: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/5.jpg)
Other important events
⦿ In the same year: ● NVIDIA and the ATI started their own GPU series● Nvidia: NV1, RIVA 128, Geforce 256● ATI: 3D Rage, Rage Pro, Rage 128
⦿ The video cards immediately became very popular⦿ The reasons of this are:
● Reasonable price● These cards could be buy in every computer shop● Cards were supported by games and operating systems (mainly
by windows)
5
![Page 6: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/6.jpg)
6
Today main (GPU) trades
![Page 7: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/7.jpg)
7
Architecture of the GPU…
![Page 8: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/8.jpg)
CPU vs GPU⦿ The GPU architecture is very different from the CPU
(already from the very beginning!)⦿ Reason 1:
● They are designed for specific purposes: typically to speed up graphical calculations
● Graphical calculations have different requirements than the needs against the CPU
● The CPU is for general purposes⦿ Reason 2:
● Graphical calculations and the process of the rasterization can be heavily parallelized⦿ The development of the GPUs started to this direction
8
![Page 9: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/9.jpg)
CPU vs GPU⦿ CPU: implements a single-threaded computing
architecture● allows to run multiple processes on a single threaded pipeline● application data can be reached through one memory interface
⦿ GPU: the architecture follows the stream processing technology● This is much more efficient approach to process large amount
of data● A GPU can contain even thousands of stream processors● There are no conflicts and the wait like at the CPU
○ Stream processors form a pipeline
9
![Page 10: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/10.jpg)
CPU vs GPU
10
![Page 11: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/11.jpg)
Geforce 8800
11
![Page 12: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/12.jpg)
Geforce GTX 280
12
![Page 13: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/13.jpg)
CPU vs GPU⦿ CPU: uses a lot of resources to
● the control of the programs, ● to switch between instructions and tasks
⦿ GPU: is totally unsuitable for this● GPU contains a lot of arithmetic logic units (ALU),
○ has the ability to calculate faster with order of magnitude● Limitations:
○ every processing unit should run the same command – Data parallelism!
⦿ CPU also supports data parallelism! ● with extended instruction sets (e.g.. SSE, SSE2, SSE3, SSE4,
AVX, ALTIVEC, stb), ● with multicore CPUs
13
![Page 14: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/14.jpg)
The problem of data transfer⦿ There is a distance between the GPU and CPU
● they are connected through the system bus⦿ The data transfer problem appeared soon!
● Transfer data from main memory to the GPU memory is time consulting
14
![Page 15: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/15.jpg)
The problem of data transfer
⦿ For this reason, numerous bus types were developed● Former standards: ISA, MCA, VLB, PCI● In 1997, the AGP (Accelerated Graphics Port)
standard was developed⦿ Very fast data transfer between CPu and GPU⦿ Today is still present in the AGP standard
⦿ Today, the dominant solution is the PCI Express standard● a high-speed serial computer expansion bus standard
15
PCIe 1.0 PCIe 2.0 PCIe 3.0 PCIe 4.0250 MB/s 500 MB/s 984,6 MB/s 1969.2 MB/s
![Page 16: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/16.jpg)
Tendency of evolution⦿ The GPUs evolution far exceeds the development of CPUs
⦿ Moore's law (1965):
● is the observation that the number of transistors in a dense integrated circuit doubles approximately every two years.
⦿ Today:● CPU: the speed slowed to 18 months● GPU: doubling rate reduced to 6 months
16
![Page 17: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/17.jpg)
Tendency of evolution⦿ Example:
ATI Radeon HD 3800 GPU family:
● 320 stream processor● 666 million transistors● Performance > 1 terraFLOPS
Intel Core 2 Quad CPU ● 582 million transistors ● Performance ~ 9.8 gigaFLOPS
17
![Page 18: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/18.jpg)
Tendency
18
![Page 19: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/19.jpg)
Tendency
19
![Page 20: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/20.jpg)
20
Programming the GPU…
![Page 21: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/21.jpg)
Programming APIs⦿ In parallel with the development of video cards
numerous low-level programming interfaces (API) were developed● Under strong influence of hardware vendors
⦿ First well known API: Glide API● Developed by 3dfx for their own Voodoo cards● OpenGL like interface● Targeted games in terms of performance and functionality● It was dominant in game industry until mid-1990s● In 2000, Nvidia acquired 3dfx
21
![Page 22: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/22.jpg)
Direct3D vs OpenGL⦿ Direct3D
● Part of the Microsoft’s DirectX graphical API● Available only for Windows platforms
○ Desktops, XBox, Windows Phone● The most popular graphical APIs for game developers
⦿ The reason of its popularity:● development is perfectly follows the evolution of graphics
hardwares● Provides also built in higher level solutions:
○ Optimized mathematical solutions. E.g. matrices, vectors, collision detection, etc
○ Own 3D bone animation based model format called X● Other additional higher-level APIs: DirectDraw, DirectInput,
DirectSound, etc22
![Page 23: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/23.jpg)
Direct3D vs OpenGL⦿ OpenGL (Open Graphics Library):
● Specification standard for platform independent 2D és 3D visualization
● Introduced in 1992 by Silicon Graphics Inc● The ARB (Architecture Review Board) consortium was responsible for
its development○ Members are the major software and hardware manufacturers:○ ATI, NVIDIA, Intel, Microsoft, etc.)
● In 2006 Khronos Group consortium took over its development○ https://www.khronos.org/
● Slower development: the development of the specification is a slow process, which significantly hinders the graphics-intensive applications developers.
23
![Page 24: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/24.jpg)
Direct3D vs OpenGL⦿ Real competitors in the field of game development⦿ Both API has its own advantages and drawbacks
● Mainly there are only structural differences, the two APIs are almost identical in functionality
⦿ Advantage of the OpenGL (the future):● Platform independence: opengl has the opportunity to run on almost all
devices● OpenGL can also be used for embedded systems and mobile devices.
○ This version is called OpenGL ES● Popular operating systems are using OpenGL
○ iOS - OpenGL ES○ Linux, Unix, BSD - OpenGL○ Playstation - OpenGL○ AmigaOS, MorphOS, Haiku OS○ etc
24
![Page 25: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/25.jpg)
25
Game and Graphics Engines…
![Page 26: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/26.jpg)
Game engines⦿ Objective 1: to provide a toolkit for the developers team
(developer, designer, tester),● E.g.: editors,runtime environment, network, audio
⦿ Efficient, convenient and fast game development becomes possible
⦿ It is a layer between the Operating System and the game logic.
⦿ It simplifies the routine programming tasks:● Otherwise these should be performed for all games● E.g: creating a window, audio, play video, loading assets, collision
detection, etc.⦿ Objective 2: representing an appropriate technical quality
● in terms graphics quality and performance
26
![Page 27: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/27.jpg)
Structure of a Game Engine
⦿ The process of game development requires a complex IT knowledge!● The game engine supports these process and therefore it’s
functionality should be also complex
They are organized into well-defined subsystems:
⦿ Core subsystem: core functions, controls the modules and other subsystems. Provides platform independency, forwards events to other engine parts.
⦿ Graphics subsystem: responsible for visualization. It is typically built upon an API (OpenGL, DirectX) ● Display models, lights, effects, post-processing, particle systems, etc.
27
![Page 28: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/28.jpg)
Structure of a Game Engine
⦿ Audio and Music subsystem: playing audio effects and music
⦿ Artificial intelligence subsystem⦿ Network subsystem: support for network connections and
data transfer⦿ Input and Event subsystem: handle input devices and event
management⦿ Scripting subsystem: support script based development⦿ Resource subsystem: functions to access to resources⦿ Physics subsystem: make physical based simulations
possible. (E.g. racing games)⦿ Other subsystems: for math calculations, video playing, etc.
28
![Page 29: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/29.jpg)
Structure of a Game Engine
⦿ Subsystems should be a replaceable unit⦿ Sometimes a subsystem is not developed by in-house
● the companies may decide to buy an existing and well-functioning technology.
● If the development of the new subsystem will cost more than licensing an existing○ Typical example is integrating a physical subsystem
⦿ Examining today's major game engines modularity can be seen● Main components are written using a low level language (e.g.
C/C++)○ Because of performance
● Game logic is written using a higher level language○ fewer errors○ Cheaper developers 29
![Page 30: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/30.jpg)
Today’s major Engines
⦿ Thanks to technology, the graphics and game engines can offer sumptuous visuals
⦿ Games become increasingly complex● They contain even more cinematic parts, and functionality
⦿ A modern game engine can be very expensive● In return: developers will receive multiple years of experience
in the form of implemented algorithms
30
![Page 31: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/31.jpg)
Today’s major Engines
⦿ Unreal Engine 4 - Epic Games⦿ Engine is free, but 5% royalty should be payed after the first
$3,000 of revenue per product per quarter⦿ ID Tech 5 – ID Software⦿ Frostbite 3 - EA Digital Illusions CE⦿ Cryengine 3 - Crytek⦿ Source Engine – Valve⦿ Unity Engine - Unity⦿ ShiVa 3D - Stonetrip⦿ C4 Engine - Terathon Software
31
![Page 32: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/32.jpg)
Game Engines database⦿ http://devmaster.net/devdb/engines⦿ Options for detailed searching:
● Licence, programming language, API, functionality, platform, etc
32
![Page 33: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/33.jpg)
33
Starting development with APIs...
![Page 34: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/34.jpg)
Other APIs
⦿ Why helper API-s are needed?● The application requires a window provided by the
operating system⦿ Where the visualization will be performed⦿ It is operating system dependent!
● Event management depends also from OS: mouse, keyboard, thread management, etc
⦿ These parts of the program code are unique and platform dependent● Shipping the game to multiple platforms requires to make an
operating system layer for each platform⦿ Developers need to know exactly the operating system API⦿ Introducing a new platform requires quite a lot of work
34
![Page 35: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/35.jpg)
Cross Platform Low Level APIs
⦿ SDL (Simple DirectMedia Layer): free cross-platform development library● Designed to provide low level access to audio, keyboard, mouse,
joystick, and graphics hardware via OpenGL and Direct3D● Platforms: Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X,
FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, QNX, Android, Amiga
● Especially popular among game developers. Example games:○ Unreal Tournament○ Doom3○ Quake4○ Quake Wars○ Civilization: Call to Power○ etc
35
http://www.libsdl.org/
![Page 36: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/36.jpg)
Cross Platform Low Level APIs
⦿ SFML (Simple and Fast Multimedia Library): ● Free C++ based multimedia library● It’s aim is to be like SDL● Provides rich functionality● Its programming level is higher than SDL
○ Platforms: Windows, Linux, Mac OS X, Android, iOS
⦿ GLUT (The OpenGL Utility Toolkit): ● OpenGL Utility Toolkit, a window system independent toolkit for
writing OpenGL programs● It is designed for constructing small to medium sized OpenGL
programs● It is not a full-featured toolkit. Mainly for demonstration purposes
36
http://www.sfml-dev.org/
http://www.opengl.org/resources/libraries/glut/
![Page 37: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/37.jpg)
Cross Platform Low Level APIs
⦿ GLFW: ● Open Source, multi-platform library for creating windows with
OpenGL contexts and receiving input and events● Easy to integrate into existing applications● It is written in C
⦿ has native support for Windows, OS X and many Unix-like systems (Linux, FreeBSD)
37
http://www.glfw.org/
![Page 38: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/38.jpg)
Cross Platform Low Level APIs
⦿ JOGL: ● Java Binding for the OpenGL API● It is designed to provide hardware-supported 3D graphics to
applications written in Java● JOGL integrates with the AWT, Swing and SWT widget sets,● It native windowing toolkit
⦿ NativeWindow API.JOGL also provides its own native windowing toolkit, NEWT.
38
http://jogamp.org/jogl/www/
![Page 39: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/39.jpg)
High Level Frameworks
⦿ Unity: ● a cross-platform game engine● Well featured editor● Unity is notable for its ability to target games to multiple
platforms.⦿ Within a project, developers have control over delivery to
mobile devices, web browsers, desktops, and consoles● Most popular engine
39
https://unity3d.com
![Page 40: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/40.jpg)
High Level Frameworks
⦿ Unreal Engine: C/C++ based framework. Rich editor. ● For professional purposes.
⦿ Construct 2: HTML5 / JavaScript game engine● Well-featured editor
⦿ Game Make: no programming required. Mainly for 2D Games
⦿ Source Engine: for professional purposes
40
There are a lot of other engines :)
![Page 41: Graphics and Game Engines GPU overviewusers.iit.uni-miskolc.hu/~mileff/graphics/GraphicsChapter3.pdf · GPU Overview ⦿ Graphics Processing Unit (GPU) is the central unit of your](https://reader033.fdocuments.us/reader033/viewer/2022053014/5f1341ce451a736bd1121257/html5/thumbnails/41.jpg)
41