GEARS3D
moteur 3D c++
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S’enregistrerS’enregistrer  ConnexionConnexion  
RELEASE
Comming soon
Poster un nouveau sujet   Répondre au sujet
 Texture pas au point.Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Texture pas au point.   Sam 26 Avr - 14:31

le loader n'est pas en phase avec la classe CTexture , je m'explique :

la fonction g3d_loadtexture() , charge dans le media manager le bitmap
mais tu dois obligatoirement donner diverse infos a la classe CTexture
Notament , la taille , le mode , et le type de données.

Citation:
g3d_SetTexture( *texture,0,256,256)

g3d_TexturePutPixel(*texture,0,1,1,255,0,0,255)
;g3d_LoadTexture(*texture,"./NeHe.bmp") <- marche po ^^

GLuint = g3d_GenerateTexture(*texture,0)
g3d_SetTextureParameter(*Texture,#GL_TEXTURE_MAG_FILTER, #GL_LINEAR)
g3d_SetTextureParameter(*Texture,#GL_TEXTURE_MIN_FILTER, #GL_LINEAR)
g3d_SetTexture2D(*Texture,0,#GL_RGBA,#GL_RGBA,#GL_UNSIGNED_BYTE)
g3d_SetMeshTexture(*cube,*texture)


le mode peut être #GL_RGBA , #GL_RGB
et le type de donnée généralement #GL_UNSIGNED_BYTE de (0 a 255) pour chaque couleur.
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 15:05

A ok, pas de soucis, je te laisse travailler sur le code, je vais apprendre des truc, c'est cool...
study
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 15:21

si je regarde bien le code , ton media manager remplace quasiment la classe CTexture.
le problème est que *Array de CMediaManager est plein lors du chargement, mais pas celui de CTexture aparement. d'ou les textures blanches.
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 15:30

Il faudrais lire les pixels et les mettre directement dans une instance de la classe CTexture , car c'est elle qui gère les paramètre OpenGL.
le medias managers doit juste se contenté d'avoir une liste des fichiers déjà chargé. bounce
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 15:42

Il me semblais que le tableau Array ne servait qu'a créér en mémoire video par OpenGL la texture, et qu'après
tu n'en avais plus besoin (d'ou la libération des ressources... )

D'ailleurs, c'est bizarre, car chez moi sur deux machines , je n'ai pas de textures blanches... etrange..
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 15:46

D'ailleurs dans les exemples Nehe, c'est ce qu'ils font:

- chargement d'une image dans un buffer
- creation de la texture openGL
- libération du buffer créee de l'image.

a toi de voir ...
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 16:08

oui , je suis d'accord , mais rien ne passe par CTexture , c'est là le problème Very Happy
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 16:16

Tu as dans CTexture la fonction Load, qui récupère l'ID de la texture OGL en m'émoire video.
JE pensais que cela suffisait pour géné la texture au sein de la fonction CTexture.
Que faut-il de plus alors sinon ?
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 16:29

il faut que le media manager passe en paramètre la taille de l'image , l'array , et ensuite tu extrait l'id a partir de la classe CTexture , et non pas à partir de la classe Cmedia. l'id générer par cette classe est en quelque sorte , une coquille vide. alien
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 16:37

J'avoue que je suis un peu perdu.
Recode de la bonne manière, je comprendrais mieux un code je pense...
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 16:57

j'ai trouvé comment procédé , t'occupe pas de ca ^^
par contre , j'essaye de voir pour les lumières , j'ai aucune réaction du moteur... No
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 17:05

Oui, moi aussi, pire, dès que j'active les lights, certaines de mes entities ne sont plus affichées...

Twisted Evil
Revenir en haut Aller en bas
Cpl.Bator
Dev



Inscrit le : 06 Avr 2008
Messages : 306

MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 17:32

Pour ca , c'est simple :

Code:
void CTexture::Rendering()
{
    for(int i=0;i<MAX_STAGE;i++)
    {

        //........................................................................................
        if(this->TextureID[i]!=(unsigned)-1)
        {
                glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);
                glMaterialfv( GL_FRONT, GL_AMBIENT, &Ambient[i].r  );
                glMaterialfv( GL_FRONT, GL_DIFFUSE, &Diffuse[i].r  );
                glMaterialfv( GL_FRONT, GL_SPECULAR, &Specular[i].r );
                glMaterialfv( GL_FRONT, GL_EMISSION, &Emissive[i].r );
                glMaterialf(GL_FRONT, GL_SHININESS, Shininess[i]);
                  glBindTexture(GL_TEXTURE_2D,this->TextureID[i]);
        }
        //........................................................................................

    }

}


j'vais faire une maj dans la soirée.
Revenir en haut Aller en bas
Invité
Invité




MessageSujet: Re: Texture pas au point.   Sam 26 Avr - 18:09

Te speed pas, j'a ide la famille qui arrive ce soir, pour une semain, donc même si je ferais des visite régulières,
mon temps pour coder va être plutôt réduit, donc prend le temps de poser ton code, désolé...
Revenir en haut Aller en bas
Texture pas au point.Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
GEARS3D :: Codes sources :: Divers-
Poster un nouveau sujet   Répondre au sujet