2016-09-17 2 views

Répondre

3

De https://www.opengl.org/wiki/Type_Qualifier_(GLSL):

qualificatifs interpolations

Certaines entrées et sorties peuvent utiliser des qualificatifs d'interpolation. Ce sont pour toutes les valeurs qui pourraient être interpolées à la suite de la pixellisation. Ceux-ci comprennent:

  • Vertex sorties shader
  • entrées de shaders de commande de tessellation (pour correspondre avec les sorties de la VS)
  • sorties de shaders d'évaluation de tessellation
  • entrées de shaders de géométrie (pour correspondre avec les sorties du TES/VS) et sorties
  • entrées fragment shader

Les qualificatifs d'interpolation contrôlent la façon dont l'interpolation des valeurs se produit à travers un triangle ou une autre primitive. Il existe trois qualificatifs d'interpolation de base.

plat

La valeur ne sera pas interpolé. La valeur donnée au fragment shader est la valeur du sommet Provoking pour cette primitive.

noperspective

La valeur sera interpolée linéairement dans la fenêtre de l'espace. Ce n'est généralement pas ce que vous voulez, mais il peut avoir ses utilisations.

lisse

La valeur sera interpolée de façon en perspective correcte. C'est la valeur par défaut si aucun qualificateur n'est présent.


Puisque smooth est la valeur par défaut, OpenGL l'interpole pour vous. Si vous ne voulez pas l'interpolation, vous devez définir votre couleur dans vos shaders avec le mot clé plat, quelque chose comme ceci:

flat vec3 color;