begin process at 2012 05 30 00:07:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

Offscreen texture rendering to bitmap


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Offscreen texture rendering to bitmap

jeudi 1 avril 2010 à 16:04:00 | Offscreen texture rendering to bitmap

S3rialHoOK3rs

Bonjour,

J'essaie de créer un rendu hors écran au sein de mon application OpenGL. Pour ce faire, je stock mon rendu offscreen dans une texture que je désire ensuite exporter dans un fichier image. Après une journée de recherche/lecture de tutorial au sujet des FBO, DIB, Offscreen rendering et Render to texture, je suis bloqué à l'étape "texture => image".

S'il vous plait pourriez vous m'aider à sauver ma texture dans un bitmap ?

Code C/C++ :
///////////////////////////////////////////////////////////////////////////////
// Define static variable
static unsigned char texture[3 * SIZE * SIZE];
static unsigned int texture_id;
static int window_width = 512;
static int window_height = 512;

// OpenGL settings
glEnable(GL_DEPTH_TEST);

// Texture setting
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &texture_id);
glBindTexture(GL_TEXTURE_2D, texture_id);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, SIZE, SIZE, 0, GL_RGB,
GL_UNSIGNED_BYTE, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

glLoadIdentity();
glTranslatef(0, 0, -10);
glRotatef(30, 1, 0, 0);

/* Define a view-port adapted to the texture */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(20, 1, 5, 15);
glViewport(0, 0, SIZE, SIZE);
glMatrixMode(GL_MODELVIEW);

/* Render to buffer */
glClearColor(1, 1, 1, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

//DrawCube
glBegin(GL_LINE_LOOP);

glTexCoord2i(0, 0); glVertex3f(-1, -1, -1);
glTexCoord2i(0, 1); glVertex3f(-1, -1, 1);
glTexCoord2i(1, 1); glVertex3f(-1, 1, 1);
glTexCoord2i(1, 0); glVertex3f(-1, 1, -1);

glTexCoord2i(0, 0); glVertex3f( 1, -1, -1);
glTexCoord2i(0, 1); glVertex3f( 1, -1, 1);
glTexCoord2i(1, 1); glVertex3f( 1, 1, 1);
glTexCoord2i(1, 0); glVertex3f( 1, 1, -1);

glTexCoord2i(0, 0); glVertex3f(-1, -1, -1);
glTexCoord2i(0, 1); glVertex3f(-1, -1, 1);
glTexCoord2i(1, 1); glVertex3f( 1, -1, 1);
glTexCoord2i(1, 0); glVertex3f( 1, -1, -1);

glTexCoord2i(0, 0); glVertex3f(-1, 1, -1);
glTexCoord2i(0, 1); glVertex3f(-1, 1, 1);
glTexCoord2i(1, 1); glVertex3f( 1, 1, 1);
glTexCoord2i(1, 0); glVertex3f( 1, 1, -1);

glTexCoord2i(0, 0); glVertex3f(-1, -1, -1);
glTexCoord2i(0, 1); glVertex3f(-1, 1, -1);
glTexCoord2i(1, 1); glVertex3f( 1, 1, -1);
glTexCoord2i(1, 0); glVertex3f( 1, -1, -1);

glTexCoord2i(0, 0); glVertex3f(-1, -1, 1);
glTexCoord2i(0, 1); glVertex3f(-1, 1, 1);
glTexCoord2i(1, 1); glVertex3f( 1, 1, 1);
glTexCoord2i(1, 0); glVertex3f( 1, -1, 1);

glEnd();
//Ending texture
glFlush();

/* Copy buffer to texture */
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 5, 5, 0, 0, SIZE - 10, SIZE - 10);
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


Ce code créé une texture que vous pouvez voir dans le lien ci-dessous projeté sur les faces d'un cube :



Comment puis je exporter cette texture dans un bitmap ?

++Tyra =)


Cette discussion est classée dans : glvertex3f, size, gl, texture, gltexcoord2i


Répondre à ce message

Sujets en rapport avec ce message

OPENGL TEXTURE BMP [ par Batman60 ] bonjourvoici mon code compilé sur dev-cppc'est un cube tournant 3D affichant un bmp sur les six facesje voudrais texturer plusieurs bmp sur les six fa BMP Transparante [ par barraq ] Voila j'ai un petit soucis de transparance avec les images BMP J'afficher mes arbres en utilisant le format TGA, mais la transparance ne semble marche QT sous Visual C++ 2008 : SOUS XP [ par controlleur ] Bonjour j'ai rencontré une erreur l'or de l'exécution de mon programme : l'erreur c'est qu'il me dise que les QComboBox et QSlider que j'ai déclar OpenGL; transparence des png assombrie [ par choucroute987 ] Bonjour, Je me permet de poster dans la section C étant donné que l'OpenGl est peut utilisé avec d'autres langages... Je suis en train de développer [OpenGL] rotation [ par F0ra ] Bonjour,J'ai un problème pour réaliser une rotation en OpenGL au centre du rectangle.J'ai esayé avec glRotatef(ang,0.0,0.0,1.0);  le problème l'origni probleme execution animation opengl [ par profiter ] bonsoir, dans mon programme opengl c++, j'ai une voiture qui roule sur une route mais alors je la fais rouler d'un pas de 0.1 et au lieu qu'il roule d OpenGL et textures [ par Jackyzgood ] Bonjour à tous ! Maintenant que je commence à être à l'aise en SDL, je me suis dis : ça pourrait être bien de passer à l'OpenGL. J'ai suivis un tuto Probleme sur une forme simple [ par faucheuse ] Tout d'abord je ne travaille pas sous Linux mais sous WindowsXP mais je n'ai pas trouver de sous-forum correspondant dsl.Alors voila, j'essaye de fair [opengl] texture avec une couleur transparente [ par lafouine1986 ] Bonjour à toutes et tous,voilà je me permets de vous demander de l'aide car je suis comme bloqué...Je désire créer un opengl un arbre de type imposteu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales