Los triángulos PN ( ing. curvo punto-normal triángulos, PN triángulos ) son una forma de representación geométrica de objetos tridimensionales para su visualización.
Diseñado para mejorar la calidad visual de formas geométricas trianguladas (generalmente 3D). Suaviza la superficie del objeto renderizado.
Cada triángulo PN es un triángulo Bezier cúbico basado en tres vértices (b 300 , b 030 , b 003 ) y tres normales (n 200 , n 020 , n 002 ) de esos vértices del triángulo original plano ("base"). La idea principal del método es usar información sobre los vértices y las normales del triángulo base para crear un triángulo Bézier cúbico para cada triángulo base, así como la capacidad de generar cualquier cantidad de triángulos a partir del triángulo Bézier.
Para un triángulo plano, se derivó un modelo matemático de la superficie de un triángulo curvilíneo construido sobre su base, así como un modelo matemático de la distribución de normales dentro de todo el triángulo curvilíneo. Estos modelos, o funciones, son polinomios de tercer y segundo grado, respectivamente. Para cada triángulo, existen independientemente uno del otro.
Nota: este artículo trata sobre una función de distribución normal cuadrática, pero también es posible utilizar una función lineal, que también da buenos resultados.
Aquí u, v y w son coordenadas baricéntricas . u, v, w ≥ 0; w = 1 - tu - v .
Los coeficientes b ijk se calculan de la siguiente manera:
Aquí P k es el vector de coordenadas del vértice inicial k, k= 1,3 .
N k es el vector de coordenadas de la normal del vértice original k, k= 1,3 .
Aquí u, v y w son coordenadas baricéntricas . u, v, w ≥ 0; w = 1 - tu - v .
Los coeficientes n ijk se calculan de la siguiente manera:
Aquí P k es el vector de coordenadas del vértice inicial k, k= 1,3 .
N k es el vector de coordenadas de la normal del vértice original k, k= 1,3 .
Sustituyendo las coordenadas de los vértices del triángulo plano original, así como los valores de las normales en estos vértices, se obtienen funciones con coeficientes específicos en los modelos 1.1 y 1.2. Cada par de tales funciones describe un solo triángulo curvilíneo del objeto renderizado.
Para mejorar la calidad visual del objeto original, que consta de triángulos planos, a los triángulos incluidos en él se les da una forma curvilínea, lo que hace que el objeto sea más suave. Además, para los triángulos originales, se establece un cierto nivel de detalle. Cuanto mayor sea el nivel de detalle, más suave se verá el objeto renderizado. Es gracias al detalle que se “lanza” el mecanismo de los triángulos PN.
Aquí, detallar es la división de un triángulo a lo largo de cada borde en el mismo número de segmentos y, a lo largo de un borde, todos los segmentos son iguales entre sí. En el marco del mecanismo aquí considerado, es necesario detallar triángulos curvilíneos. Sin embargo, en el proceso de creación de reglas para dividir un triángulo arbitrario, trabajan con un triángulo plano abstracto, ya que solo las relaciones proporcionales dentro del triángulo son importantes. Después de dividirse, dicho triángulo consta de muchos triángulos más pequeños, que forman una cuadrícula regular.
La partición del triángulo se realiza en coordenadas baricéntricas . Como resultado, cada triángulo "pequeño" obtiene sus propias coordenadas baricéntricas u, v y w , que son únicas dentro del triángulo original que lo delimita.
En un modelo de objeto real que consta de triángulos planos iniciales, cada uno de sus triángulos "pequeños" corresponderá posteriormente a exactamente un triángulo "pequeño" nuevo ("elevado" por encima de la superficie del triángulo plano original), que tiene sus tres vértices (y sus coordenadas absolutas) y sus propias tres normales. Se calculan a través de funciones con coeficientes específicos derivados de los modelos 1.1 y 1.2 por separado para cada triángulo "grande" inicial. Las coordenadas baricéntricas u, v y w ( w = 1 - u - v ) de los vértices de todos los triángulos "pequeños", obtenidas en relación con el triángulo inicial externo a ellos, se sustituyen alternativamente en estas funciones. Como se mencionó anteriormente, estas funciones deben definirse para cada triángulo plano original. Estas funciones en sí mismas son fórmulas y permanecen sin cambios. El detalle del triángulo curvilíneo se realiza precisamente mediante la sustitución de las coordenadas u y v en estas fórmulas , ya que las coordenadas baricéntricas de cada punto individual del triángulo curvilíneo son idénticas a las coordenadas baricéntricas del punto correspondiente en el "grande" original. triángulo. Como resultado de la sustitución de cada vértice de cualquier “nuevo pequeño” triángulo, se obtienen sus coordenadas absolutas y su normal, lo que posteriormente permitirá “enviar” dichos triángulos para su visualización.
El nivel de valor de detalle se define de la siguiente manera. Si el borde se divide en dos segmentos, el nivel de detalle seleccionado es igual a uno. Si el borde se divide en tres segmentos, el nivel de detalle es dos, y así sucesivamente.
En la figura, la imagen de la izquierda se obtuvo sombreando el objeto original, formado por triángulos planos, según el modelo de Gouraud . La imagen del centro se obtuvo usando el mecanismo de triángulos PN, pero aquí NO se usa una función separada para calcular las normales. Y la imagen de la derecha se obtuvo usando el mecanismo de triángulos PN presentado en este artículo, donde las normales se calculan cuadráticamente e independientemente de la función de cálculo de coordenadas.
Debido al hecho de que las funciones para vértices y normales se calculan una vez para cada triángulo plano original específico, independientemente del nivel de detalle, hay un ahorro significativo en la memoria.