빛이 좁은 틈새를 반복적으로 통과하며 회절 효과가 중첩되어 강하게 보이는 현상을 시뮬레이션합니다. cascade 그림자 분산을 기반으로 경계 영역에서만 ray 쿼드를 생성합니다.
Godray 효과의 적용 조건과 구현 방식에 대한 기본 전제를 정의합니다.
카메라 기준으로 후보 쿼드를 배치하고, cascade 그림자 분산값을 평가하여 경계부에서만 ray 쿼드를 생성합니다.
카메라가 바라보는 방향으로 godray 평가 후보 쿼드를 화면 공간에 분산하여 배치합니다. 이 쿼드들은 이후 단계에서 실제로 그릴지 여부를 판별하기 위한 후보입니다.
Screen Space Camera-Facing각 후보 쿼드 위에서 랜덤한 몇 개의 지점을 선택합니다. 선택된 지점들에서 cascade 그림자 맵을 샘플링하여 버퍼값을 수집합니다.
Cascade Shadow Map Random Sampling수집된 그림자 버퍼값들을 비교하여 분산(variance)을 계산합니다. 분산값은 해당 쿼드 영역이 그림자 경계부에 걸쳐 있는지를 판단하는 핵심 지표입니다.
계산된 분산값에 따라 ray 쿼드 생성 여부를 결정합니다.
분산이 높은 후보 쿼드 위치에서 광원 방향으로 뻗는 ray 쿼드를 생성합니다.
쿼드의 방향은 현재 주광(Directional)의 방향 벡터를 기반으로 산출합니다.
생성된 ray 쿼드에 additive 블렌딩을 적용하여 렌더합니다. 여러 ray 쿼드가 중첩될수록 빛이 밝게 누적되어 자연스러운 회절 중첩 효과가 나타납니다.
SrcBlend = One, DstBlend = One