Added VK_NV_ray_tracing reflections example

This commit is contained in:
Sascha Willems 2019-04-27 11:05:29 +02:00
parent e140095002
commit 8fdabb0019
7 changed files with 918 additions and 0 deletions

View file

@ -0,0 +1,25 @@
#version 460
#extension GL_NV_ray_tracing : require
struct RayPayload {
vec3 color;
float distance;
vec3 normal;
float reflector;
};
layout(location = 0) rayPayloadInNV RayPayload rayPayload;
void main()
{
// View-independent background gradient to simulate a basic sky background
const vec3 gradientStart = vec3(0.5, 0.6, 1.0);
const vec3 gradientEnd = vec3(1.0);
vec3 unitDir = normalize(gl_WorldRayDirectionNV);
float t = 0.5 * (unitDir.y + 1.0);
rayPayload.color = (1.0-t) * gradientStart + t * gradientEnd;
rayPayload.distance = -1.0f;
rayPayload.normal = vec3(0.0f);
rayPayload.reflector = 0.0f;
}