oglc/shader/include/ray.glsl

40 lines
626 B
GLSL

struct Ray
{
vec3 origin;
vec3 direction;
vec3 energy;
float distance;
};
Ray createRay(vec3 origin, vec3 direction)
{
Ray ray;
ray.origin = origin;
ray.direction = direction;
ray.energy = vec3(1.0,1.0,1.0);
ray.distance = 0;
return ray;
}
struct RayHit
{
vec3 position;
float distance;
vec3 normal;
vec3 albedo;
int material;
};
RayHit createRayHit()
{
RayHit hit;
hit.position = vec3(0.0,0.0,0.0);
// TODO: this might not be defined
hit.distance = INF;
hit.normal = vec3(0.0,0.0,0.0);
hit.albedo = vec3(0.0,0.0,0.0);
return hit;
}