26
Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending and Texture mapping Understanding Shaders programming and Display List. Understanding OpenGL integration with Qt Duration Three days - 24 hours (8 hours a day) 50% of lecture, 50% of practical labs. Trainer http://www.linkedin.com/in/pravinkumarsinha Audience Professional 3D Software developers Prerequisite Knowledge of C programming In particular, participants must be familiar with creating and dealing with complex data types and structures, with pointers to such symbols, as well as with function pointers. Advance C training agenda is available at http://www.minhinc.com/training/c/advance-c-agenda.php and can be downloaded from http://www.minhinc.com/training/advance-c-agenda.pdf Knowledge of Object Oriented Concepts Qt integration requires Oops concept like Abstraction, Inheritance, Polymorphism knowledge. Setup Linux machine with GNU C++ compiler with Qt OpenGL version installed. OpenGL Essentials Training 3-day session © www.minhinc.com p1

OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Overview Understanding principles of 3D programmingUnderstanding drawing PrimitivesUnderstanding transformation matrix and ColoringUnderstanding Blending and Texture mappingUnderstanding Shaders programming and Display List.Understanding OpenGL integration with Qt

Duration Three days - 24 hours (8 hours a day)50% of lecture, 50% of practical labs.

Trainer http://www.linkedin.com/in/pravinkumarsinha

Audience Professional 3D Software developers

Prerequisite Knowledge of C programmingIn particular, participants must be familiar with creating and dealing withcomplex data types and structures, with pointers to such symbols, as well aswith function pointers.Advance C training agenda is available athttp://www.minhinc.com/training/c/advance-c-agenda.php

and can be downloaded fromhttp://www.minhinc.com/training/advance-c-agenda.pdf

Knowledge of Object Oriented ConceptsQt integration requires Oops concept like Abstraction, Inheritance,Polymorphism knowledge.

Setup Linux machine with GNU C++ compiler with Qt OpenGL version installed.

OpenGL Essentials Training3-day session

© www.minhinc.com p1

Page 2: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

Lecture - Introduction

GPUsShadersHardware accelerationOpenGL History and evolutionGraphics terminologies, i.e. Display list,Resolution, Modeling, GeometryRepresentation, Evaluators, Primitives,Pixel Operations, Rasterization, FragmentOperation)Command SyntaxState machineRendering PipelineOpenGL, OpenGLES, GLX and WebGLGLU and GLEWGLUT, GLFW and OpenGL utility Toolkit

Lecture - Drawing Primitives

Describing points, lines and polygonState managementNormal vectorVertex arrayAttribute groupsInline functionsglu library functionBuffer ObjectsExample, building sphere, cylinder,cone

Lecture - Viewing

TransformationsViewing and Modeling transformationsProjection and Viewport transformationsGrand coordinate systemsFix coordinate systemsManaging Local coordinate systemsManipulating Matrix Stacks.- ModelView matrix- Project matrixExample, Building a solar system

Lecture - Color & Lighting

RGBA and Color index modeColor and Shading modeCreating Light sourceSelecting lighting modelDefining material properties

Lecture

Lecture session will be course content presentation through the trainer.Any source code example related to the topic will be demonstrated, it wouldinclude executing the binaries. Complete lecture material can be downloaded fromhttp://www.minhinc.com/training/advance-gl-slides.pdf

Labs

Labs session would be completely hands on session where each example(with example data and execution instruction) would be provided to thestudents. Students can verify their results with the results provided inthe material.

© www.MinhInc.com p2

Page 3: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Afternoon

Lab

Draw a cylinder using normal glVertexDraw a cylinder using vertex arrayValidate if transformations are not associative. i.e translation+roation not same to rotation+translatonAdd a moon to mars in solar systemDraw sphere using glu library. Add and movelight source near and far.Let add lighting support in solar system through sun.

Day 2 Morning

Lecture - Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThree dimensional blending with the Depth BufferAntialiasing Geometric Primitives with MultisamplingFog equationsPolygon Offset

Lecture - Display List & Pixel Operation

Creating and executing a display listExecuting multiple display listsManaging state variable with display listsBitmaps and FontsImagesImaging pipeline - Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel MappingUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Lecture - Texture Mapping

Steps in texture mappingSpecifying the texture- Texture Proxy, Texture Array- Mipmaps:Multiple LevelFilteringTexture ObjectTexture Functions- Texture combiner functionMultitexturingThe texture matrix stackDepth texture

© www.MinhInc.com p3

Page 4: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Afternoon

Lecture - Framebuffer, Tessallators & Quadrics

Color BufferDepth BufferStencil BufferAccumulation BufferPolygon tessallationQuadrics:Rendering Spheres, Cylinders and disks

Lecture - Evaluators and NURBS

EvaluatorsThe GLU NURBS Interfaces

Lab

Draw alphabet using DisplayList and BitmapApply texture on earth in Solar System

Day 3 Morning

Lecture - GLSL Shader Programming

GLSL versionsSyntax (Data types, statements, Functionsand Sub routines)Various Shaders (vertex, fragment,geometry) and relations to GraphicsPipelineCreating ShaderInter Shader CommunicationAccessing Texture maps in shaders

© www.MinhInc.com p4

Page 5: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 3 Afternoon

Lecture - OpenGL integration with Qt

gl functions through Qt-QOpenGLFunctionsFramebuffer operationsVertex-QOpenGLVertexArrayObject-QSurfaceFormat-QOpenGLContext-QOpenGLFramebufferObject-QOpenGLFramebufferObjectFormatWindow-QOpenGLWidget-initialzeGL,resizeGL,paintGL functions-painting 2D and 3D togetherShader programming-QOpenGLShader-QOpenGLShaderProgram

Lecture - OpenGL Modeling programs

OpenGL Modeling programs(Overview)- Autodesk- Maya- Google SkethcUpOpenGL Blender- Blender 3D

Lab

Create a cube and place a lightsource

© www.MinhInc.com p5

Page 6: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

OpenGL EssentialsOpenGL Essenstials- Training Course

Minh, Inc.

DISCLAIMERDISCLAIMER

Text of this document is written in Bembo Std Otf(13 pt) font.Text of this document is written in Bembo Std Otf(13 pt) font.

Code parts are written in Consolas (10 pts) font.Code parts are written in Consolas (10 pts) font.

This training material is provided through This training material is provided through Minh, Inc., B'lore, India, B'lore, IndiaPdf version of this document is available at Pdf version of this document is available at http://www.minhinc.com/training/advance-gl-slides.pdfFor suggestion(s) or complaint(s) write to us at For suggestion(s) or complaint(s) write to us at [email protected]

Document modified on Sep-30-2019 Document modified on Sep-30-2019

Document contains 24 pages.Document contains 24 pages.

Page 7: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

1. IntroductionOpenGL - IntroductionOpenGL - IntroductionGPUs, Shaders, Hadrdware AccelerationGPUs, Shaders, Hadrdware Acceleration

OpenGL History and evolutionOpenGL History and evolution

Abstract : OpengGL library is a software interface to graphics hardware. It does not : OpengGL library is a software interface to graphics hardware. It does not provides any windowing system.provides any windowing system.

Day 1 Morning

1. IntroductionOpenGL - IntroductionOpenGL - Introduction

GPUs, Shaders, Hadrdware AccelerationGPUs, Shaders, Hadrdware AccelerationOpenGL History and evolutionOpenGL History and evolution

Abstract:Graphics process unit (GPU) is a special hardware that does faster mathematical:Graphics process unit (GPU) is a special hardware that does faster mathematical computations for matrixes.computations for matrixes.

- OpenGL provide 'C' programming interface to control graphics hardware.- OpenGL does not provide any windowing system or way to control user input.

Note :- OpenGL doesn't provide readymade 3D high level model, like automobile models. It instead provide basic point,line and polygon drawing primitives. GLU library uses glu basic primitives and provides high level mesh, Nurbs surface drawing algorthims.- OpenGL is just an alogorithms which takes input from a) Vertex primitives b) Textures

in order to generate the framebuffer and then finally display buffer. --------------- ------------ | texture | | vertex | | (pixel data)| | primitives| --------------- ------------- | | | | +------------------------------+ | . . | --------------- | Per Fragment| | Operation | --------------- | --------------- | Framebuffer | | Operation | --------------- | v Output dataOpenGL basic architecture is to initialize the various drawing states then draw the primtives | | v --------------- | Set the | | States | |for Primitives| --------------- | | v -------------- | Draw the | | Primitives | -------------- | | v

GPU is a processing unit with its own physical memory. Vertex transformations and Fragment computations are done on GPU.

GPU processes code written in shaders language. Shaders are fed to GPU to make the computation. Most used shaders are- Vertex shaders- Fragment shaders

© www.minhinc.com p6

Page 8: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

1. IntroductionOpenGL - IntroductionOpenGL - Introduction

GPUs, Shaders, Hadrdware AccelerationGPUs, Shaders, Hadrdware Acceleration

OpenGL History and evolutionOpenGL History and evolution

OpenGL is a 3D drawing c APIs developed by Silicon Graphics Inc. (SGI) in 1991. Where it inspired by available Iris 3D GL programming. First version 1.0 was released in 1992 without texture support.

1991-2006 - Silicon Graphics2006 - Khronos Group

Various OpenGL major releasesOpenGL 1.0 (1992)OpenGL 1.1 (1997) - Vertex arrays - Polygon offsets - Texture - Texture proxy - Texture objectsOpenGL 1.2(1998) - 3D textures - pixel formats - vertex array draw element rangeOpengL 1.3 (2001) - Multisample - Multitexture - Transpose matrixOpengGL 1.4 (2002) - Blend squaring - Depth textures and shadows - Fog coordinates - Multiple draw arrays - Stencil wrapOpenGL 1.5 (2003) - Buffer objectsOpenGL 2.0 (2004)--+--- Shader Programming Language introduced - GLSL 1.1 | - Shader programs +---- Fixed line functions implemetented through GLSL internally - Shader objects - Seprate stencilOpenGL 2.1 (2006) - GLSL 1.2 - Pixel buffer objects - sRGB texturesOpenGL 3.0 (2008) - GLSL 1.3 - Framebuffer objects - Multisample renderbuffer objects - conditional rendering - array textures Deprecated features - color index mode - Begin/End primitve - Fixed function vertex processing - Bitmaps - Pixel drawing - Polygon stripple - Display Lists - Texture borders - Alpha test - Accumuation buffers - Evaluators - Fixed function fragment processing - Shading language 1.10 and 1.20OpenGL 3.1 (2009)

© www.minhinc.com p7

Page 9: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

- GLSL 1.40 with Instancing - Deprecated features removed except wide lines - Buffer textures - Rectangle textures /----> core (only programming line functions)OpenGL 3.2 (2009)------- - GLSL 1.5 \----> compatibility (retaining fixed line functions) - Core(no deprecated function) and compatibility profiles(with deprecated functions)OpenGL 3.3 (2010) - GLSL 3.3 - Dual - source blending - Sample Objects - Texture swizzle - Instanced arrays - Vertex attributes 2.10.10.10OpenGL 4.0 (2010) - GLSL 4.0 with tessalation on GPU, shaders with 64-bit precision - Buffer texture - Indirect drawing without multidrawOpenGL 4.1 (2010) - GLSL 4.1 developer-friendly debug output - compatibility with OpenGL ES 2.0 - Query and load binary blob for program objectsOpenGL 4.2 (2011) - GLSL 4.20 Shaders with atomic counters - Allowing shaders to read and write images - Allowing incrementing/decrementing ad fetching of buffer object memory locations from shadersOpenGL 4.3 (2012) - GLSL 4.30 Compute shaders leveraging GPU parallelism - shader storage buffer objectsOpenGL 4.4 (2013) - GLSL 4.40 Buffer Placement Control - Shader Variable Layout - Bindless Texture Extension - Sparse Texture ExtensionOpenGL 4.5 (2014) - GLSL 4.50 Direct State Access (DSA) - Flush Control - DX11 emulation featuresOpenGL 4.6 (2017) - GLSL 4.60 More efficient geometry processing and shader execution - polygon offset clamp - SPIR-V - anisotropic filtering

Any functions introduced by venders gets vendor name, i.e NVI introduced constants are GL_NV_half_float, GL_HALF_FLOAT_NV and the function glVertex2hNV(). If these functions become ubiquitous then it is introduced as EXT or ARB (Archtecture review board) extension. Khronos group is new name for ARB group.OpenGL stack on Linux

© www.minhinc.com p8

Page 11: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygonState managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState managementNormal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vectorVertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex arrayAttribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groupsInline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functionsglu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

© www.minhinc.com p10

Page 12: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library functionBuffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer ObjectsExample, building sphere, cylinder,Example, building sphere, cylinder, cone cone

Day 1 Morning

2. Drawing PrimitivesDescribing points, lines and polygonDescribing points, lines and polygon

State managementState management

Normal vectorNormal vector

Vertex arrayVertex array

Attribute groupsAttribute groups

Inline functionsInline functions

glu library functionglu library function

Buffer ObjectsBuffer Objects

Example, building sphere, cylinder,Example, building sphere, cylinder,conecone

© www.minhinc.com p11

Page 13: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

3. ViewingTransformationsTransformationsViewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformationsProjection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformationsGrand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systemsFix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systemsManaging Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systemsManipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrixExample, Building a solar systemExample, Building a solar system

© www.minhinc.com p12

Page 14: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks.- ModelView matrix- ModelView matrix- Project matrix- Project matrixExample, Building a solar systemExample, Building a solar system

Day 1 Morning

3. ViewingTransformationsTransformations

Viewing and Modeling transformationsViewing and Modeling transformations

Projection and Viewport transformationsProjection and Viewport transformations

Grand coordinate systemsGrand coordinate systems

Fix coordinate systemsFix coordinate systems

Managing Local coordinate systemsManaging Local coordinate systems

Manipulating Matrix Stacks.Manipulating Matrix Stacks. - ModelView matrix - ModelView matrix - Project matrix - Project matrix

Example, Building a solar systemExample, Building a solar system

© www.minhinc.com p13

Page 15: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 1 Morning

4. Color & LightingRGBA and Color index modeRGBA and Color index modeColor and Shading modeColor and Shading mode

Creating Light sourceCreating Light source

Selecting lighting modelSelecting lighting model

Defining material propertiesDefining material properties

Day 1 Morning

4. Color & LightingRGBA and Color index modeRGBA and Color index mode

Color and Shading modeColor and Shading modeCreating Light sourceCreating Light source

Selecting lighting modelSelecting lighting model

Defining material propertiesDefining material properties

Day 1 Morning

4. Color & LightingRGBA and Color index modeRGBA and Color index mode

Color and Shading modeColor and Shading mode

Creating Light sourceCreating Light sourceSelecting lighting modelSelecting lighting model

Defining material propertiesDefining material properties

Day 1 Morning

4. Color & LightingRGBA and Color index modeRGBA and Color index mode

Color and Shading modeColor and Shading mode

Creating Light sourceCreating Light source

Selecting lighting modelSelecting lighting modelDefining material propertiesDefining material properties

Day 1 Morning

4. Color & LightingRGBA and Color index modeRGBA and Color index mode

Color and Shading modeColor and Shading mode

Creating Light sourceCreating Light source

Selecting lighting modelSelecting lighting model

Defining material propertiesDefining material properties

© www.minhinc.com p14

Page 16: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Morning

5. Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThe source and destination factors in blendingThree dimensional blending with the Depth BufferThree dimensional blending with the Depth Buffer

Antialiasing Geometric Primitives with MultisamplingAntialiasing Geometric Primitives with Multisampling

Fog equationsFog equations

Polygon OffsetPolygon Offset

Day 2 Morning

5. Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThe source and destination factors in blending

Three dimensional blending with the Depth BufferThree dimensional blending with the Depth BufferAntialiasing Geometric Primitives with MultisamplingAntialiasing Geometric Primitives with Multisampling

Fog equationsFog equations

Polygon OffsetPolygon Offset

Day 2 Morning

5. Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThe source and destination factors in blending

Three dimensional blending with the Depth BufferThree dimensional blending with the Depth Buffer

Antialiasing Geometric Primitives withAntialiasing Geometric Primitives withMultisamplingMultisamplingFog equationsFog equations

Polygon OffsetPolygon Offset Day 2 Morning

5. Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThe source and destination factors in blending

Three dimensional blending with the Depth BufferThree dimensional blending with the Depth Buffer

Antialiasing Geometric Primitives with MultisamplingAntialiasing Geometric Primitives with Multisampling

Fog equationsFog equationsPolygon OffsetPolygon Offset

Day 2 Morning

5. Blending, Antialiasing, Fog and Polygon Offset

The source and destination factors in blendingThe source and destination factors in blending

Three dimensional blending with the Depth BufferThree dimensional blending with the Depth Buffer

Antialiasing Geometric Primitives with MultisamplingAntialiasing Geometric Primitives with Multisampling

Fog equationsFog equations

Polygon OffsetPolygon Offset

© www.minhinc.com p15

Page 17: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display listExecuting multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and Fonts

ImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display listsManaging state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and Fonts

ImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display listsBitmaps and FontsBitmaps and Fonts

ImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and FontsImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and Fonts

ImagesImagesImaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

© www.minhinc.com p16

Page 18: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and Fonts

ImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel MappingUsing Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel Data- Using Buffer Objects in Transfer and Retrieve Pixel Data

Day 2 Morning

6. Display List & Pixel OperationCreating and executing a display listCreating and executing a display list

Executing multiple display listsExecuting multiple display lists

Managing state variable with display listsManaging state variable with display lists

Bitmaps and FontsBitmaps and Fonts

ImagesImages

Imaging pipelineImaging pipeline- Pixel Packing and Unpacking, 32 and 64 bit- Pixel Packing and Unpacking, 32 and 64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Controlling Pixel-Storage Modes, 32-64 bit- Pixel-Transfer Operations- Pixel-Transfer Operations- Pixel Mapping- Pixel Mapping

Using Buffer Objects with Pixel Rectangle DataUsing Buffer Objects with Pixel Rectangle Data- Using Buffer Objects in Transfer and Retrieve Pixel- Using Buffer Objects in Transfer and Retrieve PixelDataData

© www.minhinc.com p17

Page 19: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mappingSpecifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple Level

FilteringFilteringTexture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture ObjectTexture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner function

MultitexturingMultitexturingThe texture matrix stackThe texture matrix stack

Depth textureDepth texture

© www.minhinc.com p18

Page 20: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stackDepth textureDepth texture

Day 2 Morning

7. Texture MappingSteps in texture mappingSteps in texture mapping

Specifying the textureSpecifying the texture- Texture Proxy, Texture Array- Texture Proxy, Texture Array- Mipmaps:Multiple Level- Mipmaps:Multiple LevelFilteringFiltering

Texture ObjectTexture Object

Texture FunctionsTexture Functions- Texture combiner function- Texture combiner functionMultitexturingMultitexturing

The texture matrix stackThe texture matrix stack

Depth textureDepth texture

© www.minhinc.com p19

Page 21: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor BufferDepth BufferDepth Buffer

Stencil BufferStencil Buffer

Accumulation BufferAccumulation Buffer

Polygon tessallationPolygon tessallation

Quadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor Buffer

Depth BufferDepth BufferStencil BufferStencil Buffer

Accumulation BufferAccumulation Buffer

Polygon tessallationPolygon tessallation

Quadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor Buffer

Depth BufferDepth Buffer

Stencil BufferStencil BufferAccumulation BufferAccumulation Buffer

Polygon tessallationPolygon tessallation

Quadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor Buffer

Depth BufferDepth Buffer

Stencil BufferStencil Buffer

Accumulation BufferAccumulation BufferPolygon tessallationPolygon tessallation

Quadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor Buffer

Depth BufferDepth Buffer

Stencil BufferStencil Buffer

Accumulation BufferAccumulation Buffer

Polygon tessallationPolygon tessallationQuadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

Day 2 Afternoon

8. Framebuffer, Tessallators & QuadricsColor BufferColor Buffer

Depth BufferDepth Buffer

Stencil BufferStencil Buffer

Accumulation BufferAccumulation Buffer

Polygon tessallationPolygon tessallation

Quadrics:Rendering Spheres, Cylinders and disksQuadrics:Rendering Spheres, Cylinders and disks

© www.minhinc.com p20

Page 22: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

Day 2 Afternoon

9. Evaluators and NURBSEvaluatorsEvaluatorsThe GLU NURBS InterfacesThe GLU NURBS Interfaces

Day 2 Afternoon

9. Evaluators and NURBSEvaluatorsEvaluators

The GLU NURBS InterfacesThe GLU NURBS Interfaces

© www.minhinc.com p21

Page 23: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

© www.minhinc.com p22

Page 24: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

© www.minhinc.com p23

Page 25: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

© www.minhinc.com p24

Page 26: OpenGL Essentials Training · Overview Understanding principles of 3D programming Understanding drawing Primitives Understanding transformation matrix and Coloring Understanding Blending

www.minhinc.com©