Visibilidad en
Escenas Complejas
Entorno de Habitaciones
Carretera y Circuitos de carreras
Jose María Buades Rubio
Entorno de Habitaciones
• Gran parte del mundo no es visible
• Nos interesa renderizar solo las
habitaciones visibles
• El método para determinar que parte es
visible ha de ser rapido para poder
dedicar el mayor tiempo posible a
renderizar
División del espacio BSP-trees
• Se divide el espacio 3D mediante planos
Habitaciones Visibles
• Las habitaciones visibles se pre-calcula
para una mayor eficiencia
Habitaciones Visibles II
• Se considera cada
extremo de la puerta
como un foco de luz,
se determina la zona
iluminada, como zona
visible
Habitaciones Visibles III
• Para los objetos
estaticos se puede
calcular si es visible o no
• Para los objetos en
movimiento se calcula
en tiempo real
Renderización
• Para cada zona tenemos una lista
(precalculada) con las partes de la
escena que hay que renderizar
• Ademas de estos hay que renderizar los
objetos dinámicos (cálculado en tiempo
real)
Objetos dinámicos. Soluciones
• Renderizarlos todos
• Renderizar aquellos que se encuentren
en el triangulo visible
• Renderizar los que se hallan en una
habitación visible
• Calcular mediante las zonas visibles que
objetos son visibles
Carretera
• Deseamos nuevamente no renderizar por
completo el circuito, solo el tramo o
tramos visibles que aportaran polígonos a
la imagen final
• Generalmente podemos restringir el
problema a 2D
Solucion I
• Renderizar los proximos n tramos
Problemas
– Si el tamaño del tramo es variable no
siempre renderizaremos el mismo número de
metros y no tendremos la misma distancia
de alcance visible
– Al poder darse la vuelta necesita renderizar
los proximos y los anteriores tramos
Solucion II
• Renderizar los proximos n metros de
circuito
Problemas
– Al poder darse la vuelta necesita renderizar
el circuito hacia delante y hacia atrás, o
detectarlo
– Si tenemos un tramo de circuito lejano pero
que pasa justo al lado no se renderiza
Solucion III
• Determinar los tramos visibles mediante
un triangulo que marca la zona visible
Problemas
– Mayor tiempo computacional si el número de
tramos es muy grande
Solucion IV
• Precalcular para cada tramo que tramos
son visibles. Los que se encuentran en
un radio r
Problemas
– Algoritmo para determinar la visibilidad
laborioso
– El resultado varía según la distancia máxima
visible, precalcularlo antes de iniciar el juego
Solucion V
• Combinación de las dos anteriores,
precalcular y sobre estos tramos ver
realmente cuales son visibles
Problemas
– Mayor coste de desarrollo, pero mejores
resultados
Mejoras
• Renderizar el tramo a un nivel de detalle
en función de la distancia a la que se
halla de la cámara
Descargar

Visibilidad (Renderizar escenas complejas)