in

Desafío: Trazado de rayos sin bordes – Descubrir – Desarrollador de Apple

Desafío: Trazado de rayos sin bordes - Descubrir - Desarrollador de Apple

Espejo, espejo en el… otro espejo. En este desafío, lo invitamos a explorar el renderizado sin bordes en Metal 3 y reflejar rayos en superficies reflejadas.

Gracias a las mejoras sin límites en Metal 3, la aplicación de muestra HybridRendering se ve mejor que nunca. Hace que todos los recursos de la escena estén disponibles para sus sombreadores usando Argument Buffers, luego usa el trazado de rayos metálicos para producir reflejos en superficies metálicas, como las que se muestran a continuación.

Desafío: Trazado de rayos sin bordes - Descubrir - Desarrollador de Apple

Pero a pesar de lo hermosa que la aplicación ha dibujado esta escena, todavía hay una limitación: no puede mostrar reflejos. dentro de reflejos, como el suelo espejado que refleja la esfera espejada.

Para ser justos: ¡es difícil mostrar espejos que reflejen espejos! La luz rebota infinitamente entre las dos superficies, creando una situación que no se puede resolver computacionalmente. Las aplicaciones de trazado de rayos solucionan este problema al agregar un número limitado de «rebotes» de luz (o rayos) en la escena para proporcionar más realismo.

En este desafío, lo invitamos a extender ese código de trazado de rayos y aumentar el realismo de su imagen agregando uno (o más) rebotes de rayos adicionales.

Empieza el reto

Antes de entrar en este salón de los espejos, recomendamos ver primero «Go bindless with Metal 3». Después de verlo, descargue el código de muestra «Representación de reflejos en tiempo real mediante el trazado de rayos»; lo usaremos para este desafío.

Desafío: Trazado de rayos sin bordes - Descubrir - Desarrollador de Apple

Ve sin ataduras con Metal 3

Aprenda cómo puede desatar poderosas técnicas de renderizado como el trazado de rayos cuando usa Metal 3 sin límites. Le mostraremos cómo hacer que el viaje sin límites de su aplicación sea un placer simplificando los búferes de argumentos, asignando estructuras de aceleración de montones y beneficiándose de las mejoras para la…

Representación de reflejos en tiempo real mediante trazado de rayos

La aplicación tiene un pase de cómputo dedicado que calcula los reflejos de un G-Buffer delgado que contiene posiciones y normales para cada píxel en la imagen.

El sombreador de trazado de rayos lee estos datos y los usa con la dirección de la vista de la cámara para calcular la dirección de los rayos reflejados. Luego usa Metal para rastrear estos rayos, encontrar intersecciones y sombrear reflejos.

raytracing::ray r;
r.origin = positions.read(tid).xyz;
r.direction = normalize(directions.read(tid).xyz);
r.min_distance = 0.1;
r.max_distance = FLT_MAX;

raytracing::intersector<raytracing::instancing, raytracing::triangle_data> inter;
inter.assume_geometry_type( raytracing::geometry_type::triangle );
auto intersection = inter.intersect( r, accelerationStructure, 0xFF );
if ( intersection.type == raytracing::intersection_type::triangle )
{
  
}

Esto produce la siguiente imagen:

Desafío: Trazado de rayos sin bordes - Descubrir - Desarrollador de Apple

¡Pero hay un problema! Los camiones de bomberos no aparecen en el reflejo de la esfera en el suelo. Te retamos a que reveles los camiones que faltan modificando el sombreador de trazado de rayos, rtReflectionpara agregar un paso de trazado de rayos adicional.

Para completar este desafío, deberás:

  1. Utilice la posición de intersección y normal reflejada para calcular el próximo rebote de los rayos.
  2. Extraiga la lógica de sombreado del material en una función auxiliar que le permita sombrear los reflejos dentro de los reflejos.
  3. Combine todos los colores reflejados y escríbalos en el outImage.

Cuando haya terminado, use la herramienta de captura de pantalla, GPU Debugger o QuickTime para capturar su solución y mostrarnos su trabajo publicándolo en Twitter con el hashtag #WWDC22Challenges. Y si desea hablar sobre el trazado de rayos sin límites y otros temas de gráficos y juegos, únase al equipo en los eventos durante el resto de la semana en WWDC22.

Explore #WWDC22Challenges en las redes sociales

Lee los términos y condiciones de los desafíos de la WWDC22



Fuente

Written by TecTop

Cómo usar la configuración de los modos de timbre en casa y fuera de casa

Cómo usar la configuración de los modos de timbre en casa y fuera de casa

Un fan art de Overlord nos presenta el lado más encantador de Albedo

Un fan art de Overlord nos presenta el lado más encantador de Albedo