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
<amil@las.es>

