Sunteți pe pagina 1din 27

Curvas y Superficies

Grficos y Visualizacin 3D
Presentacin
Carlos Garre del Olmo
carlos.garre@urjc.es
Despacho 2011-C (Ampliacin Rectorado)
GMRV (Grupo de Modelado y Realidad
Virtual)
Contenidos del tema
1. Introduccin
2. Curvas de Bezier
3. Curvas de Bezier a Trozos
4. B-Splines
5. NURBS
6. Superficies
1. Introduccin
Cuerpos de seres vivos: ms
curvas que rectas.

Fabricamos objetos a nuestra
semejanza: coches, aviones
(aerodinmica).

Las curvas son sencillas
matemticamente, y en cambio
es muy complicado modelarlas
mediante polgonos (tringulos).
La tetera de Utah
GLUT (OpenGL): cubo, esfera, y tetera!
Martin Newell (1975): Parches de Bezier.
Icono del mundo de los grficos.
Importante referencia para evaluar los
resultados de un nuevo algoritmo.
2. Curvas de Bezier
En 1959, de Casteljau (Citron), idea una
formulacin matemtica para disear las
formas curvas de los coches.
Posteriormente (1966), Bezier (Renault)
llega a las mismas conclusiones, pero
partiendo de otro desarrollo matemtico.
Bezier fue el que public sus resultados.
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.
2.1. Curvas de Bezier: Lineales (Grado 1)
Slo dos puntos de control (P
0
y P
1
).
Son lneas rectas.
Podemos recorrer la curva con un
parmetro t [0,1] que recorre la
recta de P
0
a P
1
.
Animacin sacada de Wikipedia
2.1. Curvas de Bezier: Cuadrticas (Grado 2)
Tres puntos de control (P
0
, P
1
y P
2
).
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.
Animacin sacada de Wikipedia
2.1. Curvas de Bezier: Cbicas (Grado 3)
Cuatro puntos de control (P
0
, P
1
, P
2
y P
3
).
Son las ms utilizadas.
Se aplica el mismo principio de induccin,
partiendo inicialmente de tres curvas de
Bezier lineales.
Asi se pueden generar curvas de cualquier
grado.
Animacin sacada de Wikipedia
Grado 3
Grado 4
2.2. Curvas de Bezier:
Formulacin 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: Teora de Blossoms.
2.3. Curvas de Bezier:
Formulacin con polinomios de Bernstein
Una curva de Bezier de grado N responde a esta frmula:




Donde P
i
son los puntos de control, y B
i,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.

Expresin de los polinomios de Bernstein:




Ejercicio en la pizarra
2.4. Curvas de Bezier: Propiedades (I)
Slo interpolan en los puntos de control
inicial y final.
La curva no escapa de la envolvente
convexa.

2.4. Curvas de Bezier: Propiedades (II)
Invarianza afn: 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 modificacin de un punto de control afecta a
toda la curva (la curva es una suma ponderada de
los puntos de control).
Las curvas slo pueden ser enteramente rectas o
enteramente curvas.
2.5. Qu se puede hacer con Curvas de Bezier?
2.6. Subdivisin de Curvas de Bezier
En la prctica, las curvas de Bezier no se pintan, sino que se
aproximan mediante segmentos (o tringulos, si estamos en 3D).

Para ello necesitamos ir dividiendo la curva en curvas ms pequeas,
hasta que tengamos una composicin de curvas muy pequeas, cada una
de las cuales se puede aproximar por un segmento.
3. Curvas de Bezier a Trozos
Normalmente no se usan curvas de Bezier de
grado > 3.
Para generar figuras ms complejas, se pueden
unir varias curvas de grado pequeo, obteniendo
una curva formada por trozos.
3.1. Bezier a Trozos: Continuidad
Es fundamental controlar cmo queremos que se
unan nuestros trozos.

Continuidad C
0
: nos basta con que el ltimo punto de control de una
curva S
i
sea igual al primer punto de control de la siguiente curva
S
i+1
.
Genera uniones bruscas y con picos.
Continuidad C
1
: en este caso no slo deben coincidir los puntos de
los extremos, sino tambin sus derivadas laterales.
Genera uniones suaves.
Continuidad G
1
: en este caso no es estrictamente necesario que las
derivadas coincidan, sino slo que sean proporcionales.
Menos restrictivo que C
1
, y en muchos casos suficiente.
Continuidad C
2
: deben coincidir tambin las derivadas segundas.
A veces es deseable en 3D.
Se ver ms claro con ejemplos
3.1. Bezier a Trozos:
Continuidad C
0
3.1. Bezier a Trozos:
Continuidad C
1
Grficamente, adems de coincidir el
extremo de ambas curvas (P
i
), este extremo
y los dos puntos adyacentes (P
i-1
y P
i+1
)
deben estar en la misma recta.

Adems, se cumple:
Distancia (P
i-1
, P
i
) = Distancia (P
i
, P
i+1
)
3.1. Bezier a Trozos:
Continuidad G
1
Adems de coincidir el extremo de ambas
curvas (P
i
), este extremo y los dos puntos
adyacentes (P
i-1
y P
i+1
) deben estar en la
misma recta (igual que en C
1
).

No es necesario que las distancias sean
iguales.
3.2. Curvas de Bezier a Trozos:
Propiedades
Envolvente convexa fuerte: seguimos teniendo la
curva confinada.
Control local: al mover un punto modificamos slo
una curva (o a lo sumo dos, si se trata de un punto
de unin); esto no ocurra en Bezier simple.
Se pueden combinar curvas y rectas en una nica
figura contnua.
Podemos modelar figuras muy complejas.
4. B-Splines
Caso ms 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 ms al modelo sin
necesidad de utilizar muchos puntos de control.

Propiedades:
Envolvente convexa.
Invarianza afn.
Control local.


4.1. B-Splines: Formulacin
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
precisin y suavidad de la curva.
Grado 0 Grado 1 Grado 2
5. Curvas racionales (NURBS)
NURBS = Non Uniform Rational B-Splines.
Caso ms general:
los B-Splines y las curvas de Bezier son casos
particulares de NURBS.
No son simples polinomios, sino cocientes de
polinomios.
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 ms general: curva
NURBS movindose a lo
largo de otra curva NURBS.
Conclusiones
NURBS > B-Splines > Bezier.

Todos estos mtodos son ayudas para el modelado,
pero en el renderizado la GPU siempre va a utilizar
tringulos.

El diseador grfico puede modelar formas curvas
con facilidad y de forma intuitiva, y a la hora de
renderizar se aplicar un algoritmo de subdivisin
para convertir todo en tringulos.

S-ar putea să vă placă și