Pràctica d'MGC

Manual d'usuari de l'aplicació


Instalació de l'aplicació

La instal·lació de l'aplicació és un proces molt senzill. Primerament cal obtenir el fitxer que conté el programa comprimit, que serà un fitxer amb extensió .jar, i afegir-lo a la variable d'entorn CLASSPATH. En MS-DOS, això últim es faria amb la següent comanda:

>set CLASSPATH=mgc.jar;%CLASSPATH%

Ara l'aplicació ja està instal·lada i disponible per a la seva execució.


Execució

Per a poder executar l'aplicació necessitem tenir instal·lada alguna versió d'una Màquina Virtual Java. Tant ens pot servir una versió de desenvolupament, com el JDK; com un entorn d'execució, com el JRE.

Quan ho tenim tot instal·lat, tant la Màquina Virtual Java com la nostra aplicació, es pot llençar la seva execució amb la comanda:

>java mgc.mf.MonsFractals

Si tenim algun problema per falta de memoria en l'execució de l'aplicació podem demanar a la màquina virtual que en dediqui més de la que habitualment assigna. Això es depenent de la Màquina Virtual Java que executem, i en el cas de la Màquina Virtual Java distribuida amb el JDK 1.1.8 per MS-DOS, la comanda seria la seguent:

>java -ms64000000 -mx450000000 mgc.mf.MonsFractals

Amb aquesta comanda estariem aconseguint que la Maquina Virtual Java assignés, de bones a primeres, 64 milions de bytes en memòria, i que com a màxim li permetes demanar fins a 450 milions de bytes. Aquests valors es poden variar d'acord amb les necessitats de l'usuari.


Formats d'exportació

L'aplicació permet exportar els objectes generats a algun tipus de format extern a l'aplicació. La nostra implementació permet exportar a dos llenguatges diferents: VRML i BDG.

VRML

Aquest format es utilitzat per molts navegadors i està format per fitxers textuals que descriuen el mon. Pots trobat més informació sobre aquest llenguatge de descripció de mons en www.web3D.org, i en www.cai.com/cosmo pots trobat un navegador per a mons creats en aquest llenguatge.

BDG

Aquest és el format que s'utilitza a les assignatures de gràfics de la facultat.


Filtres

Un filtre és la unitat bàsica de construcció i modificació d'objectes. És poden utilitzar per a crear nous objectes i per a modificar-los, tant en forma com en color i textura; agrupar objectes i fer, en definitiva, qualsevol manipulació que ens acosti a la consecució dels nostres objectius en quant al modelat del planeta.

Els filtres tenen un ordre d'aplicació, que es pot modificar mitjançant la interficie del programa, i que permet anar refinant les manipulacións fins arribar a l'objecte final.

Un exemple de filtre podria ser el que ens crea un icosaedre, o el que ens fractalitza un objecte. Una llista de filtres podria estar composada, per exemple, per:

I amb aquest ordre, doncs un ordre diferent ens donaria resultats diferents.

Cada filtre te associats uns paràmetres que modifiquen el seu comportament, i els que depenen d'algun factor aleatori també tenen una llavor que permet que sempre que recreem un objecte, aquest quedi igual.


Ús de l'entorn gràfic

L'entorn gràfic està dividit en diversos apartats:

Menus

Ventana de la aplicación con un menú abierto

L'aplicació te un sol menú, que es diu Fitxer i conté les funcions més bàsiques de l'aplicació:

Nou
Neteja la llista de filtres.
 
Obrir...
Mostra un quadre de dialeg per a que l'usuari pugui recuperar un fitxer on s'ha guardat una llista de filtres.
 
Salvar...
Mostra un quadre de dialeg per a que l'usuari pugui guardar en disc una llista de filtres.
 
Exportar
Presenta una llista dels formats disponibles per a guardar l'objecte generat. Quan es selecciona algun dels presentats (VRML o BDG) presenta a l'usuari un quadre de dialeg per introduïr el nom del fitxer on vol guardar l'objecte.
 
Sortir
Surt de l'aplicació.

Barra d'estat

És la zona corresponent a la part inferior de la finestra. Mostra tot el que està succeïnt a l'aplicació i indica a l'usuari en quina part del procés està treballant.

Botons

Tenim cinc botons disponibles a la interficie:

Regenerar
Crea un nou objecte a partir de la llista de filtres
Afegir
Obre una finestra amb un llistat de filtres, i afegeix el filtre seleccionat.

Esborrar
Esborra el filtre seleccionat de la llista de filtres.
Adalt
Canvia l'ordre d'aplicacio de filtres, avançant en un el filtre seleccionat.
Abaix
Canvia l'ordre d'aplicacio de filtres, endarrerint en un el filtre seleccionat.

Llista de filtres

La llista de filtres es la part que es veu a l'esquerra de la imatge. Conté tots els filtres que s'han d'aplicar a l'objecte i manté l'ordre en el que s'aplicaran: de dalt cap a baix.

La part de la dreta són els paràmetres dels filtres.

Parametres dels filtres

Cadascun dels filtres te una serie de paràmetres diferents que es representen a la part dreta de la finestra. Aquests paràmetres es poden modificar a gust de l'usuari fins aconseguir un resultat satisfactori.

 


Descripcio de filtres

Agrupar

Aquest fltre permet fer descripcions de l'univers mes complexes. Arrela del fet que es pot incloure una llista de filtres dintre de la mateixa llista que s'esta editant. La idea es crear un objecte de forma independent a la resta (fins i tot es pot obrir i desar) i despres agrupar-ho (agrupa sense fer l'operacio booleana de unio) per afegir complexitat a l'escena.

Al afegir aquest filtre, s'obre una copia de la finestra de creacio d'aquest filtre, aquesta finestra es tanca al seleccionar un altre filtre i es torna a obrir quan es selecciona el d'agrupar.

Es molt important traslladar els objectes afegits abans d'agrupar, de no ser aixi es corre el risc de sobreposar objectes.

ObjecteCub

Aquest es un dels filtres de creacio d'objecte. Aquest filtre ignora tot el que s'havia fet fins ara i crea un objecte que es un cub. El cub te amplada dos, alçada dos, i profunditat 2. Esta centrat en l'eix de coordenades.

L'objecte cub pot donar molt bons resultats per generar metoirits.

ObjecteEsfera

Aquest es un dels filtres de creacio d'objecte. Aquest filtre ignora tot el que s'havia fet fins ara i crea un objecte que es una esfera. L'esfera es pot parametritzar en la seva creacio, cal avisar que es una aproximacio de l'esfera, i no es una esfera perfecte. Les cares d'aquestes son cuadrades i estan dividides longitudinalment.

Parametres:

L'objecte esfera va be per generar planetes de tot tipus, tot i que cal tenir en compte que contra mes divisions mes illes sueltes generara, tot i que si es fractalitza amb un grau elevat de dimensio fractal (al voltant de 0.9) pot simular uns nuvols estupendos.

ObjecteIcosaedre

Aquest es un dels filtres de creacio d'objecte. Aquest filtre ignora tot el que s'havia fet fins ara i crea un objecte que es un icosaedre. L'icosaedre es un poliedre regular de 20 cares, totes triangles equilaters

Parametres:

L'icosaedre es perfecte per generar tot tipus de planetes. Tambe es pot utilitzar per fer una esfera triangulada, per ferla seria anar aplicant Fractalitzar (amb dimensio fractal 0) i radi minim al del icosaedre.

FractalRadialTexturat

Aquest filtre fractalitza l'objecte. Al modificarho subdivideix aquest en moltes parts creant una nova versio d'aquest pero mes irregular. Les irregularitats responen a un patro fractal. En aquest cas la textura de l'objecte tambe s'edita, no el modifica directament, pero si cambia un parametre anomenat tipus superficio de forma fractal que ajuda mes endevant a donar mes complexitat a les textures del planeta afegint realisme.

Parametres:

en quant al fractal

en quant a la textura

Aquets es el filtre mes important per a la generacio de mons fractals. Pero tan important com aquest es la correcta combinacio amb els altres filtres i els paramtres d'ambdos. Si un cop fet un objecte es vol afegir una lleugera complexitat no hi ha res que eviti tornar a fractalitzar amb un grau mes baix per afegir una petita fractalitzacio.

Dos filtres de fractalitzacio seguits no serveixen de res si el segon te una epsilon superior al del primer. En qualsevol altre cas serveix per produir majors irregularitats menors.

Aquest filtre es radial produeix elevacions i enfonsaments dels objectes, pero tot moviment es fa sempre al voltant del centre de coordenades. Si es vol que tots els "bonys" tinguin nomes direccio, per exemple, en l'eix Y, es pot traslladar (afegir el filtre de traslació) cap amint (aumentar eix Y) aplicar el filtre de fractalitzacio i tornarlo a deixar on estaba amb la traslacio inversa.

Mar

Crea el mar (o similar) s'obre l'objecte. L'objecte resultant no tindra cap vertex per sota de radi minim (d'aquesta manera es crea el nivell del mar), i tot el que hi hagi per sota sera colorejat. El color depen dels parametres, pero tambe del tipus superficie, segons aquest es combina els dos parametres (interpolant) per anar creant diferents colors.

Parametres:

Es recomana que el mar estigui lleugerament per sota del radi inicial de l'objecte. Tot i aixi no nomes pot servir per crear el mar. Per exemple es pot fer un planeta similar a mart amb la correcta combinacio de vermell i carbasa i una lleugera fractalitzacio posterior.

RadiMinim

Filtre que aplica un radi minim. No permet que hi hagi cap vertex de l'objecte a menys distancia de la demanada, de ser aixi, l'apuja.

Parametres:

El radi minim pot ser util quan es vol fer una mena de mar, pero sense aplicar canvi de colors.

RadiMaxim

Filtre que aplica un radi maxim. No permet cap vertex de l'objecte a mes distancia del centre que l'especificada, si son mes lluny, s'apropa.

Parametres:

El radi maxim es util per la generacio de planetes com la terra amb nuvols junt al filtre de temperaturas molt ben controlat i posar grisos segons temperatura. Tambe es util per generar mesetas a una determinada alçada, i despres d'aplicar es pot tornar a fractalitzar per afegir una lleugera complexitat a la meseta.

TexturaAleatoria

Aplica colors i tipus de superficie aleatoris a l'objecte. Aquest es molt important per la texturitzacio ja que genera el tipus superficie aleatori, pero per donar resultats realistes es adient que s'apliqui abans de generar la fractalitacio que construeixi major part de l'objecte.

Parametres:

Es esencial canviar el tipus superficie dels objectes quan s'ha creat, si es vol gran complexitat en les texutres, llavors hi haura que primer fractalitzar poc, aplicar el textura aleatoria i despres tornar a fractalitzar.

TexturaTemperatura

Posa les textures de l'objecte segons les seves tempertures. La textura aplicada variara segons el tipus superficie, aixi que alhora tindra lleus irregularitats segons el aquest mateix.

Posar la textura temperatura es esencial per la generacio de planetes estandards. Cal avisar que reemplaca tots els colors existents pels corresponents a la temperatura, amb el que es preferible que la creacio del mar sigui posterior a aquest filtre.

PosarTemperatura

Asigna a la textura les temperatures corresponents a cada punt. La temperatura s'asigna segons la alcada i la latitut. Un cop asignada podrea ser utilitzada per posar temperatura.

Parametres:

Per posar les temperatures seria molt util aplicar abans radi minim per obtenir el nivell del mar desitjat. Tambe cal dir que estan en graus kelvin (on 273 es la congelacio de l'aigua i 373 on bull). Sengons les temperatures les textures sera unes o unes altres, les aptes per la vida vegetal tipica ronden entre 273 i 330.

Cal avisarque si la temperatura en un cim a l'alcada de l'equador es fret, encara ho sera molt mes a l'alcada del pol. Al asignar les temperatures tambe varien lleugerament depenent de tipus superficie.

No hi ha res que impedeixi que als pols faci mes calor que al equador, o que al cim faci mes calor que a l'alcada del mar.

Traslacio

Trasllada l'escena generada fins ara de posicio.

Parametres:

Traslladar es especialment util per fer canvis en els resultats de fractalitzacio i al agrupar altres objectes a l'escena.

PosarGrisosTemperatura

Posa tons de gris de color depenent de les temperatures existents. per 0 graus Kelvin tenim el blanc, per 255 graus Kelvin tnim el negre. Entre aquests dos tenim una gradacio uniforme.

Aquest filtre es util per comprobar que s'han colocat be les temperatura (si es desplacan entre els 0 i 255 graus), pero esta especialment pensat per a la generacio de nuvols amb la combinacio del mar i radi maxim.

PosarGrisosTipusSuperficie

Posa tons de gris per color depenent del tipus superficie.

Aquest filtre es util per saber els tipus de superficie colocats (d'aquesta manera es pot saber els tons del mar o canvis de texutres) pero esta esecialment pensat per a la generacio de llunes com la nostra (pero sense craters, per manca de temps no tenim el filtre de fractalitzar amb craters).

AfegirAnells

Afegeix un anell al planeta. L'anell es de fet una aproximació d'un disc pero amb volum. L'anell esta en el pla X amb centre l'eix de coordenades.

Parametres:

Normalment cap planeta te una lluna a 2.5 vegades el seu radi, ja que les atraccions gravitatories mutues acabant destrossant la lluna i aquesta acaba fent un anell.

Amb l'anell es pot fer un pseudodisc de radi -1.0 si no hi ha cap objecte.