1 min read

물체 그림자 Shadow Ray 구현

그림자 구현 물체의 그림자 구현은 다음과 같다.

화면안으로 Ray를 발사하여 충돌점을 찾는데 총돌점을 찾게되면 빛의 방향을 향해 Ray를 발사하여 다른 물체가 있는지 없는지를 하나하나 확인해간다. 만약에 다른물체가 있으면 그부분은 그림자 영역이다

그림자 구현 순서

1 카메라 -> 물체 : 충돌점을 찾는다

const auto hit = FindClosestCollision(ray);
  1. 광원 방향으로 Shadow Ray 발사
const vec3 dirToLight = normalize(light.pos - hit.point);
Ray shadowRay = { hit.point + dirToLight * 1e-4f , dirToLight };
  1. 그림자 체크
if (FindClosestCollision(shadowRay).d < 0.0f) {
    // 광원이 보이는 위치
}