Historique des modifications - Message

Message #4624

Sujet: shader sous 3ds max et irrlicht


Type Date Auteur Contenu
Dernière modification 22-10-2008 16:04:03 Piraaate
Content de lire que tu t'en es sorti !

johnplayer Ecris:

Sinon, en glsl il faut transmettre les variables déclarées avec uniform (uniform type_variable nom_de_la_variable), les autres sont internes au shader.

Tu as raison, c'est valable en hlsl aussi.



johnplayer Ecris:

Dans Irrlicht fonction appelante shader :
services->setPixelShaderConstant("RTTexture", 0, 1); // transmission d'une texture avec 0 l'id de la layer et 1 le nombre de variables 
                                                     // transmises.


Par contre je suis étonné de voir le code précédent, mais après tout pourquoi pas c'est peut être une différence d'utilisation entre glsl et hlsl (je n'ai vraiment utilisé que hlsl).
Car en hlsl tu déclares ta texture comme ça:
uniform sampler2D   baseMap     : register(s0);

Et du coup pas besoin de rappeller lors de la callback car D3D sera "setté" comme il faut lors du rendu du mesh... Ceci devrait répondre à ta question tmyke car le settexture dont tu parles est fait à ce moment là, me trompe-je ?
Création du message 22-10-2008 16:01:02 Piraaate
Content de lire que tu t'en es sorti !

johnplayer Ecris:

Sinon, en glsl il faut transmettre les variables déclarées avec uniform (uniform type_variable nom_de_la_variable), les autres sont internes au shader.

Tu as raison, c'est valable en hlsl aussi.



johnplayer Ecris:

Dans Irrlicht fonction appelante shader :
services->setPixelShaderConstant("RTTexture", 0, 1); // transmission d'une texture avec 0 l'id de la layer et 1 le nombre de variables 
                                                     // transmises.


Par contre je suis étonné de voir le code précédent, mais après tout pourquoi pas c'est peut être une différence d'utilisation entre glsl et hlsl (je n'ai vraiment utilisé que hlsl).
Car en hlsl tu déclares ta texture comme ça:
uniform sampler2D   baseMap     : register(s0);

Et du coup pas besoin de rappeller lors de la callback car D3D sera "setté" comme il faut lors du rendu du mesh... Ceci devrait répondre à ta question tmyke car le settexture dont tu parles est fait à ce moment là, me trompe-je ?

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
158 invités en ligne
membre en ligne: -
RSS Feed