stringtranslate.com

B-spline racional no uniforme

Una curva NURBS. (Ver también: la creación animada de un spline NURBS ).
Superficie NURBS sombreada en verde
Una superficie NURBS

El spline de base racional no uniforme ( NURBS ) es un modelo matemático que utiliza splines de base (B-splines) que se usa comúnmente en gráficos por computadora para representar curvas y superficies . Ofrece gran flexibilidad y precisión para manejar formas tanto analíticas (definidas por fórmulas matemáticas comunes ) como modeladas . Es un tipo de modelado de curvas , a diferencia del modelado poligonal o la escultura digital . Las curvas NURBS se utilizan comúnmente en diseño asistido por computadora (CAD), fabricación (CAM) e ingeniería (CAE). Forman parte de numerosos estándares de toda la industria, como IGES , STEP , ACIS y PHIGS . Las herramientas para crear y editar superficies NURBS se encuentran en varios paquetes de software de animación , renderizado y gráficos 3D .

Pueden manejarse eficientemente mediante programas informáticos y, al mismo tiempo, permiten una fácil interacción humana. Las superficies NURBS son funciones de dos parámetros que se asignan a una superficie en un espacio tridimensional . La forma de la superficie está determinada por los puntos de control . De forma compacta, las superficies NURBS pueden representar formas geométricas simples . Para formas orgánicas complejas, los T-splines y las superficies de subdivisión son más adecuados porque reducen a la mitad el número de puntos de control en comparación con las superficies NURBS.

En general, editar curvas y superficies NURBS es intuitivo y predecible. [ cita necesaria ] Los puntos de control siempre están conectados directamente a la curva o superficie, o actúan como si estuvieran conectados por una banda elástica. Dependiendo del tipo de interfaz de usuario, la edición de curvas y superficies NURBS puede realizarse a través de sus puntos de control (similar a las curvas de Bézier ) o mediante herramientas de nivel superior como el modelado spline y la edición jerárquica .

Historia

Un spline plano , una manifestación física del spline como concepto matemático

Antes de las computadoras, los diseños se dibujaban a mano en papel con diversas herramientas de dibujo . Se utilizaron reglas para líneas rectas, compás para círculos y transportadores para ángulos. Pero muchas formas, como la curva libre de la proa de un barco, no se podían dibujar con estas herramientas. Aunque estas curvas se podían dibujar a mano alzada en el tablero de dibujo, los constructores navales a menudo necesitaban una versión de tamaño natural que no se podía hacer a mano. Estos dibujos de gran tamaño se hacían con la ayuda de tiras flexibles de madera, llamadas tiras. Las estrías se mantenían en su lugar en una serie de puntos predeterminados, llamados "patos" (que estaban hechos de plomo y tenían aproximadamente 3 pulgadas de largo: el "pico" del "pato" empujaba contra la estría; los viejos libros de diseño de yates suponían estos métodos); entre los patos, la elasticidad del material estriado hizo que la tira tomara la forma que minimizara la energía de flexión, creando así la forma más suave posible que se ajustara a las restricciones. La forma se podía ajustar moviendo los patos. [2] [3]

En 1946, los matemáticos comenzaron a estudiar la forma spline y derivaron la fórmula polinómica por partes conocida como curva spline o función spline. IJ Schoenberg le dio su nombre a la función spline por su parecido con la spline mecánica utilizada por los dibujantes. [4]

A medida que se introdujeron las computadoras en el proceso de diseño, se investigaron las propiedades físicas de dichas splines para poder modelarlas con precisión matemática y reproducirlas cuando fuera necesario. En Francia, el ingeniero de Renault , Pierre Bézier , y el físico y matemático de Citroën , Paul de Casteljau , realizaron trabajos pioneros . Trabajaron casi en paralelo entre sí, pero debido a que Bézier publicó los resultados de su trabajo, las curvas de Bézier recibieron su nombre, mientras que el nombre de De Casteljau solo está asociado con algoritmos relacionados.

Inicialmente, los NURBS se utilizaron únicamente en los paquetes CAD propietarios de las empresas automotrices. Posteriormente pasaron a formar parte de los paquetes estándar de gráficos por ordenador.

La representación interactiva en tiempo real de curvas y superficies NURBS estuvo disponible comercialmente por primera vez en las estaciones de trabajo Silicon Graphics en 1989. En 1993, CAS Berlin, una pequeña empresa emergente que coopera con la empresa, desarrolló el primer modelador NURBS interactivo para PC, llamado NöRBS. Universidad Técnica de Berlín . [ cita necesaria ]

Continuidad

Una superficie en construcción, por ejemplo el casco de un yate a motor, suele estar compuesta por varias superficies NURBS conocidas como parches NURBS (o simplemente parches ). Estos parches de superficie deben ensamblarse de tal manera que los límites sean invisibles. Esto se expresa matemáticamente mediante el concepto de continuidad geométrica .

Existen herramientas de nivel superior que se benefician de la capacidad de NURBS para crear y establecer una continuidad geométrica de diferentes niveles:

La continuidad geométrica se refiere principalmente a la forma de la superficie resultante; Dado que las superficies NURBS son funciones, también es posible discutir las derivadas de la superficie con respecto a los parámetros. Esto se conoce como continuidad paramétrica . La continuidad paramétrica de un grado dado implica continuidad geométrica de ese grado.

La continuidad paramétrica de primer y segundo nivel (C 0 y C¹) son, a efectos prácticos, idénticas a la continuidad posicional y tangencial (G 0 y G¹). Sin embargo, la continuidad paramétrica de tercer nivel (C²) se diferencia de la continuidad de curvatura en que su parametrización también es continua. En la práctica, la continuidad C² es más fácil de lograr si se utilizan B-splines uniformes.

La definición de continuidad C n requiere que la enésima derivada de curvas/superficies adyacentes ( ) sean iguales en una unión. [5] Nótese que las derivadas (parciales) de curvas y superficies son vectores que tienen una dirección y una magnitud; ambos deberían ser iguales.

Las luces y los reflejos pueden revelar el alisado perfecto, que de otro modo sería prácticamente imposible de lograr sin superficies NURBS que tengan al menos una continuidad G². Este mismo principio se utiliza como uno de los métodos de evaluación de superficies mediante el cual una imagen de una superficie con trazado de rayos o mapeo de reflexión con franjas blancas reflejadas mostrará incluso las desviaciones más pequeñas en una superficie o conjunto de superficies. Este método se deriva de la creación de prototipos de automóviles en los que se inspecciona la calidad de la superficie comprobando la calidad de los reflejos de un techo de luz de neón en la superficie del automóvil. Este método también se conoce como "análisis Zebra".

Especificaciones técnicas

Una curva NURBS se define por su orden, un conjunto de puntos de control ponderados y un vector de nudo. [6] Las curvas y superficies NURBS son generalizaciones tanto de B-splines como de curvas y superficies de Bézier, siendo la principal diferencia la ponderación de los puntos de control, lo que hace que las curvas NURBS sean racionales .

( Los B-splines no racionales , también conocidos como simples , son un caso/subconjunto especial de B-splines racionales, donde cada punto de control es una coordenada regular no homogénea [sin 'w'] en lugar de una coordenada homogénea . [7] Eso es equivalente a tener un peso "1" en cada punto de control; los B-splines racionales utilizan la 'w' de cada punto de control como peso [8] ) .

Al utilizar una cuadrícula bidimensional de puntos de control, se pueden crear superficies NURBS que incluyen parches planos y secciones de esferas. Estos están parametrizados con dos variables (normalmente llamadas s y t o u y v ). Esto se puede extender a dimensiones arbitrarias para crear un mapeo NURBS .

Las curvas y superficies NURBS son útiles por varias razones:

Aquí, NURBS se analiza principalmente en una dimensión (curvas); se puede generalizar a dos (superficies) o incluso más dimensiones.

Orden

El orden de una curva NURBS define el número de puntos de control cercanos que influyen en cualquier punto determinado de la curva. La curva está representada matemáticamente por un polinomio de grado uno menor que el orden de la curva. Por lo tanto, las curvas de segundo orden (que están representadas por polinomios lineales) se llaman curvas lineales, las curvas de tercer orden se llaman curvas cuadráticas y las curvas de cuarto orden se llaman curvas cúbicas. El número de puntos de control debe ser mayor o igual al orden de la curva.

En la práctica, las curvas cúbicas son las más utilizadas. Las curvas de quinto y sexto orden son a veces útiles, especialmente para obtener derivadas continuas de orden superior, pero las curvas de orden superior prácticamente nunca se utilizan porque conducen a problemas numéricos internos y tienden a requerir tiempos de cálculo desproporcionadamente grandes.

Puntos de control

Las superficies tridimensionales NURBS pueden tener formas orgánicas complejas. Los puntos de control influyen en las direcciones que toma la superficie. Un cuadrado separado debajo de la jaula de control delinea las extensiones X e Y de la superficie.

Los puntos de control determinan la forma de la curva. [10] Normalmente, cada punto de la curva se calcula tomando una suma ponderada de varios puntos de control. El peso de cada punto varía según el parámetro rector. Para una curva de grado d, el peso de cualquier punto de control es sólo distinto de cero en intervalos d+1 del espacio de parámetros. Dentro de esos intervalos, el peso cambia según una función polinómica ( funciones base ) de grado d. En los límites de los intervalos, las funciones base van suavemente a cero, estando la suavidad determinada por el grado del polinomio.

Por ejemplo, la función base de grado uno es una función triangular. Aumenta de cero a uno y luego vuelve a caer a cero. Mientras aumenta, la función base del punto de control anterior cae. De esa manera, la curva se interpola entre los dos puntos y la curva resultante es un polígono, que es continuo , pero no diferenciable en los límites del intervalo o nudos. Los polinomios de mayor grado tienen correspondientemente más derivadas continuas. Tenga en cuenta que dentro del intervalo la naturaleza polinómica de las funciones base y la linealidad de la construcción hacen que la curva sea perfectamente suave, por lo que sólo en los nudos puede surgir la discontinuidad.

En muchas aplicaciones, el hecho de que un único punto de control sólo influya en aquellos intervalos en los que está activo es una propiedad muy deseable, conocida como soporte local . En el modelado, permite cambiar una parte de una superficie manteniendo otras partes sin cambios.

Agregar más puntos de control permite una mejor aproximación a una curva determinada, aunque sólo una determinada clase de curvas se puede representar exactamente con un número finito de puntos de control. Las curvas NURBS también presentan un peso escalar para cada punto de control. Esto permite un mayor control sobre la forma de la curva sin aumentar indebidamente el número de puntos de control. En particular, agrega secciones cónicas como círculos y elipses al conjunto de curvas que se pueden representar exactamente. El término racional en NURBS se refiere a estos pesos.

Los puntos de control pueden tener cualquier dimensionalidad . Los puntos unidimensionales simplemente definen una función escalar del parámetro. Normalmente se utilizan en programas de procesamiento de imágenes para ajustar las curvas de brillo y color. Los puntos de control tridimensionales se utilizan abundantemente en el modelado 3D, donde se utilizan en el significado cotidiano de la palabra "punto", una ubicación en el espacio 3D. Se podrían utilizar puntos multidimensionales para controlar conjuntos de valores controlados por el tiempo, por ejemplo, las diferentes configuraciones posicionales y rotacionales de un brazo robótico. Las superficies NURBS son sólo una aplicación de esto. Cada 'punto' de control es en realidad un vector completo de puntos de control que define una curva. Estas curvas comparten su grado y el número de puntos de control, y abarcan una dimensión del espacio de parámetros. Al interpolar estos vectores de control sobre la otra dimensión del espacio de parámetros, se obtiene un conjunto continuo de curvas que definen la superficie.

Vector de nudo

El vector de nudo es una secuencia de valores de parámetros que determina dónde y cómo los puntos de control afectan la curva NURBS. El número de nudos siempre es igual al número de puntos de control más el grado de la curva más uno (es decir, el número de puntos de control más el orden de la curva). El vector de nudos divide el espacio paramétrico en los intervalos mencionados anteriormente, generalmente denominados tramos de nudos . Cada vez que el valor del parámetro ingresa a un nuevo tramo de nudo, se activa un nuevo punto de control, mientras que un punto de control antiguo se descarta. De ello se deduce que los valores en el vector nudo deben estar en orden no decreciente, por lo que (0, 0, 1, 2, 3, 3) es válido mientras que (0, 0, 2, 1, 3, 3) no lo es.

Los nudos consecutivos pueden tener el mismo valor. Esto define entonces un tramo de nudo de longitud cero, lo que implica que dos puntos de control se activan al mismo tiempo (y, por supuesto, dos puntos de control se desactivan). Esto tiene impacto en la continuidad de la curva resultante o sus derivadas superiores; por ejemplo, permite la creación de esquinas en una curva NURBS que de otro modo sería suave. Un número de nudos coincidentes a veces se denomina nudo con cierta multiplicidad . Los nudos con multiplicidad de dos o tres se conocen como nudos dobles o triples. La multiplicidad de un nudo está limitada al grado de la curva; ya que una multiplicidad mayor dividiría la curva en partes disjuntas y dejaría puntos de control sin usar. Para NURBS de primer grado, cada nudo se empareja con un punto de control.

El vector de nudos suele comenzar con un nudo que tiene una multiplicidad igual al orden. Esto tiene sentido, ya que así se activan los puntos de control que influyen en el primer tramo del nudo. De manera similar, el vector de nudos suele terminar con un nudo de esa multiplicidad. Las curvas con tales vectores de nudos comienzan y terminan en un punto de control.

Los valores de los nudos controlan el mapeo entre el parámetro de entrada y el valor NURBS correspondiente. Por ejemplo, si una NURBS describe una ruta a través del espacio a lo largo del tiempo, los nudos controlan el tiempo que la función pasa por los puntos de control. Sin embargo, a los efectos de representar formas, sólo importan las proporciones de la diferencia entre los valores de los nudos; en ese caso, los vectores de nudos (0, 0, 1, 2, 3, 3) y (0, 0, 2, 4, 6, 6) producen la misma curva. Las posiciones de los valores de los nudos influyen en la asignación del espacio de parámetros al espacio de curvas. La representación de una curva NURBS generalmente se realiza avanzando con paso fijo a través del rango de parámetros. Al cambiar las longitudes de los nudos, se pueden usar más puntos de muestra en regiones donde la curvatura es alta. Otro uso es en situaciones donde el valor del parámetro tiene algún significado físico, por ejemplo si el parámetro es el tiempo y la curva describe el movimiento de un brazo robótico. Las longitudes de los nudos se traducen en velocidad y aceleración, que son esenciales para hacerlo bien y evitar daños al brazo del robot o su entorno. Esta flexibilidad en el mapeo es a lo que se refiere la frase no uniforme en NURBS.

Necesarios sólo para cálculos internos, los nudos no suelen ser útiles para los usuarios de software de modelado. Por lo tanto, muchas aplicaciones de modelado no hacen que los nudos sean editables o incluso visibles. Generalmente es posible establecer vectores de nudos razonables observando la variación en los puntos de control. Las versiones más recientes del software NURBS (por ejemplo, Autodesk Maya y Rhinoceros 3D ) permiten la edición interactiva de las posiciones de los nudos, pero esto es significativamente menos intuitivo que la edición de puntos de control.

Construcción de las funciones básicas.

Las funciones de base B-spline utilizadas en la construcción de curvas NURBS generalmente se indican como , en el que corresponde al -ésimo punto de control y corresponde con el grado de la función de base. [11] La dependencia de los parámetros con frecuencia se omite, por lo que podemos escribir . La definición de estas funciones básicas es recursiva en . Las funciones de grado 0 son funciones constantes por partes . Son uno en el tramo de nudo correspondiente y cero en el resto. Efectivamente, es una interpolación lineal de y . Las dos últimas funciones son distintas de cero para los tramos de nudos y se superponen para los tramos de nudos. La función se calcula como

De arriba a abajo: funciones de base lineal (azul) y (verde) (arriba), sus funciones de peso y (centro) y la función de base cuadrática resultante (abajo). Los nudos son 0, 1, 2 y 2,5.

ésimo
inducción

Nuevamente por inducción, se puede demostrar que la suma de las funciones básicas para un valor particular del parámetro es la unidad. Esto se conoce como propiedad de partición de la unidad de las funciones base.

Funciones de base lineal
Funciones de base cuadrática

Las figuras muestran las funciones de base lineal y cuadrática para los nudos {..., 0, 1, 2, 3, 4, 4.1, 5.1, 6.1, 7.1, ...}

Un tramo de nudo es considerablemente más corto que los demás. En ese tramo de nudo, el pico en la función de base cuadrática es más distinto, alcanzando casi uno. Por el contrario, las funciones básicas adyacentes caen a cero más rápidamente. En la interpretación geométrica, esto significa que la curva se aproxima mucho al punto de control correspondiente. En el caso de un nudo doble, la longitud del tramo del nudo se vuelve cero y el pico alcanza exactamente uno. La función base ya no es diferenciable en ese punto. La curva tendrá una esquina pronunciada si los puntos de control vecinos no son colineales.

Forma general de una curva NURBS

Utilizando las definiciones de las funciones base del párrafo anterior, una curva NURBS toma la siguiente forma: [11]

En este, está el número de puntos de control y están los pesos correspondientes. El denominador es un factor de normalización que se evalúa como uno si todos los pesos son uno. Esto se puede ver en la propiedad de partición de la unidad de las funciones base. Es costumbre escribir esto como

funciones de base racional

Forma general de una superficie NURBS.

Una superficie NURBS se obtiene como producto tensorial de dos curvas NURBS, utilizando así dos parámetros independientes y (con índices y respectivamente): [11]

Manipulación de objetos NURBS

Diseño de yates a motor utilizando superficies NURBS

Se pueden aplicar varias transformaciones a un objeto NURBS. Por ejemplo, si alguna curva se define usando un cierto grado y N puntos de control, la misma curva se puede expresar usando el mismo grado y N+1 puntos de control. En este proceso, varios puntos de control cambian de posición y se inserta un nudo en el vector de nudo. Estas manipulaciones se utilizan ampliamente durante el diseño interactivo. Al agregar un punto de control, la forma de la curva debe permanecer igual, formando el punto de partida para ajustes adicionales. Varias de estas operaciones se analizan a continuación. [11] [12]

Inserción de nudo

Como sugiere el término, la inserción de nudos inserta un nudo en el vector de nudo. Si el grado de la curva es , entonces los puntos de control se reemplazan por otros nuevos. La forma de la curva sigue siendo la misma.

Un nudo se puede insertar varias veces, hasta alcanzar la multiplicidad máxima del nudo. Esto a veces se denomina refinamiento de nudos y se puede lograr mediante un algoritmo que es más eficiente que la inserción repetida de nudos.

eliminación de nudos

La eliminación de nudos es lo inverso a la inserción de nudos. Su finalidad es eliminar los nudos y los puntos de control asociados para conseguir una representación más compacta. Obviamente, esto no siempre es posible manteniendo la forma exacta de la curva. En la práctica, se utiliza una tolerancia en la precisión para determinar si se puede eliminar un nudo. El proceso se utiliza para limpiar después de una sesión interactiva en la que es posible que se hayan agregado puntos de control manualmente, o después de importar una curva desde una representación diferente, donde un proceso de conversión sencillo conduce a puntos de control redundantes.

Elevación de grados

Una curva NURBS de un grado particular siempre se puede representar mediante una curva NURBS de mayor grado. Esto se utiliza frecuentemente cuando se combinan curvas NURBS separadas, por ejemplo, cuando se crea una superficie NURBS interpolando entre un conjunto de curvas NURBS o cuando se unifican curvas adyacentes. En el proceso, las diferentes curvas deben llevarse al mismo grado, normalmente el grado máximo del conjunto de curvas. El proceso se conoce como elevación de grados .

Curvatura

La propiedad más importante en geometría diferencial es la curvatura . Describe las propiedades locales (aristas, esquinas, etc.) y las relaciones entre la primera y la segunda derivada y, por tanto, la forma precisa de la curva. Una vez determinadas las derivadas, es fácil calcular o aproximar la longitud del arco a partir de la segunda derivada . El cálculo directo de la curvatura con estas ecuaciones es la gran ventaja de las curvas parametrizadas frente a sus representaciones poligonales.

Ejemplo: un círculo

NURBS tiene la capacidad de describir círculos exactamente. Aquí, el triángulo negro es el polígono de control de una curva NURBS (que se muestra en w=1). La línea de puntos azul muestra el polígono de control correspondiente de una curva B-spline en coordenadas homogéneas 3D , formado multiplicando los NURBS por los puntos de control por los pesos correspondientes. Las parábolas azules son la curva B-spline correspondiente en 3D, que consta de tres parábolas. Al elegir los puntos de control y los pesos de NURBS, las parábolas son paralelas a la cara opuesta del cono gris (con su punta en el origen 3D), por lo que dividir por w para proyectar las parábolas en el plano w =1 da como resultado arcos circulares ( círculo rojo; ver sección cónica ).

Los splines no racionales o curvas de Bézier pueden aproximarse a un círculo, pero no pueden representarlo exactamente. Los splines racionales pueden representar cualquier sección cónica, incluido el círculo, con exactitud. Esta representación no es única, pero a continuación aparece una posibilidad:

El orden es tres, ya que un círculo es una curva cuadrática y el orden del spline es uno más que el grado de sus segmentos polinomiales por partes. El vector nudo es . El círculo se compone de cuatro cuartos de círculo, atados con nudos dobles. Aunque los nudos dobles en una curva NURBS de tercer orden normalmente darían como resultado una pérdida de continuidad en la primera derivada, los puntos de control están ubicados de tal manera que la primera derivada sea continua. De hecho, la curva es infinitamente diferenciable en todas partes, como debe serlo si representa exactamente un círculo.

La curva representa exactamente un círculo, pero no está exactamente parametrizada en la longitud del arco del círculo. Esto significa, por ejemplo, que el punto en no se encuentra en (excepto el punto inicial, medio y final de cada cuarto de círculo, ya que la representación es simétrica). Esto sería imposible, ya que la coordenada x del círculo proporcionaría una expresión polinómica racional exacta para , lo cual es imposible. El círculo realiza una revolución completa cuando su parámetro va de 0 a , pero esto se debe únicamente a que el vector del nudo se eligió arbitrariamente como múltiplo de .

Ver también

Referencias

  1. ^ https://www.willgibbons.com/rendering-software/
  2. ^ Schneider, Felipe. "Curvas NURB: una guía para los no iniciados". MACTECH . Consultado el 26 de septiembre de 2014 .
  3. ^ Schneider, Philip (marzo de 1996). "Curvas NURB: una guía para los no iniciados" (PDF) . desarrollar (25): 48–74.
  4. ^ Schoenberg, IJ (19 de agosto de 1964). "Funciones spline y el problema de la graduación". Actas de la Academia Nacional de Ciencias de los Estados Unidos de América . 52 (4). Academia Nacional de Ciencias : 947–950. Código bibliográfico : 1964PNAS...52..947S. doi : 10.1073/pnas.52.4.947 . PMC 300377 . PMID  16591233. 
  5. ^ Foley, van Dam, Feiner & Hughes: Gráficos por computadora: principios y práctica , sección 11.2, Addison-Wesley 1996 (2ª ed.).
  6. ^ Sistemas robóticos autoorganizados bioinspirados. pag. 9 . Consultado el 6 de enero de 2014 .
  7. ^ "B-splines racionales". www.cl.cam.ac.uk.
  8. ^ "NURBS: Definición". www.cs.mtu.edu .
  9. ^ David F. Rogers: Introducción a NURBS con perspectiva histórica, sección 7.1
  10. ^ Gershenfeld, Neil (1999). La naturaleza del modelado matemático . Prensa de la Universidad de Cambridge . pag. 141.ISBN 0-521-57095-6.
  11. ^ abcd Piegl, Les; Tiller, Wayne (1997). El libro NURBS (2. ed.). Berlín: Springer. ISBN 3-540-61545-8.
  12. ^ Piegl, L. (1989). "Modificación de la forma de B-splines racionales. Parte 1: curvas". Diseño asistido por ordenador . 21 (8): 509–518. doi :10.1016/0010-4485(89)90059-6.

enlaces externos