Professional Documents
Culture Documents
ndice
INTRODUCCIN.......................................................................1
MARCO TERICO.....................................................................2
-
Qu es OpenGL?.....................................................................2
DESARROLLO..........................................................................6
-
Cdigo y funciones...................................................................6
RESULTADOS.........................................................................11
CONCLUSIONES.....................................................................11
BIBLIOGRAFIA.......................................................................11
INTRODUCCIN
En este reporte se describe la realizacin de la prctica final de la materia de
Sistemas Operativos, la cual consiste en el desarrollo de un juego de ping-pong,
para dos jugadores desde computadoras individuales.
Para esta practica se aplicaran todos los conocimientos adquiridos durante el
curso, como es: el uso del lenguaje de programacin C++, la librera de grficos
OpenGL, implementacin de hilos y la comunicacin mediante sockets.
OpenGL es una librera grafica escrita originalmente en C, permite la manipulacin
de grficos 3D a todos los niveles. Se concibi para programar en mquinas
nativas Silicon Graphics bajo el nombre de GL (Graphics Library). Se extendi a
cualquier tipo de plataforma y asegurar as su portabilidad y extensibilidad de uso
con que se lleg al trmino Open Graphics Library (OpenGL).
La librera se ejecuta a Ia par con nuestro programa independientemente de Ia
capacidad grafica de Ia mquina que usamos. Esto significa que Ia ejecuci6n se
clara por software a no ser que contemos con hardware grafico especfico en
nuestra mquina. Si contamos con tarjetas aceleradoras de video, tecnologa
MMX, aceleradoras 3D, pipelines grficos implementados en placa, etc. por
supuesto gozaremos de una ejecucin ms rpida en tiempo real.
As la librera puede usarse bajo todo tipo de sistemas operativos e incluso una
gran variedad de lenguajes de programacin.
MARCO TERICO
-
Qu es OpenGL?
OpenGL significa Graphic Library, lo cual significa que es una librera que se utiliza
en lenguajes de programacin, consiste en aceptar primitivas tales como puntos,
lneas y polgonos y convertirlas en pixeles. Consiste, adems, en 150 comandos
diferentes para especificar los objetos y operaciones necesarias para crear
aplicaciones 3D interactivas. El proceso es realizado por una pipeline grfica
conocida como Maquina de estados de OpenGL.
Aunque OpenGL est concebido para disear aplicaciones interactivas y facilita al
usuario herramientas como la seleccin sus capacidades resultan insuficientes
para, entre otras cosas, crear interfaces grficas con un grado mayor de
interactividad. Estas limitaciones condujeron al desarrollo de las libreras AUX y
GLUT. Las libreras AUX presentan numerosas insuficiencias, y su aplicacin se
limita a programas de simple enseanza.
La librera GLUT en cambio, tiene mayor funcionalidad para la manipulacin
interactiva de objetos 3D.
GLUT es un interfaz de programacin con "C" ANSI y Fortran para escribir
programas en OpenGL que sean independientes del sistema operativo de
ventanas. Las libreras GLUT ofrecen algunas ventajas como, varios dispositivos
de entrada, mens desplegables, entre otras.
GLUT o FreeGLUT
GLU Y GLUT
Fig. 1
Operaciones bsicas para definir objetos.
Fig. 2
Ejemplos de las funciones.
Espacio 3D
Fig. 3
Ejes de coordenadas en OpenGL.
Instalacin.
Llamado de la librera.
Compilacin.
DESARROLLO
Al comienzo del desarrollo del programa no resulto ser muy difcil pues con lo
estudiado previamente en clases y lo aprendido en tutoriales, facilito la tarea de
crear una interfaz, es decir, una pantalla en la cual podramos plasmar las
imgenes deseadas, as como darle las medidas deseadas.
Para el desarrollo de este programa primero se llev a cabo la realizacin de
pantalla la cual seria desplegada al usuario, posteriormente la creacin de las
figuras, animacin de las mismas y deteccin de obstculos, por ltimo
interconectar dos programas similares por medio de sockets que serian los
encargados de tener el juego en dos computadoras a la vez.
Cdigo y funciones
Dentro del cdigo algunas funciones que se tuvieron que investigar, fueron:
-
glOrtho();
glPushMatrix();
glPopMtrix();
glTranslatef();
glMatrixModel(GL_PROJECTION);
glMatrixModel(GL_MODELVIEW);
glLoadIdentity();
glutSolidSphere();
En otras palabras estos comandos lo que hacen es guardar y restaurar los valores
aplicados a esa matriz, es decir, la figura en nuestro caso.
Los comandos de glMatrixModel, solo definen en que matriz se esta trabajando ya
se la de modelador o la de proyeccin, en la primera se define los objetos
utilizados y como se estn orientando, mientras que en la segunda, como su
nombre lo indica, es la visualizacin, definiendo el tamao y volumen. Otro
comando utilizado y que sirve para crear figuras, es el de glutSolidSphere();, con
este se crea una figura dndole tres parmetros, el primero es el valor del radio,
seguido de la divisiones dadas horizontalmente en x y las divisiones verticales en
x. Con esta funcin logramos crear nuestra esfera de manera uniforme.
Se comenz con la parte de programacin, para la venta se declaro una de
400x400, en la cual se colocaron un rectngulo, que hace la funcin de raqueta y
una pelota o esfera, que simulara ser la pelotita.
Hasta el momento de desarrollo de estas figuras y su colocacin en el plano, no
encontramos demasiados problemas, pues relativamente era algo que ya
habamos realizado anteriormente, donde se complico un fue al momento de hacer
mover la esfera de manera aleatoria y que rebotara en una direccin con grados,
simulando a como lo hara una pelota en la vida real. Posteriormente esto se logro
gracias a utilizacin de algunas condiciones y otras operaciones.
Lo anterior lo explicaremos mejor en el siguiente diagrama de flujo, teniendo en
cuenta que el limite de nuestra pantalla, que seria donde la pelota rebotara es de
1.16 en valor flotante, tambin se explica el proceso de movimiento de la raqueta
por medio de las teclas.
RESULTADOS
CONCLUSIONES
A pesar de lograr hacer la parte del movimiento de pelota y raqueta, de manera
satisfactoria, no se completo en un 100 por ciento la practica, ya que no fue
posible hacer la implementacin de los sockets y por tanto, no hay una
comunicacin entre computadoras, otro objetivo que no se logro cumplir fue
detectar de manera real las coaliciones que se dan entre la pelota y la raqueta en
el juego.
Pero a pesar de que no se logro terminar el juego completamente, teneos el
conocimiento de cmo se manejan grficos en 3D por medio de la librera de
OpenGL, tambin quedo clara la parte de los sockets, aunque no al nivel que se
esperaba, pero si somos capaces de enviar un mensaje sencillo como una hola,
del servidor de la comunicacin al cliente de la misma.
BIBLIOGRAFIA
-