Imagen de Lydia
0 puntos

Hola

Me gustaría poner OpenGL en mi ordenador para unas prácticas de una asignatura, pero no sé que paquetes son los que tengo que instalar. ¿Alguien podría echarme una mano?

Imagen de slap
+1
0
-1

Desde Synaptic, por ejemplo, instala freeglut3-dev

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Gabriel_M
+1
0
-1

Hola lyd...:
Instala desde synaptic:

freeglut3 freeglut3-dbg freeglut3-dev mesa-common-dev mesademos mesa-utils

Saludos.
Gabriel.



Solo doy soporte para Ubuntu - Es preferible callar y pasar por idiota, que hablar y demostrarlo.
+1
0
-1
Imagen de Lydia
+1
0
-1

Muchas gracias a todos.

El problema ahora es que no tengo el synaptic y al intentar instalar los paquetes manualmente me daban un montón de errores, por lo que he intentado instalar el synaptic y he obtenido una serie de errores tal como este:

Err http://es.archive.ubuntu.com breezy/main launchpad-integration 0.0patch26+mvo20-0ubuntu2
404 Not Found [IP: 150.214.5.135 80]

Por lo que veo, es debido a la dirección desde donde se lo intenta descargar que ya no existe ¿cómo puedo hacer para solucionar esto? Gracias

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola Lydia:
Tienes una versión de Ubuntu que carece de soporte.
Deberías instalar una más nueva, conforme a lo que acepte tu hardware.
Los paquetes que te di son de intrepid.
Para saber cuales son los de breezy, que carece ya de soporte y quizás no puedas instalarlos, deberias utilizar el comando apropos.
Saludos.
Gabriel.


Solo doy soporte para Ubuntu - Calma, calma, la situación está completamente dominada - Por el enemigo.
+1
0
-1
Imagen de Lydia
+1
0
-1

Gracias por tu respuesta. Instalar una nueva versión en estos momentos lo veo bastante complicado (voy muy apurada de tiempo y mi ordenador no está ya para muchos trotes).

¿No habría alguna otra solución modificando el source.lit o algo por el estilo?

+1
0
-1
Imagen de Gabriel_M
+1
0
-1

Hola Lydia:
Prueba lo siguiente:
Edita tu /etc/apt/sources.list

sudo gedit /etc/apt/sources.list

Comenta (con almohadilla #) todas las líneas que tengan la palabra breezy
Agrega estas líneas

## Debian Stable (sarge) -Vieja estable
deb http://ftp.br.debian.org/debian/ sarge main contrib non-free
deb-src http://ftp.br.debian.org/debian/ sarge main contrib non-free
##Actualizaciones de seguridad
deb http://security.debian.org/ sarge/updates main contrib
deb-src http://security.debian.org/ sarge/updates main contrib

Ejecuta luego en consola:

sudo apt-get update
sudo apt-get upgrade
apropos freeglut
apropos mesa
(instala todos los paquetes que corrrespondan con)
sudo apt-get install freeglut3 etc. etc. etc. etc.

Saludos.
Gabriel.



Solo doy soporte para Ubuntu - 6666 - Más malo que el diablo.

sudo apt-get install

+1
0
-1
Imagen de Lydia
+1
0
-1

Gracias por las respuestas, después de mucho trastear conseguí que me funcionara, pero ahora tengo otro problema (como no).

Tengo un pequeño programa de prueba en c con:

#include <GL/glut.h>

Y al compilar me dice que no existe el fichero o directorio ¿Qué tengo que hacer para que me funcione? Gracias

+1
0
-1
Imagen de slap
+1
0
-1

Necesitas instalar también el paquete build-essential.

Si sigues teniendo errores, ponlos aquí para que podamos verlos.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Lydia
+1
0
-1

Gracias por la respuesta, al final resultó ser que lo estaba escribiendo mal (ultimamente estoy muu torpe). Pero aún así tengo otro problemilla al compilar.

Tengo el siguiente programa chorra:

#include <GL/glut.h>
#include <stdlib.h>

int main(int argc, char* argv[]){

   glutInit(&argc, argv);
   glutInitDisplayMode(GLUT_SINGLE);
   glutInitWindowSize(500, 500);
   glutInitWindowPosition(150, 50);
   glutCreateWindow("Prueba");

   glClearColor(0.0, 0.0, 0.0, 0.0);

   glutMainLoop();

   return 0;

}

Y al compilar obtengo la siguiente salida:

/tmp/ccsSn0m2.o: In function `main':
p.c:(.text+0x19): undefined reference to `glutInitDisplayMode'
p.c:(.text+0x2d): undefined reference to `glutInitWindowSize'
p.c:(.text+0x41): undefined reference to `glutInitWindowPosition'
p.c:(.text+0x4d): undefined reference to `glutCreateWindow'
p.c:(.text+0x75): undefined reference to `glClearColor'
p.c:(.text+0x7a): undefined reference to `glutMainLoop'
collect2: ld devolvió el estado de salida 1

¿Qué me puede estar pasando? hace mucho que no programo en c y mucho más con OpenGl, así que ando un poco perdida.

+1
0
-1
Imagen de slap
+1
0
-1

Hola.
Además de incluir el header <GL/glut.h>, debes incluir la librería glut al compilar.
Por ejemplo, si tu programa se llama prueba.c, compila con:

gcc -o prueba prueba.c -lglut

Otra cosa:
Cuando pongas código aquí, no pongas los símbolos < y > directamente porque no se verán. Usa los botones del editor que llevan el símbolo que quieres poner. Los verás escritos como &lt; y &gt; pero luego se visualizan correctamente.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Lydia
+1
0
-1

Aquí estoy de nuevo y una vez más agradezco toda la ayuda que he recibido, gracias a ello mi trabajo está casi terminado.

Ahora quería ponerle algunas texturas, pero estoy hecha un lío. Me he puesto a buscar por internet y en cada web cuentan cosas diferentes e incluso en algunas utilizan métodos obsoletos con librería que ya no se incluyen en las distribuciones, total, que no sé como demonios hacer para poner texturas y me preguntaba si algien por aquí me podría dar algún ejemplo muy sencillo para cargar y aplicar una textura a un objeto.

Gracias.

+1
0
-1
Imagen de slap
+1
0
-1

Aquí tienes un ejemplo.
En esa misma web hay varios ejemplos.

Si tienes problemas con algo en concreto, ponlo aquí.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Lydia
+1
0
-1

Gracias por el enlace.

La cuestión es que aparentemente no tengo la librería GLaux (con la que es bastante sencillo trabajar con las texturas) y según he leído en alguna parte, parece ser que es algo que ya no se usa, por lo que estoy un poco perdida.

+1
0
-1
Imagen de slap
+1
0
-1

Aquí tienes otros ejemplos que no usan Glaux.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de Lydia
+1
0
-1

Una última pregunta (creo). El profesor nos ha pasado un código, pero sin ningún tipo de explicación, me parece que transforma coordenadas de pantalla (tomadas por ejemplo con un click de ratón) a coordenadas del mundo, pero no acado de entender como llamar a la función porque no sé que valores habría que pasale por x,y,z_world. El código es el siguiente:

/************************************************************************/
/* Set  ( &x_window, &y_window )  to  the  window  coordinates  of      */
/* the point with world coordinates  ( x_world, y_world, z_world )      */
/************************************************************************/
void WorldToWindow( GLdouble  x_world,  GLdouble  y_world,  GLdouble  z_world,
                    GLdouble* x_window, GLdouble* y_window ){

   GLdouble MODELVIEW_MATRIX[ 16 ], PROJECTION_MATRIX[ 16 ], z_window;
   GLint VIEWPORT[ 4 ];

   glGetDoublev(  GL_MODELVIEW_MATRIX,  MODELVIEW_MATRIX );
   glGetDoublev(  GL_PROJECTION_MATRIX, PROJECTION_MATRIX );
   glGetIntegerv( GL_VIEWPORT,          VIEWPORT );

   gluProject( x_world, y_world, z_world,
               MODELVIEW_MATRIX, PROJECTION_MATRIX, VIEWPORT,
               x_window, y_window, &z_window );
}
+1
0
-1
Imagen de slap
+1
0
-1

La función que hace el trabajo es gluProject. En el enlace que te doy te explica qué es lo que hace y cómo lo hace.

En realidad hace lo contrario de lo que tú pensabas. Convierte una coordenada del mundo a coordenadas de la ventana que estás usando teniendo en cuenta las matrices actuales del modelo, proyección y vista.

La llamada la haces a WorldToWindow pasándole las coordenadas x, y y z del mundo y te devuelve en las variables que se le pasan por referencia (x_window, y_window) las correspondientes a la ventana.

Lo que hagas después con esos valores depende de lo que os hayan pedido.

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es