Curvas y Superficies Gráficos y Visualización 3D.

27
Curvas y Curvas y Superficies Superficies Gráficos y Visualización 3D Gráficos y Visualización 3D

Transcript of Curvas y Superficies Gráficos y Visualización 3D.

Page 1: Curvas y Superficies Gráficos y Visualización 3D.

Curvas y SuperficiesCurvas y SuperficiesCurvas y SuperficiesCurvas y Superficies

Gráficos y Visualización 3DGráficos y Visualización 3D

Page 2: Curvas y Superficies Gráficos y Visualización 3D.

Presentación

• Carlos Garre del Olmo• [email protected]• Despacho 2011-C (Ampliación

Rectorado)• GMRV (Grupo de Modelado y

Realidad Virtual)

Page 3: Curvas y Superficies Gráficos y Visualización 3D.

Contenidos del tema

• 1. Introducción• 2. Curvas de Bezier• 3. Curvas de Bezier a Trozos• 4. B-Splines• 5. NURBS• 6. Superficies

Page 4: Curvas y Superficies Gráficos y Visualización 3D.

1. Introducción

• Cuerpos de seres vivos: más curvas que rectas.

• Fabricamos objetos a nuestra semejanza: coches, aviones… (aerodinámica).

• Las curvas son sencillas matemáticamente, y en cambio es muy complicado modelarlas mediante polígonos (triángulos).

Page 5: Curvas y Superficies Gráficos y Visualización 3D.

La tetera de Utah

• GLUT (OpenGL): cubo, esfera, y… ¡tetera!

• Martin Newell (1975): Parches de Bezier.

• Icono del mundo de los gráficos.• Importante referencia para evaluar los

resultados de un nuevo algoritmo.

Page 6: Curvas y Superficies Gráficos y Visualización 3D.

2. Curvas de Bezier• En 1959, de Casteljau (Citroën), idea una

formulación matemática para diseñar las formas curvas de los coches.

• Posteriormente (1966), Bezier (Renault) llega a las mismas conclusiones, pero partiendo de otro desarrollo matemático.

• Bezier fue el que publicó sus resultados.

Page 7: Curvas y Superficies Gráficos y Visualización 3D.

2.1. Curvas de Bezier: Idea intuitiva

• Se definen por una serie de puntos de control.

• La curva siempre empieza en el primer punto, y termina en el último.

• Los puntos intermedios “atraen” hacia si a la curva.

Page 8: Curvas y Superficies Gráficos y Visualización 3D.

2.1. Curvas de Bezier: Lineales (Grado 1)

• Sólo dos puntos de control (P0 y P1).

• Son líneas rectas.• Podemos recorrer la curva con un

parámetro t є [0,1] que recorre la recta de P0 a P1.

Animación sacada de Wikipedia

Page 9: Curvas y Superficies Gráficos y Visualización 3D.

2.1. Curvas de Bezier: Cuadráticas (Grado 2)

• Tres puntos de control (P0, P1 y P2).• Se construyen dos curvas lineales de

Bezier entre P0-P1 y P1-P2.• Se construye una tercera curva lineal

de Bezier entre las dos anteriores.• El t que recorre esta tercera recta,

forma nuestra curva.

Animación sacada de Wikipedia

Page 10: Curvas y Superficies Gráficos y Visualización 3D.

2.1. Curvas de Bezier: Cúbicas (Grado 3)

• Cuatro puntos de control (P0, P1, P2 y P3).• Son las más utilizadas.• Se aplica el mismo principio de

inducción, partiendo inicialmente de tres curvas de Bezier lineales.

• Asi se pueden generar curvas de cualquier grado.

Animación sacada de Wikipedia

Grado 3 Grado 4

Page 11: Curvas y Superficies Gráficos y Visualización 3D.

2.2. Curvas de Bezier: Formulación de De Casteljau

•Primera columna: puntos de control.•Segunda columna: curvas lineales.•Tercera columna: Curva de Bezier de grado 2.

•Es una forma recursiva de construir las curvas.•Caso general: los tiempos t son diferentes en cada columna: Teoría de Blossoms.

Page 12: Curvas y Superficies Gráficos y Visualización 3D.

2.3. Curvas de Bezier: Formulación con polinomios de Bernstein

•Una curva de Bezier de grado N responde a esta fórmula:

Donde Pi son los puntos de control, y Bi,n los llamados Polinomios de Bernstein.

•Al evaluar cada polinomio de Bernstein en el tiempo t, el resultado es un escalar, que se aplica como un peso a cada punto de control.

•Expresión de los polinomios de Bernstein:

Ejercicio en la pizarra

URJC
design mentor -> partition of unity : ver polinomios de Bernstein
Page 13: Curvas y Superficies Gráficos y Visualización 3D.

2.4. Curvas de Bezier: Propiedades (I)

• Sólo interpolan en los puntos de control inicial y final.

• La curva no escapa de la envolvente convexa.

URJC
envolvente convexa: poligono de menor perimetro que contiene a todos los puntos
Page 14: Curvas y Superficies Gráficos y Visualización 3D.

2.4. Curvas de Bezier: Propiedades (II)

• Invarianza afín: Puedo aplicar transformaciones afines sin tener que recalcular todo.

• La curva de Bezier con N+1 puntos de control es un polinomio de grado N.

• La modificación de un punto de control afecta a toda la curva (la curva es una suma ponderada de los puntos de control).

• Las curvas sólo pueden ser enteramente rectas o enteramente curvas.

Page 15: Curvas y Superficies Gráficos y Visualización 3D.

2.5. ¿Qué se puede hacer con Curvas de Bezier?

Page 16: Curvas y Superficies Gráficos y Visualización 3D.

2.6. Subdivisión de Curvas de Bezier•En la práctica, las curvas de Bezier no se pintan, sino que se aproximan mediante segmentos (o triángulos, si estamos en 3D).

•Para ello necesitamos ir dividiendo la curva en curvas más pequeñas, hasta que tengamos una composición de curvas muy pequeñas, cada una de las cuales se puede aproximar por un segmento.

Page 17: Curvas y Superficies Gráficos y Visualización 3D.

3. Curvas de Bezier a Trozos

• Normalmente no se usan curvas de Bezier de grado > 3.

• Para generar figuras más complejas, se pueden unir varias curvas de grado pequeño, obteniendo una curva formada por trozos.

Page 18: Curvas y Superficies Gráficos y Visualización 3D.

3.1. Bezier a Trozos: Continuidad•Es fundamental controlar cómo queremos que se unan nuestros trozos. • Continuidad C0: nos basta con que el último punto de control

de una curva Si sea igual al primer punto de control de la siguiente curva Si+1. Genera uniones bruscas y con picos.

• Continuidad C1: en este caso no sólo deben coincidir los puntos de los extremos, sino también sus derivadas laterales.Genera uniones suaves.

• Continuidad G1: en este caso no es estrictamente necesario que las derivadas coincidan, sino sólo que sean proporcionales.Menos restrictivo que C1, y en muchos casos suficiente.

• Continuidad C2: deben coincidir también las derivadas segundas.A veces es deseable en 3D.

Se verá más claro con ejemplos

Page 19: Curvas y Superficies Gráficos y Visualización 3D.

3.1. Bezier a Trozos: Continuidad C0

Page 20: Curvas y Superficies Gráficos y Visualización 3D.

3.1. Bezier a Trozos: Continuidad C1

•Gráficamente, además de coincidir el extremo de ambas curvas (Pi), este extremo y los dos puntos adyacentes (Pi-

1 y Pi+1) deben estar en la misma recta.

•Además, se cumple: Distancia (Pi-1, Pi) = Distancia (Pi, Pi+1)

Page 21: Curvas y Superficies Gráficos y Visualización 3D.

3.1. Bezier a Trozos: Continuidad G1

•Además de coincidir el extremo de ambas curvas (Pi), este extremo y los dos puntos adyacentes (Pi-1 y Pi+1) deben estar en la misma recta (igual que en C1).

•No es necesario que las distancias sean iguales.

Page 22: Curvas y Superficies Gráficos y Visualización 3D.

3.2. Curvas de Bezier a Trozos: Propiedades

• Envolvente convexa fuerte: seguimos teniendo la curva confinada.

• Control local: al mover un punto modificamos sólo una curva (o a lo sumo dos, si se trata de un punto de unión); esto no ocurría en Bezier simple.

• Se pueden combinar curvas y rectas en una única figura contínua.

• Podemos modelar figuras muy complejas.

Page 23: Curvas y Superficies Gráficos y Visualización 3D.

4. B-Splines• Caso más general que Bezier.

Las curvas de Bezier son un tipo de B-Splines.

• Ventaja sobre Bezier: los puntos de control no se alejan tanto de la forma que queremos modelar, por lo que podemos asemejarnos más al modelo sin necesidad de utilizar muchos puntos de control.

• Propiedades:– Envolvente convexa.– Invarianza afín.– Control local.

Page 24: Curvas y Superficies Gráficos y Visualización 3D.

4.1. B-Splines: Formulación

• Similar a Bezier:

• Aquí en lugar de polinomios de Bernstein tenemos Funciones de Base.

• Diferentes configuraciones de nodos nos dan diferentes propiedades (nodos uniformes, nodos clamped, …).

• El grado (k) de las funciones de base define la precisión y suavidad de la curva.

Grado 0 Grado 1 Grado 2

Page 25: Curvas y Superficies Gráficos y Visualización 3D.

5. Curvas racionales (NURBS)

• NURBS = Non Uniform Rational B-Splines.• Caso más general:

los B-Splines y las curvas de Bezier son casos particulares de NURBS.

• No son simples polinomios, sino cocientes de polinomios.

Page 26: Curvas y Superficies Gráficos y Visualización 3D.

6. Superficies• ¡Entramos en las 3 Dimensiones!• Ejemplo:

generamos una curva en 2D en el plano XY, y la desplazamos a lo largo de otra curva en el plano YZ.

• Caso más general: curva NURBS moviéndose a lo largo de otra curva NURBS.

Page 27: Curvas y Superficies Gráficos y Visualización 3D.

Conclusiones• NURBS > B-Splines > Bezier.

• Todos estos métodos son ayudas para el modelado, pero en el renderizado la GPU siempre va a utilizar triángulos.

• El diseñador gráfico puede modelar formas curvas con facilidad y de forma intuitiva, y a la hora de renderizar se aplicará un algoritmo de subdivisión para convertir todo en triángulos.