Historique des modifications - Message

Message #10842

Sujet: Avoir la main verte


Type Date Auteur Contenu
Création du message 16-10-2012 16:08:22 johnplayer
réponse à EDIT:
ESCENE_NODE_TYPE est une énumération donc modification des sources pour l'ajout d'une valeur.

réponse à EDIT2:
Pour ton callback, pourquoi t'embêter? Copies celui que je t'ai donné.

Pour les shaders rien de compliqué:

Le callback sert de lien entre ton programme C++ et le fichier de shader.

Dans le fichier shader, quand tu veux importer une valeur depuis ton programme C++, tu la déclares uniform.
ex: uniform float alpha; // Le GPU s'attendra alors à ce que tu lui envoie la valeur de cette variable depuis le callback

Pour envoyer la valeur depuis ton programme C++, tu mets dans ton callback:

1/ Si c'est une variable utilisé par le pixel shader:
services->setPixelShaderConstant("alpha", &alpha_herbe, 1);

2/ Si c'est une variable utilisé par le vertex shader:
services->setVertexShaderConstant("alpha", &alpha_herbe, 1);

Le premier paramètre, c'est le nom de la variable dans le fichier de shader dans ce cas c'est "alpha" car on a déclaré "uniform float alpha". le deuxième, un pointeur sur une variable float. Le troisième, c'est le nombre de float que tu envoies.
Par exemple, une matrice c'est au final un float[4][4], en mémoire ça équivaut à un float[16]. Donc tu mettras : services->setVertexShaderConstant("mWorldViewProj", mWorldViewProj.pointer(), 16);.

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
243 invités en ligne
membre en ligne: -
RSS Feed