<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992014000500002</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Gestión eficiente de modelos digitales de elevación para su visualización 3D utilizando procesamiento multinúcleo]]></article-title>
<article-title xml:lang="en"><![CDATA[Efficient management of digital elevation models for 3D visualization using multicore processing]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Arias-Naranjo]]></surname>
<given-names><![CDATA[Gilberto]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Acevedo-Martínez]]></surname>
<given-names><![CDATA[Liesner]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Valle-Martínez]]></surname>
<given-names><![CDATA[Yusnier]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Fuentes-Rodríguez]]></surname>
<given-names><![CDATA[Jorge]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Zinggerling]]></surname>
<given-names><![CDATA[Claudio]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas  ]]></institution>
<addr-line><![CDATA[Boyeros La Habana]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Universitat Politècnica de Catalunya  ]]></institution>
<addr-line><![CDATA[ Barcelona]]></addr-line>
<country>España</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2014</year>
</pub-date>
<volume>8</volume>
<fpage>14</fpage>
<lpage>28</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992014000500002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992014000500002&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992014000500002&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En el siguiente trabajo se describe un modelo para la visualización eficiente de superficies de terrenos en tres dimensiones, que aprovecha las potencialidades de cómputo de los procesadores multinúcleos actuales. Se realiza una división lógica del terreno en cuadrantes, los cuales son representados utilizando quadtrees restringidos. La carga de los gráficos es controlada mediante una triangulación adaptativa de la superficie y aprovechando las ventajas de diferentes niveles de detalle. La escena que se está visualizando se gestiona dinámicamente, lo que permite mantener solamente en memoria los datos asociados a aquellos cuadrantes que se están visualizando. Aquellos cuadrantes que no se visualizan son almacenados en memoria externa y se gestionan utilizando una estructura de datos que permite un acceso eficiente a los datos de los mismos.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[In this paper is described a model for efficient visualization of terrain surfaces in three dimensions, which exploits the computational potential of today multi-core processors. A logical division of the terrain in tiles is performed, those tiles are represented using restricted quadtrees. The graphics load is controlled by an adaptive triangulation surface and taking advantage of different levels of detail. The scene being viewed is dynamically managed, keeping in memory only the data associated with those tiles that are being viewed. Those tiles that are not displayed are stored in external memory and managed using a data structure that allows efficient access to the data.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[multinúcleo]]></kwd>
<kwd lng="es"><![CDATA[quadtree restringido]]></kwd>
<kwd lng="es"><![CDATA[triangulación multiresolución]]></kwd>
<kwd lng="es"><![CDATA[visualización 3D]]></kwd>
<kwd lng="en"><![CDATA[3D visualization]]></kwd>
<kwd lng="en"><![CDATA[multi-core]]></kwd>
<kwd lng="en"><![CDATA[multi-resolution triangulation]]></kwd>
<kwd lng="en"><![CDATA[restricted quadtree]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO    ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Gesti&oacute;n eficiente de modelos digitales de elevaci&oacute;n para su visualizaci&oacute;n  3D utilizando procesamiento multin&uacute;cleo</font></strong></font></p>     <p>&nbsp;</p> <h1><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Efficient management of  digital elevation models for 3D visualization using multicore processing</font></strong></font></h1>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Gilberto Arias-Naranjo</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>1*</sup></strong></font><font face="Verdana, Arial, Helvetica, sans-serif">,  Liesner Acevedo-Mart&iacute;nez</font><font size="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>1</sup></strong></font></strong></font><font face="Verdana, Arial, Helvetica, sans-serif">, Yusnier Valle-Mart&iacute;nez</font><font size="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>1</sup></strong></font></strong></font><font face="Verdana, Arial, Helvetica, sans-serif">, Jorge  Fuentes-Rodr&iacute;guez</font><font size="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>1</sup></strong></font></strong></font><font face="Verdana, Arial, Helvetica, sans-serif">, Claudio Zinggerling</font></strong></font><font size="2"><strong><font size="2"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>2</sup></strong></font></strong></font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1 </sup>Centro de Estudios de Matem&aacute;tica Computacional. Universidad  de las Ciencias Inform&aacute;ticas, Carretera a San Antonio de los Ba&ntilde;os, km 2 &frac12;,  Torrens, Boyeros, La Habana, Cuba. CP.: 19370. Correo-e: {<a href="mailto:gilbertoa,%20liesner@uci.cu">liesner,  yvm, jfuentes} @uci.cu</a></font>    <br> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>2 </sup></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Centro Internacional de M&eacute;todos Num&eacute;ricos Aplicados  a la Ingenier&iacute;a. CIMNE - UPC. Universitat Polit&egrave;cnica  de Catalunya, Barcelona, Espa&ntilde;a. Correo-e: &nbsp;<a href="mailto:czingger@cimne.upc.edu" target="_blank">czingger@cimne.upc.edu</a></font><font size="2"></font></p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia:<a href="mailto:gheisa@uclv.edu.cu"></a></font></span> </font>   <a href="mailto:gilbertoa@uci.cu"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">gilbertoa@uci.cu</font></a>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el  siguiente trabajo se describe un modelo para la visualizaci&oacute;n eficiente de  superficies de terrenos en tres dimensiones, que aprovecha las potencialidades  de c&oacute;mputo de los procesadores multin&uacute;cleos actuales. Se realiza una divisi&oacute;n  l&oacute;gica del terreno en cuadrantes, los cuales son representados utilizando <em>quadtree</em>s restringidos. La carga de los  gr&aacute;ficos es controlada mediante una triangulaci&oacute;n adaptativa de la superficie y  aprovechando las ventajas de diferentes niveles de detalle. La escena que se  est&aacute; visualizando se gestiona din&aacute;micamente, lo que permite mantener solamente  en memoria los datos asociados a aquellos cuadrantes que se est&aacute;n visualizando.  Aquellos cuadrantes que no se visualizan son almacenados en memoria externa y  se gestionan utilizando una estructura de datos que permite un acceso eficiente  a los datos de los mismos. </font></p>     <p>  <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave: </span></b>multin&uacute;cleo, <em>quadtree</em> restringido, triangulaci&oacute;n  multiresoluci&oacute;n, visualizaci&oacute;n 3D</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">In  this paper is described a model for efficient visualization of terrain surfaces  in three dimensions, which exploits the computational potential of today  multi-core processors. A logical division of the terrain in tiles is performed,  those tiles are represented using restricted quadtrees. The graphics load is  controlled by an adaptive triangulation surface and taking advantage of  different levels of detail. The scene being viewed is dynamically managed,  keeping in memory only the data associated with those tiles that are being  viewed. Those tiles that are not displayed are stored in external memory and  managed using a data structure that allows efficient access to the data. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>3D visualization, multi-core, multi-resolution  triangulation, restricted quadtree</font></p> <hr>     <p>&nbsp;</p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La  visualizaci&oacute;n interactiva de superficies de terrenos ha sido uno de los temas  m&aacute;s estudiados en los &uacute;ltimos a&ntilde;os en la disciplina Gr&aacute;ficos por Computadora.  El incremento constante de las capacidades de almacenamiento en los sistemas de  c&oacute;mputo, as&iacute; como el perfeccionamiento de las t&eacute;cnicas de adquisici&oacute;n de datos  de la superficie terrestre, ha permitido crear grandes vol&uacute;menes de informaci&oacute;n  de superficies de terrenos que requieren de gran eficiencia en las t&eacute;cnicas a utilizar  para su visualizaci&oacute;n en tiempo real en entornos tridimensionales. El  desarrollo gradual de la tecnolog&iacute;a, que involucra el vertiginoso crecimiento  en las capacidades de c&aacute;lculo y almacenamiento de las Unidades de Procesamiento  Gr&aacute;fico (GPU), ha posibilitado representar estos datos interactivamente  mediante modelos poligonales con diversos niveles de resoluci&oacute;n.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Por consiguiente, los problemas en esta rama del  conocimiento para la visualizaci&oacute;n de grandes superficies de terreno, est&aacute;n  enmarcados fundamentalmente en la representaci&oacute;n eficiente y la gesti&oacute;n de la  informaci&oacute;n a representar. Una forma de elevar el desempe&ntilde;o de la  representaci&oacute;n es disminuyendo la complejidad de las geometr&iacute;as que se utilizan  para construir la escena. Sin embargo, esta reducci&oacute;n no puede comprometer la  calidad de la superficie que estamos representando. Es por ello que esta  simplificaci&oacute;n puede ser controlada por un umbral de error, que es calculado  utilizando determinadas m&eacute;tricas. Otra forma de controlar la complejidad de la  representaci&oacute;n es haciendo uso del concepto de niveles de detalle (LOD).  Este concepto hace una analog&iacute;a al sistema visual de las personas, donde los  objetos aparecen a diferentes niveles de detalles, en funci&oacute;n de la distancia  y/o el &aacute;ngulo de visi&oacute;n en que se encuentren. Por tanto, en vez de representar  todos los elementos al mismo nivel de detalle, las partes de la escena se   ir&aacute;n  representando a menores resoluciones (con mayores umbrales de error) a medida  que se vayan alejando del punto y la direcci&oacute;n en que se est&aacute; mirando.    <br>       <br>   Otro  elemento importante a tener en cuenta es que no siempre podremos tener toda la  informaci&oacute;n de la superficie a visualizar en memoria interna. Para ello es  necesario contar con un mecanismo que permita la administraci&oacute;n din&aacute;mica de la  escena que se est&aacute; visualizando, cargando y descargando los elementos  necesarios para que la visualizaci&oacute;n mantenga la calidad y la fluidez en la  representaci&oacute;n.    <br>       <br>   El presente  trabajo aborda el problema de la visualizaci&oacute;n interactiva y en tiempo real con  diferentes niveles de detalles de superficies de terreno que, por su extensi&oacute;n,  no pueden ser representados completamente en memoria. La principal contribuci&oacute;n  se enfoca en el uso de <em>quadtrees</em> restringidos como estructura de datos espacial, para gestionar de manera  eficiente grandes mallas poligonales como v&iacute;a para la representaci&oacute;n de esta  clase de superficies y la definici&oacute;n de un esquema paralelo para la  construcci&oacute;n de los <em>quadtrees</em>.       <br> </font>    <br> <font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Trabajos anteriores</font></strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El problema  de la simplificaci&oacute;n de mallas y la triangulaci&oacute;n multiresoluci&oacute;n de  superficies ha sido ampliamente estudiado por la comunidad cient&iacute;fica en las  &uacute;ltimas dos d&eacute;cadas. Un significativo n&uacute;mero de variantes de soluci&oacute;n se basan  en el principio de triangulaci&oacute;n de Delaunay (Kreveld, 1997) para crear TIN  sobre conjuntos de puntos esparcidos irregularmente en el plano &ndash; ver adem&aacute;s (de  Floriani et al., 1996). Otra importante contribuci&oacute;n en ese aspecto lo  constituye la propuesta de (Hoppe, 1996), en la que se introduce una  representaci&oacute;n progresiva de las mallas como nuevo esquema de almacenamiento y  transmisi&oacute;n de triangulaciones.    ]]></body>
<body><![CDATA[<br>       <br>   Entre las  estructuras de datos m&aacute;s utilizadas para representar modelos digitales de  elevaci&oacute;n (MDE) jer&aacute;rquicamente a partir de mallas regulares se encuentran los  &aacute;rboles binarios de tri&aacute;ngulos (<em>bintree</em>)  (Evans et al., 2001) y los <em>quadtrees</em> (de  Berg et al., 2000). Espec&iacute;ficamente, el <em>quadtree</em> de regiones es ampliamente utilizado para representar este tipo de informaci&oacute;n (Samet,  1989a), puesto que divide recursiva y jer&aacute;rquicamente las superficies en  regiones regulares. Cada nodo interior contiene exactamente 4 nodos hijos,  donde cada uno de ellos representa uno de los 4 cuadrantes en que es dividida  recursivamente la regi&oacute;n. La propuesta de los autores en (Evans et al., 2001)  conocida como RTIN, de igual forma que en (Duchaineau et al., 1997) donde se  propone manejar las triangulaciones generadas por la subdivisi&oacute;n recursiva de  los tri&aacute;ngulos por el punto medio de su hipotenusa mediante dos colas de  prioridad &ndash; ver adem&aacute;s (Lindstrom and Pascucci, 2002) &ndash; , se basa en la misma  jerarqu&iacute;a <em>bintree</em>, pero enfocada  concretamente en la representaci&oacute;n eficiente de la jerarqu&iacute;a mediante  secuencias de bits, as&iacute; como en la eficiencia de los recorridos sobre la  estructura para la b&uacute;squeda de vecinos.    <br>       <br>   Las  principales contribuciones en lo que se conoce como Triangulaciones <em>Quadtree</em> Restringidas (RQT) se describen  en (Lindstrom et al., 1996), donde se introduce el uso de grafos de  dependencias entre v&eacute;rtices para evitar la aparici&oacute;n de grietas en las  superficies multiresoluci&oacute;n; y en (Pajarola, 1998), que usa las relaciones de  dependencias presentadas en (Lindstrom et al., 1996) para generar  triangulaciones m&iacute;nimas sobre <em>quadtrees</em> de regiones impl&iacute;citos construidos sobre grandes mallas regulares. R&ouml;ttger y  colaboradores en (R&ouml;ttger et al., 1998) tambi&eacute;n proponen un enfoque basado en <em>quadtrees</em>, centrado fundamentalmente en  la representaci&oacute;n eficiente de la estructura de datos a partir de una matriz de  ceros y unos. El costo total en memoria de la variante de soluci&oacute;n propuesta en  (R&ouml;ttger et al., 1998)&nbsp; es muy reducido  debido a que, adem&aacute;s de los valores de altura del MDE, datos de textura y  valores de error, solo se necesita un byte de informaci&oacute;n adicional por cada  punto en el MDE. Otras contribuciones importante en lo concerniente al costo de  almacenamiento de los modelos lo constituyen las propuestas de los autores en (Samet,  1989b) y (P&eacute;rez et al., 2006), basadas en el uso de curvas de recorrido del  espacio (Asano, 1997) para codificar los nodos de un <em>quadtree</em> de manera eficiente y compacta.    <br>       <br> El  desarrollo creciente en cuanto a potencia de c&aacute;lculo y velocidades de  comunicaci&oacute;n que experimentan en la actualidad las GPU, tiene un impacto  significativo en el dise&ntilde;o y desempe&ntilde;o de las t&eacute;cnicas de representaci&oacute;n y  visualizaci&oacute;n de MDE en 3D en tiempo real en nuestros d&iacute;as. Las propuestas de  soluci&oacute;n que hacen uso de la GPU actualmente est&aacute;n enfocadas principalmente en  el <em>rendering</em> de fragmentos  triangulares de superficies (denominados parches) calculados en etapas de  pre-procesamiento y almacenados en su memoria cach&eacute;. Los autores en (Schneider and  Westermann, 2006) proponen un esquema de comunicaci&oacute;n eficiente entre la CPU y  la GPU para actualizar incrementalmente un conjunto de arreglos de v&eacute;rtices e  &iacute;ndices almacenados en esta &uacute;ltima, disminuyendo significativamente los  requerimientos de ancho de banda de la soluci&oacute;n. Estos parches de tri&aacute;ngulos  constituyen la unidad b&aacute;sica la propuesta de (Cignoni et al., 2003a), en la que  se aproximan eficientemente una superficie mediante el uso de TIN previamente  calculadas y representadas en un <em>bintree</em>.  Este m&eacute;todo fue mejorado significativamente por los autores en (Cignoni et al.,  2003b) para soportar el <em>rendering</em> interactivo de planetas en tiempo real. Otras contribuciones significativas lo  constituyen las presentadas en (Livny et al., 2009), que propone la  representaci&oacute;n de los parches mediante 4 tiles de tri&aacute;ngulos que pueden ser con  diferentes niveles de resoluci&oacute;n, y 4 secuencias de tri&aacute;ngulos para conectarlos  entre s&iacute;; y a (B&ouml;sch et al., 2009), que combina el uso <em>quadtrees</em> con <em>bintrees</em> para representar bloques de terreno y parches de tri&aacute;ngulos&nbsp; y de forma sencilla hacer un uso eficiente de  la GPU en la simplificaci&oacute;n de&nbsp; mallas  poligonales con m&uacute;ltiples niveles de resoluci&oacute;n.</font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">MATERIALES Y M&Eacute;TODOS </font></strong></font></p> <h2><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Triangulaci&oacute;n utilizando <em>quadtrees</em> restringidos</font></strong></font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La  triangulaci&oacute;n mediante <em>quadtrees</em> restringidos es una triangulaci&oacute;n jer&aacute;rquica y adaptativa para superficies de  terrenos, donde la informaci&oacute;n es representada mediante mallas regulares (Pajarola, 1998). Una malla regular es una  matriz de puntos los cuales se encuentran distribuidos a distancias constantes  por ambas dimensiones.    <br>       ]]></body>
<body><![CDATA[<br>   Una forma  para representar un <em>quadtree</em> sobre  una malla regular, es considerando la propia malla como un <em>quadtree</em> y estableciendo a cada punto su relaci&oacute;n con la jerarqu&iacute;a  que se construye impl&iacute;citamente. Esta representaci&oacute;n tiene como inconveniente  que las mallas tienen que ser cuadradas y sus dimensiones tener la forma 2k+1.  Sin embargo, hace que las operaciones para acceder a los elementos del <em>quadtree</em> sean de orden constante (O(1))  en t&eacute;rminos de operaciones de m&aacute;quina (Pajarola,  1998).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para realizar la selecci&oacute;n de los puntos que estar&aacute;n  incluidos en la triangulaci&oacute;n se utiliza una m&eacute;trica de error. Todo punto cuyo  error est&eacute; por debajo de un umbral establecido, se considera no relevante para  la triangulaci&oacute;n y no es incluido en la misma. Sin embargo, si se sigue  solamente este criterio, se puede llegar a triangulaciones donde existen  grietas (ver <a href="#f01">figura 1</a>).  Para resolver este problema es necesario introducir una nueva restricci&oacute;n (Pajarola, 2002). Se establece entonces una  relaci&oacute;n de dependencia entre nodos del <em>quadtree</em>,  cada vez que un nodo sea incluido en la triangulaci&oacute;n (pues su error es superior  al umbral establecido), sus dependencias tambi&eacute;n son incluidas (ver <a href="#f02">figura 2</a>  a y b). Las dependencias de un nodo que es centro en  su nivel son dos nodos centro del nivel inferior; las dependencias de un nodo  no centro son los dos nodos centro de su nivel, adyacentes a &eacute;l (ver <a href="#f02">figura 2</a>  c). </font></p>     <p align="center"><a name="f01"></a><img src="/img/revistas/rcci/v8s1/f0102514.jpg" width="362" height="193"></p> <h3 align="center"><a name="f02"></a><img src="/img/revistas/rcci/v8s1/f0202514.jpg" width="551" height="215"></h3>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El proceso  de construcci&oacute;n del <em>quadtree</em> restringido y la triangulaci&oacute;n est&aacute;n estrechamente relacionados. Como el <em>quadtree</em> estar&aacute; impl&iacute;citamente  representado en la matriz de puntos, el problema consiste en determinar cu&aacute;les  de ellos formar&aacute;n parte de la triangulaci&oacute;n. Se comienza por los nodos del  &uacute;ltimo nivel y se van adicionando los puntos hasta llegar a aquellos en el  nivel cero del &aacute;rbol (los cuatro puntos en las esquinas de la matriz), siempre  tomando como criterio base que el error aproximado del punto est&eacute; por encima  del umbral establecido. Como las dependencias de un punto tambi&eacute;n son  adicionadas, luego de seleccionado este seg&uacute;n su error, esto implica que las  dependencias de estos puntos tambi&eacute;n deber&iacute;an ser adicionadas, lo que conlleva  a un proceso concurrente. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Esta concurrencia trae como consecuencia que pueden  ser visitados varios puntos en varias ocasiones (en funci&oacute;n de cuantas veces  fueron seleccionados puntos que ten&iacute;an dependencias con ellos directa o  indirectamente), haciendo que el algoritmo pudiese tener un comportamiento  ineficiente a la hora de generar la triangulaci&oacute;n. Como las dependencias de un  punto no centro, son centros de su propio nivel, como las dependencias de un  centro, son puntos del nivel inferior y como los puntos se van visitando desde  el &uacute;ltimo nivel del &aacute;rbol hasta el primero, entonces, si se recorren primero  los puntos no centro y luego los puntos centro de cada nivel, se garantiza que  todas las dependencias de los puntos seleccionados para la triangulaci&oacute;n sean  incluidas con solamente realizar una visita a cada punto de la matriz, teniendo  el algoritmo una complejidad temporal lineal, en funci&oacute;n de la cantidad de elementos  que tiene la matriz que compone el <em>quadtree</em> (Pajarola, 1998). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La m&eacute;trica de error de espacio objeto utilizada est&aacute;  basada en la distancia euclidiana de un punto a un segmento. Cuando un punto es  adicionado a una triangulaci&oacute;n, es con el objetivo de incrementar el nivel de  refinamiento de la misma y por tanto, divide uno o m&aacute;s tri&aacute;ngulos en otros m&aacute;s  peque&ntilde;os. Como las mallas a representar son regulares, siempre el punto que se  adiciona estar&iacute;a encima de uno de los lados de los tri&aacute;ngulos que divide (si se  hace una proyecci&oacute;n en dos dimensiones). Es por ello que el error que  introducir&iacute;a dicho punto, al ser incluido, estar&iacute;a determinado por la distancia  euclidiana desde &eacute;l hasta el segmento que compone el lado del tri&aacute;ngulo que  divide. Considerando que al adicionar un punto tambi&eacute;n lo son sus dependencias  y este proceso se va realizando de forma concurrente, entonces es necesario  tambi&eacute;n considerar, para calcular el error aproximado de un punto, todos  aquellos tri&aacute;ngulos que fueron afectados tanto por &eacute;l, como por sus  dependencias. Por tanto todas las dependencias propagan su error al punto y el  valor final del error aproximado es calculando tomando el valor m&aacute;ximo entre  todos estos errores y el inducido por el propio punto (ver la <a href="#f03">figura 3</a>)  (Pajarola, 1998). </font></p>     <p align="center"><a name="f03"></a><img src="/img/revistas/rcci/v8s1/f0302514.jpg" width="358" height="256"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un &uacute;ltimo  paso importante es la extracci&oacute;n de la triangulaci&oacute;n, luego de construida, para  su futura visualizaci&oacute;n. La extracci&oacute;n de los tri&aacute;ngulos utilizando abanicos es  una de las variantes utilizadas para realizar este proceso. Se comienza  utilizando el nodo centro del nivel uno y construyendo un abanico que contenga  los cuatro cuadrantes en los que se divide el &aacute;rbol en dicho nivel. Si uno de  los cuadrantes se encuentra subdivido en cuadrantes m&aacute;s peque&ntilde;os se desciende  en la estructura y se construye otro abanico tomando como punto de referencia  el centro de las cuatro regiones del cuadrante inicial. El proceso se realiza  de forma recursiva hasta incluir todos los abanicos que representen  completamente la triangulaci&oacute;n (R&ouml;ttger, y  otros, 1998) (ver la <a href="#f04">figura 4</a>). Los puntos  que son comunes a varios abanicos deben ser repetidos en la construcci&oacute;n de  estos lo que implica una alta redundancia de puntos en la creaci&oacute;n de los  abanicos. Sin embargo, cuando se hace una actualizaci&oacute;n de la triangulaci&oacute;n  provocada tanto por introducci&oacute;n como por la eliminaci&oacute;n de puntos, solamente  se afectan los abanicos que involucran los cambios realizados, dejando el resto  invariables y evitando realizar todo el proceso de extracci&oacute;n nuevamente.</font></p>     <p align="center"><a name="f04"></a><img src="/img/revistas/rcci/v8s1/f0402514.jpg" width="378" height="238"></p> <h2><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Gesti&oacute;n din&aacute;mica de la escena</font></strong></font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cuando se va  a representar un terreno es necesario considerar tres elementos importantes:</font></p> <ul>    ]]></body>
<body><![CDATA[<li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El terreno a representar puede ser tan grande que es  imposible almacenarlo en memoria interna completamente.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las dimensiones de la malla regular no tienen por qu&eacute; ser  de la forma 2k+1.</font></li>       <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La malla regular no tiene por qu&eacute; ser cuadrada.</font></li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para  resolver estos problemas se divide la malla que representa el terreno en  cuadrantes (tiles) que tienen dimensi&oacute;n 2k+1. Los cuadrantes se almacenan  en memoria externa y s&oacute;lo son cargados en memoria interna aquellos que  aparecer&aacute;n en la escena que se est&aacute; visualizando. Cada vez que un cuadrante,  debido a movimientos de la escena, deje de visualizarse, se libera la memoria  que ocupa para posibilitar la carga de nuevos cuadrantes. Estos cuadrantes son  gestionados por una estructura espacial denominada <em>FTTree</em> la cual permite la representaci&oacute;n de regiones donde las  dimensiones no son de la forma 2k+1 (Mart&iacute;nez,  2012) (ver la <a href="/img/revistas/rcci/v8s1/f0502514.jpg" target="_blank">figura 5</a>).     <br>       <br> Los  cuadrantes que se necesiten para la inclusi&oacute;n de los &uacute;ltimos puntos de la  regi&oacute;n se completan con puntos artificiales (ver la <a href="#f06">figura 6</a>). Estos  puntos adicionales, aunque garantizan que la estructura mantiene las  caracter&iacute;sticas deseadas para la construcci&oacute;n del <em>quadtree</em>, no son contemplados luego en la visualizaci&oacute;n. Cada vez  que ocurre un cambio significativo en la escena (traslaciones, aumento o  disminuci&oacute;n del nivel de detalle), se hace una consulta al <em>FTTree</em> para determinar qu&eacute; cuadrantes necesitan ser cargados y  cu&aacute;les liberados de la memoria interna de la computadora.</font></p>     <p align="center"><a name="f06"></a><img src="/img/revistas/rcci/v8s1/f0602514.jpg" width="469" height="199"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para  almacenar la informaci&oacute;n en memoria externa se tom&oacute; como base el dise&ntilde;o  propuesto por (Lerbour, y otros, 2009). Los  datos se organizan teniendo cada cuadrante por separado y almacenando los  puntos ordenados por niveles del <em>quadtree</em> que se va a construir. En primer lugar se almacenan los cuatro puntos que  componen el nivel cero del &aacute;rbol, luego los del nivel uno y as&iacute; sucesivamente,  hasta completar todos los niveles. Esta forma de organizaci&oacute;n permite que al  cargar un nuevo cuadrante en memoria puedan mostrarse triangulaciones parciales  hasta que toda la informaci&oacute;n que se necesite, para el nivel de detalle que se  estableci&oacute; para el cuadrante, haya sido cargada. Como el error utilizado s&oacute;lo  necesita ser calculado una sola vez, este dato se almacena junto con el valor  de altura de cada punto, evitando que sea necesario recalcular el error  aproximado cada vez que es cargado un cuadrante.</font></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>LOD y mallado  progresivo</strong></font></h2>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un elemento  que impacta directamente en la representaci&oacute;n eficiente del terreno es la  utilizaci&oacute;n de diferentes niveles de detalle para representar los cuadrantes  que est&aacute;n siendo visualizados en un momento determinado (Tianzi, 2009). Esto permite que cuadrantes que no est&aacute;n cerca del  punto desde el que se est&aacute; viendo la escena (punto de vista) se representen con  un mayor umbral de error, lo que disminuye de forma dr&aacute;stica la cantidad de  tri&aacute;ngulos que son utilizados.     ]]></body>
<body><![CDATA[<br>       <br>   Partiendo de  un umbral de error base, cada vez que se realiza una operaci&oacute;n relevante sobre  la escena, se recalcula el umbral espec&iacute;fico de cada cuadrante, teniendo en  cuenta dicho umbral base y la distancia a la que se encuentra el cuadrante del  punto de vista (ver <a href="#f07">figura 7</a>). En este  caso, como las distancias se determinan desde el punto de vista hasta el  cuadrante, consideramos que una operaci&oacute;n es relevante sobre la escena cuando  esta cambia el punto de vista de cuadrante (traslaci&oacute;n) o cuando transforma la  direcci&oacute;n en que se est&aacute; mirando (rotaci&oacute;n).</font></p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como se mencion&oacute; anteriormente, la mayor parte de la  informaci&oacute;n estar&aacute; ubicada en la memoria externa y cada vez que sea necesaria  su inclusi&oacute;n dentro de la escena es cargada para su procesamiento. Para lograr  una visualizaci&oacute;n fluida se realiza la carga de cada <em>quadtree</em> comenzando por los nodos en el nivel cero y descendiendo  en la jerarqu&iacute;a, incluyendo los puntos de forma paulatina. Ello conlleva a la  necesidad de que las triangulaciones puedan variar sin tener que realizar el  proceso completo nuevamente. </font>     <p align="center"><a name="f07"></a><img src="/img/revistas/rcci/v8s1/f0702514.jpg" width="369" height="218"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Otro  elemento importante a considerar es que, aunque cada <em>quadtree</em> garantiza que los puntos que incluye construyen una  triangulaci&oacute;n continua, no se cumple lo mismo entre <em>quadtrees</em> que son adyacentes. Es necesario entonces, propagar los  puntos frontera entre cuadrantes adyacentes para garantizar la continuidad del  mallado (Tianzi, 2009).    <br>       <br>   El mallado  progresivo consiste en realizar la actualizaci&oacute;n de la triangulaci&oacute;n que se  tiene adicionando o eliminando parte de los elementos (puntos, tri&aacute;ngulos). </font></p> <h2><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Esquema paralelo</strong></font></h2> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">La divisi&oacute;n en cuadrantes del terreno es la fuente de  paralelismo fundamental para plantear el esquema paralelo. En primera instancia  la construcci&oacute;n de un <em>quadtree</em> restringido  para un cuadrante es independiente del resto y por tanto se puede ejecutar de  manera paralela. Cuando se trabaja, como es el caso, con mallado progresivo  entonces se establece una dependencia de un cuadrante con sus vecinos. La  dependencia est&aacute; dada por lo puntos que es necesario propagar hacia los vecinos  adyacentes para garantizar la continuidad del mallado (ver la <a href="#f08">figura 8</a>). </font>     <p align="center"><a name="f08"></a><img src="/img/revistas/rcci/v8s1/f0802514.jpg" width="536" height="387"></p>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para  la implementaci&oacute;n paralela en C# se propone el uso de la biblioteca TPL(Acr&oacute;nimo  del ingl&eacute;s<em>, Task Parallel Library</em> que  se traduce como biblioteca de tareas paralelas), incluida en la versi&oacute;n 4.0 de la plataforma .net. Esta  biblioteca tiene la finalidad de facilitar el desarrollo de programas que  exploten eficientemente las potencialidades de paralelizaci&oacute;n de los  procesadores multin&uacute;cleos actuales.</font></p>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> TPL define un modelo basado en <em>tareas</em> (se refiere a algo que se quiere  hacer frente al modelo cl&aacute;sico de paralelismo m&aacute;s orientado a la gesti&oacute;n de  hilos) en  lugar de los cl&aacute;sicos hilos. Los hilos son unidades de ejecuci&oacute;n, el  programador es responsable de crearlos, asignarles trabajo y manejar su  existencia. En contraste el modelo que propone TPL es basado en unidades b&aacute;sicas  de ejecuci&oacute;n, las tareas. La biblioteca TPL ofrece el soporte para crear tareas  y se encarga de gestionar su ejecuci&oacute;n en hilos que ella misma maneja. Esto  ofrece la posibilidad al programador de concentrarse en la creaci&oacute;n de tareas que exploten las posibilidades de paralelizaci&oacute;n del  programa y deja a TPL los detalles de planificaci&oacute;n y ejecuci&oacute;n de las mismas.  El algoritmo de planificaci&oacute;n que utiliza TPL es de tipo <em>WorkStealing </em>(</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los algortimos <em>WorkStealing</em> tienen el prop&oacute;sito de  lograr un balance de carga equilibrado entre las unidades de ejecuci&oacute;n  disponible. Basan su funcionamiento en dos conceptos: unidades de ejecuci&oacute;n  (hilos) y colas de tareas sirviendo a los hilos. Los hilos ejecutan las tareas  extray&eacute;ndolas desde las colas FIFO,&nbsp; si  un hilo se queda sin tareas para ejecutar entonces intenta mantenerse ocupado  robando una tarea del resto de las colas, de ah&iacute; el t&eacute;rmino <em>Stealing</em></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La  construcci&oacute;n del <em>quadtree</em> restringido  para un cuadrante se define como una tarea de TPL, la ejecuci&oacute;n de las mismas  corre a cargo del planificador de TPL. La implementaci&oacute;n del mecanismo de  propagaci&oacute;n de puntos se basa en la utilizaci&oacute;n de colas concurrentes. Las  colas concurrentes sirven al mismo tiempo como mecanismos de sincronizaci&oacute;n  entre las tareas. El propio procedimiento de construcci&oacute;n del <em>quadtree</em> define los puntos que son  necesarios propagar hacia y desde las tareas vecinas utilizando las colas  concurrentes.</font></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">RESULTADOS Y DISCUSI&Oacute;N </font></strong><font size="2">    <br> </font></font>    <br> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Implementaci&oacute;n  y experimentaci&oacute;n</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para evaluar el desempe&ntilde;o en tiempo real del modelo  presentado y compararlo con la variante secuencial se desarroll&oacute; un componente  utilizando como interfaz gr&aacute;fica OpenGL e implementado en el lenguaje C# sobre  la plataforma .net 4.0 (ver la <a href="/img/revistas/rcci/v8s1/f0902514.jpg" target="_blank">figura 9</a>). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Fueron  visualizadas varias superficies tomando como base modelos digitales de  elevaci&oacute;n con extensiones consideradas de tama&ntilde;o peque&ntilde;o (2k x 2k, alrededor de  4 millones de puntos) y mediano (4k x 4k, alrededor de 16 millones de puntos) y  sobre una configuraci&oacute;n de <em>hardware</em> con las siguientes caracter&iacute;sticas: CPU AMD Ahtlom II Dual-Core M300 a 2.0 GHz,  4 Gb de memoria RAM y una tarjeta de video integrada ATI Mobile Radeon HD 4200.    <br>       <br> Se  ejecutaron experimentos que consistieron en realizar un recorrido  predeterminado por encima de las superficies, de forma tal que fuesen exploradas  diferentes topolog&iacute;as de terreno (ejemplo: llanuras, monta&ntilde;as). En cada segundo  fueron medidas la cantidad de cuadros generados por la variante secuencial (FPS_S),  por la variante paralela (FPS_P) y la cantidad de miles de tri&aacute;ngulos componiendo  la imagen (MTpS). En la <a href="/img/revistas/rcci/v8s1/t0102514.jpg" target="_blank">tabla 1</a> se presentan los resultados de las mediciones  realizadas para muestras de diferentes modelos digitales de elevaci&oacute;n,  disponibles para su libre uso por la comunidad cient&iacute;fica.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El est&aacute;ndar  establecido para considerar que la visualizaci&oacute;n se est&aacute; realizando en tiempo  real es de al menos 70 cuadros por segundo. Como puede apreciarse, para datos  de tama&ntilde;o peque&ntilde;o o mediano se obtiene un desempe&ntilde;o por encima de los 75  cuadros por segundo, superando en todos los casos la cota m&iacute;nima recomendada. Otro  resultado importante es que se logr&oacute; aumentar la taza de cuadros representados en  la versi&oacute;n paralela con respecto a la versi&oacute;n secuencial (17 cuadros por  segundo como promedio). Cabe destacar que todo el procesamiento se est&aacute;  realizando en la CPU (no se explotan los recursos de c&oacute;mputo de la GPU) y que  la configuraci&oacute;n de <em>hardware</em> presentada s&oacute;lo permite la utilizaci&oacute;n de dos hilos de ejecuci&oacute;n de forma  simult&aacute;nea.</font></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El modelo  presentado, adem&aacute;s de hacer uso de las facilidades de procesamiento paralelo de  las arquitecturas actuales, cumple con las principales especificaciones  relacionadas en la bibliograf&iacute;a consultada: intercambio progresivo de  elementos, triangulaci&oacute;n en tiempo real, transiciones contin&uacute;as entre varios  niveles de detalle y almacenamiento y acceso eficientes en memoria externa. Sin  embargo, es necesario continuar incorporando conocimientos de varias &aacute;reas como  son gr&aacute;ficos por computadora, geometr&iacute;a computacional, sistemas de bases de  datos, estructuras de datos espaciales y computaci&oacute;n de alto rendimiento para  arribar a soluciones mucho m&aacute;s eficientes.    <br>       <br>   <em>OpenGL</em>, a partir de su versi&oacute;n 3.1, incluy&oacute; funcionalidades que  permiten el reinicio de primitivas. Esta facilidad permite la representaci&oacute;n  eficiente de abanicos de tri&aacute;ngulos que sumado a la f&aacute;cil actualizaci&oacute;n que se  hace de los mismos cuando cambia la triangulaci&oacute;n, hacen de los abanicos una  variante atractiva a la hora de extraer las triangulaciones para su representaci&oacute;n.     <br>       <br>   La  utilizaci&oacute;n de un <em>FTTree</em> para  administrar la escena permite representar mallas cuyas dimensiones no sean  cuadradas sin embargo, los puntos artificiales adicionados requieren un  tratamiento particular pues no pueden formar parte de la triangulaci&oacute;n que se  construya.     <br>       <br> Aunque todo  el procesamiento se hace en la <em>CPU</em>,  los principios son extensibles y adaptables a soluciones que involucren la  utilizaci&oacute;n de <em>GPUs</em>.</font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS  BIBLIOGR&Aacute;FICAS</B></font>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ASANO,  T., RANJAN, D., ROOS, T., WELZL, E., AND WIDMAYER, P. Space-filling curves and  their use in the design of geometric data structures. Theoretical Computer  Science, 181(1):3&ndash;15. 1997</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">B&Ouml;SCH,  J, GOSWAMI, P, PAJAROLA, R. RASTeR: simple and efficient terrain rendering on  the GPU. In Proceedings of the 30th annual conference of the European  Association for Computer Graphics (EUROGRAPHICS 2009), Munich, Germany, pp.  35-42. 2009</font><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">CIGNONI,  P., GANOVELLI, F., GOBBETTI, E., MARTON, F., PONCHIO, F., AND SCOPIGNO, R. Bdam  &ndash; batched dynamic adaptive meshes for high performance terrain visualization.  Computer Graphics Forum, 22(3):505&ndash;514. 2003a</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">CIGNONI,  P., GANOVELLI, F., GOBBETTI, E., MARTON, F., PONCHIO, F., AND SCOPIGNO, R.  Planet&ndash;sized batched dynamic adaptive meshes (p-bdam). In Proceedings IEEE  Visualization, pages 147&ndash;155, Conference held in Seattle,WA, USA. IEEE Computer  Society Press. 2003b</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DE  BERG, M., VAN KREVELD, M., OVERMARS, M., AND SCHWARZKOPF, O. Computational  Geometry: Algorithms and Applications. Springer, 2 edition. 2000</font><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DUCHAINEAU,  M., WOLINSKY, M., SIGETI, D. E., MILLER, M. C., ALDRICH, C., AND  MINEEV-WEINSTEIN, M. B. Roaming terrain: real-time optimally adapting meshes.  In VIS &rsquo;97: Proceedings of the 8th conference on Visualization &rsquo;97, pp. 81&ndash;88,  Los Alamitos, CA, USA. IEEE Computer Society Press. 1997</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">EVANS,  W. S., KIRKPATRICK, D. G., AND TOWNSEND, G. Right-triangulated irregular  networks. Algorithmica, 30(2):264&ndash;286. 2001</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">FLORIANI,  L. D., MARZANO, P., AND PUPPO, E. Multi-resolution models for topographic  surface description. The Visual Computer, 12(7):317&ndash;345. 1996</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">HOPPE,  H. Progressive meshes. In SIGGRAPH &rsquo;96: Proceedings of the 23rd annual  conference on Computer graphics and interactive techniques, pp. 99&ndash;108, New  York, NY, USA. ACM. 1996</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">KREVELD,  M. J. V. Algorithms for triangulated terrains. In SOFSEM &rsquo;97: Proceedings of  the 24th Seminar on Current Trends in Theory and Practice of Informatics, pages  19&ndash;36, London, UK. Springer-Verlag. 1997</font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LERBOUR R, MARVIE J Y GAUTRON P.  Adaptive streaming and rendering of large terrains: a generic solution.  Proceedings of WSCG, 2009.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LINDSTROM,  P. AND PASCUCCI, V. Terrain simplification simplified: A general framework for  view-dependent out-of-core visualization. IEEE Transactions on Visualization  and Computer Graphics, 8(3):239&ndash;254. 2002</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LINDSTROM,  P., KOLLER, D., RIBARSKY, W., HODGES, L. F., FAUST, N., AND TURNER, G. A.  Real-time, continuous level of detail rendering of height fields. In SIGGRAPH  &rsquo;96: Proceedings of the 23rd annual conference on Computer graphics and  interactive techniques, pp. 109&ndash;118, New York, NY, USA. ACM. 1996</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">LIVNY,  Y., KOGAN, Z., AND EL-SANA, J. Seamless patches for GPU-based terrain  rendering. The Visual Computer, 25(3):197&ndash;208. 2009</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MART&Iacute;NEZ Y. Modelo de Representaci&oacute;n de Superficies de Terreno para su Visualizaci&oacute;n  en Tres Dimensiones. Ph.D. dissertation. Universidad de las Ciencias Inform&aacute;ticas,  2012.    </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PAJAROLA,  R. Large scale terrain visualization using the restricted quadtree  triangulation. In VIS &rsquo;98: Proceedings of the conference on Visualization &rsquo;98,  pp. 19&ndash;26, Los Alamitos, CA, USA. IEEE Computer Society Press. 1998</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">PAJAROLA R. Overview of  quadtree based terrain triangulation and visualization. Technical Report  UCI-ICS TR 02-01.&nbsp;2002.    </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">P&Eacute;REZ,  M., BENAVENT, X., AND OLANDA, R. Efficient coding of quadtree nodes. In  Proceedings of the International Conference on Computational Science (3),  volume 3993 of Lecture Notes in Computer Science, pp 13&ndash;16. Springer. 2006</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">R&Ouml;TTGER,  S., HEIDRICH, W., SLUSSALLEK, P., AND SEIDEL, H.-P. Real-time generation of  continuous levels of detail for height fields. In Proceedings of the 6th  International Conference in Central Europe on Computer Graphics and  Visualization, pp. 315&ndash;322. 1998</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">SAMET,  H. The Design and Analysis of Spatial Data Structures. Addison-Wesley Longman  Publishing Co., Inc., Boston, MA, USA. 1989a</font><!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">SAMET,  H. Applications of Spatial Data Structures: Computer graphics, image  processing, and GIS. Addison-Wesley Longman Publishing Co., Inc., Boston, MA,  USA. 1989b</font><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">SCHNEIDER,  J. AND WESTERMANN, R. GPU-friendly high-quality terrain rendering. Journal of  WSCG, 14     <br>   (1-3):49&ndash;56. 2006</font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">TIANZI OUYANG. Terrain  3D Visualization based on Dynamic LOD Quadtree Arithmetic. Computer Development  &amp; Applications, 2009.&nbsp;Vol. 2.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">XIAOWEI ZHENG et al. Multi-core  paralle algorithms of the three-dimensional terrain model generation. Microcomputer  &amp; Its Applications, 2011.&nbsp;Vol. 8.    </font></p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 7/05/2014      <br> Aceptado: 21/05/2014</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ASANO]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[RANJAN]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[ROOS]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[WELZL]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[WIDMAYER]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Space-filling curves and their use in the design of geometric data structures.]]></article-title>
<source><![CDATA[]]></source>
<year>1997</year>
<volume>181</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>3-15</page-range></nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BÖSCH]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[GOSWAMI]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[PAJAROLA]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[RASTeR: simple and efficient terrain rendering on the GPU]]></source>
<year>2009</year>
<page-range>35-42</page-range><publisher-loc><![CDATA[^eMunich Munich]]></publisher-loc>
<publisher-name><![CDATA[In Proceedings of the 30th annual conference of the European Association for Computer Graphics (EUROGRAPHICS 2009)]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CIGNONI]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[GANOVELLI]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[GOBBETTI]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[MARTON]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[PONCHIO]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[SCOPIGNO]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Bdam - batched dynamic adaptive meshes for high performance terrain visualization]]></article-title>
<source><![CDATA[]]></source>
<year>2003</year>
<month>a</month>
<volume>22</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>505-514</page-range></nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CIGNONI]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[GANOVELLI]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[GOBBETTI]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
<name>
<surname><![CDATA[MARTON]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[PONCHIO]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[SCOPIGNO]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Planet-sized batched dynamic adaptive meshes (p-bdam)]]></source>
<year>2003</year>
<month>b</month>
<page-range>147-155</page-range><publisher-name><![CDATA[Conference held in Seattle,WA, USA. IEEE Computer Society Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DE BERG]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[VAN KREVELD]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[OVERMARS]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[SCHWARZKOPF]]></surname>
<given-names><![CDATA[O]]></given-names>
</name>
</person-group>
<source><![CDATA[Computational Geometry: Algorithms and Applications]]></source>
<year>2000</year>
<publisher-name><![CDATA[Springer, 2 edition]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DUCHAINEAU]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[WOLINSKY]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[SIGETI]]></surname>
<given-names><![CDATA[D. E]]></given-names>
</name>
<name>
<surname><![CDATA[MILLER]]></surname>
<given-names><![CDATA[M. C]]></given-names>
</name>
<name>
<surname><![CDATA[ALDRICH]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[MINEEV-WEINSTEIN]]></surname>
<given-names><![CDATA[M. B]]></given-names>
</name>
</person-group>
<source><![CDATA[Roaming terrain: real-time optimally adapting meshes.]]></source>
<year>1997</year>
<publisher-loc><![CDATA[Los Alamitos, CA ]]></publisher-loc>
<publisher-name><![CDATA[In VIS &#8217;97: Proceedings of the 8th conference on Visualization &#8217;97, pp.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[EVANS]]></surname>
<given-names><![CDATA[W. S]]></given-names>
</name>
<name>
<surname><![CDATA[KIRKPATRICK]]></surname>
<given-names><![CDATA[D. G]]></given-names>
</name>
<name>
<surname><![CDATA[TOWNSEND]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Right-triangulated irregular networks]]></article-title>
<source><![CDATA[]]></source>
<year>2001</year>
<volume>30</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>264-286</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FLORIANI]]></surname>
<given-names><![CDATA[L. D]]></given-names>
</name>
<name>
<surname><![CDATA[MARZANO]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[PUPPO]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Multi-resolution models for topographic surface description.]]></article-title>
<source><![CDATA[]]></source>
<year>1996</year>
<volume>12</volume>
<numero>7</numero>
<issue>7</issue>
<page-range>317-345</page-range></nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HOPPE]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[Progressive meshes]]></source>
<year>1996</year>
<page-range>99-108</page-range><publisher-loc><![CDATA[^eNew York, NY New York, NY]]></publisher-loc>
<publisher-name><![CDATA[In SIGGRAPH &#8217;96: Proceedings of the 23rd annual conference on Computer graphics and interactive techniques]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KREVELD]]></surname>
<given-names><![CDATA[M. J. V]]></given-names>
</name>
</person-group>
<source><![CDATA[for triangulated terrains.]]></source>
<year>1997</year>
<page-range>19-36</page-range><publisher-loc><![CDATA[^eLondon London]]></publisher-loc>
<publisher-name><![CDATA[Springer-Verlag]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LERBOUR]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[MARVIE]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[GAUTRON]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[Adaptive streaming and rendering of large terrains: a generic solution]]></source>
<year>2009</year>
<publisher-name><![CDATA[Proceedings of WSCG]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LINDSTROM]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[PASCUCCI]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Terrain simplification simplified: A general framework for view-dependent out-of-core visualization.]]></article-title>
<source><![CDATA[]]></source>
<year>2002</year>
<volume>8</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>239-254</page-range></nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LINDSTROM]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[KOLLER]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
<name>
<surname><![CDATA[RIBARSKY]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[HODGES]]></surname>
<given-names><![CDATA[L. F]]></given-names>
</name>
<name>
<surname><![CDATA[FAUST]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[TURNER]]></surname>
<given-names><![CDATA[G. A]]></given-names>
</name>
</person-group>
<source><![CDATA[Real-time, continuous level of detail rendering of height fields]]></source>
<year>1996</year>
<page-range>109-118</page-range><publisher-loc><![CDATA[New York, NY ]]></publisher-loc>
<publisher-name><![CDATA[In SIGGRAPH &#8217;96: Proceedings of the 23rd annual conference on Computer graphics and interactive techniques]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LIVNY]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
<name>
<surname><![CDATA[KOGAN]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[EL-SANA]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Seamless patches for GPU-based terrain rendering.]]></article-title>
<source><![CDATA[]]></source>
<year>2009</year>
<volume>25</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>197-208</page-range></nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MARTÍNEZ]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[Modelo de Representación de Superficies de Terreno para su Visualización en Tres Dimensiones.]]></source>
<year>2012</year>
<publisher-name><![CDATA[Ph.D. dissertation. Universidad de las Ciencias Informáticas]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PAJAROLA]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Large scale terrain visualization using the restricted quadtree triangulation]]></source>
<year>1998</year>
<page-range>19-26</page-range><publisher-loc><![CDATA[Los Alamitos^eCA CA]]></publisher-loc>
<publisher-name><![CDATA[In VIS &#8217;98: Proceedings of the conference on Visualization &#8217;98, IEEE Computer Society Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PAJAROLA]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Overview of quadtree based terrain triangulation and visualization.]]></source>
<year>2002</year>
<publisher-name><![CDATA[Technical Report UCI-ICS TR 02-01]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PÉREZ]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[BENAVENT]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
<name>
<surname><![CDATA[OLANDA]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Efficient coding of quadtree nodes.]]></article-title>
<source><![CDATA[]]></source>
<year>2006</year>
<volume>3993</volume>
<page-range>13-16</page-range><publisher-name><![CDATA[of Lecture Notes in Computer Science]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RÖTTGER]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[HEIDRICH]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
<name>
<surname><![CDATA[SLUSSALLEK]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[SEIDEL]]></surname>
<given-names><![CDATA[H.-P]]></given-names>
</name>
</person-group>
<source><![CDATA[Real-time generation of continuous levels of detail for height fields.]]></source>
<year>1998</year>
<page-range>315-322</page-range><publisher-name><![CDATA[In Proceedings of the 6th International Conference in Central Europe on Computer Graphics and Visualization]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SAMET]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[The Design and Analysis of Spatial Data Structures.]]></source>
<year>1989</year>
<month>a</month>
<publisher-loc><![CDATA[MA^eBoston Boston]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co., Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SAMET]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<source><![CDATA[Applications of Spatial Data Structures: Computer graphics, image processing, and GIS]]></source>
<year>1989</year>
<month>b</month>
<publisher-loc><![CDATA[MA^eBoston Boston]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley Longman Publishing Co]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SCHNEIDER]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[WESTERMANN]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[GPU-friendly high-quality terrain rendering.]]></article-title>
<source><![CDATA[]]></source>
<year>2006</year>
<volume>14</volume>
<numero>1-3</numero>
<issue>1-3</issue>
<page-range>49-56</page-range></nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[OUYANG]]></surname>
<given-names><![CDATA[TIANZI]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Terrain 3D Visualization based on Dynamic LOD Quadtree Arithmetic.]]></article-title>
<source><![CDATA[]]></source>
<year>2009</year>
<volume>2</volume>
</nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[XIAOWEI]]></surname>
<given-names><![CDATA[ZHENG]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Multi-core paralle algorithms of the three-dimensional terrain model generation.]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>8</volume>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
