# Modelado geométrico

El modelado geométrico (también conocido en inglés como Computer-Aided Geometric Design (CAGD)), se refiere a la descripción asistida por computadora de la forma de objetos geométricos. Se trata de la descripción de curvas bidimensionales así como de superficies tridimensionales y objetos. El modelado geométrico se emplea en la realización de gráficos por computador, en el diseño asistido por computadora (CAD), en el método de los elementos finitos y en otros campos científicos y de ingeniería.

## Curvas y superficies de forma libre

Las curvas y superficies de forma libre se pueden describir utilizando splines, es decir, funciones polinómicas por partes. El principio se puede ampliar desde curvas bidimensionales hasta superficies tridimensionales.

### Curvas de Hermite

Las curvas interpolantes de Hermite están compuestas por polinómios hermíticos de tercer grado. Cada polinomio está determinado por un punto inicial y un punto final, así como por las tangentes correspondientes. Cuando los polinomios hermíticos se enlazan para formar un spline, las tangentes de cada dos polinomios adyacentes se igualan. Hay varias opciones para elegir las tangentes. La más sencilla es igualar una tangente a la línea recta que conecta los puntos de control más cercanos, pero se han desarrollado otros métodos:
* Para los polinomios cúbicos de Hermite, las tangentes están determinadas por un parámetro c (con valor entre 0 y 1), que especifica la tensión en el punto de control.
* Cuando c=0, se obtienen splines cardinales, un caso especial de interpolación cúbica. A menudo se utilizan en animación por computadora, dado que pasan exactamente por los puntos de control y su derivada es continua.
* Existe un tercer tipo de interpolación cúbica, los splines TCB, en los que se pueden fijar tres parámetros: Tensión, Continuidad y Sesgo.

### Curvas de Bézier

Un curva de Bézier de nésimo grado es una curva parametrizada definida por n+1 puntos de control. El polígono que conecta los puntos de control se llama polígono de control. Mientras que una curva de Bézier lineal, es decir, una curva de Bézier de primer grado, es un simple segmento rectilíneo entre dos puntos de control, una curva de Bézier cuadrática describe un parábola. Muchos programas de gráficos utilizan curvas cúbicas de Bézier.
Una curva de Bézier interpola entre puntos de control individuales utilizando polinomios de Bernstein, que indican la influencia de los puntos de control según el parámetro de la curva. Excepto por los puntos inicial y final, la curva generalmente no pasa por los puntos de control, sino que está incluida en su envolvente convexa. Para dibujar una curva de Bézier, se puede utilizar el algoritmo de De Casteljau, que se aproxima a una curva de Bézier mediante un polígono.
Las curvas de Bézier son invariantes bajo transformaciones afines. Esto significa que una aplicación afín de los puntos de control da como resultado la misma curva que una aplicación afín de la curva original. Un problema con las curvas de Bézier es que los puntos de contacto o dobles son posibles si los puntos de control están en una posición determinada. Además, los cambios locales en los puntos de control pueden tener un efecto indeseable en toda la curva, aunque solo son importantes localmente.

### Curvas B-spline y NURBS

Las curvas B-spline ofrecen un comportamiento más localizado y controlabilidad mejoradas en comparación con las curvas de Bézier: los cambios solo tienen un efecto local y solo es necesario recalcular una parte de la curva cuando se añaden o modifican puntos. De manera similar a las curvas de Hermite, las curvas B-spline se componen por partes de polinomios individuales. Los puntos de coñexión se llaman "puntos nodales". Esto evita oscilaciones no deseadas (consecuencia de la interpolación polinómica continua) cuando se cuenta con un gran número de nodos. Las curvas B-spline son una combinación ponderada linealmente de funciones base, llamadas B-splines. Las funciones base son polinomios por partes con un soporte pequeño. Los cambios en un segmento no afectan al resto de la curva B-spline.
Las funciones de base uniforme son copias desplazadas entre sí, cada una centrada en un nodo. Las funciones de base lineal uniforme son funciones triangulares que están centradas en un nodo específico y tienen un soporte que se extiende sobre tres nodos. Las funciones de base cuadrática y cúbica se componen de polinomios correspondientemente superiores, pero siempre están centradas sobre un nodo. Por el contrario, las funciones de base no uniformes tienen diferentes formas. Las curvas B-spline se pueden convertir en líneas polígonales usando el algoritmo de De-Boor.
Una extensión de esta idea son las "curvas B-spline racionales no uniformes", generalmente denominadas NURBS, cuya representación de parámetros es una fracción matemática. Las NURBS son lo suficientemente generales como para describir todas las curvas y superficies comunes. Algunas herramientas de modelado más nuevas utilizan este tipo de curvas como único método de representación interna.

## Esquemas de visualización

Se han desarrollado varios métodos para representar cuerpos (esquemas de representación), que difieren en sus requisitos de memoria, precisión numérica, complejidad y capacidad de conversión a otros esquemas de representación. Otra propiedad de un esquema de representación es la capacidad de comprobar si un modelo es correcto, es decir, si define un objeto "real" físicamente posible.
Se distingue entre esquemas de representación directos, que describen el volumen mismo, y esquemas indirectos, en los que la descripción se realiza a través de aristas y superficies. También son concebibles esquemas híbridos que combinen ambos métodos.

### Esquemas de representación directa
#### Esquema de enumeración de celdas estándar

El esquema de enumeración de celdas estándar divide el espacio en una cuadrícula de celdas espaciadas uniformemente (vóxeles). Un cuerpo está representado por un conjunto de células. Cuanto más pequeños sean los vóxeles, mejor se aproximará el cuerpo. El esquema de enumeración consume mucha memoria.

#### Geometría constructiva de sólidos

En geometría constructiva de sólidos (GCS), los objetos se modelan utilizando cuerpos básicos como esferas, cuboides o cilindros, así como operadores como intersección, unión o diferencia. Un cuerpo GCS se puede describir mediante una fórmula que aplica los operadores a cuerpos básicos y se ilustra como un árbol.
El sistema GCS es particularmente común en el área del CAD. Un estudio concluyó que el 63% de todos los componentes mecánicos se pueden modelar con un sistema GCS que solo utilice cuboides y cilindros circulares rectos. Si se permiten más cuerpos base, el 90% de todos los componentes de la ingeniería mecánica clásica (principalmente perforaciones, fresados y cilindrado de los componentes o sus moldes) se pueden describir de forma natural mediante este procedimiento.
Una de sus ventajas más importantes es que su exactitud está garantizada siempre que solo se permitan determinadas primitivas. Por ejemplo, si se utilizan elementos regulares como cuerpos base, sus propiedades garantizan que el árbol correspondiente sea exacto. Además, la definición de los sólidos GCS es muy compacta y fácil de crear. Sin embargo, muchos métodos de renderizado no pueden manejar estos objetos directamente, y requieren que los cuerpos GCS se conviertan primero a B-rep (elementos modelizados por sus bordes), lo cual es una tarea comparativamente difícil.
Hasta la década de 1980, la mayoría de las herramientas de modelado se basaban en representación de contornos o en GCS.

#### Modelado generativo

Un modelo generativo es una forma creada mediante una transformación continua de una forma, llamada generador. La dimensión del modelo no juega ningún papel. El modelado dispone de gran variedad de transformaciones, y es ampliable. Con la ayuda de un lenguaje de programación como Generative Modelling Language, el usuario puede crear fácilmente una biblioteca de formas útiles.
Las geometrías de desplazamiento, también llamadas barridos, son un caso especial de modelos generativos, que se crean desplazando una curva o un volumen a lo largo de una curva guía.
Un caso especial de barridos son las superficies de revolución, que se crean haciendo girar un elemento arbitrario alrededor de un eje de revolución.
El software Point-E de OpenAI, introducido en 2022, permite la generación de modelos 3D basados en entradas de texto.

#### Cuadrícula de vóxeles

Las cuadrículas de vóxeles son valores dispuestos espacialmente y en forma de cuadrícula que describen la "densidad" de un objeto, y que se pueden representar utilizando técnicas de renderizado. Las cuadrículas de vóxeles permiten "cortar" partes de objetos y ver su interior. Las operaciones con GCS también son fáciles de implementar. Sin embargo, estas cuadrículas requieren mucho espacio de almacenamiento y son propensas a efectos de desbordamiento no deseados. En algunos casos, el mayor requisito de memoria se puede reducir mediante el uso de árboles octales. El modelado mediante cuadrículas de vóxeles se utiliza principalmente en medicina, en mecánica de fluidos y en la representación de objetos naturales como las nubes.

### Sistemas de representación indirecta
#### Modelos de estructura alámbrica

Un modelo de estructura alámbrica define un cuerpo exclusivamente por sus aristas. Este modelo ofrece ventajas de velocidad de procesado, porque su representación es muy eficiente. Un problema de este esquema es su ambigüedad. Un modelo de estructura alámbrica puede representar varios cuerpos diferentes porque no está claro dónde están las superficies. Por lo tanto, no es posible determinar las caras ocultas como ocurre con las superficies, aunque se puede utilizar el algoritmo de línea aureolada.

#### Representación de superficies

Una representación de superficies, también llamada representación de límites o B-rep, es la descripción de un cuerpo en función de su superficie; utilizando contornos "vacíos". Los B-reps son probablemente el sistema de representación más utilizado en gráficos por computadora. Las mallas poligonales en particular se utilizan comúnmente.
Estos contornos son buenos para renderizar superficies generales de manera eficiente, y permiten realizar cambios locales en el modelo. Las desventajas de los B-reps son sus altos requisitos de memoria y la dificultad para comprobar si su representación es correcta. Para ello, se utilizan sistemas de representación basados en las llamadas operaciones de Euler, con el fin de garantizar (al menos parcialmente) la corrección de los resultados obtenidos al modelar cuerpos como B-reps. La idea es permitir solo las llamadas operaciones que mantienen la característica de Euler o la cambian de cierta manera.

## Técnicas de modelado
### Poligonización

Muchos algoritmos en gráficos por computadora, incluidos algunos métodos de renderizado, funcionan exclusivamente con mallas poligonales. El método de los elementos finitos también se basa en esta forma de representación. Se han desarrollado numerosos algoritmos de poligonización que producen resultados de calidad variable. En general, un método de poligonización debe lograr una buena aproximación de la forma del objeto original, producir polígonos con una forma equilibrada que no sea demasiado estrecha y respetar la topología local del objeto original, es decir, no crear huecos ni roturas. Ejemplos de algoritmos de poligonización son
* El algoritmo cortar cubo de M. Schmidt y
* El algoritmo de seguimiento de E. Hartmann. Véase

### Modelado físico

Los métodos de modelado que tienen en cuenta las propiedades dinámicas de los objetos además de las estáticas, se denominan de base física. Los objetos pueden ser no solo rígidos, sino también flexibles. Un ejemplo es un trozo de tela colocado sobre otros objetos y cuya caída se puede calcular automáticamente.