2 puntos por GN⁺ 2024-02-29 | 1 comentarios | Compartir por WhatsApp

Probando PGA

  • PGA (álgebra geométrica proyectiva) está atrayendo atención dentro de las comunidades de gráficos por computadora y aprendizaje automático.
  • Aunque la aplicación de PGA en los gráficos 3D tradicionales había sido limitada, el proyecto 'Look, Ma, No Matrices!' busca ampliar su alcance integrándolo en motores 3D modernos.
  • El proyecto enfatiza que, para aprovechar el potencial de PGA, se necesita una reconsideración fundamental en lugar de simplemente reemplazar tecnologías existentes.

Introducción

  • En los gráficos por computadora, las matrices cumplen un papel muy importante.
  • Hoy en día, las GPU son programables y ya no están atadas a un pipeline de función fija, por lo que existen las condiciones para usar PGA.
  • Las matrices son adecuadas para representar transformaciones lineales, pero los motores de PGA pueden codificar movimientos euclidianos con menor costo de cómputo y memoria.

FPGA: ¡PGA rápido!

  • Se explican en detalle los operadores básicos de PGA y las técnicas necesarias para CPU y GPU.
  • Los vectores base y la disposición en memoria de PGA se eligen para minimizar las conversiones al procesar datos gráficos.
  • Las estructuras de datos de PGA se traducen a estructuras simples de shaders, manteniendo las operaciones con tipos integrados.

Obtener operadores geométricos

  • En PGA, la composición de transformaciones usa multiplicación geométrica, que es más eficiente que la multiplicación de matrices.
  • El operador sándwich necesario para transformar puntos y direcciones cumple un papel importante en PGA.
  • La normalización y la operación de raíz cuadrada de los motores de PGA son operaciones importantes dentro de PGA, y pueden implementarse de forma eficiente.

Alejarse de las matrices

  • La interacción con contenido existente implica que hay que convertir matrices a sus equivalentes en PGA.
  • A diferencia de una matriz 4x4, un motor de PGA no incluye escalado, por lo que el escalado uniforme se rastrea multiplicando la escala total de cada elemento por la escala del padre.
  • El escalado no uniforme es más complejo, pero en la mayoría de los casos solo se aplica en nodos hoja.

Renderizado forward

  • Un renderizador forward transforma la geometría de la malla y determina qué píxeles cubre cada triángulo.
  • Se reemplazan las matrices de modelo, vista y proyección por motores de PGA, y en el vertex shader se realizan las transformaciones necesarias para el normal mapping en espacio tangente.
  • El enfoque basado en PGA muestra que es posible transformar vértices de malla con un costo computacional casi idéntico al de usar matrices 4x4.

Opinión de GN⁺

  • El proyecto 'Look, Ma, No Matrices!' presenta una alternativa interesante al enfoque tradicional de renderizado basado en matrices. Este nuevo enfoque para manejar transformaciones en gráficos 3D mediante PGA podría traer innovación al campo de los gráficos por computadora.
  • Para desarrolladores acostumbrados a las operaciones matriciales tradicionales, esta tecnología puede requerir una nueva curva de aprendizaje, lo que podría convertirse en una barrera en las primeras etapas de adopción.
  • Otros proyectos o productos de la industria con funciones similares incluyen APIs gráficas como OpenGL o DirectX, pero estas usan el enfoque tradicional basado en matrices.
  • Al adoptar PGA, hay que considerar la compatibilidad con el código existente, la optimización del rendimiento y la capacitación de los desarrolladores.
  • Las ventajas de elegir PGA incluyen mejoras en eficiencia de memoria y cómputo, pero esto puede variar según la integración con sistemas existentes y el nivel de comprensión de PGA por parte de los desarrolladores.

1 comentarios

 
GN⁺ 2024-02-29
Opiniones de Hacker News
  • Recomiendan el video introductorio de Freya Holmér sobre álgebra geométrica (Geometric Algebra)

    • Útil para quienes están interesados en gráficos 3D, especialmente splines/curvas de Bézier
    • El enfoque de álgebra de Clifford (Clifford Algebra) se siente más intuitivo que el álgebra lineal
    • Enlace al video de Freya Holmér
  • Comprensión del álgebra geométrica

    • El álgebra geométrica es similar a la multiplicación de polinomios, pero el orden de multiplicación importa y tiene una tabla de multiplicación particular (i*i = 1, i*j = -j*i)
    • La multiplicación geométrica de dos vectores incluye el producto punto (dot product) y el producto cruz (cross product), pero puede generalizarse a más dimensiones
    • En álgebra geométrica esto se llama wedge product
    • Entender este concepto facilita resolver problemas geométricos, como derivar fórmulas de rotación
  • Distintos enfoques para la interpolación de rotaciones

    • Hay varios métodos, como álgebra geométrica, cuaterniones e interpolación de matrices, pero después de optimizar el código la mayoría termina siendo similar
    • El álgebra geométrica parece ser el enfoque más consistente y capaz, aunque al principio resulta extraño y difícil de entender
    • La mayoría usa cuaterniones mientras se queja de no entenderlos
  • Recomendaciones de materiales sobre álgebra geométrica

  • En el resto de la página el modelo está demasiado activo, lo que dificulta entender las matemáticas

  • Críticas a la complejidad del álgebra geométrica

    • Si no se tiene cuidado, aparecen muchos elementos mezclados y para un espacio de n dimensiones pueden requerirse 2^n términos
    • Parece más adecuada para manejar geometría (producto interno), pero podría ser mejor usar wedge product y hodge star (o el isomorfismo musical)
    • Se pone en duda la utilidad del álgebra geométrica
  • Piden que se defina la sigla PGA (álgebra geométrica proyectiva) la primera vez que se usa

  • Dudas sobre la eficiencia del álgebra geométrica en GPU

    • Como la GPU está optimizada para operaciones con matrices, se preguntan si al usar álgebra geométrica desaparece esa ventaja
  • El artículo es interesante y agradable de leer; no es un área de especial interés, pero el texto resulta atractivo

  • Hace falta una explicación de la teoría de álgebras de Lie (Lie algebra) para operaciones gráficas