Diseño de un algoritmo para rendering eficiente de estructuras proteicas de gran escala
Abstract
El software de gráficos por computadora en 3D de hoy en día nos da la capacidad
de modelar y visualizar objetos en situaciones o tamaños que antes no habría sido
posible, incluso nos dan la capacidad de que la visualización de estos objetos sea
generada en tiempo real lo que otorga la posibilidad de crear aplicaciones que
hagan uso de esta capacidad para agregar interactividad con los objetos
modelados.
Es muy importante la capacidad de poder dotar al usuario de una capacidad de
interactividad con el gráfico generado, pero esto no se logra si es que el tiempo de
respuesta de la aplicación es muy grande, por ejemplo una consola de videojuegos
exigen como mínimo 30fps (cuadros por segundo) un valor menor ocasiona que los
movimientos no fueran fluidos y se pierda la sensación de movimiento. Esto hace
que la experiencia de usuario fluida sea una de las metas principales del rendering
interactivo.
Uno de los mayores problemas que se encuentran en esta área es el de visualizar
gran cantidad de polígonos, debido a limitaciones de memoria o capacidad de
procesamiento, mientras mayor sea la cantidad de polígonos que se desea dibujar
en pantalla, mayor será el tiempo de procesamiento que será necesario para
generar las imágenes. Una aplicación en particular es el de visualización de la estructura de proteínas.
Existen proteínas que poseen una gran estructura, por la cantidad de polígonos que
se requieren para representar todos los elementos y conexiones que poseen estas
moléculas y adicionalmente la necesidad de visualizar grandes cantidades de
moléculas simultáneamente, ocasiona que se disminuya el rendimiento y la
interactividad al momento de la visualización.
El presente proyecto plantea utilizar una estructura algorítmica para realizar
rendering eficiente de gran cantidad de proteínas haciendo uso de un visualizador
3D, que muestre la estructura tridimensional de estas y permita la interacción en
tiempo real con el modelo. La estructura propuesta en este proyecto hace uso de la
aceleración por hardware presente en las tarjetas gráficas modernas a través de un API de generación de gráficos en tiempo real que es OpenGL con el cual se aplican
optimizaciones que aprovechan la estructura planteada.
Para que el proceso de renderizado sea más veloz, se mantiene un número bajo de
polígonos en los modelos. Debido a que los elementos son repetitivos (esferas y
cilindros) se reutiliza la geometría de estos elementos haciendo uso de una
estructura como el Scene Graph de modo que el uso de memoria sea menor y de
otra estructura como el Octree que permite discriminar los elementos que deben ser
procesados durante el rendering.
Combinando todo lo mencionado anteriormente, la estructura propuesta permite
que se visualicen proteínas de gran estructura o gran cantidad de estas,
manteniendo el grado necesario de interactividad para facilitar su estudio así como
también manteniendo un aspecto estético que permita reconocer los elementos sin
reducir el rendimiento.
Temas
Algoritmos
Gráficos por computadoras
Diseño gráfico
Programas para computadoras
Gráficos por computadoras
Diseño gráfico
Programas para computadoras
Para optar el título de
Ingeniero Informático