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

Textures

Fragment Shader

  • Ajouter une variable uniform sampler2D uKdSampler, destiné à pointer sur une texture des couleurs diffuses pour l'objet en cours de rendu.
  • Dans le main, utiliser la fonction GLSL texture afin de lire le sampler en utiliser les tex coords du fragment.
  • Multiplier la valeur lue avec la variable uKd pour obtenir le coefficient diffus final de l'objet, à utiliser pour l'illumination

Application

A l'initialisation

  • Charger deux images de votre choix à utiliser en temps que texture diffuse de chacun de nos objets (utiliser la classe glmlv::Image2DRGBA et la fonction glmlv::readImage)
  • Construire deux texture objects OpenGL et envoyer les pixel des deux images chargés dans ces texture objects
  • Construire un sampler object OpenGL et fixer les paramètres GL_TEXTURE_MIN_FILTER et GL_TEXTURE_MAG_FILTER à GL_LINEAR pour ce sampler
  • Récuperer la location de l'uniform sampler2D uKdSampler

Au rendu

  • Binder la texture sur la texture unit 0
  • Binder le sampler sur la texture unit 0

Fonctions GL à utiliser:

A l'initialisation:

Sans DSADSA
glActiveTexture(GL_TEXTURE0)
glGenTexturesglCreateTextures
glBindTexture(GL_TEXTURE_2D, texID)
glTexStorage2DglTextureStorage2D
glTexSubImage2DglTextureSubImage2D
glGenSamplersglCreateSamplers
glSamplerParameteriglSamplerParameteri

Au rendu:

Sans DSADSA
glActiveTexture(GL_TEXTURE0)
glUniform1i(location, 0)glUniform1i(location, 0)
glBindSampler(0, samplerID)glBindSampler(0, samplerID)
glBindTexture(GL_TEXTURE_2D, texID)glBindTextureUnit(0, texID)
← LightingChargement de modèles OBJ →
  • Fragment Shader
  • Application
OpenGL["noël"]
About Me
Personal websiteGithub
About This Website
BlogopenglnoelPowered by Docusaurus
About OpenGL
Documentation (docs.gl)Wiki
Copyright © 2021 Laurent NOEL