1. Curvas NURBS y Bézier
Ing. José Luis Huidobro E. | Clase de Modelado Digital

¿Qué es NURBS?

NURBS significa Non-Uniform Rational B-Splines (B-Splines Racionales No Uniformes). Es un modelo matemático utilizado ampliamente en sistemas CAD para describir curvas y superficies suaves y continuas con máxima precisión. Permite representar de forma exacta tanto formas libres como primitivas geométricas (círculos, elipses, cilindros).

¿Qué es un Spline?

Un spline es una cadena de curvas Bézier unidas suavemente (manteniendo continuidad geométrica), que el software CAD interpreta y manipula como si fuera una sola curva continua.

¿Qué es una curva Bézier?

Es una curva paramétrica definida por un conjunto de puntos de control. La curva **no pasa necesariamente por todos estos puntos** (excepto por el primero y el último), pero su forma se ve atraída e influida por ellos mediante formulaciones polinomiales.

Historia y la Solución de Pierre Bézier (Renault):

A mediados del siglo XX en la automotriz francesa Renault, el ingeniero **Pierre Bézier** enfrentaba un problema técnico crítico: las primeras máquinas de control numérico (CNC) solo sabían seguir puntos coordinados $(x, y)$ en línea recta, y el software no tenía forma de describir curvas suaves. Seguir una cadena densa de puntos no garantizaba suavidad (generando imperfecciones y saltos en la carrocería).

La solución de Bézier fue revolucionaria: en lugar de obligar a la curva a pasar por puntos fijos, propuso **describir la curva mediante un polígono de puntos que ejercen fuerza o influencia sobre ella sin tocarla**. Esta formulación matemática permitió a las computadoras y máquinas CNC fabricar y estampar carrocerías con suavidad matemática perfecta, dando nacimiento a las NURBS y al diseño industrial moderno.

2. Calidad de Superficie y Continuidad G0-G3

La calidad de superficie es la capacidad de una geometría tridimensional para reflejar la luz de forma continua, uniforme y controlada, evitando quiebres o costuras visuales. En diseño industrial no basta con la precisión dimensional; es crucial la percepción de continuidad.

La continuidad entre curvas o superficies se clasifica formalmente como:

  • G0 (Posición): Las dos curvas o superficies se tocan en el borde común. Hay un quiebre visual evidente; no hay control de dirección ni tangencia.
  • G1 (Tangencia): Comparten la misma dirección tangente en el punto de contacto. La transición física es suave al tacto, pero la reflexión de la luz se quiebra abruptamente.
  • G2 (Curvatura): Comparten dirección y también el radio de curvatura en el borde. El reflejo de la luz es continuo y ópticamente limpio. Es la base del diseño automotriz.
  • G3 (Variación de Curvatura): Comparten tangencia, curvatura y la tasa de cambio de esa curvatura. Máxima calidad estética y fluidez perceptual.

¿Por qué los planos no bastan?

Un plano de ingeniería clásico describe bordes, radios fijos y cotas lineales, pero es incapaz de describir la continuidad compleja (G2 o G3) ni cómo interactuará la luz (análisis de cebras). Las superficies de alta gama se definen matemáticamente.

Tipos de Superficies según su Ubicación:

  • Superficie Clase A: Superficies exteriores visibles al usuario (carrocería, carcasas premium) que exigen continuidad G2 o superior, control estricto de reflejos y topología limpia sin defectos de curvatura.
  • Superficie Clase B: Superficies internas, mecánicas o no visibles directamente (estructuras, soportes) que no requieren control de iluminación fino.
  • Superficie Clase C: Superficies de cierre y transición (empalmes rápidos, pestañas interiores) que unen zonas A y B manteniendo la estanqueidad.
3. NURBS vs Mallas Poligonales

Es importante entender que en el software 3D existen dos paradigmas fundamentales para modelar formas curvas:

CaracterísticaEsfera en Blender (Malla Poligonal)Esfera en CAD (NURBS)
RepresentaciónFacetada. Formada por una malla de caras planas (triángulos o cuadriláteros).Matemática. Definida mediante ecuaciones paramétricas continuas.
PrecisiónAproximada. Depende de la densidad de polígonos. Si te acercas, se ven facetas.Exacta e infinita. No importa el zoom, siempre se mantiene perfectamente redonda.
Uso PrincipalVideojuegos, renderizado rápido, animación, efectos visuales (VFX).Manufactura de precisión, moldes, inyección, diseño automotriz (CAD/CAM).

¿Qué es Discretizar y Mallar?

  • Discretizar: Es convertir una geometría matemáticamente continua en un conjunto finito de elementos. Es pasar de una ecuación exacta a datos discretos aproximados.
  • Mallar (Mesh generation): Es el proceso de aproximar la superficie NURBS dividiéndola en una red de triángulos o cuadriláteros (por ejemplo, al exportar a archivo STL para impresión 3D).

¿Se puede regresar de Malla a NURBS? No de forma perfecta. Aunque existen herramientas de ingeniería inversa para ajustar parches NURBS sobre una malla poligonal, es un proceso aproximado y manual que no recupera la definición matemática paramétrica original.

4. Algoritmos de Curvas Bézier por Grados

Matemáticamente, una curva de Bézier se define como una combinación paramétrica donde los puntos de control influyen en la trayectoria a lo largo de una variable $t$ que va de $0$ a $1$.

A continuación se detallan las ecuaciones paramétricas y su equivalente algorítmico en Python:

A) Bézier Lineal (Grado 1 - 2 puntos de control $P_0, P_1$):

Es una línea recta que interpola linealmente entre ambos puntos:

$$B(t) = (1 - t)P_0 + tP_1$$
# Parámetro t de 0 a 1 t = np.linspace(0, 1, 100) # Ecuación paramétrica B = (1 - t)[:, None] * P0 + t[:, None] * P1

B) Bézier Cuadrático (Grado 2 - 3 puntos de control $P_0, P_1, P_2$):

Utilizada típicamente en fuentes TrueType y curvas vectoriales básicas:

$$B(t) = (1 - t)^2 P_0 + 2(1 - t)t P_1 + t^2 P_2$$
# Ecuación paramétrica B = ((1 - t)**2)[:, None] * P0 \ + (2 * (1 - t) * t)[:, None] * P1 \ + (t**2)[:, None] * P2

C) Bézier Cúbico (Grado 3 - 4 puntos de control $P_0, P_1, P_2, P_3$):

Es el estándar en software de ilustración vectorial (curvas de Illustrator) y empalmes CAD:

$$B(t) = (1 - t)^3 P_0 + 3(1 - t)^2 t P_1 + 3(1 - t)t^2 P_2 + t^3 P_3$$
B = ((1 - t)**3)[:, None] * P0 \ + (3 * (1 - t)**2 * t)[:, None] * P1 \ + (3 * (1 - t) * t**2)[:, None] * P2 \ + (t**3)[:, None] * P3

D) Bézier de Grado Alto (Grado 4 y 5):

Permiten transiciones de curvatura sumamente suaves para diseño avanzado:

$$B_{g4}(t) = (1 - t)^4 P_0 + 4(1 - t)^3 t P_1 + 6(1 - t)^2 t^2 P_2 + 4(1 - t)t^3 P_3 + t^4 P_4$$ $$B_{g5}(t) = (1 - t)^5 P_0 + 5(1 - t)^4 t P_1 + 10(1 - t)^3 t^2 P_2 + 10(1 - t)^2 t^3 P_3 + 5(1 - t)t^4 P_4 + t^5 P_5$$
5. Iluminación y HDRI en Blender

Para lograr renders fotorrealistas de modelos mecánicos y de producto, es fundamental recrear la luz ambiental real mediante técnicas de alto rango dinámico.

¿Qué es un HDRI?

Un HDRI (High Dynamic Range Image) es una fotografía panorámica de 360 grados que almacena la cantidad exacta de iluminación, color y contraste de un espacio real. A diferencia de las imágenes convencionales, sus píxeles contienen valores físicos de radiancia, lo que permite que actúen como luces reales al proyectarse sobre el objeto 3D.

Configuración de Entorno en Blender mediante Nodos (Node Wrangler):

  1. Descarga un mapa de iluminación en formato `.hdr` o `.exr` (por ejemplo, desde Poly Haven).
  2. En Blender, asegúrate de activar el add-on Node Wrangler desde las Preferencias.
  3. Cambia la vista del editor de sombreadores (Shader Editor) a World.
  4. Agrega un nodo de tipo Environment Texture y carga tu archivo HDRI.
  5. Conecta la salida de color de la textura a la entrada de color del nodo Background, y esta última a la entrada Surface de World Output.
  6. Selecciona el nodo del HDRI y presiona la combinación Ctrl + T. Esto generará automáticamente los nodos Texture Coordinate y Mapping, que te permitirán rotar el HDRI en el eje Z para cambiar la dirección del sol y los reflejos.
6. Flujo de Trabajo: De SolidWorks a Blender

Para renderizar un diseño paramétrico conservando la fidelidad y la estructura jerárquica de piezas del ensamble, se sigue un protocolo estándar:

Paso 1: Exportar desde SolidWorks

  • Exporta el ensamble en formato neutral de sólidos, preferiblemente **STEP (.step o .stp)** o **Parasolid (.x_t)**.
  • Asegúrate de marcar la opción de conservar la jerarquía y estructura del ensamble, lo que mantendrá las piezas independientes en lugar de unirlas en un solo bloque.

Paso 2: Importar en Blender

  • Utiliza el importador nativo de STEP de Blender (o realiza una conversión limpia a formato glTF/OBJ de alta densidad si requieres optimizar el conteo de polígonos durante la exportación).
  • El modelo importado mantendrá cada componente con su origen y posición del ensamble original, listo para recibir texturas y materiales fotorrealistas.
7. Análisis de Defectos y Luces Cebra

En el diseño de producto y automotriz, el control de la luz es el indicador definitivo de una buena ingeniería. El reflejo revela imperfecciones invisibles al ojo en modelos de color mate.

El Método de Luces Cebra:

Consiste en proyectar un patrón de líneas paralelas blancas y negras sobre la superficie de un objeto. Al observar el reflejo en la pantalla o en un chasis físico, estas líneas actúan como un mapa topográfico óptico:

  • Superficie Perfecta G2: Las líneas reflejadas se proyectan continuas, paralelas y curvas de forma suave y armónica sin quiebres abruptos.
  • Golpe, Abolladura o Defecto de Continuidad G1: Las líneas se curvan de golpe, se amontonan, se cruzan o se cortan, indicando una deformación o falta de suavidad en la curvatura de la superficie.

Este método es el estándar utilizado en el software de diseño industrial (como Rhino o Alias) para inspeccionar la calidad Clase A y es el mismo principio que usan los técnicos en hojalatería (PDR) con lámparas LED de líneas para enderezar láminas sin dañar la pintura.

8. Introducción a Materiales Procedurales

Un material procedural se genera mediante algoritmos y funciones matemáticas en lugar de cargar una imagen de textura fija de disco. Esto permite texturas infinitas sin pérdida de resolución ni costuras visibles.

Un shader básico en Blender para materiales rugosos o de producto se estructura así en el editor de nodos:

  1. Texture Coordinate & Mapping: Generan el vector espacial.
  2. Noise Texture: Genera un patrón de ruido con parámetros de escala, detalle y rugosidad.
  3. Color Ramp: Recibe el factor del ruido y permite mapear colores específicos a los valores de gris de la textura. Conecta a Base Color.
  4. Principled BSDF: Integra el color y calcula reflexiones, rugosidad (Roughness) y propiedades metálicas.
  5. Material Output: El nodo final que computa el sombreado sobre la malla en el renderizador.
9. Modelado Paramétrico Híbrido en Fusion

Para construir componentes que requieran interactuar físicamente, se utiliza el Modelado Híbrido de Pieza + Ensamble.

Un ejemplo de aplicación es el diseño del chasis para un carro a control remoto:

  • La forma principal: Se genera mediante una operación de barrido (Sweep) de un perfil de soporte a lo largo de una trayectoria curva.
  • Montajes funcionales: Sobre las caras del chasis barrido se extruyen los soportes y el piso para los elementos mecánicos y electrónicos (motor DC, dirección Ackermann, ejes de acero, baterías y engranes).

¿Por qué se prefiere el modelado paramétrico?

Porque define la pieza mediante relaciones de posición, restricciones geométricas y variables numéricas. Si durante la fase de prototipado se requiere cambiar el ancho del motor o el diámetro de los engranes, el diseñador simplemente edita la dimensión clave en el árbol histórico de operaciones y todo el chasis y ensamble se recalculan y actualizan automáticamente sin necesidad de rehacer el modelo desde cero.