2019-04-27 11:05:29 +02:00
|
|
|
#version 460
|
2020-08-15 17:59:02 +02:00
|
|
|
#extension GL_EXT_ray_tracing : require
|
2019-04-27 11:05:29 +02:00
|
|
|
|
|
|
|
|
struct RayPayload {
|
|
|
|
|
vec3 color;
|
|
|
|
|
float distance;
|
|
|
|
|
vec3 normal;
|
|
|
|
|
float reflector;
|
|
|
|
|
};
|
|
|
|
|
|
2020-08-15 17:59:02 +02:00
|
|
|
layout(location = 0) rayPayloadInEXT RayPayload rayPayload;
|
2019-04-27 11:05:29 +02:00
|
|
|
|
|
|
|
|
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);
|
2020-08-15 17:59:02 +02:00
|
|
|
vec3 unitDir = normalize(gl_WorldRayDirectionEXT);
|
2019-04-27 11:05:29 +02:00
|
|
|
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;
|
|
|
|
|
}
|