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
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