Historique des modifications - Message

Message #7998

Sujet: Environement 3D


Type Date Auteur Contenu
Dernière modification 20-02-2010 19:19:50 Ilovechocolat
Et pour le vertex shader, je met juste le truc de base ?

Code c++ :

void main(void)
{
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}


PS : a partir de demain, je ne serait pas en mesure de bosser avant la rentré (vacance oblige).

[EDIT] Il doit y avoir une erreur dans le code de ma pixel shader, toute la texture est de couleur violette (donc un mélange de rouge et bleu) et unis (apparemment ça fait les calculs sur la couleur globale des textures).

Code c++ :

uniform sampler2D blueTexture;
uniform sampler2D redTexture;

void main(void)
{
	vec4 finalColor;
	vec4 blueColor = texture2D(blueTexture, vec2(gl_TexCoord[0]));
	vec4 redColor = texture2D(redTexture, vec2(gl_TexCoord[0]));
	finalColor.b = blueColor.r * 0.299 + blueColor.b * 0.114 + blueColor.g * 0.587;
	finalColor.a = 255;
	finalColor.g = 0;
	finalColor.r = redColor.r * 0.299 + redColor.b * 0.114 + redColor.g * 0.587;
	gl_FragColor = finalColor;
}

Ma class de shader :

Code c++ :

class RenderShader3D : public irr::video::IShaderConstantSetCallBack
{
public:
	virtual void OnSetConstants(irr::video::IMaterialRendererServices* services, irr::s32 userData)
	{
		int a = 0; services->setPixelShaderConstant("blueTexture", (const float*)&a, 1);
		a = 1; services->setPixelShaderConstant("redTexture", (const float*)&a, 1);
	}
};
Création du message 20-02-2010 18:50:57 Ilovechocolat
Et pour le vertex shader, je met juste le truc de base ?

Code c++ :

void main(void)
{
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}


PS : a partir de demain, je ne serait pas en mesure de bosser avant la rentré (vacance oblige).

[EDIT] Il doit y avoir une erreur dans le code de ma pixel shader, toute la texture est de couleur violette (donc un mélange de rouge et bleu) et unis (apparemment ça fait les calculs sur la couleur globale des textures).

Code c++ :

uniform sampler2D blueTexture;
uniform sampler2D redTexture;

void main(void)
{
	vec4 finalColor;
	vec4 blueColor = texture2D(blueTexture, vec2(gl_TexCoord[0]));
	vec4 redColor = texture2D(redTexture, vec2(gl_TexCoord[0]));
	finalColor.b = blueColor.r * 0.299 + blueColor.b * 0.114 + blueColor.g * 0.587;
	finalColor.a = 255;
	finalColor.g = 0;
	finalColor.r = redColor.r * 0.299 + redColor.b * 0.114 + redColor.g * 0.587;
	gl_FragColor = finalColor;
}

Ma class de shader :

Code c++ :

class RenderShader3D : public irr::video::IShaderConstantSetCallBack
{
public:
	virtual void OnSetConstants(irr::video::IMaterialRendererServices* services, irr::s32 userData)
	{
		int a = 0; services->setPixelShaderConstant("blueTexture", (const float*)&a, 1);
		a = 1; services->setPixelShaderConstant("redTexture", (const float*)&a, 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
156 invités en ligne
membre en ligne: -
RSS Feed