OpenGL ssystem 1.2 2-May-1998 ----------------------------- Que es ssystem: --------------- Ssystem es un simulador del Sistema Solar que utiliza OpenGL. Solo el Sol, los nueve planetas y algunos satelites esta incluidos. Tambien se incluyen estrellas de fondo. Aunque ssystem no es 100% preciso he intentado mantenerlo lo mas proximo a la realidad posible. Desde la version 1.1 todos los datos de los planetas excepto los radios, los cuales estan escalados para una mejor visualizacion, deberian ser correctos (dentro del limite de preciosion del nuevo algoritmo de posicionamiento de los planetas, ver position.c para mas detalles). Requisitos del sistema: ----------------------- -Linux o Windows 95/NT -Librerias OpenGL (probado con Mesa 2.6 y Microsoft DLLs) -Libreria GLUT (probado con 3.6) -Tarjeta Voodoo Graphics (probado con Monster 3D) -Libreria Glide (probado con 2.4b1 en Linux y 2.43 en Windows 95) -Libreria JPEG (probado con 6.0.1) La libreria JPEG no se incluye ya que casi todas las distribuciones de Linux la incluyen (ver notas de WINDOWS). Notas de instalacion: --------------------- LINUX: -Consigue librerias compatibles OPENGL/GLU/GLUT. (Mesa incluye todas esas y es facil de compilar, la encontraras aqui --> http://www.ssec.wisc.edu/~brianp/Mesa.html) -Edita el directorio MESADIR en el Makefile. -Ejecuta make y con suerte ya esta. WINDOWS: -Asegurate de tenerOPENGL32.DLL GLU32.DLL y GLUT32.DLL. Si no es el caso puedes conseguirlar en la pagina de ssystem. ( http://www1.las.es/~amil/ssystem ) -He incluido un Makefile para Visual C++(Makefile.win). No funcionara si intentas linkar con la librerias OpenGL por defecto, asi que una vez mas te recomiendo que uses Mesa. El binario de la libreria JPEG y los fichero de cabecera se tambien se incluyen. 3DFX: -DLLs con soporte para 3dfx Voodoo Graphics estan disponibles en la pagina de ssystem. A menos que estas DLLs esten en el mismo directorio que ssystem.exe o en el path (mejor el primer metodo) el programa utilizara las DLLs OpenGL por defecto y el rendimiento sera MUY bajo. Opciones en linea de comando: ----------------------------- -bench Aborta la ejecucion del programa tras 1000 frames, mostrando el rendimiento -slices N Usa el valor N para el parametro SLICES de las esferas -stacks N Usa el valor N para el parametro STACKS de las esferas Estos dos ultimos parametros (slices y stacks) tienen un gran impacto en el rendimiento (ver seccion Rendimiento). Rendimiento: ------------ La aceleracion hardware no es indispensable, pero si muy recomendable para un moviemiendo suave. Yo consigo 48fps (bajo Linux) con la opcion "-bench" en mi Pentium 233 (funcionando a 266). El nivel de detalle de las esferas planetarias (SLICES y STACKS) es el factor clave en el rendimiento, incrementalo si tienes una CPU potente (Yo obtengo 110fps con un valor de 2 en ambos). El valor por defecto para SLICES y STACKS es 12 pero puedes jugar con esos valores en linea de comandos (ver seccion Opciones en linea de comando). Dependiendo de tu sistema puedes empezar probando con los siguientes valores: SLICES STACKS Pentium 60 e inferior 8 6 Pentium 100-166 10 10 Pentium 200-266 12 12 Pentium II 233 16 14 Pentium II 300 20 18 Asignacion de teclas: --------------------- Home/End: Selecciona el anterior/siguiente cuerpo. h : Ayuda en linea f : Flat/Smooth modelo de sombreado. t : Textura on/off. l : Iluminacion on/off. s : Estrellas on/off. d : Modo demo on/off. n : Posiciona la camara cerca del planeta activo. c : Cambia entre modo de camara libre o siguendo al planeta. p : Pausa Manten apretado el SHIFT para un funcionamiento mas rapido en las siguientes asignaciones: +/-: Incrementa/Decrementa el factor de tiempo. Cursores: Rotacion de camara. Pagina Arriba/Abajo: Incrementa/decrementa la velocidad. Movimiento de camara: --------------------- El modo de camara por defecto es libre. En este modo los cursores rotan la camara, Pagina Arriba/Abajo incrementan/decrementan la velocidad de la camara. En este modo puedes pensar en la camara como una nave espacial un poco primitiva. El modo seguimiento es un poco diferente, aqui los cursores no tienen uso. Puedes mover la camara hacia el planeta incrementando la velocidad. Una vez estas cerca del planeta el propio programa pone la velocidad a cero. La velocidad de la camara esta limitada a 10000 Km/iteracion (1 iteracion = 1 frame), lo cual es la velocidad de la luz a 30 frames/seg aproximadamente. Bugs conocidos: --------------- El movimiento de los cuerpos mas exteriores es un poco trompicado. Aunque ssystem usa aritmetica de doble precision, Mesa la utiliza de simple internamente (mas rapida y suficientemente precisa para la mayoria de las aplicaciones). Estoy trabajando en ello. RECOMOCIMIENTOS: ---------------- -Brian Paul (Mesa) http://www.ssec.wisc.edu/~brianp/MesQ.html -Daryll Strauss (Linux Glide) -David Bucciarelli (driver 3Dfx para Mesa) http://www-hmw.caribel.pisa.it/fxmesa/index.shtml -Curtis L. Olson (catalogo de estrellas) -Este software esta en parte basado en el trabajo de The Independent JPEG Group -Los satelites Galileanos y de Saturn calculados con code extraido con permiso de XEphem, (c) 1997 Elwood Charles Downey http://iraf.noao.edu/~ecdowney/xephem.html -Algoritmo de posicionamiento de los planetas de Keith Burnett utilizado con permiso http://www.xylem.demon.co.uk/kepler/ -Nacho (beta testing) -Y por supuesto, gracias a todos los que me habeis ayudado con sugerencias y consejos. NOTA: ----- Este es mi primer programa OpenGL y esta todavia en fase de desarrollo, asi que agradeceria vuestros comentarios. Raul Alonso