Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1598 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  c++ opengl charger image texture

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

c++ opengl charger image texture

n°2112837
encours
Posté le 22-11-2011 à 20:47:26  profilanswer
 

bonjour
je travaille avec opengl avec visual studio 2010
je dessine une scene en 3D
je veux utiliser des images .png ou .jpeg ou .gif comme texture
j'ai pas trouvé comment charger les images
est ce que vous avez une idée
 
 
merci

mood
Publicité
Posté le 22-11-2011 à 20:47:26  profilanswer
 

n°2112840
Terminapor
I'll see you rise.
Posté le 22-11-2011 à 21:12:33  profilanswer
 

Google, GL_TexImage2D() normalement.
Perso je me sers de la SDL avec SDL_Image pour les formats comme png/jpg, sinon tu peux te servir de la sfml.
Nativement avec glut, c'est possible aussi mais j'ai jamais essayé :D


---------------
Perhaps you don't deserve to breathe
n°2112846
encours
Posté le 22-11-2011 à 21:41:55  profilanswer
 

merci pour ton idée
mais moi je veux qlq sans recours a une autre librairie si c'est possible
car je vais rendre le travail au prof et je ne veux pas qu'il soit obligé d'installet qlq pour l'excecuter

n°2112868
Terminapor
I'll see you rise.
Posté le 23-11-2011 à 00:14:05  profilanswer
 

Ben glut alors, mais tu auras besoin de libpng/libjpeg pour charger des png et des jpeg.


---------------
Perhaps you don't deserve to breathe
n°2112994
encours
Posté le 23-11-2011 à 17:33:07  profilanswer
 

si seulement j'ajoute la librairie au projet et ca marche c'est bien
mais si il faut l'ajouter a visual studio alors la c'est : .......
 
d'ailleurs si tu peux m'envoyer les liens a ces librairies
 
 
merci

n°2113015
Terminapor
I'll see you rise.
Posté le 23-11-2011 à 21:20:18  profilanswer
 

www.google.com :o


---------------
Perhaps you don't deserve to breathe
n°2113031
gilou
Modérateur
Modzilla
Posté le 24-11-2011 à 02:57:37  profilanswer
 

Y'a un smiley pour ça [:alkatraz]  (voire  [:google] )
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2113070
Lightness1​024
Posté le 24-11-2011 à 12:04:48  profilanswer
 

pour un projet d'école quel besoin de jpg et autre ? tu n'as qu'a convertir tes textures en .ppm avec gimp et tu écris un lecteur en moins de 10 lignes !


---------------
http://projets.6mablog.com/
n°2113267
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 25-11-2011 à 15:00:20  profilanswer
 

Lightness1024 a écrit :

pour un projet d'école quel besoin de jpg et autre ? tu n'as qu'a convertir tes textures en .ppm avec gimp et tu écris un lecteur en moins de 10 lignes !


 
ou même bitmap :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°2114371
encours
Posté le 01-12-2011 à 22:41:35  profilanswer
 

et comment faire ca  
j'ai copié le code de nehe mais j'aitrouvé des erreurs lors du debugage
vous m'indiquez google!!!!
moi je ne poste qu'aprés avoir chercher dans google
 
 
merci en tous ca

mood
Publicité
Posté le 01-12-2011 à 22:41:35  profilanswer
 

n°2114373
Lightness1​024
Posté le 02-12-2011 à 00:09:55  profilanswer
 

ben t'a raison et tu fais bien.
en attendant voici un peu de suite:
http://netpbm.sourceforge.net/doc/ppm.html
http://fr.wikipedia.org/wiki/Portable_pixmap
sinon un code horrible, ultra trop complet, et carrément trop long pour en charger:
http://www.koders.com/cpp/fidEF0E2 [...] =GetDIBits
par contre il a le mérite d'être fait. marcher j'en sais rien, faut tester.
sinon un autre:
http://www.gamedev.net/topic/45788 [...] file-in-c/
voila voila.


---------------
http://projets.6mablog.com/
n°2114382
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 02-12-2011 à 07:10:50  profilanswer
 

encours a écrit :

et comment faire ca
j'ai copié le code de nehe mais j'aitrouvé des erreurs lors du debugage
vous m'indiquez google!!!!
moi je ne poste qu'aprés avoir chercher dans google

 


merci en tous ca

 

Ben en réfléchissant :o

 

T'as besoin d'un tableau de rgb pour ta texture OpenGL, et a priori tu codes dans un langage de prog qui fournit de quoi ouvrir un fichier (fopen en C, ifstream en C++, System.IO.FileStream en C#, java.io.FileInputStream en java, open en python... cherche ya forcément)

 

Wikipedia te dit à quoi ressemble un ppm (simple) :
http://fr.wikipedia.org/wiki/Portable_pixmap

 

ou un bmp :
http://en.wikipedia.org/wiki/BMP_file_format
qui est un peu plus compliqué mais tu n'as pas besoin de tout gérer, tu veux juste lire une image 24bits et récupérer width/height et ton tableau de rgb.

 


En C++ par exemple tu pourrais te faire une classe très simple pour lire un fichier (ppm ou bmp donc) et en tirer un tableau de rgb, du genre :

 

Bitmap.h

Code :
  1. #ifndef __THIS_IS_BITMAAAAAAAAAAAP__
  2. #define __THIS_IS_BITMAAAAAAAAAAAP__
  3. #include <string>
  4. class Bitmap {
  5.     public:
  6.         Bitmap(std::string filename);
  7.         ~Bitmap();
  8.         int             getWidth();
  9.         int             getHeight();
  10.         unsigned char*  getBytes();
  11.     private:
  12.         int             width;
  13.         int             height;
  14.         unsigned char*  bytes;
  15. };
  16. #endif
 

Bitmap.cpp

Code :
  1. #include "Bitmap.h"
  2. #include <fstream>
  3. #include <iostream>
  4. Bitmap::Bitmap(std::string filename) {
  5.     // try to open the file
  6.     std::ifstream ifs(filename.c_str(), std::ios::in | std::ios::binary);
  7.     if(!ifs) {
  8.         throw "Cannot open file.";
  9.     }
  10.     // là je te laisse bosser, récupère les infos voulues
  11. }
  12. Bitmap::~Bitmap(){
  13.     delete[] this->bytes;
  14. }
  15. int Bitmap::getWidth() {
  16.     return this->width;
  17. }
  18. int Bitmap::getHeight() {
  19.     return this->height;
  20. }
  21. unsigned char* Bitmap::getBytes() {
  22.     return this->bytes;
  23. }
 

Et si tu ne veux pas convertir tes jpg ou png en ppm ou en bmp, alors oui il te faut la libpng ou la libjpeg, parcqu'écrire un lecteur de png ou de jpg prend trop de temps :o


Message édité par Xavier_OM le 02-12-2011 à 07:18:33

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  c++ opengl charger image texture

 

Sujets relatifs
probleme 3D openglProblème image d'un header qui se décale sous IE
Où trouver les spécifications des navigateurs sur la gestion des image[OpenGL] Problème d'aliasing entre les triangles
colorer une carte geographique creé par openGL C++Aligner 2 tableau et une Image sur la meme ligne
créer un lien hypertexte sur une image[RESOLU] Remplacement d'un swf par une image pour les tablettes
Insestion d'une image.Pdf dans un document (pdf ou word) | en FOCharger un DataGridView
Plus de sujets relatifs à : c++ opengl charger image texture


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR