Jose María Buades Rubio Visibilidad en Escenas Complejas Entorno de Habitaciones Carretera y...

Post on 23-Jan-2016

224 views 0 download

Transcript of Jose María Buades Rubio Visibilidad en Escenas Complejas Entorno de Habitaciones Carretera y...

Jose María Buades Rubio

Visibilidad enVisibilidad enEscenas ComplejasEscenas Complejas

Entorno de HabitacionesCarretera y Circuitos de carreras

Entorno de HabitacionesEntorno 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-División del espacio BSP-treestrees

• Se divide el espacio 3D mediante planos

Habitaciones VisiblesHabitaciones Visibles

• Las habitaciones visibles se pre-calcula para una mayor eficiencia

Habitaciones Visibles IIHabitaciones Visibles II

• Se considera cada extremo de la puerta como un foco de luz, se determina la zona iluminada, como zona visible

Habitaciones Visibles IIIHabitaciones 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ónRenderizació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. Objetos dinámicos. SolucionesSoluciones

• 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

CarreteraCarretera

• 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 ISolucion 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 IISolucion 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 IIISolucion 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 IVSolucion 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 VSolucion 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

MejorasMejoras

• Renderizar el tramo a un nivel de detalle en función de la distancia a la que se halla de la cámara