Historique des modifications - Message

Message #7998

Sujet: Environement 3D


TypeDateAuteurContenu
Dernière modification20-02-2010 19:19:50Ilovechocolat
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 message20-02-2010 18:50:57Ilovechocolat
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

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