IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Chargement de modèle en .obj


Sujet :

OpenGL

  1. #1
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut Chargement de modèle en .obj
    Bonjour à tous,

    j'ai fais un chargeur de modèles 3D en c++, mais je rencontre des problèmes quand je lance le programme, je vous met le code ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    static void drawContent()
    {
    	ifstream file;
    	file.open("D:/Users/askjmk/Documents/Visual Studio 2013/monkey.obj");
    	if (file)
    	{
    		string ligne;
    		int lines = 0;
     
    		vector<float> fxyz;
     
    		while (!file.eof())
    		{
    			getline(file, ligne);
    			string ifv = ligne.substr(0,2);
     
    			if (ifv == "v ")
    			{
     
    				string sx = ligne.substr(2, 9);
    				string sy = ligne.substr(11, 9);
    				string sz = ligne.substr(21, 9);
    				float fx = stof(sx);
    				float fy = stof(sy);
    				float fz = stof(sz);
     
    				fxyz.push_back(fx);
    				fxyz.push_back(fy);
    				fxyz.push_back(fz);
     
    				lines++;
    			}
     
    		}
    		if (file.eof())
    		{
    			glEnableClientState(GL_VERTEX_ARRAY);
    			glEnable(GL_DEPTH);
    			glVertexPointer(3, GL_FLOAT, 0, fxyz.data());
    			glDrawArrays(GL_QUADS, 0, lines);
    			glDisable(GL_DEPTH);
    			glDisableClientState(GL_VERTEX_ARRAY);
    		}
    	}
    	else
    	{
    		window.close();
    	}
    }
    je vous montre le problème avec l'exemple d'une sphere fait avec blender et d'un cube:
    Nom : 1436207457-sans-titre.jpg
Affichages : 601
Taille : 39,5 Ko
    Désolé, pour la taille de l'image je ne sais pas comment faire, je vous met le lien ici: http://image.noelshack.com/fichiers/...sans-titre.jpg


    je pense que l'erreur viens d'un problème entre vertex, faces, etc et GL_TRIANGLES/GL_QUADS...

    Ce serai sympa de me faire part de vos connaissances !
    Maxime

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Sans plus de précision , impossible de savoir d'ou vient le probleme mais si j'ai un conseille a donné la plupart des modeleur 3D permet d'exporté le .obj en triangle uniquement donc je te conseille d'enlever GL_QUADS par GL_TRIANGLES.

    En faite je viens de remarqué que tu as écrit le loader + le rendu...
    Il faut que tu comprenne ce que tu fait vu que je pense que tu ne comprend pas comment fonctionne le .obj.
    Il va y avoir du boulot a faire avant de faire un loader + rendu d’après ce que je vois pour moi c'est un peu n'importe quoi la...
    Deja lire un fichier c'est lent , donc tu ne peut pas le faire pendant la phase de rendu.
    Un fichier .obj tu ne peux pas afficher quoique ce soit de correct en te basant que sur le 'v' il te faut lire aussi les index donc a la base un fichier .obj s'affiche avec glDrawElements tu peux afficher un .obj avec glDrawArrays mais il faut faire un certain tri avant (ce que tu ne fait pas).

    Donc pour ma part il faut deja faire un Loader .obj (récupérer tout les v , vt , vn ,et i + nombre de vertex,nombre index ect dans une classe ou structure) , ensuite la phase de rendu sera beaucoup plus simple qui ne fera que quelque ligne (enfin chez moi la fonction ne fait que 60 ligne mais elle gère pas mal de cas).

  3. #3
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    D'accord, je fais faire un loader complet et puis je t'en fait part ^^

  4. #4
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Est ce que tu connait une autre manière d'analyser une ligne au lieu d'utiliser substr ?

  5. #5
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    En utilisant std::stringstream?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    getline(file, ligne);
    stringstream stream( ligne );
    string ifv;
    stream >> ifv
     
    if (ifv == "v")
    {
    	float fx;
    	float fy;
    	float fz;
    	stream >> fx >> fy >> fz;
     
    	fxyz.push_back(fx);
    	fxyz.push_back(fy);
    	fxyz.push_back(fz);
    	lines++;
    }
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  6. #6
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Est ce que vous containériseriez un lien qui montre le fonctionnement d'un obj...

  7. #7
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226

  8. #8
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Oui, désolé, cette question était vraiment bête.

    J'ai fais ce que tu m'a dit de faire, j'ai créer une classe avec le chargeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    class Model
    {
    public:
    	//nom du model
    	string name;
    	//nombre de v;
    	int nb_v;
    	vector<float> v;
    	int nb_vn;
    	vector<float> vn;
    	int nb_f;
    	vector<float> f;
    	static void loadFromFile(string path)
    	{
    		Model model;
    		ifstream file;
    		file.open(path);
     
    		if (file)
    		{
    			while (!file.eof())
    			{
    				string lines;
    				getline(file, lines);
     
    				string type = lines.substr(0,2);
     
    				if (type == "o ")
    				{
    					model.name = lines.substr(2, 100);
    				}
    				if (type == "v ")
    				{
    					model.nb_v++;
    					string sx = lines.substr(2, 9);
    					string sy = lines.substr(11, 9);
    					string sz = lines.substr(21, 9);
     
    					float fx = stof(sx);
    					float fy = stof(sy);
    					float fz = stof(sz);
     
    					model.v.push_back(fx);
    					model.v.push_back(fy);
    					model.v.push_back(fz);
    				}
    				if (type == "vn")
    				{
    					model.nb_vn++;
    					string sx = lines.substr(3, 9);
    					string sy = lines.substr(12, 9);
    					string sz = lines.substr(22, 9);
     
    					float fx = stof(sx);
    					float fy = stof(sy);
    					float fz = stof(sz);
     
    					model.vn.push_back(fx);
    					model.vn.push_back(fy);
    					model.vn.push_back(fz);
    				}
    				if (type == "f ")
    				{
    					stringstream iss(lines);
    					string isslines;
    					iss >> isslines;
     
    					int ix;
    					int iy;
    					int iz;
     
    					iss >> ix >> iy >> iz;
     
    					model.f.push_back(ix);
    					model.f.push_back(iy);
    					model.f.push_back(iz);
     
    					model.nb_f;
    				}
    			}
    		}
    	}
    	static void  render()
    	{
     
    	}
    };
    J'ai juste un problème avec les faces, je crois que sa varie en fonction des models, parfois c'est écrit sous la forme:
    int int int et d'autres fois sous la forme int//int int//int int//int
    Après, je vous poserez la question pour le rendu...

  9. #9
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    ça depend ce que tu veux faire un fichier .obj généraliste ou pas ?
    Pour ma part je te conseille de ne lire qu'un type de fichier .obj celui ci :
    une face = un triangle donc 3 point comme ceci : f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3

    Pour le moment je te conseille de ne faire que le rendu par les vertex (si ça c'est fait alors tu fera les coordonné de texture et les normal).

  10. #10
    Membre éprouvé
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Par défaut
    Oui car selon ma petite expérience chaque logiciel de dessin 3D ou générateur de fichiers *.obj génère un résultat avec de petites différences.

    Comme par exemple mettre un ligne vide entre chaque bloque ou pas
    et
    l'ordre des informations contenus dans le fichier *.obj est souvent différent...

  11. #11
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Bon, j'ai avancé dessus, je vous met le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    class GameObject
    {
    public:
    	vector<GLfloat> floatV;
    	vector<GLfloat> floatVN;
    	vector<GLfloat> index;
    	void loadModel(string filename)
    	{
    		ifstream file;
    		string ligne;
    		file.open(filename);
    		if (file.fail())
    		{
    			window.close();
    		}
    		if (!file.eof())
    		{
    			while (getline(file, ligne))
    			{
    				if (ligne.substr(0, 2) == "v ")
    				{
    					stringstream stream(ligne);
    					float xv, yv, zv;
    					string strv;
    					stream >> strv >> xv >> yv >> zv;
    					this->floatV.push_back(xv);
    					this->floatV.push_back(yv);
    					this->floatV.push_back(zv);
    				}
    				else if (ligne.substr(0, 2) == "vn")
    				{
    					stringstream stream(ligne);
    					float xvn, yvn, zvn;
    					string strvn;
    					stream >> strvn >> xvn >> yvn >> zvn;
    					this->floatVN.push_back(xvn);
    					this->floatVN.push_back(yvn);
    					this->floatVN.push_back(zvn);
    				}
    				else if (ligne.substr(0, 2) == "f ")
    				{
    					stringstream stream(ligne);
    					float xf, yf, zf;
    					string slash;
    					stream >> slash >> xf >> slash >> yf >> slash >> zf;
    					this->index.push_back(xf);
    					this->index.push_back(yf);
    					this->index.push_back(zf);
    				}
    			}
    		}
    	}
     
    	void renderModel()
    	{
    		glPushMatrix();
    		glEnable(GL_DEPTH_TEST);
    		glEnableClientState(GL_VERTEX_ARRAY);
    		glVertexPointer(3, GL_FLOAT, 0, floatV.data());
    		glDrawElements(GL_TRIANGLES, 3, GL_INT, index.data());
    		glDrawArrays(GL_TRIANGLES, 0, 24);
    		glDisableClientState(GL_VERTEX_ARRAY);
    		glPopMatrix();
    	}
    };
    il y a encore un souci, j'ai vérifier les valeurs dans floatV, floatVN et index et tout va bien.
    C'est lors du rendu que je rencontre un souci je pense.

  12. #12
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Et quel est le soucis que tu rencontres?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  13. #13
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Le modèle que j'essaie d'afficher est un simple cube exporté en triangles avec Blender. Ce qu'il m'affiche est un simple triangle et un sorte de point blanc au centre de l'image, je metterai la photo dans 1h, quand je serai chez moi

  14. #14
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Alors un truc qui ne peut pas aller, c'est le fait que tu utilises deux fonctions de dessin differentes pour effectuer ton rendu, successivement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		glDrawElements(GL_TRIANGLES, 3, GL_INT, index.data());
    		glDrawArrays(GL_TRIANGLES, 0, 24);
    Il faut que tu choisisses tes armes.
    Vu que tu utilises des vertex arrays (et non des VBO, faudra voir a paaser aux VBOs si tu veux vraiment faire de l'OpenGL 4.x) tu peux te limiter a l'utilisation de glDrawElements
    Et comme tu peux le voir dans ton code, tu lui dis de dessiner 3 sommets ... Donc 1 seul triangle...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  15. #15
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Alors, oui, c'est bien ce qui me semblai, je crois me souvenir que j'avais essayé avec seulement glDrawElements, le problème étant qu'il ne m'affichai rien, je verrai chez moi, et je fais un test.
    J'aimerai dessiner avec les index. Vaut mieux utiliser gldrawelements que gldrawarray ?

  16. #16
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Ben glDrawArrays dessine des sommets sans avoir d'indices (en se basant juste sur les VBO actifs au moment de l'appel)
    glDrawElements quant a elle, dessine les sommets en se basant sur un tampon d'indicees, qui peut etre fourni lors de l'appel de la fonction (en renseignant le dernier parametre) ou etre un IBO actif au moment de l'appel (et donc le dernier parametre de l'appel a glDrawElements doit etre NULL ou le decalage dans le tampon, pour retrouver le premier indice a partir duquel on souhaite dessiner)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  17. #17
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Ducoup, j'ai enlevé le gldrawarray, le problème est qu'il ne m'affiche absolument rien.
    J'ai un autre problème, j'utilise la sfml pour opengl, j'aimerais pourquoi pas voir à quoi ressemble les vbos, mais je n'ai pas de fonctions comme glgenbuffer ou encore glbindbuffer avec la sfml, il faut télécharger quel lib en plus ? (la SFML gère aussi opengl normalement).

  18. #18
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Les fonctions OpenGL que tu utilises deja ne proviennent pas de la lib SFML mais d'OpenGL.
    Le fait est qu'OpenGL est construit sur la base d'extensions, et glGenBuffers, glBindBuffer, ... Font partie d'une extension appelee ARB (en gros, l'extension la plus proche du core). Donc pour pouvoir utiliser ces fonctions, tu peux soit charger l'extension toi-meme, soit utiliser GLEW qui s'en charge pour toi.
    Je te conseille la seconde solution (utiliser GLEW).
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  19. #19
    Membre averti
    Homme Profil pro
    Terminal S
    Inscrit en
    Mai 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Terminal S

    Informations forums :
    Inscription : Mai 2013
    Messages : 31
    Par défaut
    Tu pourrai me faire un example avec les vbos ?

  20. #20
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Tu peux consulter les tutoriels dans ma signature (a partir de Hello point)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

Discussions similaires

  1. Tutoriel DirectX 11 : chargement de modèles Maya 2011
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 03/09/2014, 21h31
  2. Réponses: 18
    Dernier message: 26/06/2011, 15h21
  3. [OPENGL] problème de chargement fichier .obj
    Par pspflashsystem dans le forum Débuter
    Réponses: 4
    Dernier message: 22/02/2009, 23h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo