Determinación de cara oculta

En gráficos por computadoras la determinación de las caras ocultas (HSR por sus siglas en inglés), también conocida como determinación de las superficies visibles (VSD), es el proceso usado para determinar que superficies y partes de superficies son visibles o no desde algún punto de observación.

Desde el inicio de los gráficos por computadora, muchas investigaciones se han enfocado en la obtención de realismo físico en la imagen generada. Sin embargo generar imágenes realistas tiene un precio. Los algoritmos para alcanzar estos resultados son costosos en el sentido computacional, razón por la que hasta hace unos pocos años solo podían incluirse en supercomputadoras o computadoras con hardware gráfico de carácter muy específico. Durante mucho tiempo las simulaciones tridimensionales, o se hacían en las computadoras antes mencionadas, o los programadores y diseñadores tenían que hacer un esfuerzo extraordinario para lograr que quien emplease la tecnología sobre una computadora de prestaciones comunes, no se sintiese defraudado por el bajo nivel de los gráficos.

Hoy día existe una situación diferente. La posibilidad de presentar gráficos en tiempo real es una realidad para las computadoras personales. Un resultado importante, ha sido la aparición de tarjetas aceleradoras gráficas. Estos dispositivos descargan, de manera considerable, el trabajo que hasta este momento se realizaba en el microprocesador de la computadora (CPU) a través de procesos gráficos implementados en software (software rendering).

La selección por visibilidad ha sido un problema esencial en gráficos por computadora desde sus inicios. Una variedad de algoritmos de HSR fueron desarrollados en los años 70, para resolver el problema de la determinación de secciones visibles de los objetos en la imagen final. El problema en la actualidad se considera resuelto y para la mayoría de las aplicaciones interactivas el algoritmo de selección es el: z buffer.

En la actualidad el tema es retomado por la imposibilidad de representar grandes bases de datos 3D en tiempo real. Las mejoras que se han realizado al hardware, no resuelven este problema, ya que el aporte nunca será suficiente ante el crecimiento de las bases de datos 3D. La solución a este problema es tener un gasto de cálculo solo para lo que será finalmente representado y no en dependencia de todos los datos de entrada. Lo anterior es conocido como sensibilidad a la salida (output sensitivity). De esta forma, es posible, representar escenas con alto número de polígonos, cumpliendo con las exigencias de tiempo real.

Técnicas para la eliminación de las caras ocultas

En la figura los objetos o partes de objetos con color rojo no son visibles en la imagen final

La selección por visibilidad puede ser dividida en: selección de objetos que se encuentran dentro del prisma de visión (view frustum culling), selección por caras ocultas (back face culling), variación del nivel de detalle (detail culling) y selección por oclusión (occlusion culling), encargada de eliminar objetos ocultados por otros objetos para el observador. En casos de interiores es utilizada una restricción del campo de observación al dirigirse la visión a través de una puerta o una ventana. Esta restricción se denomina técnica de portales, (portal culling).

Selección por prisma de visión

La selección por prisma es una representación geométrica del campo de visibilidad de la cámara. Naturalmente los objetos fuera de este prisma no serán visibles en la imagen final, por tanto serán descartados.

Selección de caras visibles

En la selección de caras visibles se tiene en cuenta que algunas caras de los objetos o polígonos de la malla no son visibles desde la cámara por lo que no hay razón para que sean dibujadas. Esta es la razón por la que algunos videojuegos si acercamos la cámara dentro de algún objeto de la escena este desaparece.

Selección por oclusión

Los objetos que se encuentran ocultados totalmente por otros objetos opacos pueden ser excluidos de la imagen final. Este es un mecanismo muy popular para aumentar el rendimiento del rendering de grandes escenas. Debido a su importancia y aplicación de esta última categoría, se profundizará un poco más en la siguiente sección.

Other Languages