OpenGL["noël"]

OpenGL["noël"]

  • Intro et SDK
  • Bronze
  • Silver
  • Gold
  • Blog
  • OpenGL Documentation
  • OpenGL Wiki
  • GitHub
  • My glTF Viewer Tutorial

›Forward Renderer

Introduction et SDK

  • Introduction
  • Fiche d'information
  • Projet - Un viewer glTF

Forward Renderer

  • Pipeline de Rendu
  • Geometrie
  • Shaders
  • Transformations
  • Lighting
  • Textures
  • Chargement de modèles OBJ
  • Aller plus loin

Deferred Renderer

  • Pipeline de Rendu
  • Geometrie Pass
  • Shading Pass
  • Aller plus loin

Shadow Mapping

  • Introduction
  • Directional Shadow Map
  • Percentage Closest Filtering
  • Aller Plus Loin

Post Processing

  • Introduction
  • Gamma Correction
  • Extraction et Rendu de Contours
  • Depth of Field

Annexe: API OpenGL

  • Contexte OpenGL
  • Pipeline de Rendu
  • Extensions OpenGL
  • Objets OpenGL
  • Buffer Objects
  • Vertex Array Objects
  • Texture Objects
  • Framebuffer Objects
  • Shaders

Shaders

Créez un sous-dossier shaders dans le dossier de l'application foward-renderer et créez le fichiers forward.vs.glsl et forward.fs.glsl.

Voir les différents shaders des applications déjà présente pour vous aider.

Ce TD de l'année précedente explique également la théorie.

Le Vertex Shader

  • Le vertex shader doit prendre en entrée une position (vec3 aPosition), une normale (vec3 aNormal) et des texCoords (vec2 aTexCoords)
  • N'oubliez pas de définir les locations des attributs
  • Ajouter des variable uniformes mat4 uModelViewProjMatrix, mat4 uModelViewMatrix, mat4 uNormalMatrix correspondant aux matrices standard en 3D
  • Ajouter des variables out vec3 vViewSpacePosition, vec3 vViewSpaceNormal, vec2 vTexCoords
  • Dans le main du shader, remplir les différentes variables out et la variable gl_Position en respectant le pseudo-code suivant et en faisant les convertions de type necessaires:
vViewSpacePosition = uModelViewMatrix * aPosition
vViewSpaceNormal = uNormalMatrix * aNormal
vTexCoords = aTexCoords
gl_Position = uModelViewProjMatrix * aPosition

Le Fragment Shader

En attendant d'implémenter un modèle d'illumination, faite en sorte que le fragment shader affiche les normales des objets.

← GeometrieTransformations →
  • Le Vertex Shader
  • Le Fragment Shader
OpenGL["noël"]
About Me
Personal websiteGithub
About This Website
BlogopenglnoelPowered by Docusaurus
About OpenGL
Documentation (docs.gl)Wiki
Copyright © 2021 Laurent NOEL