- The first step in the graphics application is sending the vertex data to the GPU for rendering
- Vertex stream : les données des vertex analysées et calculées par le GPU
- GL_POINTS : pour faire le rendu des particles par exemple
- ..._STRIP : pour connecter entre-elles une série de primitives
- Rasterizer : convertie les primitives depuis l'ensemble des primitives en fragments (pour devenir des pixels d'écran)
- GL_ALPHA_TEST : fragments can be discarded if the alpha value is below a certain threshold
- Depth : si le fragment échoue au test de profondeur (GL_DEPTH_TEST) avec la fonction de comparaison, le fragment est ignoré
- Stencil : The stencil test can be used to discard fragments that fail a stencil comparison operation based on the content of the stencil buffer
- Color Buffer Blend : glEnable(GL_BLEND) ; un fragment source (correspondant à ceux affichés), un fragment destination (correspondant au framebuffer), une fonction de blending. Cette opération est effectuée en mélangeant les couleurs et les valeurs alpha du fragment source + le fragment destination
- Dither : une forme de bruit pour simuler une palette de couleur plus large en mélangeant les couleurs de proche proximité
- Geometry shader : can be used to process primitives of one type and generate primitives of another type
- OpenGL 4.0 : these three new stages form the Tesselation stages
- Tesselation : 3 étapes, Tesselation Control Shader puis le Tessellator puis le Tessellation Evaluation Shader le Tessellator n'est pas programmalable
- GL_PATCH : type de primitive pour la Tesselation (stream of vertices)
- Tesselator : détermine combien de vertices à générer, dans quel ordre le faire, et quelles sortes de primitives construire en sortie
- FreeGLUT : alternative à GLUT (qui est délaissé) - fenêtrage, entrées clavier et souris
- GLEW : accès aux coeurs d'OpenGL et ses extensions qui ne sont pas disponibles dans les fichiers d'en-tête du compilateur !
- GLM : librairie mathématique
- PCH : PreCompiled Header
- GLEW_STATIC : macro definition is required when we are linking against the GLEW static library
- The wglew.h is required for access to the wglSwapInterval function (pour désactiver la vsync pour que le programme tourne à vitesse maximale). Instead of waiting for the vertical refresh which is usually 60 Hz !
- #ifdef _WIN32 #endif pour coder uniquement une portion sous Windows
- OpenGL32.dll under the \system32 folder
- (time.h) : this header file contains definitions of functions to get and manipulate date and time information
- Pour pouvoir utiliser OpenGL il faut télécharger les derniers drivers de sa carte graphique
- GLM_FORCE_RADIANS : force GLM à utiliser les radians en terme d'angle
- Vertex Array Object : can be used to bind all of the vertex attributes and the index buffer into a single argument
- au début du vertex shader program : #version 330 core (specifies which version of GLSL this shader will be compiled with)
- layout(location=0) in vec3 in_position; layout(location=1) in vec3 in_color;
- bind the vertex position stream to attribute ID 0 and the vertex color stream to attribute ID 1
- the in modifier indicates that this variable is input data
- out vec4 v2f_color;
- the out modifier indicates that this is variable will be used as output from this shader
- le mot-clé "uniform" indique que la valeur de la variable sera la même pour chaque invocation du programme shader !
- void main() { [contenu du shader...] }
- w-component of the vector : 1 si c'est un point vector : 0 si c'est un direction vector.
- l'ordre des vertices envoyé au GPU a de l'importance. Les primitives sont supprimées lorqu'elles ne sont pas en face de la caméra. On nomme cette condition "winding order". The default winding order of front-facing triangles is counter-clockwise.