마스킹으로 수행 할 수 있습니다. 여러 가지 방법이 있습니다.
한 가지 방법은 그림자 버전의 전경 요소를 렌더링하는 방법을 사용하는 것입니다. 배경을 그립니다. 그런 다음 검은 색만 출력하는 방식으로 조명 이동 방법에 따라 약간 오프셋 된 전경 요소를 그립니다. 그런 다음 전경을 정상적으로 그립니다.
또 다른 방법은 전경을 버퍼로 렌더링하는 것입니다. 실제로 보는 것보다 조금 더 많습니다. 그런 다음 "검은 색으로"패스를하고 블러 패스를 수행하십시오. 이제이 패스 세트의 출력을 렌더링 한 다음 포 그라운드 버퍼의 보이는 섹션을 렌더링하십시오.
다른 각도에서 여러 조명을 지원하려면 이전 단계를 여러 번 수행하거나 단일 버퍼에 모두 누적하면됩니다. 수학은 달성하려는 내용에 따라 달라 지지만 첫 번째 비디오에서 진행되는 작업에 대한 첫 번째 추측은 카메라의 위치 (가시 영역의 중심)와 빛의 위치를 취하는 것입니다. 그런 다음 해당 벡터 (크기 조정)를 사용하여 그림자를 오프셋하는 방법을 결정하십시오. 다음과 같은 것 :
draw background
for each light intersecting viewing bounds:
offset = light.position - camera.position
offset *= SCALE FACTOR (0.25 maybe)
draw shadow foreground at offset
draw foreground
장면에 "가까운"조명의 배율은 더 작습니다. 여러 깊이를 원한다면 간단한 기하학적 요소로 계산할 수학이 있습니다.