2010-11-27 37 views
5

He leído todo sobre esto, incluyendo Nehe y aquí para encontrar soluciones, pero no puedo encontrar una respuesta específica.Asignación de texturas C++ OpenGL

Estoy intentando cargar una foto, llamada stars.jpg. Quiero hacer esto mi fondo de la escena, mediante la asignación usando coordenadas UV, haciéndolo por

glBegin(GL_QUADS); 
glTexCoord2f(0,0); 
glVertex2f(0,0); 

Sin embargo, estoy simplemente muy confundido acerca de cómo cargar las texturas reales en, todas las llamadas para

glActiveTexture(); 
glEnable(GL_TEXTURE_2d); 
glBindTexture(GL_TEXTURE); 

Todo lo que hacen es confundirme, ¿qué significan todas estas cosas/do, y en qué orden se supone que debo ponerlas, para que las estrellas.jpg sean mi fondo?

+0

tal vez debería echar un vistazo a http://nehe.gamedev.net para obtener algunos conceptos básicos sobre OpenGL, parece que está un poco perdido. –

Respuesta

3

Aquí hay un tutorial paso a paso en las texturas de carga
http://www.nullterminator.net/gltexture.html

Es importante recordar que OpenGL es una máquina de estados, por lo que tiene que decirle "Voy a hablar de texturas ahora" que es donde el glActiveTexture(); entra.

También tenga en cuenta que tendrá que cargar en píxeles los colores de su .jpg (comprimido) a su matriz de texturas, por lo que tendrá que encontrar una biblioteca que le proporcione los valores de mapa de bits de su archivo .jpg o tendrá que convertirlo previamente en .ppm o .bmp, lo que facilitará la lectura de los valores.

+0

"tienes que decirlo" Voy a hablar ahora de texturas "ahí es donde aparece glActiveTexture();" falso. Esta llamada toma un parámetro (una constante de 'GL_TEXTURE0' a' GL_TEXTUREn' con 'n' que es la identificación de la última unidad de textura) e indica que la unidad de textura dada es la unidad" activa "(afectada por las llamadas posteriores). Para tener un objeto de textura simple, solo necesita una unidad de textura (la predeterminada), por lo que no necesita llamarla. – Kos

+0

ah, ha pasado un tiempo, gracias por la corrección! – TJB

+0

Ahora, el sitio web que diste funciona (me ayuda a entenderlo), simplemente no puedo obtener la textura para mostrar realmente como fondo ... – Jim

4

Su herramienta número uno para cargar texturas en OpenGL es la biblioteca Simple OpenGL Image Loader (SOIL). Solo necesitas pasar el nombre del archivo y algunas banderas y obtendrás tu ID de textura.

Además, está aprendiendo la versión obsoleta de OpenGL ahora - es posible que desee tener un google para obtener más nuevos tutoriales o navegar por el specs cada vez que se sienta listo.

+0

El sistema operativo en el que estoy escribiendo está muy desactualizado y no va a actualizarse. – Jim

+0

La GPU y los controladores son importantes, no el sistema operativo subyacente. Pero el comentario sobre SUELO aún se cumple incluso para las viejas versiones GL. – Kos

Cuestiones relacionadas