1 puntos por GN⁺ 2025-11-24 | 1 comentarios | Compartir por WhatsApp

1 comentarios

 
GN⁺ 2025-11-24
Opiniones de Hacker News
  • El artículo fue interesante, pero la parte del diagrama que muestra OpenGL / WebGL / WebGPU como si estuvieran construidos sobre Vulkan es incorrecta
    WebGL y WebGPU funcionan directamente sobre D3D y Metal, sin pasar por Vulkan
    Además, Vulkan no es open source, sino un estándar
    WebGPU no está limitado al navegador; también existe como bibliotecas Dawn para C++ y WGPU para Rust, por lo que puede ejecutarse en Windows, macOS, Linux, iOS, Android, etc.
    Vulkan funciona en un poco más de plataformas que DirectX, pero no viene incluido en la instalación base de Windows y no corre en macOS ni en iOS
    • Quiero agregar que Vulkan no es open source, sino un estándar abierto
      La implementación real corre por cuenta de cada fabricante de hardware, y Vulkan en sí no es más que archivos de cabecera
      Además, también funciona bien en plataformas de Apple mediante capas de traducción de Vulkan a Metal como MoltenVK o KosmicKrisp
    • Vulkan no es totalmente cross-platform, pero sí cubre un rango mucho más amplio que DirectX
      DirectX se usa en Windows y Xbox; Vulkan está disponible en Linux, Android, Windows, Nintendo Switch, Switch 2, etc.
    • Habría que mencionar que WebGPU es una API unificada que se ubica sobre las APIs nativas de cada plataforma (DirectX, Vulkan, Metal)
    • Las APIs de Khronos tienen una enorme cantidad de extensiones, pero algunas son propietarias, así que la portabilidad se resiente
      PlayStation no soporta Vulkan, y en Switch normalmente se usa NVN en lugar de OpenGL/Vulkan
    • El simple hecho de que Vulkan funcione en Windows ya me parece que lo hace más general que DirectX
      Que Vulkan no funcione en ciertos entornos VNC de Linux no es un caso común
      La mayoría de los usuarios reciben soporte para Vulkan a través de los drivers de GPU
  • La calidad del curso en este sitio es sorprendente
    Hasta me darían ganas de apoyar el proyecto si vendieran el libro, aunque fuera en preventa
    Lo sigo desde el primer artículo, y con cada publicación me impresiona más
  • Si quieres experimentar con shaders, recomiendo estos IDEs
    • shadertoy – basado en navegador, el más fácil y popular
    • Shadron – personalmente lo prefiero por su usabilidad, aunque es algo de nicho
    • SHADERed – toma tiempo acostumbrarse al UX, pero en funciones va sobrado
    • KodeLife – lo he escuchado mencionar, pero no lo he usado personalmente
    • Cables(cables.gl) también está bastante bueno
      Tiene trabajos impresionantes de Kirell Benzi
    • Encontré wgshadertoy en el gestor de software de Mint
      Soporta múltiples plataformas: flatpak, AUR, macports, Windows, etc.
    • En macOS o iPadOS, también se puede empezar fácilmente con shaders de Metal usando Playgrounds
    • También está Bonzomatic, que se usa en la demoscene para competencias de live coding de shaders
  • Programar es, al final, el proceso de traducir lo que una persona entiende a algo que la computadora pueda entender
    Pero la programación GPU es muchísimo más difícil
    Hay montones de trampas, inconsistencias entre hardware y software, y pocas herramientas de depuración, así que la experiencia de desarrollo es bastante mala
    También da pena que la comunidad no parezca tener mucha voluntad de mejorar esto
    • OpenGL y las versiones anteriores a DirectX 12 intentaban abstraer los detalles del hardware, pero al final esa abstracción terminó siendo perjudicial
  • Al escribir un fragment shader, la parte menos intuitiva es la idea de recibir coordenadas y devolver un color
    A diferencia de dibujar con un lápiz, el shader calcula la posición de cada píxel y decide su color
    Hay que pensar en manipular el espacio en vez de mover objetos
    Los vertex shaders se sienten más naturales porque producen la posición de los triángulos
    • Solo se siente poco intuitivo cuando se abusa de los fragment shaders
      En realidad, se encargan de la última etapa del pipeline de renderizado, como el muestreo de texturas y los cálculos de iluminación
      En PBR o renderizado diferido, la mayor parte del tiempo se comparten shaders comunes y solo se personalizan los efectos especiales
    • Esto no es un problema del shader en sí, sino una diferencia entre gráficos rasterizados vs. vectoriales
      El shading no consiste en dibujar contornos, sino en representar materiales físicamente plausibles
      La pintura se parece más al shading; el dibujo con pluma, no tanto
    • Usar un fragment shader para dibujar un rectángulo es un enfoque equivocado
      El shader sirve para sombrear (shading) un rectángulo
    • En la práctica, el vertex shader define los bordes y el fragment shader rellena el interior
      Con fines educativos, a veces se omite el vertex shader y se llena toda la pantalla con un fragment shader
  • La parte más difícil al aprender código para GPU es que la configuración inicial es compleja y poco clara
    Conceptos como formatos de datos, orden de transformaciones y el límite entre CPU y GPU son difíciles, y además falta documentación
    El sistema de variables globales de la GPU también confunde
    • Yo también tenía muchas de esas dudas, así que escribí entradas de blog para aprender WebGL
      Barebones WebGL in 75 lines,
      Barebones 3D rendering with WebGL
      Vulkan requiere muchísimo más código boilerplate que WebGL
    • Algunas de esas preguntas tienen que ver menos con la GPU y más con el diseño de la API
      La GPU usa una arquitectura SIMT, así que la consistencia en el acceso a datos es importante
      Las transformaciones se aplican secuencialmente dentro de cada hilo, y el límite entre CPU y GPU puede cruzarse varias veces según el presupuesto de rendimiento
      Las variables globales son más bien constantes que se entregan igual a cada hilo, como los uniforms
      En CUDA se puede acceder globalmente con operaciones atómicas, pero el costo en rendimiento es alto
      Un curso introductorio de WebGL sería un buen punto de partida
  • El nivel de acabado del sitio es sorprendentemente alto
    Los diagramas, la barra de desplazamiento y el estilo están muy bien hechos
    Los shaders aparecieron antes que la GPU y también pueden ejecutarse en CPU
    La esencia de la GPU es el modelo de ejecución SIMT/SIMD, y los shaders son esencialmente una especie de función callback
    Creo que el hecho de poder escribirlos con el mismo pensamiento secuencial que en CPU es lo que les da su simplicidad y elegancia
    • Me impresionó especialmente que todas las ilustraciones estuvieran hechas en Figma
    • Dejé una respuesta diciendo que el feedback era excelente
  • El trabajo es realmente hermoso y está muy bien logrado
    • Coincido al 100%. Me pregunto si este sitio es una app personalizada hecha con Next.js
  • Excelente trabajo. Fue un gusto verlo de principio a fin
  • Recomiendo el video de Iñigo Quilez, “This painting is a mathematical formula”,
    porque muestra muy bien el concepto de shaders que expresan las coordenadas x, y de cada píxel como una función