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

Introducción a las herramientas, bibliotecas y efectos de AMD

  • El sitio web GPUOpen de AMD es el lugar ideal para aprender sobre herramientas, bibliotecas y efectos relacionados con GPU.
  • Ofrece materiales y guías diseñados para que incluso los ingenieros de software principiantes puedan entenderlos fácilmente.
  • Ayuda a los usuarios a aprovechar la tecnología de AMD para lograr gráficos y rendimiento optimizados.

Opinión de GN⁺

  • Lo más importante de este artículo es que GPUOpen de AMD ofrece recursos útiles para los desarrolladores gráficos.
  • Hay muchos materiales a los que incluso los desarrolladores principiantes pueden acceder y aprovechar fácilmente, por lo que resultará interesante para quienes estén interesados en la programación gráfica.

1 comentarios

 
GN⁺ 2023-11-24
Comentarios en Hacker News
  • Para un ingeniero de software junior que entra al campo de los gráficos por computadora, es importante pensar primero en qué quiere crear en lugar de preocuparse antes por qué herramientas usar. Hay que dar el primer paso enfocándose en el resultado final. Muchas herramientas abstraen distintas etapas de la programación gráfica, así que existe el riesgo de gastar demasiado tiempo en código de bajo nivel desde el inicio. Además, en ciertos sectores de la industria a menudo se usan herramientas como Unity, TouchDesigner, three.js y After Effects, y casi no se usa C++. Tener una comprensión profunda es importante, pero aprender al entrar a la industria real es más eficiente.
  • Lo que un programador de gráficos debe saber incluye más que programación y APIs. Esto incluye rotación, matrices de vista y proyección, matemáticas vectoriales, programación de shaders, primitivas procedurales, composición de imágenes, renderizado forward y deferred, técnicas de muestreo, sombras e iluminación, cómo extraer datos de apps 3D, uso de profilers y depuradores, lectura de papers de Siggraph, técnicas de partición espacial y jerarquías de volúmenes, construir un ray tracer simple, comprensión de primitivas básicas y experiencia con partículas y simulación.
  • Recomiendan el curso "Graphics From Scratch" de Pikuma. Empieza usando SDL para escribir una función set_pixel, y luego se implementan en código todas las operaciones de matrices, las transformaciones de vértices y la rasterización de triángulos. Se aprende el proceso de calcular el color de cada píxel.
  • Además de empezar con DX/VK/OGL, hay muchas maneras de convertirse en programador de gráficos. Ni siquiera es necesario usar C++. Por ejemplo, 3Blue1Brown crea gráficos 3D asombrosos con Python. Si quieres escribir un motor de juego, aprende DirectX o Vulkan; si quieres crear aplicaciones para navegador, aprende WebGL. Estas APIs son pesadas y puede que no enseñen mucho sobre gráficos. Si quieres aprender los conceptos gráficos, escribe tu propio rasterizador y ray tracer en cualquier lenguaje. Hay muchas librerías gráficas y entornos de código accesibles y divertidos para principiantes, como Processing, PlotDevice.io, NodeBox, DrawBot y ShaderToy.
  • Se puede aprender programación gráfica escribiendo shaders en Shadertoy. Muchos programadores de gráficos empiezan ahí. Creó más de 10 tutoriales sobre SDF, ray marching, funciones de ruido y más.
  • Comparte materiales que se usan de verdad en la industria de la programación gráfica. El campo de los gráficos se ha vuelto tan grande que no existe una sola forma de aprendizaje que funcione para todos. Si quieres aprender gráficos, conviene encontrar un mentor.
  • En gráficos por computadora hay cientos de especialidades, y ese sitio web solo se enfoca en una parte pequeña: los SDKs de programación gráfica.
  • Es desarrollador de juegos, pero no programador de gráficos. Usa APIs gráficas modernas y shaders GLSL, pero cuando un chico de 13 años quiere pasar de Scratch o Python a C++, le hace escribir código simple usando el DLL de OpenGL 1.2 que tiene desde 1999. Es mucho más divertido que la configuración compleja de las APIs modernas. El chico está interesado en geometría computacional como los diagramas de Voronoi, así que la API gráfica es solo un medio. El rendimiento de C++ y OpenGL antiguo es mucho más rápido que Scratch. Aprender C++ y OpenGL al mismo tiempo usando una API simple es un reto bastante ambicioso. La simplicidad mantiene el aprendizaje manejable, y va muy bien. Le ayuda a crear un demo genial de marching squares y a añadir un menú de IMgui para ajustar parámetros en tiempo de ejecución.
  • Comparte su recorrido personal. Hace dos años creó su primer motor 3D siguiendo varios tutoriales y videos de YouTube. Es muy simple, pero le gustan las cosas simples. Actualmente está trabajando en hacer un juego de construcción de ciudades usando ese motor. Aprender a manipular objetos con matrices y producto cruzado es muy divertido.
  • Proporciona un ejemplo simple de código gráfico escrito en el lenguaje de programación BASIC.