본문 바로가기
Nvidia 뉴스

직접 및 간접 조명이란 무엇일까요?

by Nvidia 2022. 8. 15.

목차

    컴퓨터 그래픽에서 직접 조명과 간접 조명 사이의 적절한 균형은 장면의 사실감을 높입니다.

    직접 간접 조명
    직접 간접 조명

     

    여름날 호수로 하이킹을 한다고 상상해 보세요. 그늘진 나무 아래 앉아서 태양 아래 반짝이는 물을 바라보는 것입니다.

     

    이 장면에서 빛과 그림자의 차이는 직접 조명과 간접 조명의 예입니다.

     

    태양이 호수와 나무에 비춰 물이 반짝이는 것처럼 보이고 나뭇잎이 밝은 녹색으로 보입니다. 바로 조명입니다. 나무는 그림자를 드리우지만 햇빛은 여전히 ​​땅과 다른 나무에서 반사되어 주변의 그늘진 지역에 빛을 비춥니다. 간접조명입니다.

     

    컴퓨터 그래픽이 시청자를 사실적인 환경에 몰입시키려면 직접 조명과 간접 조명의 적절한 균형을 달성하기 위해 빛의 동작을 정확하게 시뮬레이션하는 것이 중요합니다.

     

    직접 및 간접 조명은 무엇일까요?

    물체에 비치는 빛을 직접 조명 이라고 합니다.

     

    광원에서 표면에 도달하는 빛의 색상과 양을 결정하지만 반사나 굴절과 같은 다른 광원에서 표면에 도달할 수 있는 모든 빛은 무시합니다. 직접 조명은 또한 표면 자체에 의해 흡수되고 반사되는 빛의 양을 결정합니다.

    태양고 하늘에서 직접 조명

     

    표면에서 반사되어 다른 물체를 비추는 빛을 간접 조명 이라고 합니다. 광원 을 제외한 모든 표면에 도달 합니다. 즉, 간접 조명은 표면에 도달하는 다른 모든 빛의 색상과 양을 결정합니다. 가장 일반적으로 간접광은 한 표면에서 다른 표면으로 반사됩니다.

     

    간접 조명은 일반적으로 직접 조명보다 계산하기가 더 어렵고 비용이 많이 드는 경향이 있습니다. 이는 발광체와 관찰자 사이에서 빛이 취할 수 있는 경로가 훨씬 더 많기 때문입니다.

     

    글로벌 일루미네이션이란 무엇일까요?

    전역 조명은 장면의 가시 표면에 있는 직접 및 간접 조명 의 색상과 양을 계산하는 프로세스입니다.

     

    모든 유형의 간접광을 정확하게 시뮬레이션하는 것은 매우 어렵습니다. 특히 장면에 유리, 물 및 반짝이는 금속과 같은 복잡한 재료가 포함되어 있거나 장면에 구름, 연기, 안개 또는 체적 매체로 알려진 기타 요소에 산란이 있는 경우에는 더욱 그렇습니다.

     

    결과적으로 전역 조명을 위한 실시간 그래픽 솔루션은 일반적으로 간접광의 하위 집합을 계산하는 것으로 제한됩니다. 일반적으로 확산(무광이라고도 함) 재질이 있는 표면의 경우입니다.

     

    직접 및 간접 조명은 어떻게 계산될까요?

    많은 알고리즘이 직접 조명을 계산하는 데 사용할 수 있으며 모두 장단점이 있습니다. 예를 들어 장면에 단일 조명이 있고 그림자가 없는 경우 직접 조명을 계산하기는 쉽지만 그다지 사실적으로 보이지는 않습니다. 반면에 장면에 여러 광원이 있는 경우 각 표면에 대해 모두 처리하는 데 비용이 많이 들 수 있습니다.

     

    이러한 문제를 해결하기 위해 지연 또는 클러스터된 음영 처리 와 같은 최적화된 알고리즘과 음영 처리 기술이 개발되었습니다 . 이러한 알고리즘은 계산할 표면 및 조명 상호 작용의 수를 줄입니다. 그림자는 그림자 맵, 스텐실 그림자 볼륨 및 광선 추적 을 포함한 여러 기술을 통해 추가할 수 있습니다 .

     

    섀도 매핑에는 두 단계가 있습니다. 먼저 장면은 빛의 관점에서 그림자 맵이라는 특수 텍스처로 렌더링됩니다. 그런 다음 섀도우 맵을 사용하여 화면에 보이는 표면이 조명의 관점에서도 볼 수 있는지 여부를 테스트합니다. 그림자 맵에는 많은 제한과 인공물이 있으며 장면의 조명 수가 증가함에 따라 빠르게 비용이 증가합니다.

     

    스텐실 섀도우 볼륨은 씬 지오메트리를 조명에서 멀리 돌출시키고 돌출된 지오메트리를 스텐실 버퍼로 렌더링하는 것을 기반으로 합니다. 그런 다음 스텐실 버퍼의 내용을 사용하여 화면의 주어진 표면이 그림자에 있는지 여부를 결정합니다. 스텐실 그림자는 부자연스럽게 항상 날카롭지만 일반적인 그림자 맵 문제를 겪지 않습니다.

     

    NVIDIA RTX 기술 이 도입되기 전까지 레이 트레이싱은 그림자를 계산할 때 사용하기에는 비용이 너무 많이 들었습니다. 광선 추적은 빛의 물리적 동작을 시뮬레이션하는 그래픽 렌더링 방법입니다. 화면의 표면에서 빛으로 광선을 추적하면 그림자를 계산할 수 있지만 빛이 한 지점에서 오는 경우 어려울 수 있습니다.

     

    그리고 장면에 많은 조명이 있는 경우 광선 추적된 그림자가 빠르게 비쌀 수 있습니다. 여러 조명에서 부드러운 그림자를 계산하는 데 필요한 광선 수를 줄이기 위해 보다 효율적인 샘플링 방법이 개발되었습니다. 한 가지 예는 대화형 프레임 속도로 레이 트레이싱을 사용하여 수백만 개의 조명과 그림자에서 직접 조명을 계산하는 ReSTIR 이라는 알고리즘 입니다.

     

    경로 추적이란 무엇입니까?

    간접 조명 및 전역 조명의 경우 더 많은 방법이 있습니다. 가장 간단한 방법은 경로 추적 이라고 하며 , 여기서 임의의 빛 경로는 가시적인 각 표면에 대해 시뮬레이션됩니다. 이러한 경로 중 일부는 조명에 도달하여 완성된 장면에 기여하지만 다른 경로는 그렇지 않습니다. 경로 추적은 재료 및 조명에 대한 수학적 모델의 정확도와 일치하여 장면의 조명을 완전히 나타내는 결과를 생성할 수 있는 가장 정확한 방법입니다. 경로 추적은 계산하는 데 비용이 많이 들 수 있지만 실시간 그래픽의 "성배"로 간주됩니다.