본문 바로가기
그래픽스ㆍDirectX

Ray Casting, Ray Tracing, Real-Time Ray Tracing

by imagineer_jinny 2022. 6. 6.

배경

 

- 렌더링 기술

렌더링을 위한 첫 번째 단계는 물체의 형상을 선구조로 생성해야하며, 완성된 기하학적 형상에 다음과 같은 알고리즘이 적용된다.

 

- 빛과 물체의 관계로부터 물체 표면의 밝기, 빛의 반사 및 굴절 효과 등을 처리하는 광선 추적법

- 빛의 성질로부터 물체의 광도를 계산하는 쉐이딩 알고리즘

- 빛과 물체의 관계에서 발생하는 그림자 생성 알고리즘

 

- 물리 기반 렌더링(Physically Based Rendering, PBR)

 

Local Illumination(지역 조명)

- 광원에서 빛이 방출되고, 표면에 충돌했을 때 관찰자에게 빛이 도달할 때까지 다른 빛의 영향을 받지 않는 것으로 가정

 

Global Illumination(전역 조명)

- 표면에서 반사되는 빛에 다른 물체에서의 반사, 굴절 따위를 반영한 빛을 고려함
- 빛이 표면과 부딪히는 순간, 반사, 굴절, 흡수, 자체 발광의 4가지 요소를 사용

- 최종적으로 렌더링된 이미지는 보다 사실적인(사진과 같은) 영상을 만들어내게 됨

 

 

Ray Casting

컴퓨터 그래픽스의 모델링 및 렌더링 기술 동향 - 한국 멀티미디어학회지 제 6권 제 3호 2002년 9월

 

인간이 물체를 볼 수 있는 것은 물체에서 반사된 빛을 감지함으로써 물체를 인식하지만,

물체에 반사된 빛이 관찰자의 눈으로까지 도달하는 경로를 모두 추적하는 것은 불가능하므로

레이 캐스팅은 단순히 관찰자로부터 광선이 출발한다고 하고, 결과적으로 이 빛의 진행 경로를 막고 있는 가장 가까운 물체를 찾는 것(역방향 추적)이다.

즉, 단순히 진행 방향에 대해서 교점을 가지고 있느냐, 그렇지 않느냐만 판별

 

이렇게 광선을 한번 던진 다음 물체와 교차점 검사만 수행하기 때문에, 실질적으로 이 광선이 다른 물체에 영향을 미치는 것은 아니다. 즉, 각 픽셀로부터 가장 가까운 물체에 이르는 단일 광선만 고려한다. 

 

레이 트레이싱은 한번 광선을 던진 이후에도 빛을 추적함.

표면에 빛이 닿았을 때 이 표면이 빛을 받는 것인지 그림자를 만드는 것인지만 결정하는 것이 아니라,

표면에 닿는 순간 반사, 굴절, 그림자 광선과 같은 추가적인 빛이 다시 생성된다고 가정한다. 

따라서 레이 캐스팅보다 현실에 더 가깝게 재현 가능

 

 

Ray Tracing

1968년 Appel에 의해 제안된 Ray Casting에 기반을 두고 있음

레이 트레이싱장면의 주변에서 반사되는 빛의 경로를 추적해 색 정보를 수집 · 저장하고, 최종 렌더링에서 각 픽셀의 색을 결정하는 방식

빛의 물리적 움직임을 모방하기 때문에 화면 밖 물체의 부드럽고 세밀한 그림자와 반사되는 빛 등, 래스터라이제이션보다 사실적인 결과물을 만들 수 있다.

래스터라이제이션은 장면의 물체를 뒤에서 앞으로 그린 뒤 변환 매트릭스를 통해 3D 물체를 2D 평면에 매핑하는 방식으로, 각 픽셀의 색은 색상과 텍스처 등의 정보를 장면의 빛과 결합해 결정된다. 레이 트레이싱보다 속도는 훨씬 빠르지만, 실제 반사, 반투명, 그림자 같은 반사광에 의존하는 효과는 표현할 수 없다.

레이트레이싱 과정

 

 

Ray casting vs Ray tracing

  Ray casting Ray tracing
특징  2차 레이를 재귀적으로 추적하지 않는 렌더링 알고리즘 2차 레이를 재귀적으로 추적
장점 - 화면의 모든 수직선에 대해 단일 계산만 필요하므로 다른 렌더링 알고리즘에 비해 사용이 간편 레이 캐스팅보다 현실에 더 가깝게 재현 가능 
단점 - 빛의 반사에 의하여 주변의 물체가 투영되는 광택 물체에 대해서는 처리하지 못함
- 레이 트레이싱과 비교할 때 레이 캐스팅으로 생성된 이미지는 현실적이지 않음
막대한 계산량이 필요



 

 

Real-Time Ray Tracing

 

레이 트레이싱은 사실적인 이미지를 렌더링하기 위해 오랫동안 영화, 텔레비전 및 시각화에서 사용되어 왔지만 각 이미지나 프레임을 렌더링하려면 강력한 컴퓨터와 시간이 필요했음

 

리얼 타임 레이 트레이싱은 최신 GPU의 방대한 계산 성능과 머신 러닝 기술을 활용하고, 여기에 레이 트레이싱이 필요하지 않을 때는 래스터라이제이션을 사용하는 방식으로 구현

 

What are the reasons for industry to choose Realtime Ray Tracing?

– Highly realistic images by default (매우 사실적 이미지)

– Physical correctness and dependability (물리적 정확성 및 신뢰성)

– Support for massive scenes (대규모 장면 지원)

– Integration of many different primitive types (다양한 프리미티브 타입 통합)

– Declarative scene description (선언적 장면 설정)

– Realtime global illumination (실시간 전역 조명)

 

 

 

 

 

참고

 

What is Ray Casting? - Definition from Techopedia

컴퓨터 그래픽스의 모델링 및 렌더링 기술 동향 - 류승택, 김성예, 윤경현 /한국멀티미디어학회지 제 6권 제 3호 2002년 9월  JAKO200211921429963.pdf (koreascience.or.kr)

Global Illumination : Ray Casting and Ray Tracing (tistory.com)

언리얼 엔진 '리얼타임 레이 트레이싱' – 진화 < 기고 < 오피니언 < 기사본문 - 테크월드뉴스 - 에픽게임즈 (epnc.co.kr)

1. What is ray tracing? | Rendering | Computer animation | Khan Academy - YouTube

2. Light reflection | Rendering | Computer animation | Khan Academy - YouTube

4. Rendering Mike Wazowski (video) | Khan Academy

https://math.hws.edu/graphicsbook/c8/s1.html

https://www.gamersnexus.net/guides/3279-real-time-ray-tracing-explained

https://cadgraphics.co.kr/newsview.php?pages=news&sub=news01&catecode=2&num=66474 

https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/RayTracing/

http://rtintro.realtimerendering.com/

a1-slusallek.pdf (utah.edu)

리얼타임 레이 트레이싱 시작하기 | 언리얼 엔진 알아보기 - YouTube

신기술 미리보기: 언리얼 엔진과 함께 하는 실시간 레이 트레이싱 (unrealengine.com)

댓글