AMD tiene GPUOpen, mientras que NVIDIA tiene GameWorks, un directorio plagado de herramientas, librerías y samples preparados para desarrolladores.
En esta ocasión, nos vamos a centrar en el «behind the scenes» de los videojuegos, es decir, cómo se hacen y qué se usa para crearlos. Ya os hablamos de cómo funcionaba AMD GPUOpen, pero NVIDIA GameWorks está más presente de lo que creéis. Nos adentramos en este magnífico directorio para comprenderlo.
Índice de contenidos
Qué es NVIDIA GameWorks
Se trata de un directorio creado por NVIDIA que tiene por objetivo brindar a los desarrolladores e ingenieros las mejores herramientas, samples y librerías para la creación. Dentro de GameWorks, encontraremos diversos SDKs preparados para que los profesionales accedan a la mejor tecnología de computación visual.
¿Quién ha creado GameWorks? Principalmente, los ingenieros que han trabajado en NVIDIA, quienes, también, colaboran con el desarrollo de eventos como el GDC o el SIGGRAPH (enfocado a profesionales). Cualquier desarrollador se puede descargar el código fuente de los SDK de NVIDIA GameWorks a través de GitHub (plataforma usada para descargar/subir herramientas profesionales).
¿Qué encontramos en GameWorks?
NVIDIA clasifica todas las soluciones de GameWorks en distintos apartados enfocados para fines distintos. Concretamente, desglosa su entramado de herramientas en 7 grupos:
- VisualFX.
- Physics (físicas).
- Core SDK.
- OptiX.
- Sample Code.
- Herramientas.
- VRWorks.
VisualFX
Es muy similar a FidelityFX de AMD, y es que viene a ser una especie de gama de herramientas centradas en los efectos visuales de alta calidad que solemos ver en los videojuegos. Todas las bibliotecas y código fuente está bajo CLUF, es decir, que se trata de un EULA «End-User License Agreement».
Dicho en otras palabras, el EULA es un contrato entre el autor del software y el usuario final. Esto quiere decir que no son aplicaciones open source, sino que solo tenemos la capacidad de aceptar las condiciones de NVIDIA para usar las herramientas.
VisualFX incluye las siguientes soluciones de renderizado y efectos:
- Volumetric Ligthing. Implementa una dispersión de luz en el objeto físico a través de los shaders DirectX.
- VXAO (Voxel Accelerated Ambient Occlusion). Es una oclusión ambiental de altísima calidad que ofrece una calidad visual superior, una respuesta más suave cuando movemos la cámara y detalles mucho más finos y precisos en el espacio.
- HFTS (Hybrid Frustum Traced Shadows). Viene a ser un algoritmo de sombras avanzado que funciona con el impacto del Ray Tracing en los objetos. Con ello, se busca una mayor precisión de las sombras.
- FleX. Es una técnica basada en la simulación de partículas para efectos visuales en tiempo real.
- VXGI (Voxel Cone Tracing). Es un framework usado para implementar efectos de iluminación basados en vóxeles.
- HBAO+ (Enhanced Horizon Based Ambient Occlusion). Es una oclusión ambiental la cual utiliza un algoritmo para dotar de mayor eficiencia a las tarjetas gráficas compatibles con DirectX 11.
- TXXA (Temporal Anti-aliasing). Forma parte del directorio de NVIDIA PostWorks y es una técnica anti-aliasing diseñada para reducir el aliasing temporal, como se ve en las vallas o en el follaje de las hojas en movimiento.
- Soft Shadows. Mejora el PCSS (Percentaje Closer Soft Shadows para alcanzar niveles de calidad y rendimiento más altos con el objeto de renderizar sombras en cascada.
- Depth of Field. Es una librería que implementa la combinación de DOF basado en difusión y efecto bokeh.
- FaceWorks. Librería para implementar el sombreado de piel y ojos en alta calidad.
- WaveWorks. Simulación cinemática del océano para aplicaciones dinámicas.
- HairWorks. Habilita la simulación y renderizado del vello, pelo y cualquier fibra.
- GI Works (Global Illumination). Está relacionado con el VXGI y está enfocado a mejorar el realismo de una imagen renderizada.
- Flow. Es una herramienta utilizada para crear una simulación de humos, fluidos o texturas del mismo tipo.
- Blast. Innova un poco NVIDIA GameWorks, ya que reemplaza el módulo APEX Destruction. Se ha rediseñado con las miradas puestas en el rendimiento, flexibilidad y escalabilidad.
Physics
En este apartado de NVIDIA GameWorks se localizan todas las herramientas dirigidas a la creación de físicas: cuerpos, ropa, destrucción, fluidos, partículas, etc. NVIDIA define PhysX como una solución de las físicas de los videojuegos multiplataforma escalable dirigida a todo tipo de dispositivos: CPU, GPU, smartphones, etc.
Después, tenemos Clothing, una solución que brinda a los artistas crear personajes con prendas dinámicas con el objetivo de dotar al videojuego de una experiencia gaming más interactiva. Todo ello sin saber cómo usar el SDK PhysX al pie de la letra, por lo que es una aplicación muy inutitiva que sirve para Android, PlayStation, XBOX y PC.
Dentro de los videojuegos, las explosiones son un punto importante para determinar cómo de realista es la experiencia. De esta manera, NVIDIA ofrece Destruction, que ayuda a los artistas a generar destrucciones y explosiones súper realistas para mejorar la experiencia gaming.
Por último, tenemos a Particles & Fluides. Estas soluciones se han quedado obsoletas, y NVIDIA nos remite a FleX y Flow porque dichas bibliotecas otorgan una simulación más real y precisa para los mismos efectos visuales.
Core SDK
En su momento, ofrecimos una explicación de qué es un SDK y de qué está compuesto. De forma resumida, os diremos que es un conjunto o kit de herramientas ideadas para crear una aplicación. NVIDIA ofrece Core SDK, un apartado compuesto por estas herramientas:
- NVAPI, un SDK que permite acceder a las GPUs NVIDIA y drivers de las plataformas de Windows.
- GSA (GeForce Experience Settings API), una API que nos deja gestionar los parámetros in-game y exponerlos para su optimización vía NVIDIA GeForce Experience.
- NvGamepad, es una librería cross-platform para las implementaciones que requiere un mando para funcionar en Windows y Android (XINPUT y NDK).
- OpenAutomate, un nuevo estándar para simplificar todo el proceso de testeo y ejecución automatizada de las aplicaciones.
OptiX Ray Tracing Engine
Se trata de una aplicación framework para optimizar el rendimiento Ray Tracing en una tarjeta gráfica. Vendría a ser la vía para la aceleración de algoritmos Ray Tracing de forma simple, recursiva y flexible.
NVIDIA sabe que el trazado de rayos consume muchísimos recursos en las GPUs, por lo que ofrece una serie de herramientas para hacer esta tecnología viable.
Por ejemplo, tenemos el AI-Accelerated Denoiser, que viene a ser una característica de post-procesador nueva que reduce el ruido de las imágenes para liberar de carga de trabajo en el renderizado de las mismas. Para ello, hace uso de la IA, que ayuda a reducir el tiempo de renderizado de una imagen de alta calidad.
Sample Code
Todo lo relacionado con OpenGL; DirectX y Vulkan tiene su razón de ser en NVIDIA GameWorks a través del DLI (Deep Learning Institute). Básicamente, el DLI viene a ser un «instituto» para desarrolladores, científicos de datos, estudiantes e investigadores que quieren obtener una experiencia práctica en la nube.
Los profesionales del mundo IT pueden acceder a cursos de diseño y gestion de infraestructuras para dar soporte IA, HPC o ciencia de datos. Por tanto, podemos acceder a entrenamientos, cursos online, etc.
La formación del DLI está orientada para Windows, Android y otros S.O.
Herramientas
Este es uno de los apartados más potentes de NVIDIA GameWorks, en el cual encontramos herramientas para optimizar, perfilar y depurar aplicaciones de gráficos y computación.
- Nsight Compute.
- Nsight Graphics.
- Nsights Visaul Studio Edition.
- CUDA Profiler Tools Interface (CUPTI).
- PerfKit.
- Texture Tools para Photoshop.
NVIDIA ha querido dividir estas herramientas creando un apartado específico para Android. De esta forma quedaría así:
- CodeWorks, herramientas para instalar y desarrollar Android.
- Nsight Tegra, Visual Studio Edition, paara la eficiencia de Visual Studio en Android.
- Tegra System Profiler.
- NVIDIA PerfHUD ES.
- Tegra Graphics Debugger.
- Herramientas de textura para Photoshop.
VRWorks
Para terminar, encontramos VRWorks, una suite de APIs, sample codes, librerías y una serie de herramientas para desarrolladores de Realidad Virtual. Como es obvio, todo lo que encontramos aquí está pensado para crear entornos virtuales increíbles, ya se a través de videojuegos o aplicaciones.
Para ello, se centra en todo lo que nos rodea en el mundo real: objetos, visuales, sonido, interacciones físicas, entornos simulados; todo en realidad virtual. NVIDIA divide todo su directorio para desarrolladores y para fabricantes HMD (Head-Mounted Display), siendo los últimos aquellos que fabrican pantallas para las gafas de realidad virtual.
Igualmente, NVIDIA pone a disposición VRWorks Graphics SDK. En este sentido, los socios de NVIDIA son:
- Oculus (Samsung).
- Valve.
- Vive.
- Vrgineers.
- Pimax.
- Varjo.
Esperamos que os haya sido de ayuda esta información. Si tenéis alguna duda, podéis comentar abajo y os la aclararemos en breve.
Te recomendamos las mejores tarjetas gráficas del mercado
¿Qué repositorio os parece mejor? ¿GPUOpen o NVIDIA GameWorks? ¿Creéis qué está mejor organizado este?