광선 추적 높이 필드에 대한 최신 알고리즘은 무엇입니까?


16

레이 트레이서에서 높이 필드 지형을 그리기위한 여러 가지 기술에 대한 논문이 수년 동안 많이있었습니다. 일부 알고리즘은 그리드를 직접 (또는 쿼드 트리를 통해) 행진합니다. 다른 것들은 지형을 다각형 메쉬로 변형하고 표준 광선-삼각 교차 테스트를 사용합니다. 이 연구는 지난 몇 년 동안 진행된 것으로 보이며 지난 10 년 동안 작성된 논문을 찾기는 어렵지만 메모리와 컴퓨팅 (CPU 및 GPU 모두)의 균형은 여전히 ​​변하고 있습니다.

오늘날 어떤 종류의 알고리즘이 고급 데스크톱 컴퓨터에서 최상의 성능을 제공합니까? 또는 단일 답변이없는 경우 현재 최고의 알고리즘의 성능 특성은 어떻게 다릅니 까?


화면 공간 반사 : 깊이 및 프레임 버퍼를 사용하여 높이 필드를 만들고 광선 추적하여 원 반사를 얻습니다. 나는 세부 사항에 대해 모른다. 그러나 Crysis, Killzone, 최근 Frostbite 등이 정교한 기술을 사용하여 빨리 얻을 것이라고 상상할 것입니다. 이것에 대해 조사 했습니까?
David Kuri

1
@DavidKuri 고마워, 그것은 핵심 광선 마칭을 빨리 얻는 방법에 대한 좋은 포인터입니다. 사전 계산 밉맵 또는 최소-최대 쿼드 트리와 같이 화면 공간 추적에서 제대로 작동하지 않는보다 정적 인 높이 필드에 대해 가능한 많은 최적화가 있어야하므로 여전히 답을 기대하고 있습니다. 그 커버.
Dan Hulme

Dan BTW CPU 또는 GPU 솔루션을 찾고 있습니까? 실시간 또는 비 실시간 렌더링?
Alan Wolfe

@AlanWolfe 나의 사용은 GPU와 비 실시간 (즉, 16ms에서 관리 할 수있는 최상의 이미지 품질이 아닌 최대 처리량)이지만 CPU 나 주로 대화 형 렌더러에 빠른 흥미로운 답변을지지 할 것입니다.
Dan Hulme

높이 맵에서 부호있는 거리 필드를 만들 수 있습니다. 기본적으로 다음 표면까지의 거리를 저장하는 3D 텍스처입니다. 이를 통해 "레이를 더 빠르게 이동"할 수 있습니다. 언리얼 엔진 4는 일반적으로 미드 레인지 앰비언트 어 클루 전, 소프트 섀도우 및 터 레인 섀도우에 사용합니다
user1888

답변:


12

현재의 최신 기술에 대해서는이 문서를 참조하십시오 : "빠르고 정확하며 확장 가능한 동적 높이 필드 렌더링을위한 최대 밉맵", Tevs et al. 2008 년

기본 아이디어는 넓은 지형 영역에 대한 최대 가치를 알면서 많은 공간을 건너 뛰는 것입니다. 광선이 그 위에 머무르면 다음 큰 영역으로 건너 뜁니다.

그림 8을 보면 기본 선형 스테핑과 최대 밉맵의 비교를 볼 수 있습니다. 선형 스테핑은 200 단계로 이루어지며 현대 GPU에서 실시간으로 수행 할 수 있지만 실제로는 느립니다. 최대 밉맵은 약 10 단계로 모두 쉐이더에서 동일하게 수행됩니다.


논문 자체는 훌륭하고 "관련 작업"섹션이 매우 포괄적 인 것으로 보이므로이 답변을 받아들이고 있습니다. 이 기술을 정확하게 사용하지 않더라도 이것과 그 참조에서 사용 사례에 맞게 무언가를 조정할 수 있다고 확신합니다.
Dan Hulme

최대 밉맵이있는 데모를 찾았습니까? 감사.
raRaRa

나는이 논문을 읽지 못했지만이 "최대 밉맵"은 Cone Step Mapping에 사용 된 기술과 매우 유사하게 들린다 (콘으로 인해 넓은 영역을 건너 뛰어 시차 폐색 매핑을 개선 함).
Julien Guertault

@JulienGuertault 이것이 일반적인 HiZ 추적이라고 말할 것입니다. 당신이 쳤다는 것을 확신하는 안전한 방법입니다. 그러나 바이너리 검색과 같은 안전하지 않은 방법에 비해 그리 빠르지 않습니다.
v.oddou

4

내가 개인적으로 본 것은 inigo quillez가하는 것인데, 이것은 demoscene에 사용됩니다. 레이 3 월 지형, 일반적으로 디테일이 먼 거리 (예외 = 얇은 벽)보다 덜 중요하기 때문에 카메라에서 멀어 질수록 더 큰 단계를 밟습니다. 그는 침투 정보 및 기타 쉽게 얻을 수있는 메트릭을 사용하여 주변 폐색 및 기타 정교한 조명 기술을 시뮬레이션합니다.

다음은 실제로 작동하는 데모입니다. https://www.youtube.com/watch?v=_YWMGuh15nE

그리고 지형 레이 마칭에 관한 IQ의 페이지는 꽤 흥미 롭습니다 : http://www.iquilezles.org/www/articles/terrainmarching/terrainmarching.htm

BTW, 현대 게임에서 "스크린 공간 반사"기술은 종종 렌더링 된 장면의 Z 버퍼에 대한 광선 행진입니다. Z 버퍼는 실제로 높이 필드입니다.

나는 2014 년 siggraph에서 이것에 대해 이야기를했으며 일부 사람들은 IQ와 비슷한 기술을 사용하고 있지만, 일부는 IQ뿐만 아니라 IQ와는 다른 일을하고있었습니다.


1
링크의 알고리즘은 매우 간단합니다. 90 년대에 찾은 논문들보다 덜 정교 해 보입니다. 좋은 출발점처럼 보이지만 "최초의 광선 추적기"가 아닌 프로덕션 시스템을위한 최고의 성능 솔루션을 원합니다.
Dan Hulme

이 것들은 가장 진보 된 현대 게임에서 데모 장면 코드와 스크린 스페이스 리플렉션에 사용됩니다. 가장 빠른 코드는 때때로 가장 단순합니다. 나는 그 단순성 때문에 그것을 기각하지 않을 것입니다. 그래도 다른 응답이 있는지 확인하는 것이 흥미로울 것입니다.
Alan Wolfe

2
귀하의 응답에서 누락 된 것은 IQ가 표준 높이 필드 메쉬를 초기 추측으로 사용하여 실제 지형을 레이 마칭하기 시작한다는 것입니다. 먼저 표준 래스터 화를 사용하여 지형의 로우 폴리 버전을 렌더링 한 다음 이미지에 대해 픽셀 쉐이더를 실행하여 래스터 화 된 깊이에서 일부 보존 적 임계 값을 뺀 레이 마칭을 시작합니다. 이것이 실제로 실시간으로 만드는 유일한 방법입니다.
베네딕트 비틀리

나는 당신이 말하는 것의 일부만이 사실이라고 믿습니다. 그는 지형 높이 (카메라와의 거리에 따라)를 기반으로 휴리스틱을 사용하여 광선이 얼마나 멀리 행진 할 수 있는지 알아 내지 만, 들었던 한 래스터 화는 사용하지 않습니다. 여기에 래스터를 사용하지 않는 그의 작품의 예이지만, 그 구현이없는 것을 말하는 것이 아니다 DO 사용 래스터 그 : shadertoy.com/view/MdX3Rr
앨런 울프

광선 추적에 관한 질문이며,이 답변은 광선 행진에 관한 것입니다. 둘과 그들이 달성 할 수있는 것에는 근본적인 차이가 있습니다.
Julien Guertault

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.