ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RayTracing의 기본적인 개념과 단계
    쓰리디 2023. 7. 18. 23:00
    반응형

    RayTracing이란, Ray, 광선추적하는 알고리즘을 뜻합니다.
    그렇다면 CG에서의 RayTracing이란 어떤 것을 의미할까요?

    RayTracing이란?

    Ray tracing은 CG에서 사용되는 현실적인 Light과 Shadow 등의 Look생성하기 위한 기술입니다.
    Scene의 Object와 빛이 상호 작용할 때 각 Ray의 경로를 따라 Material 등등의 Scene과 상호 작용하는 방식계산하는 기술입니다.

     

    RayTracing의 원리

    첫번째, Ray의 역추적

    CG에서 RayTracing를 이해하기 위하여 기본적인 Ray의 작동방식 이해가 필요합니다.

     

     

    Ray란? (Feat.가상세계 모방의 근원)

    Ray는 광선이라는 의미입니다.CG에서 이 Ray를 이해한다면 여러 가지 물리적 현상들을 이해할 수 있겠죠?조금 더 자세하게 떠들어 보겠습니다!Ray는 광선이 레이CG에서도 Ray는 실제로의 광선 또는

    sogi3d.tistory.com

     

    Ray를 따라 물체와 상호 작용하는 방식을 역추적하여, 시각적으로 현실적인 이미지를 만들어냅니다.

    Ray와 역방향으로 추적하는 RayTracing

    가상 환경 내에서 빛의 복잡한 동작을 시뮬레이션하기 위해 Ray의 속성을 최대한 활용합니다.

    RayTracing의 핵심 원리는 Ray의 역추적입니다.

     

    두 번째, 역추적된 Ray들끼리의 상호작용

    가상 카메라에서 픽셀을 거쳐 장면으로 들어가는 각 광선의 경로를 역추적하고,

    RayTracing은 Light가 Object, Material 및 Scene과 상호 작용하는 방식을 계산하여 높은 퀄리티의 이미지를 생성합니다.

    Object끼리도 상호작용하는 RT

    카메라에서 빛이 발사되어 3D 공간을 향해 직진하면서 물체와 충돌하면, 그 충돌 지점에서 다시 광선을 발사하여 다른 물체에서 충돌하면 이 과정을 반복하는 것입니다.
    RayTracing의 마지막 핵심은 Ray가 카메라 위치에서 화면의  픽셀 통해 이동하고 장면의 Object와 상호 작용  Ray의 동작을 시뮬레이션하는 것입니다.

     

    이러한 RayTracing는 Ray의 동작을 역추적하여 Object와의 상호작용계산하고, Reflection(반사), Refraction(굴절), Shadow 및 GI을 포함하여 사실적인 Light 및 Shader를 생성할 수 있습니다.

     

    RayTracing의 단계

    그렇다면 RayTracing은 어떤 추적의 단계인지를 세부적으로 알아볼게요.

     

    Ray의 발사

    화면의 각 Pixel에서 Ray발사합니다. 이 광선은 카메라 위치에서 시작되며, 해당 픽셀에 해당하는 위치로 향합니다.

     

    Ray와 Object의 교차 확인

    발사된 Ray가 장면 내의 object와 교차하는지 확인합니다. 이를 위해 광선과 물체의 교차점을 찾는 알고리즘을 사용합니다.

     

    Lighting 계산

    Object와의 교차점을 찾았다면, 해당 지점에서의 Lightg계산 수행합니다. 이 과정에서 Object의 Material과 Ray의 위치, Light의 반사, 굴절 등을 고려하여 Ray의 색상을 결정합니다.

     

    Shadow 계산

    Ray가 교차한 지점이 다른 물체에 가려져 그림자가 생기는지 여부계산합니다. 이를 통해 그림자 효과를 시뮬레이션합니다.

     

    반사와 굴절 계산

    광선이 물체에서 반사되거나 굴절되는 경우, 추가적인 RayRender Settings에서의 Ray의 생성개수에 맞게 생성하여 이러한 반사 및 굴절 효과를 계산합니다. 이러한 계산은 재귀적으로 수행하고, Ray가 반사되거나 굴절될 때마다 이전 윗 단계의 과정을 또 다시 이행합니다.

     

    화면 색상 출력

    Ray가 더 이상 교차하지 않거나 최대 반사 횟수에 도달하면, 최종적으로 화면에 색상을 출력합니다. 이를 통해 현실적인 Lighting과 Shadow가 있는 Render를 뽑아냅니다.

     

    RayTracing은 많은 시간을 요구하기에 과거에는 실시간 렌더링에는 적합하지 않았지만, 최근의 그래픽 카드 및 컴퓨터의 기술 발전으로 실시간으로 렌더링할 수 있는 수준까지 발전하였습니다. 이를 통해 RayTracin은 현재 게임, 영화, 광고 등 다양한 분야에서 활용되고 있습니다.

    이런 RayTracing(RT)을 거쳐 Obect, Light들이 상호작용하여 AO, Light 등등의 Pass들, 즉 RTX를 생성할 수 있겠습니다.

    (추후 RTX도 포스팅 예정입니다.)

     

    마무리

    RayTracing(레이트레이싱)은 CG에서 실제와 같은 조명 및 그림자 효과를 생성할 수 있는 혁신적인 알고리즘입니다.
    Ray의 오브젝트 교차, 조명 계산, 그림자 시뮬레이션 등등의 상호작용역추적 계산을 통해 실제와 매우 유사한 높은 렌더결과를 낼 수 있습니다.
    현재 기술의 발전으로 RayTracing으로 실시간 렌더가 현실화되어 게임, 시뮬레이션 등 다양한 영역에서 사실적인 시각 효과 구현이 가능해졌습니다.

     
    남만 알고 있는 쓰리디에 대한 정보를
    속이 쓰리지 않게,
    소기쓰리디

     

     

     

    반응형