VIDEOJUEGOS 2 Detección de colisiones

Documentos relacionados
Detección de Colisiones. Héctor Navarro

Colisiones. Miguel Ángel Otaduy. Animación Avanzada 18 de Febrero de 2014

CAPITULO 2. ALGORITMOS DE DETECCIÓN DE COLISION BASADOS EN ESTRUCTURAS JERARQUÍCAS

Detección de Colisiones

Árboles de Partición Quadtrees Octrees K-d trees

Árboles de Partición Quadtrees Octrees K-d trees

Computación Geométrica Intersección de segmentos

Bases de Datos Multimedia

Introducción Aplicaciones Primer Algoritmo Segundo Algoritmo - Algoritmo de Fortune. Diagrama de Voronoi. Jose Luis Bravo Trinidad 1 / 29

Fundamentos de POV-Ray. Computación Geométrica 2010/2011 Jorge Calvo Zaragoza

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

Introducción a la Robótica

UNIDAD 2. Constructiva). CSG se define como la representación de un objeto mediante un árbol

Técnicas de Minería de Datos

Triangulación de polígonos

Visión artificial y Robótica Modelos de movimiento y mapas. Depto. de Ciencia de la Computación e Inteligencia Artificial

Robots Autónomos Miguel Cazorla,, Otto Colomina Depto.. Ciencia de la Computación n e I.A. Universidad de Alicante

Robots Autónomos Miguel Cazorla,, Otto Colomina Depto.. Ciencia de la Computación n e I.A. Universidad de Alicante

Computación Geométrica Descomposición en polígonos monótonos

Capítulo 8. Árboles. Continuar

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.

Curso de Competencias Tecnología TEMA 2: Análise gráfica de obxetos. Rodrigo CURSO: MARZO- ABRIL Centro de Estudios Capuchino (Ferrol)

Tema 6. Tema 6. Tema 6. Modelado 3D 6.1 Introducción 6.2 Modelado plano de superficies 6.3 modelado de sólidos. 6.1 Introducción

VIDEOJUEGOS 2 Físicas con Unity

VIDEOJUEGOS 2 Físicas con Unity

Modelado de Sólidos. Prof. Eduardo Fernández (Universidad de la República de Uruguay) -

Geometría. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. Training Camp 2012

ARBOLES B. Lo que si es cierto es que la letra B no significa "binario", ya que:

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

MCRivara/CG2008/1. MCRivara/CG2007/2MCRivara/CG2008/1 1. Modelación de Sólidos. Computación Gráfica. Modelos de sólidos

Estructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Videojuegos. Sesión 2: Sprites e interacción. Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

Visión de Alto Nivel

Computación Geométrica Tema 5: Triangulación de polígonos. Triangulación por descomposición. Descomposición en polígonos monótonos.

Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 9: Algoritmos iniciales

Métodos para testear intersecciones

En este artículo introduciremos un algoritmo de carácter netamente geométrico para la diferencia m - n de números naturales en un árbol natural.

4.1 Concepto de árbol.

Indexación y Asociación

Técnicas de inteligencia artificial. Visión Artificial Detección de aristas y puntos característicos

UN ESTUDIO PRELIMINAR SOBRE CONVEXIDAD

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

Optimización de la eficiencia. Visualización II

Modelado de Objetos 3D II

TRANSMITANCIAS: CERRAMIENTOS EN CONTACTO CON EL TERRENO

Árboles B y B ) 20. Algoritmos y Estructuras de Datos II I.T. en Informática de Gestión/Sistemas Universidad de Huelva 63

ELEMENTOS DE GEOMETRIA ANALITICA

Prácticas de Introducción a los Computadores Curso Hoja Gráficos: Hoja Regresión: ESPESOR 0,5 1 1,5 2 2,5 3 3,5 4 4,5 5 ESPESOR COSTES fij

Tema 10. Indexación y asociación

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

Análisis y Diseño de Algoritmos

2. Teoría de los OCTREES

Matemáticas Básicas para Computación

Minería de Datos Web. Cursada 2018

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:

Manuales de uso Kosmo Desktop v Herramientas: cálculo

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

Intersección de segmentos de línea

Modelamiento Geométrico

Modelación de objetos 3D Parte I: Mallas de polígonos y triangulaciones

PAIEP. Valores máximos y mínimos de una función

Estructuras de datos Listas y árboles

Apellidos:... Nombre:...

GEOMETRÍA CON LAS TIC en ESO y BACHILLERATO. Ánimo con esta herramienta y no dejéis de probar e investigar.

CAPITULO 5. FASE DE VERIFICACION

Computación geométrica Convex hull

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº 1

Ejercicio Caja de carga de carretilla

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 10: Descomposición en polígonos monótonos

Árbol ABB equilibrado. Lección: Árboles. Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58

Robots Autónomos Miguel Cazorla,, Otto Colomina Depto.. Ciencia de la Computación n e I.A. Universidad de Alicante

Geometría. Cuerpos Geométricos. Trabajo

Introducción a la Geometría Computacional

Búsqueda en espacio de estados

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

Tema 6: Estructuras de datos recursivas

Estructura de Datos Árboles Árboles 2-3

ÁREAS Y VOLÚMENES DE CUERPOS EN EL ESPACIO

Francisco J. Hernández López

INSTITUCIÓN EDUCATIVA TÉCNICA SAGRADO CORAZÓN Aprobada según Resolución No NIT DANE SOLEDAD ATLÁNTICO.

Análisis y Diseño de Algoritmos (AyDA) Isabel Besembel Carrera

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Binary Decision Diagrams

Sistemas de Información Geográfica BD Espaciales y BD Espacio-temporales

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 3. Estructuras de Almacenamiento. Básicas. Definición y Manejo.

Árboles. Un grafo no dirigido es un árbol si y sólo si existe una ruta unica simple entre cualquiera dos de sus vértices.

Tema 14: ÁRBOLES Algoritmos y estructuras de datos I - Tema 14 1

001. Identifica, en un conjunto de números, los que son enteros.

Estadística para el análisis de los Mercados S2_A1.1_LECV1

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Definición: Se llama pendiente de una recta a la tangente de un ángulo de inclinación formado por el eje X y la

Bases de Datos Espaciales.. Univ. Carlos III

Nombre: + x + 2, se pide:

Transcripción:

VIDEOJUEGOS 2 Detección de colisiones

Puntos a tratar Sistema de detección de colisiones Broad phase Bounding Volumes Particionamiento espacial Sweep and prune Narrow phase Geometría de colisión Tipos de formas Layering Sensores 2

Sistema de detección de colisiones Entrada Conjunto de objetos del mundo Cada objeto tiene una forma (geometría de colisión) Salida Conjunto de puntos de contacto entre objetos De cada contacto se proporciona la normal y la profundidad La detección de colisiones es un proceso complejo La comprobación de colisiones exacta entre objetos con formas complejas tiene un alto coste El número de comprobaciones crece de forma cuadrática con el número de objetos del mundo Es necesario optimizar el proceso 3

Fases de la detección de colisiones Para reducir el coste el proceso se divide en dos fases Broad phase (Filtrado de potenciales contactos) Filtra los objetos que pueden colisionar de forma eficiente No se utiliza la forma real de los objetos, sino formas simplificadas que abarcan todo el objeto (Bounding Volume) y que permiten comprobar de forma eficiente si intersectan Produce como salida un conjunto de pares de objetos que podrían colisionar (es posible que finalmente no lo hagan) Narrow phase (Generación de contactos) Recibe los pares de objetos que pueden colisionar (tras el filtrado de broad phase) Produce como salida los contactos exactos, junto a la normal y la profundidad de cada uno de ellos. 4

Bounding Volumes (BVs) El Bounding Volume debe abarcar todo el objeto Puede que dos objetos cuyos BVs intersectan realmente no colisionen (falso positivo) No puede ocurrir que dos BVs que no intersecten correspondan a objetos que realmente si colisionen (falso negativo) Utilizamos formas para las que resulte sencillo comprobar si intersectan Esfera Es la comprobación más sencilla. Comprobar si la distancia entre sus centros es mayor que la suma de sus radios. AABB Axis-Aligned Bounding Box. Según la forma y la orientación del objeto puede que no aproveche bien el espacio OBB Object Bounding Box. Aprovecha mejor el espacio pero la comprobación de intersecciones es más compleja 5

Algoritmos de broad phase Los BVs simplifican la comprobación de colisiones Aun así el número de pares de objetos a comprobar es demasiado elevado Se necesita un algoritmo que reduzca este número La idea fundamental es agrupar los objetos en islas Sólo comprobamos colisiones entre los objetos de una misma isla Estos agrupamientos pueden ser reutilizados por el motor gráfico Algunas de las principales técnicas utilizadas en broad phase son Bounding Volume Hierachies (BVHs) Particionamiento espacial Sweep and Prune 6

Bounding Volume Hierarchies (BVHs) Agrupamos los objetos (BVs) en una jerarquía de tipo árbol Suele tratarse de un árbol binario Las hojas del árbol son los BVs de los objetos del mundo Un nodo intermedio representa un BV que abarca a todos sus hijos Si los BVs de dos nodos no intersectan, sus hijos tampoco lo harán 7

Construcción del BVH Al construir el BVH debemos buscar Reducir el BV de los nodos del árbol Evitar solapes entre hermanos Obtener un árbol balanceado En el caso de objetos estáticos podemos construirlo offline Top-down Subdividimos a partir del conjunto completo Bottom-up Agrupamos los nodos desde las hojas Normalmente habrá objetos en movimiento Inserción Se realiza una búsqueda del mejor lugar donde añadir cada nodo Permite añadir objetos de forma dinámica 8

Actualización del BVH Se pueden definir dos BVH A. Objetos estáticos y dormidos B. Objetos en movimiento Los objetos que no han tenido movimiento en las últimas actualizaciones pueden quedar dormidos (sleep) para optimizar Comprobaremos las colisiones de B con B y de B con A Para un objeto en movimiento Si el BV del padre sigue abarcándolo no hacemos nada En caso contrario, lo eliminamos y lo reinsertamos Recomendaciones Ampliar el BV con un margen que evite recalcular para pequeños movimientos 9

Particionamiento espacial Similar a BVH En este caso el particionamiento se hace atendiendo al espacio, y no a la distribución de objetos en el mundo Dividimos el espacio del mundo en celdas, y sólo comprobamos las colisiones entre objetos dentro de una misma celda Existen diferentes estructuras para realizar el particionamiento Binary Space Partition (BSPs) Octrees / Quadtrees Rejillas Mapas multiresolución 10

Binary Space Partition (BSPs) El particionamiento se representa como un árbol binario Cada nodo del árbol representa un plano que divide el mundo El primer hijo contiene todos los objetos de un lado del plano, y el segundo hijo los del otro lado 2 1 1 2 11

Octrees El espacio se divide en 8 regiones Cada región puede a la vez subdividirse en otras 8 Subdividiremos hasta que cada región tenga la resolución adecuada Se representa como un árbol en el que cada nodo tiene 8 hijos 1 2 3 4 5 6 7 8 12

Quadtrees Similar al octree 1 2 Cada región se divide en 4 subregiones No se divide en altura 3.1 3.2 3.3 3.4 4 Se utilizará en Juegos 2D Juegos 3D en los que todos los objetos se encuentran al mismo nivel 1 1 2 3 4 3.1 3.2 3.3 3.4 13

Rejillas El espacio se divide como una rejilla uniforme Sigue una estructura de array bidimensional Problema Todos los puntos tienen la misma resolución Qué hacemos cuando un cuerpo abarca varias celdas? Podemos insertarlo en todas ellas Esto produce un mayor coste 14

Mapas multiresolución Mejora de la rejilla uniforme para soportar objetos de diferentes tamaños Tenemos varias rejillas con distintas resoluciones Situamos un objeto en la rejilla que mejor se adapte a su tamaño Comprobamos colisiones de los objetos con los de su propia celda, y con los de celdas de rejillas de menor resolución 15

Algoritmo Sweep and Prune (I) Se basa en la ordenación de los cuerpos a lo largo de cada eje Los cuerpos se representan mediante su AABB Algoritmo 1. De cada cuerpo tomamos sus coordenadas límite xmin y xmax 2. Ordenamos los cuerpos según xmin 3. Recorremos la lista seleccionando los pares de objetos que se solapan en x No hará falta comprobar todos los pares, sólo los cercanos, ya que está ordenado 4. Repetimos el proceso con los pares seleccionados en 3 para el eje y 5. Repetimos el proceso con los pares seleccionados en 4 para el eje z 6. Los pares seleccionados en 5 se solapan en los tres ejes Estos son los objetos cuyos AABBs interceptan y por lo tanto deben ser devueltos por broad phase 16

Algoritmo Sweep and Prune (II) y Ordenación en x Se seleccionan los pares ( ) ( ) Ordenación en y Se seleccionan los pares ( ) x El único par que puede estar en contacto es ( ) 17

Algoritmo Sweep and Prune (III) Si los cuerpos están en movimiento será necesario actualizar la ordenación La actualización será eficiente siempre que no haya habido muchos cambios El algoritmo Sweep and Prune (SAP) será conveniente en casos en los que no haya mucho movimiento en el mundo 18

Layering En ocasiones no nos interesa que todos los objetos puedan colisionar con todos Por ejemplo, podemos querer que nuestras balas sólo afecten a los enemigos, y no a nuestros compañeros Podemos asignar los objetos a capas de forma que sólo se comprueben colisiones entre los objetos si están en la misma capa Este filtrado se hará en broad phase 19

Generación de contactos (narrow phase) Entrada Conjunto de pares de objetos que pueden colisionar proporcionados por broad phase Detección fina de colisiones Comprobar si los pares de objetos realmente están en contacto Se usa su geometría de colisión Generación de contactos Obtiene los puntos de contacto junto a sus normales y profundidad de interpenetración Salida Conjunto de contactos detectados entre objetos 20

Detección fina de colisiones La geometría real del objeto puede ser demasiado compleja incluso para esta fase En su lugar utilizamos una geometría aproximada Geometría de colisión Formas geométricas típicas para la colisión Esfera Caja Cápsula Cilindro Cono Utilizada habitualmente para nuestro personaje 21

V2 Detección de colisiones Geometría de colisión Debemos utilizar como geometría de colisión la forma más sencilla que aproxime nuestros objetos A diferencia del motor gráfico, El orden de preferencia es el siguiente no siempre son mayas Esfera Caja Aproximar a una esfera o caja siempre que sea posible Videojuegos II Formas convexas Formas cóncavas Evitar siempre que sea posible! Sólo se debería usar para el escenario estático 2015-2016 Depto. Ciencia de la Computación e IA Detección de colisiones 22

Recubrimiento convexo Dada una maya, su recubrimiento convexo (convex hull) es la forma convexa que mejor se ajusta a la forma de la maya Siempre que sea posible, será mejor aproximar el objeto por una esfera o caja 23

Composición de formas Si no podemos aproximar el objeto con una única forma convexa, podemos crearlo como composición de varias formas convexas Esto es preferible a utilizar una forma cóncava El único uso que se le debería dar a una maya cóncava es la representación de la maya de colisión con el escenario estático La comprobación de colisiones entre dos mayas cóncavas es el caso más complejo y debe evitarse 24

Contacto esfera-esfera Existen algoritmos específicos para cada par de formas concretas El caso más sencillo es el de dos esferas Existe una colisión si la distancia entre sus centros es menor que la suma de sus radios La profundidad de interpenetración es la diferencia existente entre las cantidades anteriores Hay un único punto de contacto que se encuentra en la línea que une sus centros d 25

Contacto caja-esfera Es un caso más complejo que esfera-esfera Sólo existirá un punto de contacto con la esfera Puede estar en una cara, una arista, o una esquina Arista Cara Esquina 26

Contacto caja-caja Más complejo que caja-esfera La posibles combinaciones se multiplican Esquina-Esquina Esquina-Arista Esquina-Cara Arista-Arista Arista-Cara Cara-Cara Algunas de estas combinaciones son muy poco probables y podrían ignorarse, como esquina-esquina, esquina-arista o arista-arista En algunos casos el contacto se da en toda una arista o cara Normalmente sólo consideraremos una serie de puntos 27

Sensores En ocasiones queremos saber cuando un objeto entra en una determinada zona, pero no queremos que colisiones con ella Por ejemplo que al acercarnos a una puerta se abra Para esto podemos utilizar sensores Pertenecen al subsistema de detección de colisiones El sensor tiene una geometría de colisión La geometría del sensor no produce reacción a la colisión Si que se notifica cuando algún cuerpo entra en contacto 28

Preguntas...? 29