-
Notifications
You must be signed in to change notification settings - Fork 15
Getting Started Review
Erik van Bilsen edited this page Dec 26, 2016
·
1 revision
Congratulations on reaching the end of the Getting started section. By now you should be able to create a window/app, create and compile shaders, send vertex data to your shaders via buffer objects or uniforms, draw objects, use textures, understand vectors and matrices and combine all that knowledge to create a full 3D scene with a camera to play around with.
Phew, that is a lot that we learned these last few chapters. Try to play around with the tutorials, experiment a bit or come up with your own ideas and solutions to some of the problems. As soon as you feel you got the hang of all the materials we've discussed it's time to move on to the [next](2.1 Colors) tutorials.
- OpenGL: a formal specification of a graphics API that defines the layout and output of each function.
- Viewport: the window where we render to.
- Graphics Pipeline: the entire process a vertex has to walk through before ending up as a pixel on your screen.
- Shader: a small program that runs on the graphics card. Several stages of the graphics pipeline can use user-made shaders to replace existing functionality.
- Vertex: a collection of data that represent a single point.
- Normalized Device Coordinates: the coordinate system your vertices end up in after clipping and perspective division is performed on clip coordinates. All vertex positions in NDC between -1.0 and 1.0 will not be discarded and end up visible.
- Vertex Buffer Object: a buffer object that allocates memory and stores all the vertex data for the graphics card to use.
- Vertex Array Object: stores buffer and vertex attribute state information.
- Element Buffer Object: a buffer object that stores indices for indexed drawing.
- Uniform: a special type of GLSL variable that is global (each shader in a shader program can access this uniform variable) and only has to be set once.
- Texture: a special type of image wrapped around objects, giving the illusion an object is extremely detailed.
- Texture Wrapping: defines the mode that specifies how OpenGL should sample textures when texture coordinates are outside the range: (0, 1).
- Texture Filtering: defines the mode that specifies how OpenGL should sample the texture when there are several texels (texture pixels) to choose from. This usually occurs when a texture is magnified.
- Mipmaps: stored smaller versions of a texture where the appropriate sized version is chosen based on the distance to the viewer.
- DelphiStb: various public domain libraries, including an image loading library.
- Texture Units: allows for multiple textures on a single object by binding multiple textures each to a different texture unit.
- Vector: a mathematical entity that defines directions and/or positions in any dimension.
- Matrix: a rectangular array of mathematical expressions.
- FastMath: a fast mathematics library tailored that also works well with OpenGL.
- Local Space: the space an object begins in. All coordinates relative to an object's origin.
- World Space: all coordinates relative to a global origin.
- View Space: all coordinates as viewed from a camera's perspective.
- Clip Space: all coordinates as viewed from the camera's perspective but with projection applied. This is the space the vertex coordinates should end up in, as output of the vertex shader. OpenGL does the rest (clipping/perspective division).
- Screen Space: all coordinates as viewed from the screen. Coordinates range from 0 to screen width/height.
- LookAt: a special type of view matrix that creates a coordinate system where all coordinates are rotated and translated in such a way that the user is looking at a given target from a given position.
- Euler Angles: defined as yaw, pitch and roll that allow us to form any 3D direction vector from these 3 values.
⬅️ [1.7 Camera](1.7 Camera) | Contents | [2.1 Colors](2.1 Colors) ➡️ |
---|
Learn OpenGL(ES) with Delphi
-
- Getting Started
- OpenGL (ES)
- [Creating an OpenGL App](Creating an OpenGL App)
- [1.1 Hello Window](1.1 Hello Window)
- [1.2 Hello Triangle](1.2 Hello Triangle)
- [1.3 Shaders](1.3 Shaders)
- [1.4 Textures](1.4 Textures)
- [1.5 Transformations](1.5 Transformations)
- [1.6 Coordinate Systems](1.6 Coordinate Systems)
- [1.7 Camera](1.7 Camera)
- [Review](Getting Started Review)
-
- Lighting
- [2.1 Colors](2.1 Colors)
- [2.2 Basic Lighting](2.2 Basic Lighting)
- [2.3 Materials](2.3 Materials)
- [2.4 Lighting Maps](2.4 Lighting Maps)
- [2.5 Light Casters](2.5 Light Casters)
- [2.6 Multiple Lights](2.6 Multiple Lights)
- [Review](Lighting Review)
-
- Model Loading
- [3.1 OBJ Files](3.1 OBJ Files)
- [3.2 Mesh](3.2 Mesh)
- [3.3 Model](3.3 Model)
-
- Advanced OpenGL
- [4.1 Depth Testing](4.1 Depth Testing)
- [4.2 Stencil Testing](4.2 Stencil Testing)
- [4.3 Blending](4.3 Blending)
- [4.4 Face Culling](4.4 Face Culling)
- [4.5 Framebuffers](4.5 Framebuffers)
- [4.6 Cubemaps](4.6 Cubemaps)
- [4.7 Advanced Data](4.7 Advanced Data)
- [4.8 Advanced GLSL](4.8 Advanced GLSL)
- [4.9 Geometry Shader](4.9 Geometry Shader)
- 4.10Instancing
- [4.11 Anti Aliasing](4.11 Anti Aliasing)
-
- Advanced Lighting
- [5.1 Advanced Lighting](5.1 Advanced Lighting)
- [5.2 Gamma Correction](5.2 Gamma Correction)
- [5.3 Shadows](5.3 Shadows)
- [5.3.1 Shadow Mapping](5.3.1 Shadow Mapping)
- [5.3.2 Point Shadows](5.3.2 Point Shadows)
- [5.3.3 CSM](5.3.3 CSM)
- [5.4 Normal Mapping](5.4 Normal Mapping)
- [5.5 Parallax Mapping](5.5 Parallax Mapping)
- [5.6 HDR](5.6 HDR)
- [5.7 Bloom](5.7 Bloom)
- [5.8 Deferred Shading](5.8 Deferred Shading)
- [5.9 SSAO](5.9 SSAO)
-
- PBR
-
- In Practice
- [7.1 Debugging](7.1 Debugging)
- [Text Rendering](Text Rendering)
- [2D Game](2D Game)
- Breakout
- [Setting Up](Setting Up)
- [Rendering Sprites](Rendering Sprites)
- Levels
-
Collisions
- Ball
- [Collision Detection](Collision Detection)
- [Collision Resolution](Collision Resolution)
- Particles
- Postprocessing
- Powerups
- Audio
- [Render Text](Render Text)
- [Final Thoughts](Final Thoughts)