20.06.2013 Views

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

Acceso al documento en PDF - Biblioteca Nacional de Maestros

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4 Det<strong>al</strong>les <strong>de</strong> implem<strong>en</strong>tación<br />

En esta sección <strong>de</strong>scribiremos <strong>al</strong>gunos <strong>de</strong>t<strong>al</strong>les prácticos e importantes <strong>de</strong> la implem<strong>en</strong>tación<br />

re<strong>al</strong>izada. Los mismos reflejan las consi<strong>de</strong>raciones aconsejadas por la experi<strong>en</strong>cia,<br />

y por lo tanto son también una parte v<strong>al</strong>iosa para t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta. El programa fue<br />

re<strong>al</strong>izado <strong>en</strong> una 486 DX2 con 8 Mbytes <strong>de</strong> RAM y una placa <strong>de</strong> vi<strong>de</strong>o <strong>de</strong> 1 Mbyte. El compilado<br />

y linkeado fue re<strong>al</strong>izado con los sigui<strong>en</strong>tes parámetros: set <strong>de</strong> instrucciones i486,<br />

<strong>al</strong>ineación Word, mo<strong>de</strong>lo <strong>de</strong> memoria large y con manejo <strong>de</strong>l coprocesador matemático.<br />

Se prefirió trabajar con el Borland C++, <strong>de</strong>bido a cierta experi<strong>en</strong>cia <strong>en</strong> su manejo y<br />

con la versión 4.0 para plataforma Windows, por poseer’ un ambi<strong>en</strong>te <strong>de</strong> programación<br />

más cómodo. De todas maneras, el ejecutable <strong>de</strong> la versión re<strong>al</strong>izada trabaja bajo DOS,<br />

por lo que se hubiese podido utilizar una versión anterior. Dadas las limitaciones <strong>en</strong> la<br />

memoria princip<strong>al</strong>, se <strong>de</strong>cidió trabajar con una base <strong>de</strong> datos <strong>de</strong> 128 x 128 x 128 , con un<br />

byte por dato <strong>al</strong>canzando los 2 Mbytes = 2.097.152 datos. También se <strong>de</strong>cidió utilizar<br />

como modo <strong>de</strong> vi<strong>de</strong>o gráfico el IBM8514 con la resolución <strong>de</strong> 1024x768 y 256 colores,<br />

<strong>de</strong>biéndose poseer una placa compatible con este modo y el emulador activado para po<strong>de</strong>r<br />

correr el programa. Este modo gráfico es el mejor disponible para una versión ejecutable<br />

bajo DOS,<br />

Con respecto <strong>al</strong> mapeo <strong>de</strong> color y transpar<strong>en</strong>cia, como ya se ha m<strong>en</strong>cionado, la a<strong>de</strong>cuada<br />

asignación <strong>de</strong> color y porc<strong>en</strong>taje <strong>de</strong> transpar<strong>en</strong>cia a los distintos v<strong>al</strong>ores <strong>de</strong> la función<br />

a visu<strong>al</strong>izar es necesaria para obt<strong>en</strong>er bu<strong>en</strong>os resultados. El primer problema a resolver<br />

consiste <strong>en</strong> <strong>de</strong>cidir la cantidad <strong>de</strong> colores que se van a utilizar <strong>en</strong> la p<strong>al</strong>eta <strong>de</strong> la tarjeta<br />

gráfica, dado que solo nos permite mostrar 256 colores simultáneos. Luego <strong>de</strong> re<strong>al</strong>izar<br />

diversas experi<strong>en</strong>cias <strong>de</strong> trabajo, se logró compr<strong>en</strong><strong>de</strong>r que <strong>en</strong> este trabajo no es necesario<br />

repres<strong>en</strong>tar simultáneam<strong>en</strong>te muchas cromaticida<strong>de</strong>s’difer<strong>en</strong>tes, sino que es necesario t<strong>en</strong>er<br />

la mayor cantidad <strong>de</strong> combinaciones simultáneas posibles <strong>de</strong> unos pocos colores. Es por<br />

eso que se <strong>de</strong>cidió trabajar con dos colores simultáneam<strong>en</strong>te, con 16 int<strong>en</strong>sida<strong>de</strong>s.<strong>de</strong> cada<br />

uno, 16 int<strong>en</strong>sida<strong>de</strong>s <strong>de</strong> rojo, 16 <strong>de</strong> azul, y los restantes 210 colores que forman la p<strong>al</strong>eta<br />

son las combinaciones <strong>en</strong>tre los anteriores. Dicha selección permite obt<strong>en</strong>er interesantes<br />

resultados cuando los datos repres<strong>en</strong>tan <strong>al</strong>gún tipo <strong>de</strong> objeto re<strong>al</strong>, pero si se <strong>de</strong>sea repres<strong>en</strong>tar<br />

datos <strong>de</strong> mediciones es necesario t<strong>en</strong>er más colores para difer<strong>en</strong>ciar bi<strong>en</strong>, por<br />

ejemplo distintas d<strong>en</strong>sida<strong>de</strong>s.<br />

Otro punto clave es la asignación <strong>de</strong> transpar<strong>en</strong>cia u opacidad, con la cu<strong>al</strong> se <strong>de</strong>be<br />

eliminar aquel tipo <strong>de</strong> información que no es necesario ver, es <strong>de</strong>cir si no se <strong>de</strong>sea ver<br />

<strong>al</strong>go se le mapea opacidad 0%. También se <strong>de</strong>be t<strong>en</strong>er cuidado con evitar que la opacidad<br />

acumulada llegue <strong>al</strong> 100% antes <strong>de</strong> tiempo imposibilitando la observación <strong>de</strong> <strong>de</strong>t<strong>al</strong>les<br />

es<strong>en</strong>ci<strong>al</strong>es. Esto último se <strong>de</strong>be a que si la proyección <strong>de</strong> <strong>al</strong>gún voxel cae <strong>en</strong> un pixel que<br />

ya ti<strong>en</strong>e una opacidad acumulada igu<strong>al</strong> <strong>al</strong> 100% no se produce modificación <strong>de</strong> color ni<br />

<strong>de</strong> transpar<strong>en</strong>cia. La información <strong>de</strong>l color <strong>de</strong> cada pixel y su opacidad se <strong>al</strong>mac<strong>en</strong>an <strong>en</strong><br />

un frame buffer <strong>en</strong> memoria XMS, y cada vez que se va a actu<strong>al</strong>izar un pixel, se c<strong>al</strong>cula el<br />

efecto <strong>de</strong> la combinación <strong>de</strong> los v<strong>al</strong>ores a poner con los ya acumulados y esta composición<br />

es la que se pone <strong>en</strong> pant<strong>al</strong>la y la que actu<strong>al</strong>iza el frame buffer. En este trabajo se asignó<br />

un el tamaño <strong>de</strong> un long int (4 bytes) a la información <strong>de</strong> color y transpar<strong>en</strong>cia <strong>de</strong> cada<br />

pixel, tot<strong>al</strong>izando 3 Mbytes para el uso <strong>de</strong>l frame buffer. Esta precisión <strong>en</strong> la repres<strong>en</strong>tación<br />

<strong>de</strong> la transpar<strong>en</strong>cia es necesaria para evitar los errores numéricos <strong>en</strong> las operaciones <strong>de</strong><br />

136

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!