레이트레이스(그래픽)
Ray tracing (graphics)3D 컴퓨터 그래픽스에서 레이 트레이스는 디지털 이미지를 생성하기 위한 다양한 렌더링 알고리즘에 사용되는 광전송을 모델링하는 기술입니다.
계산 비용 및 시각적 충실도의 스펙트럼에서 광선 주조, 재귀 광선 추적, 분포 광선 추적, 광자 매핑 및 경로 추적과 같은 광선 추적 기반 렌더링 기술은 일반적으로 스캔라인 렌더링 [1]방법보다 느리고 충실도가 높습니다.따라서, 레이 트레이스는 정지된 컴퓨터 생성 이미지나 필름 및 텔레비전 시각 효과(VFX)와 같이 렌더링에 비교적 오랜 시간이 걸릴 수 있는 애플리케이션에 처음 도입되었지만,[2] 각 프레임을 렌더링하는 데 속도가 중요한 비디오 게임과 같은 실시간 애플리케이션에는 적합하지 않았습니다.
그러나 2018년부터 실시간 레이트레이싱을 위한 하드웨어 가속이 새로운 상용 그래픽 카드에 표준이 되었고 그래픽 API도 이에 따라 개발자들이 게임 및 기타 실시간 애플리케이션에서 하이브리드 레이트레이싱 및 래스터라이제이션 기반 렌더링을 사용할 수 있게 되었습니다.
광선 추적은 반사, 굴절, 부드러운 그림자, 산란, 전계 깊이, 모션 블러, 가성, 주변 폐색 및 분산 현상(색수차 등)과 같은 다양한 [3]광학 효과를 시뮬레이션할 수 있습니다.또한 광파와 유사한 방식으로 음파의 경로를 추적하는 데 사용할 수 있으므로 사실적인 잔향과 [4]반향을 렌더링하여 비디오 게임에서 보다 몰입적인 사운드 설계를 위한 실행 가능한 옵션이 됩니다.사실, 거의 선형 운동을 하는 모든 물리적 파동 또는 입자 현상은 광선 추적을 통해 시뮬레이션할 수 있습니다.
도메인상의 샘플링 빛을 포함한 레이트레이스 베이스의 렌더링 기술은, 대량의 레이스를 트레이스 하거나 노이즈 제거 기술을 사용해 해결할 수 있는 이미지 노이즈 아티팩트를 생성합니다.
역사
광선 추적의 개념은 16세기 초에 알브레히트 뒤러에 의해 설명되었는데, 그는 이 발명의 [5]공로를 인정받았다.그는 '측량에 관한 네 권의 책'에서 스타일러스 끝에 부착된 실을 이용해 뒤러의 문이라고 불리는 기구를 묘사했다. 이 장치는 보조자가 물체의 윤곽을 따라 움직여서 그린다.실이 문틀을 통과하여 벽의 갈고리를 통과합니다.나사산은 광선을 형성하고 후크는 투사 중심 역할을 하며 광선 [6][7]추적에서 카메라 위치에 해당합니다.
음영 처리된 사진을 생성하기 위해 광선 추적용 컴퓨터를 사용하는 것은 1968년에 [8]Arthur Appel에 의해 처음 이루어졌다.Appel은 1차 가시성을 위해 광선 추적(각 이미지 포인트에서 카메라와 가장 가까운 표면 결정)을 사용하고 음영 처리 중인 각 포인트에서 광원으로 2차 광선을 추적하여 해당 포인트가 음영 처리되었는지 여부를 판단했습니다.
이후 1971년 MAGI(Mathematical Applications Group, Inc.)[9]의 Goldstein과 Nagel은 "3-D Visual Simulation"을 발표했는데, 이 "3D Visual Simulation"에서는 사진 과정을 반대로 시뮬레이션하여 고체의 음영 사진을 만듭니다.그들은 화면에 있는 각 화소(픽셀)를 통해 광선을 장면에 투사하여 보이는 표면을 식별한다.광선과 교차하는 첫 번째 표면은 눈에 보이는 표면이었다.이 비재귀 광선 추적 기반 렌더링 알고리즘을 오늘날 "레이 캐스팅"이라고 합니다.발견된 광선 표면 교차점에서 그들은 표면 법선을 계산했고 광원의 위치를 알고 화면 상의 픽셀 밝기를 계산했다.그들의 출판물은 "메릴랜드 대학의 16mm 카메라가 장착된 디스플레이 하드웨어를 사용하여 만든 30초짜리 단편 영화를 묘사하고 있다.그 영화는 헬리콥터와 간단한 지상고 총기 배치를 보여주었다.이 헬기는 회전, 이륙, 착륙 등 일련의 훈련을 거쳐 격추되고 추락하도록 설계됐다.CDC 6600 컴퓨터가 사용되었습니다.MAGI는 1974년에 [10]MAGI/SynthaVision Sampler라는 애니메이션 비디오를 제작했다.
레이 캐스팅의 또 다른 초기 사례는 1976년에 스캇 로스가 캘리포니아 공대에서 밥 스프룰의 컴퓨터 그래픽 코스에서 플립북 애니메이션을 만들었을 때였다.스캔한 페이지는 오른쪽에 비디오로 표시됩니다.Roth의 컴퓨터 프로그램은 광선이 이웃의 것과 다른 경계면과 교차하는 경우 픽셀 위치의 가장자리 점을 주목했다.물론, 광선은 우주에서 여러 평면을 교차할 수 있지만, 카메라와 가장 가까운 표면 점만 보이는 것으로 기록되었다.시분할형 DEC PDP-10의 처리능력이 실용적이었기 때문에 가장자리가 들쭉날쭉합니다.터미널은 텍스트 및 그래픽용 Tektronix 스토리지 튜브 디스플레이였습니다.모니터에 부착된 프린터는 감열지 위에 디스플레이 이미지를 만듭니다.Roth는 이 프레임워크를 확장하고 컴퓨터 그래픽과 솔리드 모델링의 맥락에서 레이 캐스팅이라는 용어를 도입했으며, 이후 GM [11]연구소에서 일하는 동안 그의 작품을 출판했습니다.
Turner Whitted는 반사경 및 반투명 물체를 통한 굴절에 대한 재귀 광선 추적을 고체의 굴절률에 의해 결정된 각도로 보여주고 안티에이리어싱을 [12]위해 광선 추적을 사용한 최초의 사례입니다.휘트에는 광선의 그림자도 보였다.그는 벨 연구소에서 엔지니어로 일하던 1979년에 "The Completat Angler[13]"라는 재귀 광선 추적 영화를 제작했다.Whitted의 깊이 재귀적인 광선 추적 알고리즘은 주로 표면 가시성 결정의 문제에서 광수송의 문제로 렌더링을 재구성했습니다.그의 논문은 분산 광선 추적과 마지막으로 편향되지 않은 경로 추적을 포함한 다른 사람들의 일련의 후속 작업에 영감을 주었습니다. 이것은 컴퓨터가 생성한 이미지가 현실에 충실할 수 있도록 하는 렌더링 방정식 프레임워크를 제공합니다.
수십 년 동안, 컴퓨터 생성 이미지를 사용한 주요 영화에서의 전지구적 조명은 추가 조명과 함께 위조되었다.레이 트레이스 베이스의 렌더링은, 물리 베이스의 라이트 트랜스포트를 가능하게 해, 최종적으로 이 점을 변화시켰습니다.경로 추적을 사용하여 렌더링된 초기 장편 영화로는 몬스터 하우스(2006), 미트볼이 있는 흐림(2009),[14] 몬스터 대학교(2013)[15] 등이 있다.
알고리즘의 개요
광선 트레이싱은 3D 컴퓨터 그래픽 환경에서 생성된 시각적 이미지를 생성하는 방법을 말하며, 레이 캐스팅 또는 스캔라인 렌더링 기술보다 더 광현실주의적입니다.가상 화면의 각 픽셀을 통해 가상 눈에서 경로를 추적하고 이를 통해 보이는 물체의 색상을 계산하는 방식으로 작동합니다.
레이트레이스의 씬(scene)은 프로그래머 또는 비주얼 아티스트(일반적으로 중간 도구를 사용하여)에 의해 수학적으로 기술됩니다.씬(scene)은 디지털 사진 등의 방법으로 캡처한 이미지 및 모델의 데이터를 포함할 수도 있습니다.
일반적으로 각 광선은 장면에 있는 모든 객체의 일부 부분 집합과 교차하도록 테스트해야 합니다.가장 가까운 물체가 식별되면 알고리즘은 교차점에서 들어오는 빛을 추정하고 물체의 재료 특성을 검사한 다음 이 정보를 결합하여 픽셀의 최종 색상을 계산합니다.특정 조명 알고리즘 및 반사 또는 반투명 재료는 현장에 더 많은 광선을 재투명해야 할 수 있습니다.
처음에는 (실제 빛이 그렇듯이) 카메라에서 멀리 떨어진 곳으로 광선을 보내는 것이 직관에 어긋나거나 "뒤로" 보일 수 있지만, 그렇게 하는 것이 훨씬 더 효율적입니다.주어진 광원에서 나오는 광선의 압도적 다수가 시청자의 눈에 직접 들어오지 않기 때문에, "전방" 시뮬레이션은 기록되지 않은 광로에서 엄청난 양의 계산을 낭비할 수 있다.
따라서 레이트레이싱에서는 특정 레이가 뷰 프레임과 교차하는 것을 전제로 합니다.최대 반사수 또는 교차하지 않고 일정 거리를 이동하는 광선 중 하나가 지나면 광선의 이동이 중지되고 화소 값이 갱신된다.
직사각형 뷰포트에 대한 광선 계산
입력 시 다음과 같이 처리됩니다(계산에서는 벡터 정규화와 교차곱을 사용합니다).
- 3(\ \ {R 아이 위치
- 3{ T \ \ { {3} 목표 위치
- [0 , {\ ]{[0 ,\pi ]}의 시야 - 인간의 / rad = \\ / rad } = 90 ^{ \ }}로 가정할 수 있습니다.
- , \ m \뷰포트 수직 및 수평 방향의 정사각형 픽셀 수
- , N , i k 1 j m \ i , \ \{ N } , \ i \ k \ 1 \ j \ m의 실제 픽셀 수
- R \ \ {R^{3}} 수직 벡터. v [ ,1, 0] (에 표시되지 않음) [, (C축 주위의 포트 회전점을 확인하는 롤 성분)
아이디어는 각 뷰포트 픽셀 중심 j의 위치를 찾는 것입니다. 이 픽셀을 통해 E E에서 오는 선을 찾고 마지막으로 E E 과 R j - { {로 설명된 광선을 얻을 수 있습니다.}=또는 먼저 왼쪽 아래 뷰포트 의 좌표를 찾고 뷰포트에 평행한 방향을 따라 이동해 다음 픽셀을 찾아야 합니다(}) v에 픽셀 크기를 곱한 값).l. 아래에서는 눈과 뷰포트 사이의 dd를 포함한 공식을 소개합니다.그러나 이 값은 광선 r ( 동안 감소합니다(따라서 d (\을 수락하고 계산에서 제거하는 것이 좋습니다).
사전 계산: 뷰포트와 평행한 t {\{\{및 b , 을 (를) 찾아 정규화합니다(위 그림에 모두 표시됨).
뷰포트 C + {\ C 다음으로 뷰포트 를 h (\y})로 나눈 값(역 m- - {을 포함)을 계산합니다
그런 다음 뷰포트( , { , {\ ) 및 왼쪽 하단 픽셀 에 평행한 방향에 따라 의 qx, q y {displaystyle},})를 계산합니다.
계산: j + { 및 R j { ij}}이므로
위의 공식은 이 Javascript 프로젝트에서 테스트되었습니다(브라우저에서 작동합니다).
광선 추적 컴퓨터 알고리즘 및 그 기원에 대한 자세한 설명
(간소화된) 자연에서 일어나는 일
자연에서, 광원은 결국 그 진행을 방해하는 표면에 광선을 방출한다.사람들은 이 "선"을 같은 경로를 따라 이동하는 광자의 흐름이라고 생각할 수 있다.완벽한 진공상태에서 이 광선은 (상대론적 효과를 무시한) 직선이 될 것이다.이 광선에서는 흡수, 반사, 굴절, 형광의 네 가지 조합이 일어날 수 있다.표면이 광선의 일부를 흡수하여 반사광 및/또는 굴절광의 강도를 잃을 수 있다.또한 광선의 전체 또는 일부를 한 방향 또는 여러 방향으로 반사할 수도 있습니다.표면이 투명 또는 반투명 특성을 가지고 있는 경우, 빛의 일부를 다른 방향으로 굴절시키면서 스펙트럼의 일부(또는 전체)를 흡수합니다(그리고 색을 변경할 수도 있습니다).표면은 빛의 일부를 흡수하여 랜덤한 방향으로 긴 파장 색상으로 형광을 다시 방출하는 경우가 드물지만 대부분의 렌더링 응용 프로그램에서는 이를 무시할 수 있습니다.흡수, 반사, 굴절 및 형광 사이에서는 들어오는 모든 빛을 고려해야 하며 그 이상은 설명해서는 안 된다.예를 들어 표면은 입사 광선의 66%를 반사할 수 없으며 50%를 굴절시킬 수 없습니다. 왜냐하면 두 개의 합계가 116%가 되기 때문입니다.여기서부터 반사광 및/또는 굴절광은 흡수, 굴절, 반사 및 형광 특성이 다시 입사광의 진행에 영향을 미치는 다른 표면에 부딪힐 수 있다.이 광선들 중 일부는 우리의 눈에 닿는 방향으로 이동하며, 우리가 그 광경을 보게 하고, 따라서 최종 렌더링된 이미지에 기여하게 됩니다.
레이캐스팅 알고리즘
재귀 광선 추적의 전신인 레이캐스팅의 아이디어는 눈에서 나오는 광선을 픽셀당 하나씩 추적하여 광선의 경로를 차단하는 가장 가까운 물체를 찾는 것입니다.이미지를 스크린도어라고 생각하고, 화면내의 각 사각형은 픽셀이라고 합니다.그리고 이것은 눈이 그 픽셀을 통해 보는 물체입니다.이 알고리즘은 장면에서 재료 특성과 조명의 효과를 사용하여 이 객체의 음영을 결정할 수 있습니다.단순화된 가정은 표면이 빛을 향하면 빛이 해당 표면에 도달하고 차단되거나 그늘에 가려지지 않는다는 것이다.표면의 음영은 기존의 3D 컴퓨터 그래픽 음영 모델을 사용하여 계산됩니다.구형 스캔라인 알고리즘에 비해 제공되는 레이 캐스팅의 중요한 이점 중 하나는 원추체 및 구와 같은 평면적이지 않은 표면과 고체를 쉽게 처리할 수 있다는 것입니다.수학적 표면이 광선으로 교차할 수 있는 경우 광선 주조를 사용하여 렌더링할 수 있습니다.솔리드 모델링 기술을 사용하여 정교한 객체를 만들고 쉽게 렌더링할 수 있습니다.
볼륨 레이 캐스팅 알고리즘
본 발명의 볼륨레이 주조방법은 각 광선을 추적하여 광선을 따라 색상 및/또는 밀도를 샘플링한 후 최종 화소색으로 조합한다.구름 또는 3D 의료 스캔을 렌더링할 때처럼 명시적 표면(예: 삼각형)으로 객체를 쉽게 나타낼 수 없는 경우에 자주 사용됩니다.
SDF 레이 마칭 알고리즘
SDF 광선 행군 또는 구면 [16]트레이스에서는, 각 광선을 복수의 스텝으로 트레이스 해, 광선과 부호 거리 함수(SDF)에 의해서 정의되는 표면과의 사이의 교차점에 근사한다.SDF는 표면의 어떤 부분도 놓치지 않고 가능한 한 큰 단계를 수행할 수 있도록 각 반복에 대해 평가됩니다.임계값은 지표면에 충분히 가까운 점에 도달했을 때 추가 반복을 취소하는 데 사용됩니다.이 방법은 3D 프랙탈 [17]렌더링에 자주 사용됩니다.
재귀 광선 추적 알고리즘

이전의 알고리즘은 눈에 있는 광선이 물체에 닿을 때까지 광선을 추적했지만, 더 많은 광선을 재귀적으로 추적하지 않고 광선의 색을 결정했어요.재귀 광선 추적이 프로세스를 계속합니다.광선이 표면에 닿으면 반사, 굴절 및 그림자로 인해 추가 광선이 방출될 수 있습니다.[18]
- 반사선은 미러 반사 방향으로 추적된다.이 물체가 교차하는 가장 가까운 물체는 반사 속에서 볼 수 있는 물체입니다.
- 투명한 재료를 통과하는 굴절선은 비슷하게 작용하며, 굴절선은 재료에 들어오거나 나올 수 있습니다.터너 휘트는 [19]굴절 효과를 포함하도록 투명한 고체를 통과하는 광선의 수학적 논리를 확장했습니다.
- 그림자 광선은 각 빛을 향해 추적됩니다.표면과 빛 사이에 불투명한 물체가 발견되면 표면이 그림자에 가려져 빛이 비추지 않습니다.
이러한 재귀적인 광선은 광선 추적 이미지에 보다 사실감을 더합니다.
다른 렌더링 방법보다 장점
레이트레이스 기반 렌더링은 래스터라이제이션과 같이 지오메트리의 사실적인 시뮬레이션에 초점을 맞춘 다른 렌더링 방법과 비교하여 광전송의 사실적인 시뮬레이션에 기반을 둔 것이 인기입니다.다른 알고리즘을 사용하여 시뮬레이션하기 어려운 반사 및 그림자 등의 효과는 광선 추적 알고리즘의 자연스러운 결과입니다.각 광선의 계산 독립성으로 인해 광선 추적은 기본적인 병렬화 [20]수준에 적합하지만 광선 경로의 분산으로 인해 병렬화 하에서의 높은 활용도를 실제로 [21]달성하기가 매우 어렵다.
단점들
레이트레이스의 심각한 단점은 퍼포먼스입니다(단, 이론적으로는 화면상의 픽셀 수에 따라서는 기존의 스캔라인 렌더링보다 빠를 수 있습니다).2010년대 후반까지, 실시간 광선 추적은 보통 중요하지 않은 작업에 대해 소비자 하드웨어에서 불가능한 것으로 간주되었다.스캔라인 알고리즘 및 기타 알고리즘은 데이터 일관성을 사용하여 픽셀 간의 계산을 공유하지만, 광선 추적은 일반적으로 각 아이레이를 개별적으로 처리하면서 프로세스를 새로 시작합니다.그러나 이 분리는 공간 안티에이리어싱을 수행하고 필요한 경우 이미지 품질을 향상시키는 데 필요한 만큼 더 많은 광선을 촬영할 수 있는 등 다른 이점을 제공합니다.
상호반사 및 굴절과 같은 광학 효과를 정확하게 처리하지만 기존의 광선 트레이스 또한 반드시 사실적인 것은 아닙니다.진정한 포토리얼리즘은 렌더링 방정식이 근접하거나 완전히 구현될 때 발생합니다.렌더링 방정식을 구현하면 빛 흐름의 모든 물리적 효과를 설명하는 등식이 진정한 광리알리즘을 제공합니다.그러나 일반적으로 필요한 컴퓨팅 리소스를 고려하면 이 작업은 불가능합니다.
모든 렌더링 방법의 사실성은 방정식의 근사치로 평가할 수 있습니다.레이 트레이스는 Whited의 알고리즘에 한정되어 있는 경우, 반드시 가장 현실적인 것은 아닙니다.광선을 추적하지만 추가 기술(광자 매핑, 경로 추적)을 포함하는 방법은 실제 조명의 훨씬 더 정확한 시뮬레이션을 제공합니다.
광선에 의한 장면 횡단의 역방향
이미지를 그리기 위해 눈에서 광원으로 광선을 쏘는 과정은 광자가 실제로 이동하는 반대 방향이기 때문에 역방향 광선 추적이라고 불리기도 합니다.그러나 이 용어에는 혼동이 있습니다.초기 광선 추적은 항상 눈에서 이루어졌고 제임스 아르보 같은 초기 연구자들은 역광 추적이라는 용어를 빛에서 광선을 쏘고 그 결과를 수집하는 것을 의미하기 위해 사용했습니다.따라서 눈 기반과 광 기반 광선 추적을 구별하는 것이 더 명확합니다.
직접 조명은 일반적으로 눈 기반 광선 추적을 사용하여 가장 잘 샘플링되지만, 특정 간접 효과는 빛에서 발생하는 광선의 혜택을 받을 수 있다.가성(austics)은 넓은 반사 영역의 빛이 (근접) 확산 표면의 좁은 영역에 집중되면서 발생하는 밝은 패턴입니다.빛에서 반사되는 물체에 직접 광선을 투사하여 눈으로 향하는 경로를 추적하는 알고리즘이 이 현상을 더 잘 샘플링할 수 있을 것입니다.눈 기반과 빛 기반 광선의 통합은 종종 쌍방향 경로 추적으로 표현된다. 이 경로 추적에서는 눈과 빛 모두에서 경로가 추적되고 일정 길이 [22][23]후 연결 광선에 의해 이후에 결합된다.
광자 매핑은 광원 및 눈 기반 광선 추적을 모두 사용하는 또 다른 방법이다. 초기 패스에서 에너지 광자를 광원의 광선을 따라 추적하여 3차원 공간의 함수로서 복사 플럭스의 추정치를 계산한다(이른바 광자 맵 자체).그 후, 가시 표면을 결정하기 위해서, 광선을 눈으로부터 장면에 트레이스 해, 가시 [24][25]표면점에서의 조도를 추정하기 위해서 광자 맵을 이용한다.광자 매핑 대 양방향 경로 추적의 장점은 통계적 편향을 희생하면서 광자의 상당한 재사용을 달성하고 연산을 줄일 수 있다는 것이다.
광원을 비추기 위해 빛이 매우 좁은 개구부를 통과해야 하는 경우(문이 약간 열려 밝은 방으로 이어지는 어두운 방을 고려), 또는 대부분의 지점이 광원에 대한 직접적인 가시선이 없는 경우(천장 방향 조명 기구 또는 토치어 등) 추가적인 문제가 발생합니다.이러한 경우, 극히 일부 경로만 에너지를 운반한다. 메트로폴리스 광수송은 경로 공간을 무작위로 탐색하는 방법이며, 에너지 경로가 발견되면 근처의 [26]광선 공간을 탐색하여 이 정보를 재사용한다.

오른쪽은 상기 알고리즘을 사용하여 카메라(또는 눈)에서 광원으로 재귀적으로 발생하는 광선의 경로의 간단한 예를 보여 주는 이미지입니다.확산된 표면은 빛을 모든 방향으로 반사한다.
우선, 접점에 광선을 만들어, 픽셀을 통과해 광선이 확산면에 닿는 장면으로 트레이스 한다.이 표면에서 알고리즘은 반사선을 재귀적으로 발생시켜 장면을 추적하고 다른 확산 표면에 부딪힙니다.마지막으로 다른 반사광이 생성되어 광원에 닿아 흡수되는 장면을 추적한다.이제 픽셀의 색상은 첫 번째 및 두 번째 확산 표면의 색상과 광원에서 방출되는 빛의 색상에 따라 달라집니다.예를 들어 광원이 흰색 빛을 방출하고 두 개의 확산 표면이 파란색이면 픽셀의 색상이 파란색이 됩니다.
예
광선 추적과 관련된 원리를 설명하기 위해 광선과 구 사이의 교차점을 어떻게 찾을 수 있는지 생각해 보십시오.이것은 라인-구면 교차로 뒤에 있는 수학과 계산되는 픽셀의 색에 대한 후속 결정일 뿐입니다.물론 일반적인 광선 추적 프로세스에는 훨씬 더 많은 것이 있지만, 이는 사용된 알고리즘의 예를 보여줍니다.
벡터 표기법에서 중심 및 이r\r인 구체의 방정식은 다음과 같다.
d {\\여기서\displaystyle \ {는 단위 벡터)를 점 s{에서 시작하는 광선의 모든 점은 다음과 같이 쓸 수 있습니다.
서 tt는x와s 의 입니다. 이 문제에서는 c r r 예를 들어 과 d를 알고 .tt를 합니다.따라서 x 사용합니다.
단순함을 f - c \ \{ v \ {{ def } { \ } - \ { c로 합니다.
d가 단위 벡터라는 것을 알면 다음과 같은 사소한 단순화가 가능합니다.
이 2차 방정식은 해를 가지고 있다
이 방정식을 풀어서 구한t의 두은 s+ \ \} + \ { 가 와 교차하는 점이라는 두 값입니다.
음의 값은 광선에 있는 것이 아니라 반대쪽 반선(즉, s에서 방향으로 시작하는 값)에 있습니다.
제곱근 아래의 양( 판별자)이 음수인 경우 광선은 구와 교차하지 않습니다.
이제 적어도 긍정적인 해결책이 있다고 가정하고 tt가 최소한의 해결책이라고 합니다.또한 구체가 우리의 광선과 교차하는 장면에서 가장 가까운 물체이며 반사 물질로 만들어졌다고 가정해 봅시다.우리는 광선이 어느 방향으로 반사되는지 알아내야 한다.반사 법칙은 입사 광선과 구에 대한 법선 사이의 입사 각도와 반사 각도가 동일하고 반대라고 명시합니다.
구에 대한 법선은 단순하다.
서 y + d \ =\ +는이전에 발견된 교차점입니다.반사 방향은 n에 d의 반사로 확인할 수 있습니다. 즉,
따라서 반사된 광선은 방정식을 갖는다.
이제 후자의 광선과 시야의 교차점만 계산하면 반사된 광선이 닿는 픽셀을 얻을 수 있습니다.마지막으로, 이 화소는, 반사에 의해서 원래의 광원과 구의 색이 어떻게 조합되는지를 고려해, 적절한 색으로 설정된다.
어댑티브 깊이 컨트롤
적응적 깊이 제어는 계산된 강도가 특정 역치 미만이 되면 렌더러에 의해 반사/투과된 광선의 발생이 정지되는 것을 의미한다.항상 설정된 최대 깊이가 있어야 합니다. 그렇지 않으면 프로그램이 무한대의 광선을 생성합니다.그러나 표면이 반사율이 높지 않은 경우 반드시 최대 깊이로 이동할 필요는 없습니다.이를 테스트하기 위해 광선 추적기는 광선이 추적될 때 전역 및 반사 계수의 곱을 계산하고 유지해야 합니다.
예제: 표면 집합에 대해 Kr = 0.5라고 가정합니다.그런 다음 첫 번째 표면에서 0.5 × 0.5 = 0.25, 세 번째: 0.25 × 0.5 = 0.125, 네 번째: 0.125 × 0.5 = 0.0625, 다섯 번째: 0.0625 × 0.5 = 0.03125 등으로부터의 반사에 대해 최대 기여가 된다.또한 1/D2와 같은 거리 감쇠 계수를 구현하여 강도 기여도를 낮출 수 있습니다.
투과된 광선의 경우 비슷한 일을 할 수 있지만, 이 경우 물체를 통과하는 거리는 훨씬 더 빠른 강도 감소를 일으킬 것입니다.그 예로 Hall & Greenberg는 매우 반사적인 장면에서도 최대 깊이 15의 이 장면을 사용하면 평균 가오리 나무의 깊이가 1.[27]7로 나타난다는 것을 발견했다.
볼륨 제한
오브젝트 그룹을 계층 경계 볼륨 세트로 둘러싸면 레이 트레이스에 필요한 계산량이 줄어듭니다.먼저 주물선을 경계 부피와의 교차점에 대해 테스트한 후 교차점이 있을 경우 해당 부피가 물체에 닿을 때까지 재귀적으로 분할된다.경계 부피의 최고의 형식을 내부 개체 또는 개체의 모양으로 결정될 것이다.만약 물체나 얇은 긴 예를 들어 구 한 상자에 비해 주로 빈 공간을 둘러쌀 것이다.상자들 또한 계층적 경계 볼륨을 생성하기가 더 쉽다.
이와 같은 계층 시스템을 사용하면(신중하게 수행된다고 가정하면) 교차로 계산 시간이 개체 수에 대한 선형 종속성에서 선형 종속성과 로그 종속성 사이에서 변경됩니다.이는 완벽한 경우 각 교차점 테스트는 가능성을 두 개로 나누고 이진 트리 유형 구조가 되기 때문입니다.아래에서 설명하는 공간 분할 방법은 이를 실현하기 위해 시도합니다.
Kay & Kajiya는 계층적 경계 볼륨에 대해 원하는 속성 목록을 제공합니다.
- 하위 트리에는 서로 가까운 개체가 포함되어 있어야 하며 트리 아래쪽에 있는 개체가 더 가까워야 합니다.
- 각 노드의 볼륨은 최소여야 합니다.
- 모든 경계 볼륨의 볼륨 합계는 최소여야 합니다.
- 루트 근처의 노드를 프루닝하면 트리 아래쪽에 있는 개체보다 더 많은 잠재적인 개체가 제거되므로 루트 근처의 노드에 더 많은 주의를 기울여야 합니다.
- 계층을 구축하는 데 소요되는 시간은 계층을 사용함으로써 절약되는 시간보다 훨씬 짧아야 합니다.
인터랙티브 레이트레이스
인터랙티브 레이서 최초의 실장은, 1982년에 오사카 대학 공학부에, [citation needed]오무라 코우이치 교수, 시라카와 이사오 교수, 카와타 토루 교수가 50명의 학생에 의해서 구축한 LINKS-1 컴퓨터 그래픽스 시스템이다.514개의 마이크로프로세서(257 Zilog Z8001s 및 257 iAPX 86s)를 탑재한 대규모 병렬 처리 컴퓨터 시스템으로 고속 광선 트레이싱으로 사실적인 3D 컴퓨터 그래픽을 렌더링하는 데 사용되었습니다.일본정보처리학회에 따르면 3D 이미지 렌더링의 핵심은 주어진 시점, 광원, 물체 위치에서 렌더링 표면을 구성하는 각 픽셀의 휘도를 계산하는 것이다.LINKS-1 시스템은 각 픽셀을 광선 추적을 사용하여 독립적으로 병렬 처리할 수 있는 이미지 렌더링 방법론을 실현하기 위해 개발되었습니다.LINKS-1은 고속 이미지 렌더링 전용의 새로운 소프트웨어 방법을 개발함으로써 매우 사실적인 이미지를 신속하게 렌더링할 수 있었습니다."그것은 컴퓨터 그래픽으로 완벽하게 만들어진 천체의 초기 3D 플라네타리움 같은 비디오를 만드는 데 사용되었습니다.동영상은 1985년 [28]쓰쿠바 국제박람회 후지쯔관에서 공개됐습니다.1982년 에반스 & 서덜랜드 디지스타에 이어 두 번째 시스템이다.LINKS-1은 [29]1984년에 세계에서 가장 강력한 컴퓨터라고 보고되었다.
인터랙티브 렌더링(즉, 초당 프레임보다 큰 업데이트)을 사용한 "실시간" 광선 추적에 대한 최초의 공개 기록은 Mike Muuss가 1986년에 BRL-CAD 솔리드 모델링 시스템을 위해 개발한 REMRT/RT 도구로서 2005년 SIGGRAPH 컴퓨터 그래픽 회의에서 인정되었습니다.1987년 USENIX에서 처음 발표된 BRL-CAD 레이 트레이서는 렌더링 [30]성능에서 초당 여러 프레임을 달성한 병렬 네트워크 분산 레이 트레이스 시스템의 초기 구현이었습니다.이 퍼포먼스는 BRL-CAD의 고도로 최적화되었지만 플랫폼에 의존하지 않는 LIBRT 레이트레이스 엔진과 상용 네트워크상의 여러 공유 메모리 병렬 머신에 솔리드 암묵적 CSG 지오메트리를 사용함으로써 실현되었습니다.REMRT/RT 도구를 포함한 BRL-CAD의 레이 트레이서는 현재도 계속 사용할 수 있으며 오픈 소스 [31]소프트웨어로 개발되고 있습니다.
그 후 독립형 데스크톱 구성에 다양한 목적을 위해 실시간 레이 트레이스를 구현하기 위한 상당한 노력과 연구가 이루어졌습니다.이러한 용도에는 데모씬 프로덕션, 컴퓨터 및 비디오 게임, 이미지 렌더링과 같은 대화형 3D 그래픽 애플리케이션이 포함됩니다.레이 트레이스를 기반으로 한 일부 실시간 소프트웨어 3D 엔진은 1990년대 [32]후반부터 취미 데모 프로그래머에 의해 개발되었습니다.
1999년 Steven Parker가 이끄는 유타 대학 팀은 1999년 인터랙티브 3D 그래픽 심포지엄에서 인터랙티브 광선 추적을 실시간으로 시연했습니다.이들은 512x512픽셀 해상도의 3500만 구 모델을 제작했으며,[33] 60개의 CPU에서 초당 약 15프레임으로 작동했습니다.
오픈RT 프로젝트에는 현재 래스터라이제이션 기반의 대화형 3D 그래픽 접근법에 대한 대안을 제공하기 위해 OpenGL 유사 API와 함께 레이트레이스에 매우 최적화된 소프트웨어 코어가 포함되어 있습니다.Sarland University의 Sven Woop에 의해 개발된 실험적인 Ray Processing Unit과 같은 Ray 트레이스 하드웨어는 레이 트레이스의 계산 집약적인 작업 중 일부를 가속화하기 위해 설계되었습니다.2007년 3월 16일, Saarland 대학은 대량의 자원을 [34]사용하지 않고 레이 트레이스를 통해 컴퓨터 게임을 렌더링할 수 있는 고성능 레이 트레이스 엔진의 구현을 발표했습니다.
2008년 6월 12일 인텔은 Quake Wars: Ray Traced라는 제목의 Enemy Territory: Quake Wars의 특별한 버전을 시연했습니다.이 버전은 렌더링에 레이 트레이스를 사용하여 기본 HD(720p) 해상도로 실행됩니다.ETQW는 초당 14~29프레임으로 동작합니다.시연은 2.93GHz로 [35]작동하는 16코어(4소켓, 4코어) Xeon Tigerton 시스템에서 실행되었습니다.
SIGGRAPH 2009에서 Nvidia는 Nvidia GPU에서의 실시간 레이트레이스용 무료 API인 OptiX를 발표했습니다.이 API는 레이트레이스 파이프라인 내에 프로그래밍 가능한 7개의 진입점을 공개하여 커스텀 카메라, 레이 프라이머리 교차로, 셰이더, 섀도우링 등을 가능하게 합니다.이 유연성을 통해 양방향 경로 추적, Metropolis 광전송 및 테일 [36]재귀로는 구현할 수 없는 기타 많은 렌더링 알고리즘이 가능합니다.OptiX 기반 렌더러는 Autodesk Arnold, Adobe AfterEffects, Bunkspeed Shot, Autodesk Maya, max 3ds 및 기타 많은 렌더러에서 사용됩니다.
2014년에는 Q-Games와 Japan Studio가 개발한 PlayStation 4 비디오 게임 The Tomorrow Children의 데모에서 Q-Games가 개발한 새로운 조명 기술, 특히 실시간으로 조명을 시뮬레이션하고 화면 공간 [37]반사보다는 보다 사실적인 반사를 사용하는 캐스케이드 복셀 콘 레이 트레이스를 시연했습니다.
Nvidia는 현재 암페어 아키텍처를 기반으로 GeForce RTX 및 Quadro RTX GPU에서 하드웨어 가속 레이트레이스를 제공합니다.Nvidia 하드웨어는 "RT 코어"라고 불리는 별도의 기능 블록을 사용합니다.이 유닛은 크기, 레이텐시 및 프로세서코어에 대한 인터페이스 면에서 텍스처 유닛과 어느 정도 비슷합니다.이 유닛은 BVH 트래버설, 압축 BVH 노드 압축 해제, 레이-AABB 교차로 테스트 및 레이-삼각 교차로 테스트를 특징으로 합니다.
AMD는 Radeon ProRender를 [38]통해 Vega 그래픽 카드의 OpenCL 위에 인터랙티브 레이트레이스를 제공합니다.2020년 10월에는 온라인 [39][40][41][42][43]이벤트에서 하드웨어 가속 레이트레이싱을 지원하는 2세대 Navi GPU인 Radeon RX 6000 시리즈를 공개했습니다.
PlayStation 5, Xbox 시리즈 X 및 시리즈 S는 실시간 레이트레이스 [44][45][46][47]효과를 위해 GPU에서 전용 레이트레이스 하드웨어 컴포넌트를 지원합니다.
계산의 복잡성
광선 추적 문제의 특정 공식에 대해 다양한 복잡성 결과가 입증되었습니다.특히, 광선 추적 문제의 결정 버전이 다음과 같이[48] 정의되어 있는 경우(광선의 초기 위치, 방향 및 고정점) 광선이 최종적으로 그 지점에 도달하는 경우, 참조된 논문은 다음과 같은 결과를 증명합니다.
- 합리적인 2차 부등식 시스템으로 표현되는 반사 또는 굴절 물체의 유한 세트를 가진 3D 광학 시스템에서의 광선 추적은 결정할 수 없다.
- 합리적인 선형 부등식 시스템으로 표현되는 굴절 물체의 유한 세트를 가진 3D 광학 시스템에서의 광선 추적은 결정할 수 없다.
- 직사각형 반사 또는 굴절 물체의 유한 세트가 있는 3D 광학 시스템에서 광선 추적을 결정할 수 없습니다.
- 선형 부등식 시스템으로 표현되는 반사 물체 또는 부분적으로 반사되는 물체의 유한 세트를 가진 3D 광학 시스템의 광선 추적은 비합리적일 수 있다.
- 합리적인 선형 부등식 시스템으로 표현되는 반사 또는 부분적으로 반사되는 물체의 유한 세트를 가진 3D 광학 시스템의 광선 추적은 PSPACE-hard이다.
- 2보다 크거나 같은 차원에 대해 합리적인 선형 부등식으로 표현되는 유한한 세트의 평행 및 수직 반사 표면을 가진 광선 트레이스는 PSPACE에 있다.
「 」를 참조해 주세요.
레퍼런스
- ^ Shirley, Peter (July 9, 2003). Realistic Ray Tracing. A K Peters/CRC Press; 2nd edition. ISBN 978-1568814612.
- ^ "Sponsored Feature: Changing the Game - Experimental Cloud-Based Ray Tracing". www.gamasutra.com. Retrieved March 18, 2021.
- ^ "Disney explains why its 3D animation looks so realistic". Engadget. Retrieved March 18, 2021.
- ^ "The Next Big Steps In Game Sound Design". www.gamasutra.com. January 28, 2010. Retrieved March 18, 2021.
- ^ 를 클릭합니다Georg Rainer Hofmann (1990). "Who invented ray tracing?". The Visual Computer. 6 (3): 120–124. doi:10.1007/BF01911003. S2CID 26348610..
- ^ Steve Luecking (2013). "Dürer, drawing, and digital thinking - 2013 FATE Conference". brian-curtis.com. Retrieved August 13, 2020.
- ^ Steve Luecking. "Stephen J Luecking". Retrieved August 13, 2020.
- ^ Appel, Arthur (April 30, 1968), "Some techniques for shading machine renderings of solids" (PDF), AFIPS '68 (Spring) Proceedings of the April 30--May 2, 1968, Spring Joint Computer Conference: 37–45, doi:10.1145/1468075.1468082, S2CID 207171023
{{citation}}
: CS1 유지보수: 날짜 및 연도(링크) - ^ Goldstein, Robert; Nagel, Roger (January 1971), "3-D Visual simulation", Simulation, 16 (1): 25–31, doi:10.1177/003754977101600104, S2CID 122824395
- ^ Syntha Vision Sampler. 1974 – via Internet Archive.
- ^ Roth, Scott D. (February 1982), "Ray Casting for Modeling Solids", Computer Graphics and Image Processing, 18 (2): 109–144, doi:10.1016/0146-664X(82)90169-1
- ^ Whited T.(1979) 음영 디스플레이용 개선된 조명 모델.제6회 컴퓨터 그래픽스 및 인터랙티브 기술에 관한 연차총회 개최
- ^ The Compleat Angler. Bell Laboratories. 1978 – via Internet Archive.
- ^ "Food for Laughs". Computer Graphics World.
- ^ M.s (May 28, 2013). "This Animated Life: Pixar's Lightspeed Brings New Light to Monsters University". This Animated Life. Retrieved May 26, 2020.
- ^ Hart, John C. (June 1995), "Sphere Tracing: A Geometric Method for the Antialiased Ray Tracing of Implicit Surfaces" (PDF), The Visual Computer
- ^ Hart, John C.; Sandin, Daniel J.; Kauffman, Louis H. (July 1989), "Ray Tracing Deterministic 3-D Fractals" (PDF), Computer Graphics
- ^ Tomas Nikodym (June 2010). "Ray Tracing Algorithm For Interactive Applications" (PDF). Czech Technical University, FEE. Archived from the original (PDF) on March 3, 2016.
- ^ Whitted, T. (1979). "An Improved Illumination Model for Shaded Display". Proceedings of the 6th annual conference on Computer graphics and interactive techniques. CiteSeerX 10.1.1.156.1534. ISBN 0-89791-004-4.
- ^ Chalmers, A.; Davis, T.; Reinhard, E. (2002). Practical Parallel Rendering. AK Peters. ISBN 1-56881-179-9.
- ^ Aila, Timo; Laine, Samulii (2009). "Understanding the Efficiency of Ray Traversal on GPUs". HPG '09: Proceedings of the Conference on High Performance Graphics 2009. pp. 145–149. doi:10.1145/1572769.1572792. ISBN 9781605586038. S2CID 15392840.
- ^ Eric P. Lafortune and Yves D. Willems (December 1993). "Bi-Directional Path Tracing". Proceedings of Compugraphics '93: 145–153.
- ^ Péter Dornbach (1998). "Implementation of bidirectional ray tracing algorithm" (PDF). Retrieved June 11, 2008.
- ^ Photon Maps를 사용한 글로벌 조명 2008-08년 Wayback Machine 아카이브
- ^ "Photon Mapping - Zack Waters".
- ^ Veach, Eric; Guibas, Leonidas J. (1997). "Metropolis Light Transport". SIGGRAPH '97: Proceedings of the 24th annual conference on Computer graphics and interactive techniques. pp. 65–76. doi:10.1145/258734.258775. ISBN 0897918967. S2CID 1832504.
- ^ Hall, Roy A.; Greenberg, Donald P. (November 1983). "A Testbed for Realistic Image Synthesis". IEEE Computer Graphics and Applications. 3 (8): 10–20. CiteSeerX 10.1.1.131.1958. doi:10.1109/MCG.1983.263292. S2CID 9594422.
- ^ "【Osaka University 】 LINKS-1 Computer Graphics System". IPSJ Computer Museum. Information Processing Society of Japan. Retrieved November 15, 2018.
- ^ Defanti, Thomas A. (1984). Advances in computers. Volume 23 (PDF). Academic Press. p. 121. ISBN 0-12-012123-9.
- ^ 1987년 10월, 미국, 캠브리지, MA, Cambridge, 제4회 컴퓨터 그래픽 워크숍의 진행을 참조하십시오.USenix Association, 1987. 페이지 86-98.
- ^ "About BRL-CAD". Retrieved January 18, 2019.
- ^ Piero Foscari. "The Realtime Raytracing Realm". ACM Transactions on Graphics. Retrieved September 17, 2007.
- ^ Parker, Steven; Martin, William (April 26, 1999). "Interactive ray tracing". I3D '99 Proceedings of the 1999 Symposium on Interactive 3D Graphics. I3D '99. 5 (April 1999): 119–126. CiteSeerX 10.1.1.6.8426. doi:10.1145/300523.300537. ISBN 1581130821. S2CID 4522715. Retrieved October 30, 2019.
- ^ Mark Ward (March 16, 2007). "Rays light up life-like graphics". BBC News. Retrieved September 17, 2007.
- ^ Theo Valich (June 12, 2008). "Intel converts ET: Quake Wars to ray tracing". TG Daily. Retrieved June 16, 2008.
- ^ Nvidia (October 18, 2009). "Nvidia OptiX". Nvidia. Retrieved November 6, 2009.
- ^ Cuthbert, Dylan (October 24, 2015). "Creating the beautiful, ground-breaking visuals of The Tomorrow Children on PS4". PlayStation Blog. Retrieved December 7, 2015.
- ^ "GPUOpen Real-time Ray-tracing".
- ^ Garreffa, Anthony (September 9, 2020). "AMD to reveal next-gen Big Navi RDNA 2 graphics cards on October 28". TweakTown. Retrieved September 9, 2020.
- ^ Lyles, Taylor (September 9, 2020). "AMD's next-generation Zen 3 CPUs and Radeon RX 6000 'Big Navi' GPU will be revealed next month". The Verge. Retrieved September 10, 2020.
- ^ "AMD Teases Radeon RX 6000 Card Performance Numbers: Aiming For 3080?". anandtech.com. AnandTech. October 8, 2020. Retrieved October 25, 2020.
- ^ "AMD Announces Ryzen "Zen 3" and Radeon "RDNA2" Presentations for October: A New Journey Begins". anandtech.com. AnandTech. September 9, 2020. Retrieved October 25, 2020.
- ^ Judd, Will (October 28, 2020). "AMD unveils three Radeon 6000 graphics cards with ray tracing and RTX-beating performance". Eurogamer. Retrieved October 28, 2020.
- ^ Warren, Tom (June 8, 2019). "Microsoft hints at next-generation Xbox 'Scarlet' in E3 teasers". The Verge. Retrieved October 8, 2019.
- ^ Chaim, Gartenberg (October 8, 2019). "Sony confirms PlayStation 5 name, holiday 2020 release date". The Verge. Retrieved October 8, 2019.
- ^ Warren, Tom (February 24, 2020). "Microsoft reveals more Xbox Series X specs, confirms 12 teraflops GPU". The Verge. Retrieved February 25, 2020.
- ^ Warren, Tom (September 9, 2020). "Microsoft reveals Xbox Series S specs, promises four times the processing power of Xbox One". The Verge. Retrieved September 9, 2020.
- ^ "Computability and Complexity of Ray Tracing" (PDF). CS.Duke.edu.