Historique des modifications - Message

Message #10842

Sujet: Avoir la main verte


TypeDateAuteurContenu
Création du message16-10-2012 16:08:22johnplayer
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

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
82 invités en ligne
membre en ligne: -
RSS Feed