際際滷

際際滷Share a Scribd company logo
Graphics and Libraries
Dominic Farolino
 twitter.com/domfarolino

 github.com/domfarolino

 dom@chromium.org
 Senior

 Chromium Committer

 WHATWG Editor
What is this talk?
@domfarolino
Rendering
@domfarolino
Graphics APIs
@domfarolino
OpenGL + Graphics Pipeline
@domfarolino
Pixel Buffering & V-Sync
@domfarolino
WebGL
@domfarolino
some smart person
Converting object description > 2D image plane representation
Rendering
Object Description
Object Description
Geometric
serialization of
shape to be painted
Object Description
Geometric
serialization of
shape to be painted
= Vector graphic
some smart person
Converting vector graphic > 2D image plane representation
Rendering
Raster vs Vector {ization}
Raster vs Vector {ization}
Raytracing
Raster vs Vector {ization}
Raytracing
Radiosity
Vectorization
Vectorization
Rasterization
Rasterization
Practical Difference
Practical Difference
 Rasterizations

 Complex shapes + 鍖lled areas

 Trouble producing smooth lines = blocky
Practical Difference
 Rasterizations

 Complex shapes + 鍖lled areas

 Trouble producing smooth lines = blocky
 Vectorizations

 Perfectly smooth lines

 Less versatile
How do we actually do this
stuff?
GFX APIs
Why?
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
DirectX
DirectX
 Released with Windows 95
DirectX
 Released with Windows 95
 Included in every version of Windows
DirectX
 Released with Windows 95
 Included in every version of Windows
 Tons of APIs
DirectX
 Released with Windows 95
 Included in every version of Windows
 Tons of APIs
 3D GFX API (Direct3D)
DirectX
 Released with Windows 95
 Included in every version of Windows
 Tons of APIs
 3D GFX API (Direct3D)
 2D | |
DirectX
 Released with Windows 95
 Included in every version of Windows
 Tons of APIs
 3D GFX API (Direct3D)
 2D | |
 Input
DirectX
 Released with Windows 95
 Included in every version of Windows
 Tons of APIs
 3D GFX API (Direct3D)
 2D | |
 Input
 Audio
OpenGL
OpenGL
 Alternative to DirectX
OpenGL
 Alternative to DirectX
 Basically same functionality
OpenGL
 Alternative to DirectX
 Basically same functionality
 Pros:
OpenGL
 Alternative to DirectX
 Basically same functionality
 Pros:
 Very-cross platform
OpenGL
 Alternative to DirectX
 Basically same functionality
 Pros:
 Very-cross platform
 OPEN STANDARD (Khronos Group)
Low Level Graphics & OpenGL
Graphics Card
Graphics Card
Graphics Card Drivers
Graphics Card
Graphics Card Drivers
Graphics APIs
Graphics Card
Graphics Card Drivers
Graphics APIs
Game Engines
Graphics Card
Graphics Card Drivers
Graphics APIs
Game Engines
You, the gamer!!
Graphics APIs
Game Engines
You, the gamer!!
Graphics APIs
Game Engines
You, the gamer!!
Physics
Graphics APIs
Game Engines
You, the gamer!!
A.I.Physics
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Audio Manip.
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Audio Manip.
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Audio Manip.
SDL2
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Audio Manip.
SDL2 SFML
Graphics APIs
Game Engines
You, the gamer!!
LightingA.I.Physics
Collision
Detection
Audio Manip.
SDL2 SFML GLFW
SDL(2)
SDL(2)
 Simple DirectMedia Layer 2
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
 Game development library
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
 Game development library
  +  +  +  +
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
 Game development library
  +  +  +  + 
 Game engine??
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
 Game development library
  +  +  +  + 
 Game engine??
 Used in many game engines (Valve Source)
SDL(2)
 Simple DirectMedia Layer 2
 macOS, Linux, Android, iOS, Windows
 Game development library
  +  +  +  + 
 Game engine??
 Used in many game engines (Valve Source)
Why SDL?
Why SDL?
 OpenGL doesnt specify:
Why SDL?
 OpenGL doesnt specify:
 Window creation
Why SDL?
 OpenGL doesnt specify:
 Window creation
 Input handling
Why SDL?
 OpenGL doesnt specify:
 Window creation
 Input handling
 More
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Vertices
(VBO)
Data of any format
Vertices
(VBO)
Data of any format
Vertex
Shader
(On the GPU)
Vertices
(VBO)
Data of any format
Vertex
Shader
(On the GPU)
Vertices
(VBO)
Data of any format
Vertex
Shader
(On the GPU)
Rasterization
(On the GPU)
Vertices
(VBO)
Data of any format
Vertex
Shader
(On the GPU)
Rasterization
(On the GPU)
Vertices
(VBO)
Data of any format
Vertex
Shader
(On the GPU)
Rasterization
(On the GPU)
Fragment
Shader
(On the GPU)
Fragment
Shader
(On the GPU)
Fragment
Shader
Blending and
sampling
(On the GPU)(On the GPU)
Fragment
Shader
Blending and
sampling
(On the GPU)
Final output
image!
(On the GPU)
Vertex Data
@domfarolino
Vertex Data
Vertex Data
Vertex Data
Interpreting Vertices
@domfarolino
Vertex Shader
Vertex Shader
Vertex Shader
Vertex Shader
Vertex Shader
Attach/Compile
Interpreting Color
@domfarolino
Fragment Shader
Fragment Shader
Fragment Shader
Example
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Pixel buffering & V-Sync
@domfarolino
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Getting rid of screen tears?
@domfarolino
Synchronizing Vertical Refresh
Rate
@domfarolino
V-Sync
@domfarolino
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Slower FPS?
@domfarolino
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Low Level Graphics & OpenGL
Cool, but what about the web?
@domfarolino
Ad

Recommended

PDF
"Open Mapping on iOS" Justin Miller, MapBox
Yandex
PDF
What's a Core Image? An Image-Processing Framework on iOS and OS X
Flatiron School
PPT
Advanced Graphics Workshop - GFX2011
Prabindh Sundareson
PPTX
2D graphics
Muhammad Rashid
PPT
Abc of DirectX
Prabodh20
DOCX
Displaying 3 d polygon animations
halo4robo
PPT
01 first
scythus
PPT
CS 354 GPU Architecture
Mark Kilgard
PPTX
Graphics Libraries
Prachi Mishra
PDF
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
PDF
Modern Graphics Pipeline Overview
slantsixgames
PPTX
Java on the GPU: Where are we now?
Dmitry Alexandrov
PPTX
Sig13 ce future_gfx
Cass Everitt
PDF
Minko - Flash Conference #5
Minko3D
PPT
CS 354 Introduction
Mark Kilgard
PPTX
Computer Graphics
Adri Jovin
PDF
Open gl
EU Edge
PPTX
際際滷share
Abu Sayem Sumon
PPT
OpenGL 4 for 2010
Mark Kilgard
PPT
SIGGRAPH 2012: NVIDIA OpenGL for 2012
Mark Kilgard
PPTX
The next generation of GPU APIs for Game Engines
Pooya Eimandar
PPT
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
Mark Kilgard
PPTX
Getting started with open gl es 2
matthewgalaviz
DOC
Data structures graphics library in computer graphics.
Daroko blog(www.professionalbloggertricks.com)
PPT
NVIDIA's OpenGL Functionality
Mark Kilgard
PDF
The Explanation the Pipeline design strategy.pdf
bijevo
PDF
Bouncing ball content management system project report.pdf
Kamal Acharya
PPTX
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
JinTaek Seo
PPTX
How to Un-Obsolete Your Legacy Keypad Design
Epec Engineered Technologies
PDF
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7

More Related Content

Similar to Low Level Graphics & OpenGL (20)

PPTX
Graphics Libraries
Prachi Mishra
PDF
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
PDF
Modern Graphics Pipeline Overview
slantsixgames
PPTX
Java on the GPU: Where are we now?
Dmitry Alexandrov
PPTX
Sig13 ce future_gfx
Cass Everitt
PDF
Minko - Flash Conference #5
Minko3D
PPT
CS 354 Introduction
Mark Kilgard
PPTX
Computer Graphics
Adri Jovin
PDF
Open gl
EU Edge
PPTX
際際滷share
Abu Sayem Sumon
PPT
OpenGL 4 for 2010
Mark Kilgard
PPT
SIGGRAPH 2012: NVIDIA OpenGL for 2012
Mark Kilgard
PPTX
The next generation of GPU APIs for Game Engines
Pooya Eimandar
PPT
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
Mark Kilgard
PPTX
Getting started with open gl es 2
matthewgalaviz
DOC
Data structures graphics library in computer graphics.
Daroko blog(www.professionalbloggertricks.com)
PPT
NVIDIA's OpenGL Functionality
Mark Kilgard
PDF
The Explanation the Pipeline design strategy.pdf
bijevo
PDF
Bouncing ball content management system project report.pdf
Kamal Acharya
PPTX
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
JinTaek Seo
Graphics Libraries
Prachi Mishra
Minko - Targeting Flash/Stage3D with C++ and GLSL
Minko3D
Modern Graphics Pipeline Overview
slantsixgames
Java on the GPU: Where are we now?
Dmitry Alexandrov
Sig13 ce future_gfx
Cass Everitt
Minko - Flash Conference #5
Minko3D
CS 354 Introduction
Mark Kilgard
Computer Graphics
Adri Jovin
Open gl
EU Edge
際際滷share
Abu Sayem Sumon
OpenGL 4 for 2010
Mark Kilgard
SIGGRAPH 2012: NVIDIA OpenGL for 2012
Mark Kilgard
The next generation of GPU APIs for Game Engines
Pooya Eimandar
SIGGRAPH Asia 2012 Exhibitor Talk: OpenGL 4.3 and Beyond
Mark Kilgard
Getting started with open gl es 2
matthewgalaviz
Data structures graphics library in computer graphics.
Daroko blog(www.professionalbloggertricks.com)
NVIDIA's OpenGL Functionality
Mark Kilgard
The Explanation the Pipeline design strategy.pdf
bijevo
Bouncing ball content management system project report.pdf
Kamal Acharya
Beginning direct3d gameprogramming01_thehistoryofdirect3dgraphics_20160407_ji...
JinTaek Seo

Recently uploaded (20)

PPTX
How to Un-Obsolete Your Legacy Keypad Design
Epec Engineered Technologies
PDF
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
PPTX
Work at Height training for workers .pptx
cecos12
PPTX
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
PDF
Designing for Tomorrow Architectures Role in the Sustainability Movement
BIM Services
PDF
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
PDF
lesson4-occupationalsafetyandhealthohsstandards-240812020130-1a7246d0.pdf
arvingallosa3
PDF
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
PPTX
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
PPTX
Mobile database systems 20254545645.pptx
herosh1968
PDF
01-introduction to the ProcessDesign.pdf
StiveBrack
PPTX
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
PDF
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
PPTX
Computer network Computer network Computer network Computer network
Shrikant317689
PPSX
OOPS Concepts in Python and Exception Handling
Dr. A. B. Shinde
PPTX
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
PPTX
Functions in Python Programming Language
BeulahS2
PDF
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
PDF
惠惘惘 惺 悋惠忰 悋惆悋 惠惆 悋悋悄 忰 悴悋忰.pdf
忰惆 惶惶 惠惠悸
PPT
惆惘悋愕悸 忰悋 惘悸 惠惺 悴惡 愃惘惡 悋愕惆悋
忰惆 惶惶 惠惠悸
How to Un-Obsolete Your Legacy Keypad Design
Epec Engineered Technologies
Python Mini Project: Command-Line Quiz Game for School/College Students
MPREETHI7
Work at Height training for workers .pptx
cecos12
MATERIAL SCIENCE LECTURE NOTES FOR DIPLOMA STUDENTS
SAMEER VISHWAKARMA
Designing for Tomorrow Architectures Role in the Sustainability Movement
BIM Services
June 2025 Top 10 Sites -Electrical and Electronics Engineering: An Internatio...
elelijjournal653
lesson4-occupationalsafetyandhealthohsstandards-240812020130-1a7246d0.pdf
arvingallosa3
Rapid Prototyping for XR: Lecture 5 - Cross Platform Development
Mark Billinghurst
FSE_LLM4SE1_A Tool for In-depth Analysis of Code Execution Reasoning of Large...
cl144
Mobile database systems 20254545645.pptx
herosh1968
01-introduction to the ProcessDesign.pdf
StiveBrack
Bharatiya Antariksh Hackathon 2025 Idea Submission PPT.pptx
AsadShad4
FSE-Journal-First-Automated code editing with search-generate-modify.pdf
cl144
Computer network Computer network Computer network Computer network
Shrikant317689
OOPS Concepts in Python and Exception Handling
Dr. A. B. Shinde
Bitumen Emulsion by Dr Sangita Ex CRRI Delhi
grilcodes
Functions in Python Programming Language
BeulahS2
Decision support system in machine learning models for a face recognition-bas...
TELKOMNIKA JOURNAL
惠惘惘 惺 悋惠忰 悋惆悋 惠惆 悋悋悄 忰 悴悋忰.pdf
忰惆 惶惶 惠惠悸
惆惘悋愕悸 忰悋 惘悸 惠惺 悴惡 愃惘惡 悋愕惆悋
忰惆 惶惶 惠惠悸
Ad

Low Level Graphics & OpenGL