Bonjour,
je me pose une question...
est ce qu'il est possible de passer des paramètres du programme openGL au pixelShader ?
Si oui, comment ?
Les shaders sont tres mysterieux pour moi.. quelqu'un aurait un lien vers un tuto ?
merci d'avance !
Bonjour,
je me pose une question...
est ce qu'il est possible de passer des paramètres du programme openGL au pixelShader ?
Si oui, comment ?
Les shaders sont tres mysterieux pour moi.. quelqu'un aurait un lien vers un tuto ?
merci d'avance !
oui, c'est tout a fait possible (et même tres souvent utilisé).
en fait il existe 2 methode :
la premiere consiste a utiliser des tableau d'attributs qui sont envoyé (c'est la methode a priori la plus "propre" mais aussi celle que je connais le moins)
la seconde consiste à utiliser des parametres standard openGL (texcoord, primary/secondary color et autre), et à les utiliser pour passer les valeurs que tu souhaite...
* Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
* pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
Mes articles
Bonjour Fa7 (joli jeux de mots),
1) quelques liens:
- va voir sur les sites de GameDev + bump mapping Cg (tapes ces mots clés dans google) et navigue un peu : tu trouveras des tutoriaux faciles d'accès pour le départ.
- regardes sur developpez.com (donc ici même) en tapant dans 'rechercher' moteur 3D : tu tomberas sur un exemple simple de moteur 3D qui gère entres autres les shaders (de façon minimale certes mais bien pour le début)
- 3D générale : mandragor + matrices (dans google).
- et surtout : le site NVidia : developper.nvidia.com
- téléchage CG (C for Graphics) qui te permettra de programmer en langage shader et EN C! au lieu de te taper de l'assembleur et DONC des extensions NVidia (ou ATI) assez complexe!! (ARB, Combiners,....)
- et regarde le user manual après avoir installé CG (dans le repertoire d'installation ou dans le menu 'demarrer')
2) en GLSL (shader) :
- 2 types de paramètres:
- paramètres 'uniform' paramètres que tu dois passer toi même, comme des matrices : ModelView, ModelViewProj, InverseTranspose, Inverse,.... ou des paramètres spéculaire, de réflexion, réfraction, ou d'autres de ton choix
- des paramètres qui sont injectés suite à une commande OpenGL comme :
PRGM PRINCIPAL ------- 'MAIN' DES PRGM SHADER (CONTEXTE)
- glVertex*() - position du vertex courant (OSITION)
- glNormal*() - normal du vertex courant (:NORMAL)
- texCoord*() - coordonnées de textures (:TEXCOORD'x')
ou glMultiTexCoord*()
- ActiveTextureARB*() - donne une texture au fragment shader . + un bindtexture() juste après (sampler2D, 3D, CUBE)
etc....
En espérant t'avoir aidé.
Partager