Historique des modifications - Message

Message #11820

Sujet: Changer la coloration de la texture d'une skybox


Type Date Auteur Contenu
Dernière modification 03-06-2017 22:53:02 jonath313
Salut ! ok pas de soucis, de mon côté je comprends que ce n'est pas une "vrai" solution d'utiliser le fog, je me suis alors mis sur un shader tout simple.

Code c++ :

 
uniform sampler2D Texture1;
uniform float fRed;
uniform float fGreen;
uniform float fBlue;

void main ( void )
{
	vec4 color = texture2D ( Texture1 , gl_TexCoord[0] );
	color = vec4 ( fRed , fGreen , fBlue , 0.0 );
	gl_FragColor = color;
}
çà marche bien, j'arrive a assigner un material de couleur RGB.
Par contre, premier obstacle, la couleur du ciel change en fonction du temps dans mon appli,
et du coups je ne vois pas comment changer dynamiquement les valeurs RGB de mon shader.
Car une seule couleur est créée au moment de l'init, normal :

Code c++ :

 
virtual void OnSetConstants ( video::IMaterialRendererServices* services , s32 userData )
{
          float red = 0.2f;
          float green = 0.9f;
          float blue = 1.0f;
          services->setVertexShaderConstant("fRed", &red, 1);
          services->setVertexShaderConstant("fGreen", &green, 1);
          services->setVertexShaderConstant("fBlue", &blue, 1);
}
Création du message 03-06-2017 22:51:28 jonath313
Salut ! ok pas de soucis, de mon côté je comprends que ce n'est pas une "vrai" solution d'utiliser le fog, je me suis alors mis sur un shader tout simple.

Code c++ :

 
uniform sampler2D Texture1;
uniform float fRed;
uniform float fGreen;
uniform float fBlue;

void main ( void )
{
	vec4 color = texture2D ( Texture1 , gl_TexCoord[0] );
	color = vec4 ( fRed , fGreen , fBlue , 0.0 );
	gl_FragColor = color;
}
çà marche bien, j'arrive a assigner un material de couleur RGB.
Par contre, premier obstacle, la couleur du ciel change en fonction du temps dans mon appli,
et du coups je ne vois pas comment changer dynamiquement les valeurs RGB de mon shader.
Car une seule couleur est créée au moment de l'init, normal :

Code c++ :

 
virtual void OnSetConstants ( video::IMaterialRendererServices* services , s32 userData )
{
          float red = 0.2f;
          float green = 0.9f;
          float blue = 1.0f;
          services->setVertexShaderConstant("fRed", &red, 1);
          services->setVertexShaderConstant("fGreen", &green, 1);
          services->setVertexShaderConstant("fBlue", &blue, 1);
}

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