SlideShare ist ein Scribd-Unternehmen logo
1 von 21
What is OpenGL ?
KOLIBER
OpenGL ( Open Graphics Library )
• Is a cross-language, cross-platformAPI for rendering 2D and 3D
vector graphics.The API is typically used to interact with a graphics
processing unit (GPU), to achieve hardware-accelerated rendering
• the people who make GPUs, are responsible for writing
implementations of the OpenGL rendering system.Their
implementations, commonly called "drivers“ , translate OpenGL API
commands into GPU commands
OpenGL History
• Development started by SGI (Silicon Graphics INC.) at 1991 (
developers groups name was ARB ( IBM , Microsoft , Nvidia , … )
• First release at 1992 ( OpenGL 1.0 )
• Last release by SGI at 2 July 2006 ( OpenGL 2.1 )
• Maintainer changed at July 2006 ( from SGI to Khronos Group( SGI ,
ATI , Nvidia , … ) )
• First big release by Khronos at 11 Agust 2008 ( OpenGL 3.0 )
• Last release by Khronos at 31 July 2017 ( OpenGL 4.6 )
OpenGL usages
Games Animations andVideos
virtual realityCAD (Computer Aided Design )
Mobile phones
OpenGL Libraries
• gl: OpenGL Core library ( rendering , drawing vertices , … )
• glu: OpenGL Utility library ( transforming , rotating , mathematical
operations over GPU , … )
• glut: OpenGL Utility Toolkit library ( multiplatform window system
interface )
• wgl,cgl,glx: Advance window system interface for OS (windows ,
*unix , mac , … )
OpenGL Libraries
OpenGL implementations
• Nvidia OpenGL ( called nvidia driver – for nvidia GPUs )
• AMD OpenGL ( called amd driver – for amd GPUs )
• Mesa3D ( open source opengl implementation for Intel HD graphics )
Deep into base !
Some questions
• What is GPU ?
Like CPUs , GPUs are processors , but for huge processes like
rendering
• What is Rendering ?
Rendering means the process of translating 2D or 3D geometry to raster
Image
• Is GPU only for rendering ?
Of course not , GPGPU ( general purpose graphics processing
unit ) , is the use of a GPU to perform computation in
applications traditionally handled by the CPU
Some questions
• CPU vs GPU ?
As we know CPUs are devided by brands (Intel , AMD , …) , ISAs
(CISC , RISC , ZISC , MISC , …) , … , GPUs can be devided by
parameters such brands ( Nvidia , Intel , AMD , … ) ,
Architectures (Kepler , Maxwell , Pascal ,Volta , … ) and etc
• Can we write an application for GPU ?
Like CPUs that have compiler ( translating high-level language
to assembly ( clang , gcc , cc , … ) ) and assembler ( translate
assembly to machine code ( nasm , yasm , … ) ) , GPUs are
programmable , too and have compiler ( nvcc , hcc , … ) and
assembler ( gcnasm , asfermi , … )
• What is OpenGL for ?
For writing applications with interacting to GPU for rendering , we
need deep knowledge about our GPU Architecture and hardware to
create a simple application , renders a model , so OpenGL is a higher
level API for simple interacting with GPU
Deep into OpenGL !
OpenGL rendering pipeline
• At the first level OpenGL gets vertex array of our model and
our texture coordinates or ( color and coordinates )
• At the second level OpenGL will translate , rotate , scale our
vertices based on the transformation and perspective
matrices ( position calculator )
• At the third level OpenGL assembles our vertices into
triangles based on primitive type
• At the fourth level OpenGL rasterizes our triangles into pixel
format based on view port matrices and
• At the fifth level OpenGL will colorize and texturize our pixels (
called fragment shader or pixel shader ) ( color chooser )
• At the sixth level OpenGL will test our pixels and do some
blending operations and at the end will write pixels into
framebuffer for showing in display
OpenGL rendering pipeline
Vertex shader ( position calculator )
Fragment shader (color chooser )
Another simple view of OpenGL pipeline
OpenGL rendering pipeline
Primitive types for triangle assembling at level two
Rasterization ?
Rasterization ?
Testing ?
Some time’s OpenGL may fail to
rendering correctly like this picture
The DepthTest is a per-sample
processing operation performed
after the Fragment Shader for
detecting incorrect frames and
discarding them .
An important question !
How can you render this simple wall ? How many
triangles you need to render it ? 100 ? 1000 ? Millions ?
Oh is wrong to use Millions of triangles for rendering a
simple wall !
So how can you ?
Of course ! Textures 
You can use a simple rectangle and map this image on
it ( called texture mapping )
An important question !
OpenGL texture mapping
Any question ?
Resources
• https://www.khronos.org/
• https://www.wikipedia.org/
• https://www.mesa3d.org/
• https://code.tutsplus.com/

Weitere ähnliche Inhalte

Was ist angesagt?

Open Graphics Library
Open Graphics  Library Open Graphics  Library
Open Graphics Library Azmeen Gadit
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithmKKARUNKARTHIK
 
Character generation techniques
Character generation techniquesCharacter generation techniques
Character generation techniquesMani Kanth
 
Graphics software and standards
Graphics software and standardsGraphics software and standards
Graphics software and standardsMani Kanth
 
Seminar presentation on OpenGL
Seminar presentation on OpenGLSeminar presentation on OpenGL
Seminar presentation on OpenGLMegha V
 
Projection In Computer Graphics
Projection In Computer GraphicsProjection In Computer Graphics
Projection In Computer GraphicsSanu Philip
 
Graphics software
Graphics softwareGraphics software
Graphics softwareMohd Arif
 
Parallel projection
Parallel projectionParallel projection
Parallel projectionPrince Shahu
 
Raster animation
Raster animationRaster animation
Raster animationabhijit754
 
3D Transformation in Computer Graphics
3D Transformation in Computer Graphics3D Transformation in Computer Graphics
3D Transformation in Computer Graphicssabbirantor
 
Graphics software standards
Graphics software standardsGraphics software standards
Graphics software standardsAnkit Garg
 
Computer animation
Computer animationComputer animation
Computer animationshusrusha
 

Was ist angesagt? (20)

Open Graphics Library
Open Graphics  Library Open Graphics  Library
Open Graphics Library
 
Computer Graphics
Computer GraphicsComputer Graphics
Computer Graphics
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithm
 
Overview of Computer Graphics
Overview of Computer GraphicsOverview of Computer Graphics
Overview of Computer Graphics
 
Shading
ShadingShading
Shading
 
Character generation techniques
Character generation techniquesCharacter generation techniques
Character generation techniques
 
Spline representations
Spline representationsSpline representations
Spline representations
 
OpenGL Introduction
OpenGL IntroductionOpenGL Introduction
OpenGL Introduction
 
Depth Buffer Method
Depth Buffer MethodDepth Buffer Method
Depth Buffer Method
 
Graphics software and standards
Graphics software and standardsGraphics software and standards
Graphics software and standards
 
Seminar presentation on OpenGL
Seminar presentation on OpenGLSeminar presentation on OpenGL
Seminar presentation on OpenGL
 
Projection In Computer Graphics
Projection In Computer GraphicsProjection In Computer Graphics
Projection In Computer Graphics
 
Graphics software
Graphics softwareGraphics software
Graphics software
 
Parallel projection
Parallel projectionParallel projection
Parallel projection
 
Raster animation
Raster animationRaster animation
Raster animation
 
Open gl
Open glOpen gl
Open gl
 
3D Transformation in Computer Graphics
3D Transformation in Computer Graphics3D Transformation in Computer Graphics
3D Transformation in Computer Graphics
 
Graphics software standards
Graphics software standardsGraphics software standards
Graphics software standards
 
Computer animation
Computer animationComputer animation
Computer animation
 
Curves and surfaces
Curves and surfacesCurves and surfaces
Curves and surfaces
 

Ähnlich wie What is OpenGL ?

OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading LanguageJungsoo Nam
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript BlrDroid
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glchangehee lee
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsPrabindh Sundareson
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesPooya Eimandar
 
Compute API –Past & Future
Compute API –Past & FutureCompute API –Past & Future
Compute API –Past & FutureOfer Rosenberg
 
13th kandroid OpenGL and EGL
13th kandroid OpenGL and EGL13th kandroid OpenGL and EGL
13th kandroid OpenGL and EGLJungsoo Nam
 
Shader Programming With Unity
Shader Programming With UnityShader Programming With Unity
Shader Programming With UnityMindstorm Studios
 
SIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLSIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLMark Kilgard
 
VisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalVisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalMasatsugu HASHIMOTO
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable ShadingMark Kilgard
 
OpenGL ES and Mobile GPU
OpenGL ES and Mobile GPUOpenGL ES and Mobile GPU
OpenGL ES and Mobile GPUJiansong Chen
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
3 CG_U1_P2_PPT_3 OpenGL.pptx
3 CG_U1_P2_PPT_3 OpenGL.pptx3 CG_U1_P2_PPT_3 OpenGL.pptx
3 CG_U1_P2_PPT_3 OpenGL.pptxssuser255bf1
 

Ähnlich wie What is OpenGL ? (20)

OpenGL basics
OpenGL basicsOpenGL basics
OpenGL basics
 
OpenGL Shading Language
OpenGL Shading LanguageOpenGL Shading Language
OpenGL Shading Language
 
High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript High performance graphics and computation - OpenGL ES and RenderScript
High performance graphics and computation - OpenGL ES and RenderScript
 
Gdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_glGdc 14 bringing unreal engine 4 to open_gl
Gdc 14 bringing unreal engine 4 to open_gl
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
 
(2) gui drawing
(2) gui drawing(2) gui drawing
(2) gui drawing
 
The next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game EnginesThe next generation of GPU APIs for Game Engines
The next generation of GPU APIs for Game Engines
 
Compute API –Past & Future
Compute API –Past & FutureCompute API –Past & Future
Compute API –Past & Future
 
13th kandroid OpenGL and EGL
13th kandroid OpenGL and EGL13th kandroid OpenGL and EGL
13th kandroid OpenGL and EGL
 
Shader Programming With Unity
Shader Programming With UnityShader Programming With Unity
Shader Programming With Unity
 
Android native gl
Android native glAndroid native gl
Android native gl
 
Graphics Libraries
Graphics LibrariesGraphics Libraries
Graphics Libraries
 
2D graphics
2D graphics2D graphics
2D graphics
 
SIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGLSIGGRAPH Asia 2008 Modern OpenGL
SIGGRAPH Asia 2008 Modern OpenGL
 
(2) gui drawing
(2) gui drawing(2) gui drawing
(2) gui drawing
 
VisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_FinalVisionizeBeforeVisulaize_IEVC_Final
VisionizeBeforeVisulaize_IEVC_Final
 
CS 354 Programmable Shading
CS 354 Programmable ShadingCS 354 Programmable Shading
CS 354 Programmable Shading
 
OpenGL ES and Mobile GPU
OpenGL ES and Mobile GPUOpenGL ES and Mobile GPU
OpenGL ES and Mobile GPU
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
3 CG_U1_P2_PPT_3 OpenGL.pptx
3 CG_U1_P2_PPT_3 OpenGL.pptx3 CG_U1_P2_PPT_3 OpenGL.pptx
3 CG_U1_P2_PPT_3 OpenGL.pptx
 

Kürzlich hochgeladen

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Kürzlich hochgeladen (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

What is OpenGL ?

  • 1. What is OpenGL ? KOLIBER
  • 2. OpenGL ( Open Graphics Library ) • Is a cross-language, cross-platformAPI for rendering 2D and 3D vector graphics.The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering • the people who make GPUs, are responsible for writing implementations of the OpenGL rendering system.Their implementations, commonly called "drivers“ , translate OpenGL API commands into GPU commands
  • 3. OpenGL History • Development started by SGI (Silicon Graphics INC.) at 1991 ( developers groups name was ARB ( IBM , Microsoft , Nvidia , … ) • First release at 1992 ( OpenGL 1.0 ) • Last release by SGI at 2 July 2006 ( OpenGL 2.1 ) • Maintainer changed at July 2006 ( from SGI to Khronos Group( SGI , ATI , Nvidia , … ) ) • First big release by Khronos at 11 Agust 2008 ( OpenGL 3.0 ) • Last release by Khronos at 31 July 2017 ( OpenGL 4.6 )
  • 4. OpenGL usages Games Animations andVideos virtual realityCAD (Computer Aided Design ) Mobile phones
  • 5. OpenGL Libraries • gl: OpenGL Core library ( rendering , drawing vertices , … ) • glu: OpenGL Utility library ( transforming , rotating , mathematical operations over GPU , … ) • glut: OpenGL Utility Toolkit library ( multiplatform window system interface ) • wgl,cgl,glx: Advance window system interface for OS (windows , *unix , mac , … )
  • 7. OpenGL implementations • Nvidia OpenGL ( called nvidia driver – for nvidia GPUs ) • AMD OpenGL ( called amd driver – for amd GPUs ) • Mesa3D ( open source opengl implementation for Intel HD graphics )
  • 9. Some questions • What is GPU ? Like CPUs , GPUs are processors , but for huge processes like rendering • What is Rendering ? Rendering means the process of translating 2D or 3D geometry to raster Image • Is GPU only for rendering ? Of course not , GPGPU ( general purpose graphics processing unit ) , is the use of a GPU to perform computation in applications traditionally handled by the CPU
  • 10. Some questions • CPU vs GPU ? As we know CPUs are devided by brands (Intel , AMD , …) , ISAs (CISC , RISC , ZISC , MISC , …) , … , GPUs can be devided by parameters such brands ( Nvidia , Intel , AMD , … ) , Architectures (Kepler , Maxwell , Pascal ,Volta , … ) and etc • Can we write an application for GPU ? Like CPUs that have compiler ( translating high-level language to assembly ( clang , gcc , cc , … ) ) and assembler ( translate assembly to machine code ( nasm , yasm , … ) ) , GPUs are programmable , too and have compiler ( nvcc , hcc , … ) and assembler ( gcnasm , asfermi , … ) • What is OpenGL for ? For writing applications with interacting to GPU for rendering , we need deep knowledge about our GPU Architecture and hardware to create a simple application , renders a model , so OpenGL is a higher level API for simple interacting with GPU
  • 12. OpenGL rendering pipeline • At the first level OpenGL gets vertex array of our model and our texture coordinates or ( color and coordinates ) • At the second level OpenGL will translate , rotate , scale our vertices based on the transformation and perspective matrices ( position calculator ) • At the third level OpenGL assembles our vertices into triangles based on primitive type • At the fourth level OpenGL rasterizes our triangles into pixel format based on view port matrices and • At the fifth level OpenGL will colorize and texturize our pixels ( called fragment shader or pixel shader ) ( color chooser ) • At the sixth level OpenGL will test our pixels and do some blending operations and at the end will write pixels into framebuffer for showing in display
  • 13. OpenGL rendering pipeline Vertex shader ( position calculator ) Fragment shader (color chooser ) Another simple view of OpenGL pipeline
  • 14. OpenGL rendering pipeline Primitive types for triangle assembling at level two
  • 17. Testing ? Some time’s OpenGL may fail to rendering correctly like this picture The DepthTest is a per-sample processing operation performed after the Fragment Shader for detecting incorrect frames and discarding them .
  • 18. An important question ! How can you render this simple wall ? How many triangles you need to render it ? 100 ? 1000 ? Millions ? Oh is wrong to use Millions of triangles for rendering a simple wall ! So how can you ? Of course ! Textures  You can use a simple rectangle and map this image on it ( called texture mapping )
  • 19. An important question ! OpenGL texture mapping
  • 21. Resources • https://www.khronos.org/ • https://www.wikipedia.org/ • https://www.mesa3d.org/ • https://code.tutsplus.com/