Historique des modifications - Message

Message #11820

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


TypeDateAuteurContenu
Dernière modification03-06-2017 22:53:02jonath313
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 message03-06-2017 22:51:28jonath313
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

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