• Aucun résultat trouvé

GLSL 1.10.59 : aide m´emoire

N/A
N/A
Protected

Academic year: 2022

Partager "GLSL 1.10.59 : aide m´emoire"

Copied!
2
0
0

Texte intégral

(1)

GLSL 1.10.59 : aide m ´emoire

Types de donn´ees

Types r´eels : float, vec2, vec3, vec4 Types entiers : int, ivec2, ivec3, ivec4 Types bool´eens : bool, bvec2, bvec3, bvec4 Matrices carr´ees : mat2, mat3, mat4

Textures : sampler1D, sampler2D,

sampler3D, samplerCube, sampler1DShadow, sam- pler2DShadow

Last but not least : void

Modificateurs de type

Variables globales

uniform Entr´ees desvertexetfragment shaders(lec- ture seule) ;

attribute Entr´ees par sommet duvertex shader (lec- ture seule) ;

varying Sorties du vertex shader (lecture/´ecriture), interpol´ees et fournies en entr´ee dufragment shader(lecture seule) ;

const Constante connue d`es la compilation (lec- ture seule).

Param`etres de fonction

in initialis´e `a l’entr´ee, non modifi´e en sortie (d´efaut) ;

out modifi´e en sortie, non initialis´e `a l’entr´ee ; inout initialis´e `a l’entr´ee, modifi´e en sortie ; const valeur constante (non modifiable).

Composantes de vecteurs

x, y, z, w ou r, g, b, a ou s, t, p, q

Fonctions pr´ed´efinies

L´egende :

vec : vec2 — vec3 — vec4 mat : mat2 — mat3 — mat4 ivec : ivec2 — ivec3 — ivec4 bvec : bvec2 — bvec3 — bvec4 tGen : float — vec2 — vec3 — vec4

Fonctions trigonom´etriques

tGen sin( tGen ) tGen cos( tGen ) tGen tan( tGen ) tGen asin( tGen ) tGen acos( tGen ) tGen atan( tGen, tGen ) tGen atan( tGen ) tGen radians( tGen ) tGen degrees( tGen )

Fonctions exponentielles

tGen pow( tGen, tGen ) tGen exp( tGen ) tGen log( tGen ) tGen exp2( tGen ) tGen log2( tGen ) tGen sqrt( tGen ) tGen inversesqrt( tGen )

Fonctions geom´etriques

vec3 cross( vec3, vec3 ) float distance( tGen, tGen ) float dot( tGen, tGen )

tGen faceforward(tGen V,tGen I,tGen N) float length( tGen )

tGen normalize( tGen ) tGen reflect( tGen I, tGen N ) tGen refract( tGen I,tGen N,float eta)

Fonctions communes

tGen abs( tGen ) tGen ceil( tGen )

tGen clamp( tGen, tGen, tGen ) tGen clamp( tGen, float, float ) tGen floor( tGen )

tGen fract( tGen ) tGen max( tGen, tGen ) tGen max( tGen, float ) tGen min( tGen, tGen ) tGen min( tGen, float ) tGen mix( tGen, tGen, tGen) tGen mix( tGen, tGen, float ) tGen mod( tGen, tGen ) tGen mod( tGen, float ) tGen sign( tGen )

tGen smoothstep( tGen, tGen, tGen ) tGen smoothstep( float, float, tGen ) tGen step( tGen, tGen )

tGen step( float, tGen )

Relations vectorielles

bool all( bvec ) bool any( bvec ) bvec equal( vec, vec ) bvec equal( ivec, ivec ) bvec equal( bvec, bvec ) bvec greaterThan( vec, vec ) bvec greaterThan( ivec, ivec ) bvec greaterThanEqual( vec, vec ) bvec greaterThanEqual( ivec, ivec ) bvec lessThan( vec, vec )

bvec lessThan( ivec, ivec ) bvec lessThanEqual( vec, vec ) bvec lessThanEqual( ivec, ivec ) bvec not( bvec )

bvec notEqual( vec, vec ) bvec notEqual( ivec, ivec ) bvec notEqual( bvec, bvec )

(2)

Fonctions matricielles

mat matrixCompMult( mat, mat ) mat transpose( mat )

Echantillonnage de textures

vec4 texture1D( sampler1D, float [,float bias] ) vec4 texture1DProj( sampler1D, vec2 [,float bias] ) vec4 texture1DProj( sampler1D, vec4 [,float bias] ) vec4 texture2D( sampler2D, vec2 [,float bias] ) vec4 texture2DProj( sampler2D, vec3 [,float bias] ) vec4 texture2DProj( sampler2D, vec4 [,float bias] ) vec4 texture3D( sampler3D, vec3 [,float bias] ) vec4 texture3DProj( sampler3D, vec4 [,float bias] ) vec4 textureCube( samplerCube, vec3 [,float bias] ) vec4 shadow1D( sampler1DShadow, vec3 [,float bias] ) vec4 shadow2D( sampler2DShadow, vec3 [,float bias] ) vec4 shadow1DProj(sampler1DShadow,vec4 [,float bias]) vec4 shadow2DProj(sampler2DShadow,vec4 [,float bias])

Echantillonnage de texture avec niveau de d´etail (LOD)

(A n’utiliser que dans levertex shader)

vec4 texture1DLod( sampler1D, float, float lod ) vec4 texture1DProjLod( sampler1D, vec2, float lod ) vec4 texture1DProjLod( sampler1D, vec4, float lod ) vec4 texture2DLod( sampler2D, vec2, float lod ) vec4 texture2DProjLod( sampler2D, vec3, float lod ) vec4 texture2DProjLod( sampler2D, vec4, float lod ) vec4 texture3DProjLod( sampler3D, vec4, float lod ) vec4 textureCubeLod( samplerCube, vec3, float lod ) vec4 shadow1DLod( sampler1DShadow, vec3, float lod ) vec4 shadow2DLod( sampler2DShadow, vec3, float lod ) vec4 shadow1DProjLod(sampler1DShadow,vec4,float lod) vec4 shadow2DProjLod(sampler2DShadow,vec4,float lod)

Traitement des fragments

(A n’utiliser que dans lefragment shader)

tGen dFdx( tGen ) tGen dFdy( tGen ) tGen fwidth( tGen )

Variables sp´eciales du vertex shader

Sortie (acc`es en lecture/´ecriture)

vec4 gl Position position du sommet (`a modifier imp´erativement) ; float gl PointSize taille du point en pixel ;

vec4 gl ClipVertex coordonn´ees du sommet par rapport aux plans de clipping.

Variables sp´eciales du fragment shader

Sortie (acc`es en lecture/´ecriture)

vec4 gl FragColor couleur du fragment de sortie ; vec4 gl FragData[] donn´ees associ´ees au fragment ; float gl FragDepth profondeur du fragment.

Entr´ees (acc`es en lecture seule)

vec4 gl FragCoord coordonn´ees du fragment

bool gl FrontFacing indique si le fragment est sur le dessus du polygone.

Shaders minimaux avec three.js

Vertex shader

Calcul de la position finale du sommet en effectuant les multiplications matricielles de rigueur.

void main() {

gl_Position = projectionMatrix * modelViewMatrix * vec4(position,1);

}

Fragment shader

Calcul de la couleur finale d’un fragment, ici blanc.

void main() {

gl_FragColor = vec4(1.0,1.0,1.0,1.0);

}

Mis en page par Jean-Yves Didier, le 7/3/2013.

Version originale : Mike Weiblen (http://mew.cx/)

Références

Documents relatifs

To be able to limit the velocity while reaching the desired depth, we chose to control the float with a vec- tor field that links the velocity and the depth error to the depth

Dans ce travail, les echantillons éludies sont des verres float; on va donc, détrdller le de fabrication de verre par flottagef ce denrier est le procedé le plusr

When the deformed wafers are annealed at 1000 °C for I hour, the density of trap levels decreases and the soft breakdown disappears, probably due to a modification of the point

Older ATI hardware performed floating-point operations on a 24-bit format in spite of the fact that they stored values in the IEEE standard 32-bit format as described in table

Par dérogation à ce qui précède, lorsque le fonds est un ETF, les rachats sur le marché primaire peuvent, avec l’accord de la société de gestion de portefeuille et dans le

ﺔﻛﺮﺣ ﻦﯿﻧاﻮﻗ ﺮﯾﻮﻄﺘﺑ ﺮﮭﺘﺷا.. ﻞﺼﻔﻟا اﺬھ ﻲﻓ ﻚﻟذ ﺎﻨﺸﻗﺎﻧ ﺎﻤﻛ ﺔﯾﺮﺋاد ﻲھ ﺔﯿﺑذﺎﺠﻟا ةﻮﻗ ﺰﻛاﺮﻣ لﻮﺣ مﺎﺴﺟﻷا تاراﺪﻣ نأ ﻰﻠﻋ ﺎﻧﺪﺘﻋا

Écrire un programme demande à l’utilisateur de saisir 3 notes au clavier, ainsi que leurs coefficients, puis affiche à la console la moyenne pondérée, en précisant « ajourné »

Exercice 2 (Somme des éléments d’une liste) Écrire une fonction somme_liste.. • d’argument L une liste d’expressions de type