Historique des modifications - Message

Message #8967

Sujet: Problème Cel-Shading mode WireFrame


Type Date Auteur Contenu
Dernière modification 09-11-2010 10:38:14 narugohan
Bonjour à tous,
C'est encore moi xD, j'ai un problème avec Cel-Shading que j'ai crée.
J'ai crée un shaders GLSL, pour les contour noir, j'utilise une deuxième mesh en wireFrame. Avec une mesh, tout va bien, sa fonctionne. Mon problème, c'est dès que je rajoute une autre mesh, avec elle aussi le mode wireFrame pour les contours noirs, sa ne fonctionne plus, enfin si, la première mesh oui.... mais pas la deuxième, je ne sais pas comment expliqué, une vidéo vous parlera surement mieux : http://www.youtube.com/watch?v=aqCAGhbyRQ0

Et mon code source :
       //shaders Cel-Shading
        irr::video::CShaderPerso* shaderPerso = new irr::video::CShaderPerso(device);
        irr::s32 newMaterial = gpu->addHighLevelShaderMaterialFromFiles(
                    "Shaders/vertex_CelShading.vert", "main", irr::video::EVST_VS_1_1,
                    "Shaders/pixel_CelShading.frag", "main", irr::video::EPST_PS_1_1,
                    shaderPerso, irr::video::EMT_SOLID);
        
    //1er mesh
    IAnimatedMesh* node = smgr->getMesh("models/happy.b3d");
	IAnimatedMeshSceneNode* node1 = smgr->addAnimatedMeshSceneNode(node);
	node1->setMaterialFlag(EMF_LIGHTING, false);
        node1->setMaterialType((irr::video::E_MATERIAL_TYPE)newMaterial);
	
	IAnimatedMeshSceneNode* nodeContour1 = smgr->addAnimatedMeshSceneNode(node);
	nodeContour1->setMaterialFlag(EMF_LIGHTING, true);
	nodeContour1->setMaterialFlag(EMF_WIREFRAME,true);
	nodeContour1->setMaterialFlag(EMF_ZWRITE_ENABLE, false);

    //2ème mesh
    IAnimatedMesh* node2 = smgr->getMesh("models/happy.b3d");
	IAnimatedMeshSceneNode* node3 = smgr->addAnimatedMeshSceneNode(node2);
	node3->setMaterialFlag(EMF_LIGHTING, false);
    node3->setMaterialType((irr::video::E_MATERIAL_TYPE)newMaterial);
	node3->setPosition(vector3df(-25,0,0));
	
	IAnimatedMeshSceneNode* nodeContour2 = smgr->addAnimatedMeshSceneNode(node2);
	nodeContour2->setMaterialFlag(EMF_LIGHTING, true);
	nodeContour2->setMaterialFlag(EMF_WIREFRAME,true);
	nodeContour2->setMaterialFlag(EMF_ZWRITE_ENABLE, false);
	nodeContour2->setPosition(vector3df(-25,0,0));
	
    shaderPerso->drop();

Voilà, j'espère que vous pourrez m'aider, car franchement, je ne vois pas d'ou vien le problème-_-
Merci d'avance

Cordialement
Création du message 09-11-2010 10:36:11 narugohan
Bonjour à tous,
C'est encore moi xD, j'ai un problème avec Cel-Shading que j'ai crée.
J'ai crée un shaders GLSL, pour les contour noir, j'utilise une deuxième mesh en wireFrame. Avec une mesh, tout va bien, sa fonctionne. Mon problème, c'est dès que je rajoute une autre mesh, avec elle aussi le mode wireFrame pour les contours noirs, sa ne fonctionne plus, enfin si, la première mesh oui.... mais pas la deuxième, je ne sais pas comment expliqué, une vidéo vous parlera surement mieux : http://www.youtube.com/watch?v=aqCAGhbyRQ0

Et mon code source :
       //shaders Cel-Shading
        irr::video::CShaderPerso* shaderPerso = new irr::video::CShaderPerso(device);
        irr::s32 newMaterial = gpu->addHighLevelShaderMaterialFromFiles(
                    "Shaders/vertex_CelShading.vert", "main", irr::video::EVST_VS_1_1,
                    "Shaders/pixel_CelShading.frag", "main", irr::video::EPST_PS_1_1,
                    shaderPerso, irr::video::EMT_SOLID);
        
    //1er mesh
    IAnimatedMesh* node = smgr->getMesh("models/happy.b3d");
	IAnimatedMeshSceneNode* node1 = smgr->addAnimatedMeshSceneNode(node);
	node1->setMaterialFlag(EMF_LIGHTING, false);
        node1->setMaterialType((irr::video::E_MATERIAL_TYPE)newMaterial);
	
	IAnimatedMeshSceneNode* nodeContour1 = smgr->addAnimatedMeshSceneNode(node);
	nodeContour1->setMaterialFlag(EMF_LIGHTING, true);
	nodeContour1->setMaterialFlag(EMF_WIREFRAME,true);
	nodeContour1->setMaterialFlag(EMF_ZWRITE_ENABLE, false);

    //2ème mesh
    IAnimatedMesh* node2 = smgr->getMesh("models/happy.b3d");
	IAnimatedMeshSceneNode* node3 = smgr->addAnimatedMeshSceneNode(node2);
	node3->setMaterialFlag(EMF_LIGHTING, false);
    node3->setMaterialType((irr::video::E_MATERIAL_TYPE)newMaterial);
	node3->setPosition(vector3df(-25,0,0));
	
	IAnimatedMeshSceneNode* nodeContour2 = smgr->addAnimatedMeshSceneNode(node2);
	nodeContour2->setMaterialFlag(EMF_LIGHTING, true);
	nodeContour2->setMaterialFlag(EMF_WIREFRAME,true);
	nodeContour2->setMaterialFlag(EMF_ZWRITE_ENABLE, false);
	nodeContour2->setPosition(vector3df(-25,0,0));
	
    shaderPerso->drop();

Voilà, j'espère que vous pourrez m'aider, car franchement, je ne vois pas d'ou vien le problème-_-
Merci d'avance

Cordialement

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