B-Splines racionales no uniformes (NURBS)

B-Splines racionales no uniformes (NURBS, Non-uniform rational basis-spline) es un método matemático para definir curvas, superficies y sólidos. Para obtener más información, hay muchos sitios en Internet con explicaciones acerca de las curvas y las superficies NURBS. Utilice su motor de búsqueda favorito para encontrarlos.

¿Qué significa “NURBS”?

La palabra NURBS es el acrónimo de non-uniform rational B-spline (B-spline racional no uniforme). Las B-splines racionales no uniformes pueden representar la geometría 3D.

¿Por qué usar NURBS para representar geometría 3D?

La geometría NURBS tiene cinco cualidades esenciales que la convierten en la opción ideal para el modelado asistido por ordenador.

Existen varias formas estándar industriales para intercambiar la geometría NURBS. Los usuarios pueden y deberían ser capaces de transportar todos sus modelos geométricos entre los diferentes programas de modelado, renderizado, animación e ingeniería de análisis que hay en el mercado. Estos programas pueden almacenar información geométrica que podrá ser utilizada durante más de 20 años.

Las NURBS tienen una definición precisa y muy conocida. La geometría NURBS se enseña en las facultades de matemáticas e informática de las universidades más importantes. Eso significa que los vendedores de software especializado, los equipos de ingenieros, las empresas de diseño industrial y las empresas de animación que necesitan crear aplicaciones de software específicas para sus proyectos podrán encontrar programadores capacitados para trabajar con la geometría NURBS.

Las NURBS pueden representar con precisión objetos geométricos estándar tales como líneas, círculos, elipses, esferas y toroides, así como formas geométricas libres como carrocerías de coches y cuerpos humanos.

La cantidad de información que requiere la representación de una forma geométrica en NURBS es muy inferior a la que necesitan por separado las aproximaciones comunes.

La regla de cálculo de las NURBS, que se describe a continuación, se puede implementar en un ordenador de manera eficaz y precisa.

¿Qué es la geometría NURBS?

Hay muchas maneras de contestar a esta pregunta. Si le gusta leer fórmulas matemáticas, puede obtener información más detallada en los libros y documentos técnicos que aparecen en la sección NURBS de la página web de openNURBS (http://www.opennurbs.com/books.htm) y hacer clic en los enlaces.

Rhino utiliza NURBS para representar curvas y superficies. Las curvas y superficies NURBS se comportan de maneras similares y comparten mucha terminología. Proporcionaremos información más detallada sobre las curvas, porque son más fáciles de describir. Rhino incluye herramientas para superficies que son análogas a las herramientas para curvas mencionadas a continuación.

Una curva NURBS se define mediante cuatro elementos: grados, puntos de control, nodos y regla de cálculo.

El grado es un número entero positivo.

Normalmente este número es 1, 2, 3 o 5. Las líneas y polilíneas de Rhino son grado 1, los círculos de Rhino son grado 2 y la mayoría de las formas libres de Rhino son grado 3 o 5. Rhino permite trabajar con curvas NURBS de grado 1 a 11. A veces se utilizan los siguientes términos: lineal, cuadrático, cúbico y quíntico. Lineal significa de grado 1, cuadrático significa de grado 2, cúbico significa de grado 3 y quíntico significa grado 5.

Es posible que vea referencias del orden de una curva NURBS. El orden de una curva NURBS es un número entero positivo igual a (grado+1). En consecuencia, el grado es igual a orden-1.

Existe la posibilidad de incrementar los grados de una curva NURBS sin cambiar su forma. Pero no es posible reducir el grado de una curva NURBS y no cambiar su forma.

Los puntos de control son una lista de puntos de (grado+1) como mínimo.

Una de las maneras más sencillas de cambiar la geometría de una curva NURBS es mover los puntos de control. Rhino tiene varias formas para mover los puntos de control. Para realizar grandes ajustes a las formas libres, simplemente tiene que utilizar el ratón para arrastrar el punto de control. Rhino brinda otras herramientas diseñadas para realizar ajustes menores más precisos.

Los puntos de control tienen un número asociado denominado peso. Con algunas excepciones, los pesos son números positivos. Cuando todos los puntos de control de una curva tienen el mismo peso (normalmente 1), la curva se denomina no racional. De lo contrario, la curva se denomina racional. En NURBS, la R significa racional e indica que una curva NURBS tiene la posibilidad de ser racional. A la práctica, la mayoría de las curvas NURBS son no racionales. Algunas curvas, como los arcos, los círculos y las elipses, siempre son racionales. Rhino proporciona herramientas para examinar y modificar los pesos de los puntos de control.

Los nodos son una lista de números de grado+N-1, donde N es el número de puntos de control. A veces esta lista de números se denomina vector nodal. En este contexto, la palabra vector no significa una dirección 3D.

Esta lista de números de nodos debe cumplir varias condiciones técnicas. El modo estándar para asegurar que las condiciones técnicas se cumplan es requerir que el número se mantenga igual o aumente a medida que vaya bajando en la lista y limitar el número de valores duplicados a que no sea superior al grado. Por ejemplo, para una curva NURBS de grado 3 con 11 puntos de control, la lista de números 0,0,0,1,2,2,2,3,7,7,9,9,9 es una lista de nodos satisfactoria. La lista 0,0,0,1,2,2,2,2,7,7,9,9,9 no es aceptable porque hay cuatro 2, y cuatro es un número mayor que el grado.

El número de veces que se duplica el valor de un nodo se denomina multiplicidad nodal. En el ejemplo anterior de lista satisfactoria de nodos, el valor del nodo 0 tiene una multiplicidad de tres, el valor del nodo 1 tiene una multiplicidad de uno, el valor del nodo 2 tiene una multiplicidad de tres, el valor del nodo 7 tiene multiplicidad de dos y el valor del nodo 9 tiene multiplicidad de tres. Se dice que un valor nodal es un nodo de multiplicidad total si el grado se ha duplicado varias veces. En el ejemplo, los valores de nodo 0, 2, y 9 tienen multiplicidad total. Al valor de un nodo que aparece una sola vez se le denomina nodo simple. En el ejemplo, los valores del nodo 1 y 3 son nodos simples.

Si una lista de nodos se inicia con un nodo de multiplicidad completa, la siguen nodos simples, termina con un nodo de multiplicidad completa y los valores se espacian uniformemente, entonces los nodos son uniformes. Por ejemplo, si una curva NURBS de grado 3 con 7 puntos de control tiene nodos 0,0,0,1,2,3,4,4,4, la curva tendrá nodos uniformes. Los nodos 0,0,0,1,2,5,6,6,6 no son uniformes. Los nodos que no son uniformes se denominan no uniformes. Las letras NU de la palabra NURBS significan "no uniforme" e indican que se permite que los nodos de una curva NURBS sean no uniformes.

Los valores duplicados del nodo en la mitad de la lista del nodo hacen que una curva de NURBS sea menos suave. En caso extremo, un nodo de completa multiplicidad en la mitad de la lista de nodos significa que hay un lugar en la curva NURBS que se puede doblar en un punto de torsión. Por esta razón, a algunos diseñadores les gusta agregar y quitar nodos y luego ajustar los puntos de control para hacer curvas más suaves o figuras torsionadas. Rhino incluye herramientas para quitar y agregar nodos. Debido a que el número de nodos es igual a (N+grado-1), donde N es el número de puntos de control, si se agregan nodos también se agregan puntos de control, y si se quitan nodos se quitan puntos de control. Los nodos se pueden añadir sin cambiar la forma de la curva de NURBS. En general, quitar nodos cambiará la forma de una curva. Rhino proporciona una interfaz avanzada para eliminar nodos que elimina los nodos automáticamente cuando el usuario borra un punto de control.

Un error frecuente se produce cuando cada nodo se empareja con un punto de control, y ocurre sólo en las NURBS de grado 1 (polilíneas). Para curvas NURBS de grados más altos, existen grupos de nodos de 2 x grado que corresponden a grupos de puntos de control de grado. Por ejemplo, suponga que tiene curvas NURBS de grado 3 con 7 puntos de control y nodos 0,0,0,1,2,5,8,8,8. Los primeros cuatro puntos de control están agrupados con los primeros seis nodos. Del segundo hasta el quinto punto de control están agrupados con los nodos 0,0,1,2,5,8. Del tercer al sexto punto de control están agrupados con los nodos 0,1,2,5,8,8. Los últimos cuatro puntos de control están agrupados con los últimos seis nodos.

Algunos modeladores que utilizan algoritmos más antiguos para el cálculo de curvas NURBS necesitan dos valores de nodos extra para un total de nodos grado+N+1. Cuando Rhino exporta e importa geometría NURBS, agrega y quita automáticamente estos dos nodos sobrantes, ya que la situación lo requiere.

La regla de cálculo utiliza una fórmula matemática que coge un número y asigna un punto.

La fórmula comprende el grado, los puntos de control y los nodos. En la fórmula hay lo que se llama funciones básicas de B-spline. BS en la palabra NURBS significa B-spline. El número de cálculo con que empieza la regla de cálculo se denomina parámetro. Puede imaginarse la regla de cálculo como una caja negra que se come un parámetro y produce un punto. El grado, los nodos y los puntos de control determinan el funcionamiento de la caja negra.

Rhino incluye herramientas de cálculo. Puede seleccionar una curva NURBS, escribir el valor del parámetro y producir el punto correspondiente.

Conceptualmente, los nodos determinan las funciones básicas de B-spline. Los valores de las funciones básicas de B-spline en el parámetro determinan cómo se calculan a la vez los puntos de control y los pesos para producir un punto. Tiene a su disposición varios textos y páginas web donde se describe con detalle la regla de cálculo y las funciones básicas de B-spline.

Véase también

Wikipedia: B-spline racionales no uniformes.