KR20160002994A - 증강 현실에 대한 방사 전달 샘플링을 위한 장치 및 방법 - Google Patents
증강 현실에 대한 방사 전달 샘플링을 위한 장치 및 방법 Download PDFInfo
- Publication number
- KR20160002994A KR20160002994A KR1020157033153A KR20157033153A KR20160002994A KR 20160002994 A KR20160002994 A KR 20160002994A KR 1020157033153 A KR1020157033153 A KR 1020157033153A KR 20157033153 A KR20157033153 A KR 20157033153A KR 20160002994 A KR20160002994 A KR 20160002994A
- Authority
- KR
- South Korea
- Prior art keywords
- rays
- environment
- video frame
- subset
- illumination data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/55—Radiosity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/16—Using real world measurements to influence rendering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
증강 현실에 대한 방사 전달 샘플링을 위한 방법들, 시스템들, 컴퓨터 판독가능한 매체들 및 장치들이 제시된다. 일부 실시예들에서, 방법은 환경의 적어도 하나의 비디오 프레임을 수신하는 단계를 포함한다. 방법은 환경의 표면 재구성을 생성하는 단계를 더 포함한다. 방법은 추가적으로, 환경의 표면 재구성 내에서 복수의 광선들을 투영시키는 단계를 포함한다. 환경의 표면 재구성 내에서 복수의 광선들을 투영시킬 시, 방법은 적어도 하나의 비디오 프레임으로부터 환경의 조도 데이터를 생성하는 단계를 포함한다. 방법은 또한, 정제가 필요한 환경 내의 영역들에 기초하여 환경에서 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계를 포함한다. 방법은 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 비디오 프레임들 상에서 가상 오브젝트를 렌더링하는 단계를 더 포함한다.
Description
[0001] 본 개시의 양상들은 증강 현실에 관한 것이다. 더 구체적으로, 본 개시의 양상들은 증강 현실에 대한 방사 전달 샘플링(radiance transfer sampling)에 관한 것이다.
[0002] 결합된 가상 그리고 실제 장면들의 포토리얼리스틱(Photorealistic) 렌더링은 게임들 또는 광고와 같은 많은 증강 현실(AR: augmented reality) 애플리케이션들에 대한 근본적 목표이다. 현재 솔루션들은 이미지를 캡처하기 위해 이용되는 카메라의 실시간 업데이트들 및 3-D 추적을 갖는 장면 모델들을 획득하기 위해 기존의 소프트웨어 개발 키트들을 이용한다. 글로벌 조도(global illumination)에 기초하여 포토리얼리스틱 AR 이미지들을 겨냥하는 솔루션은 전형적으로 모든 각각의 표면 관점에 대한 방사 전달(RT: radiance transfer)를 계산(compute)할 것이다. RT는 장면 모델로부터 직접적으로 환경 조도 정보를 샘플링하기 위해 이용된다. 환경 조도 및 장면 모델과 함께 RT 정보는 실제 장면에서 가상 오브젝트들의 현실적 렌더들을 생성하기 위해 이용된다. 결과적 이미지들은 환경, 가상 오브젝트들 및 실제 오브젝트들 사이의 라이트 인터랙션들(light interactions)의 지각적으로 그럴듯한 근사치를 갖는다.
[0003] 그러나, 보셀 볼륨들(voxel volumes)로서 표현되는 동적으로 변화하는 장면들에 대한 RT를 계산하는 것은 볼류메트릭 광선 트레이싱(volumetric raytracing)을 요구한다. 모든 각각의 프레임에서 장면 모델의 모든 가시적 표면 포인트들에 대한 이러한 프로시저를 적용시키는 것은 계산적으로 비싸다. 심지어 더 빠른 프로세서들의 이용에 있어서도, 수용가능한 상호작용 속도들을 획득하기 위해 정규적 서브샘플링에 의지하는 것이 필요할 가능성이 있다. 단순한 서브샘플링의 이용은 원하지 않는 앨리어싱 아티팩트들을 초래하며, 최적의 솔루션이 아니다.
[0004] 특정 실시예들은 증강 현실에 대한 개선된 방사 전달 샘플링을 위한 장치 및방법을 설명한다.
[0005] 본원에 개시된 시스템들 및 방법들은 적응형 샘플링, 필터링 및 재구성 접근법들을 적용시킴으로써 가시성 신호의 일시적 코히런스뿐만 아니라 4-D 공간을 이용함으로써 증강 현실에 대해 개선된 방사 전달 샘플링을 허용한다. RT 계산에 대한 이러한 접근법들은 효율성을 증가시키며, 더 높은 품질 결과들을 제공한다. 이들은 또한, 계산적 비용과 이미지 품질 간의 트레이드-오프에 대한 더 많은 제어를 허용하는데, 이는 모바일 디바이스들에 있어 중요하다.
[0006] 일부 실시예들에서, 방법은 환경의 적어도 하나의 비디오 프레임을 수신하는 단계를 포함한다. 방법은 환경의 표면 재구성을 생성하는 단계를 더 포함한다. 방법은 추가적으로, 환경의 표면 재구성 내에서 복수의 광선들을 투영시키는 단계를 포함한다. 환경의 표면 재구성 내에서 복수의 광선들을 투영시킬 시, 방법은 적어도 하나의 비디오 프레임으로부터 환경의 조도 데이터를 생성하는 단계를 포함한다. 방법은 또한, 정제(refinement)가 필요한 환경 내의 영역들에 기초하여 환경에서 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계를 포함한다. 방법은 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하는 단계를 더 포함한다.
[0007] 일부 실시예들에서, 정제가 필요한 환경 내의 영역들은 섀도우(shadow) 영역들, 표면 에지들 및 섀도우 에지들을 포함한다.
[0008] 일부 실시예들에서, 방법은 표면 재구성 및 조도 데이터에 기초하여 적어도 하나의 비디오 프레임에서 환경의 추정된 실세계 조명 데이터를 생성하는 단계를 더 포함한다.
[0009] 일부 실시예들에서, 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계는, 조명 및 차동 렌더링 기법들을 환경에 적용시키는 단계 및 이의 결과로서 섀도우 정보를 분석하는 단계를 포함한다.
[0010] 일부 실시예들에서, 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계는, 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 단계를 포함한다.
[0011] 일부 실시예들에서, 방법은 2-레벨 계층 캐시에 광선들의 서브세트와 연관된 일시적 코히런스 정보를 저장하는 단계를 더 포함하고, 제 1 레벨은 스크린 공간에 정보를 저장하고, 제 2 레벨은 오브젝트 공간에 정보를 저장한다.
[0012] 일부 실시예들에서, 조도 데이터를 생성하는 단계는, 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하는 단계, 및 조도 데이터를 추출하기 위해 강도 컴포넌트들의 잡음을 제거하는 단계를 포함한다.
[0013] 일부 실시예들에서, 환경의 표면 재구성을 생성하는 단계는, 적어도 하나의 비디오 프레임, 스테레오 카메라로부터의 이미지들 또는 깊이 카메라로부터의 깊이 이미지 중 적어도 하나를 이용하여 수행된다.
[0014] 일부 실시예들에서, 장치는 카메라, 메모리 및 프로세서를 포함한다. 프로세서는 카메라에 의해 캡처된 환경의 적어도 하나의 비디오 프레임을 수신하기 위해 메모리에 커플링된다. 프로세서는 환경의 표면 재구성을 생성하도록 구성된다. 프로세서는 환경의 표면 재구성 내에서 복수의 광선들을 투영시키도록 추가로 구성된다. 프로세서는 또한, 적어도 하나의 비디오 프레임으로부터 환경의 조도 데이터를 생성하도록 구성된다. 프로세서는 추가적으로, 정제가 필요한 환경 내의 영역들에 기초하여 환경에서 복수의 광선들로부터의 광선들의 서브세트를 결정하도록 구성된다. 프로세서는 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하도록 추가로 구성된다.
[0015] 일부 실시예들에서, 방법은 환경의 적어도 하나의 비디오 프레임을 수신하기 위한 수단을 포함한다. 방법은 환경의 표면 재구성을 생성하기 위한 수단을 더 포함한다. 방법은 추가적으로, 환경의 표면 재구성 내에서 복수의 광선들을 투영시키기 위한 수단을 포함한다. 환경의 표면 재구성 내에서 복수의 광선들을 투영시킬 시, 방법은 적어도 하나의 비디오 프레임으로부터 환경의 조도 데이터를 생성하기 위한 수단을 포함한다. 방법은 또한, 정제가 필요한 환경 내의 영역들에 기초하여 환경에서 복수의 광선들로부터의 광선들의 서브세트를 결정하기 위한 수단을 포함한다. 방법은 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하기 위한 수단을 더 포함한다.
[0016] 일부 실시예들에서, 프로세서 판독가능한 명령들을 포함하는 프로세서 판독가능한 비-일시적 매체는 프로세서로 하여금 환경의 적어도 하나의 비디오 프레임의 시퀀스를 수신하게 하도록 구성되는 프로세서 판독가능한 명령들을 포함한다. 명령들은 프로세서로 하여금 환경의 표면 재구성을 생성하게 하도록 추가로 구성된다. 명령들은 프로세서로 하여금 환경의 표면 재구성 내에서 복수의 광선들을 투영시키게 하도록 추가로 구성된다. 명령들은 프로세서로 하여금 적어도 하나의 비디오 프레임으로부터 환경의 조도 데이터를 생성하게 하도록 추가로 구성된다. 명령들은 프로세서로 하여금 정제가 필요한 환경 내의 영역들에 기초하여 환경에서 복수의 광선들로부터의 광선들의 서브세트를 결정하게 하도록 추가로 구성된다. 명령들은 프로세서로 하여금 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하게 하도록 추가로 구성된다.
[0017] 본 개시의 양상들이 예로서 예시된다. 첨부한 도면들에서, 유사한 참조 번호들은 유사한 엘리먼트들을 표시한다.
[0018] 도 1은 하나 또는 둘 이상의 실시예들을 포함할 수 있는 시스템의 간략화된 도면을 예시한다.
[0019] 도 2는 본 발명의 실시예에 따른, 환경에서 가상 오브젝트를 렌더링할 수 있는 모바일 디바이스의 블록도이다.
[0020] 도 3은 본 발명의 실시예에 따른, 실세계 오브젝트 및 가상 세계 오브젝트를 포함하는 장면 지오메트리를 예시한다.
[0021] 도 4는 본 발명의 실시예에 따른, 프로브가 적은 포토메트릭(photometric) 등록 파이프라인의 단계들을 예시하는 일반적 흐름도이다.
[0022] 도 5는 증강 현실에 대한 방사 전달 샘플링에 대한 예시적 동작을 도시하는 예시적 흐름도이다.
[0018] 도 1은 하나 또는 둘 이상의 실시예들을 포함할 수 있는 시스템의 간략화된 도면을 예시한다.
[0019] 도 2는 본 발명의 실시예에 따른, 환경에서 가상 오브젝트를 렌더링할 수 있는 모바일 디바이스의 블록도이다.
[0020] 도 3은 본 발명의 실시예에 따른, 실세계 오브젝트 및 가상 세계 오브젝트를 포함하는 장면 지오메트리를 예시한다.
[0021] 도 4는 본 발명의 실시예에 따른, 프로브가 적은 포토메트릭(photometric) 등록 파이프라인의 단계들을 예시하는 일반적 흐름도이다.
[0022] 도 5는 증강 현실에 대한 방사 전달 샘플링에 대한 예시적 동작을 도시하는 예시적 흐름도이다.
[0023] 몇몇 예시적 실시예들은 이제, 실시예들의 일부분을 형성하는 첨부한 도면들에 대해 설명될 것이다. 본 개시의 하나 또는 둘 이상의 양상들이 구현될 수 있는 특정 실시예들이 아래에서 설명되지만, 다른 실시예들이 이용될 수 있고, 다양한 수정들이 본 개시의 범위 또는 첨부된 청구항들의 사상으로부터 벗어나지 않고 이루어질 수 있다.
[0024] 도 1a 및 1b는 위에서 설명된 바와 같은 포토리얼리스틱 증강 현실에 대한 효율적 방사 전달 샘플링이 가능한 모바일 디바이스(100)의 프론트 사이드 및 백 사이드를 각각 예시한다.
[0025] 모바일 디바이스(100)는 하우징(101), 터치 스크린 디스플레이일 수 있는 디스플레이(102)뿐만 아니라, 스피커(104) 및 마이크로폰(106)을 포함하는 것으로 예시된다. 모바일 디바이스(100)는 환경의 이미지(들)를 캡처하기 위해 전방 카메라(110)를 더 포함한다. 카메라(110)가 RGB 카메라, 깊이 카메라, 스테레오 카메라 등일 수 있다는 것이 인식될 수 있다. "카메라"라는 용어는 또한, 상이한 타입(예를 들어, RGB 카메라 및 깊이 카메라)을 가질 수 있는 다수의 카메라들을 지칭할 수 있다. 카메라(110)가 깊이 카메라인 경우, 그것은 이미징된 환경의 깊이 데이터를 제공할 수 있다. 대안적으로, 카메라(110)가 스테레오 카메라인 경우, 이미징된 환경에 대한 깊이 데이터를 생성하기 위해 카메라(110)로부터의 적어도 하나의 이미지(비디오 프레임)를 이용할 수 있다.
[0026] 본원에서 이용된 바와 같이, 모바일 디바이스는, 셀룰러 또는 다른 무선 통신 디바이스, 스마트 폰, PCS(personal communication system) 디바이스, PND(personal navigation device), PIM(Personal Information Manager), PDA(Personal Digital Assistant), 스마트 시계들, 스마트 안경, 자동차에서 이용되는 스마트 디바이스들, 가정에서 이용되는 스마트 디바이스들, 또는 다른 적합한 모바일 디바이스들과 같은 임의의 휴대용 전자 디바이스를 지칭한다. 모바일 디바이스는 무선 통신 및/또는 네비게이션 신호들, 이를테면, 네비게이션 포지셔닝 신호들을 수신할 수 있다. "모바일 디바이스"라는 용어는 또한 ― 위성 신호 수신, 보조 데이터 수신 및/또는 포지션-관련 프로세싱이 디바이스에서 발생하는지 아니면 PND에서 발생하는지에 관계없이 ― 이를테면, 단거리 무선, 적외선, 유선 연결 또는 다른 연결에 의해 PND(personal navigation device)와 통신하는 디바이스들을 포함하는 것으로 의도된다. 또한, "모바일 디바이스"는 자신의 환경의 이미지들(또는 비디오)을 캡처할 수 있는 무선 통신 디바이스들, 컴퓨터들, 랩탑들, 태블릿 컴퓨터들 등을 포함하는 모든 전자 디바이스들을 포함하는 것으로 의도된다. "모바일 디바이스"가 유선 또는 무선 연결을 반드시 필요로 하는 것은 아니라는 것이 인식될 수 있다.
[0027] 모바일 디바이스(100)는 임의적인, 즉, 선험적으로 알려지지 않은 지오메트리 및 조명 조건들을 갖는 환경의 카메라(110)를 이용하여 적어도 하나의 비디오 프레임 ― 때때로 본원에 단순히 이미지들로 지칭됨 ― 을 캡처한다. 모바일 디바이스(100)는 프레임 기반으로 캡처된 비디오 프레임들로부터 실세계 조명 조건들을 추정하고, 디스플레이(102)에서 렌더링되는 AR 오브젝트들에 조명 조건들을 적용시키도록 구성된다. 일부 실시예들에서, 캡처된 비디오 프레임들로부터 실세계 조명 조건들을 추정하는 것은 모든 각각의 n개의 프레임들에서 수행된다. 모바일 디바이스(100)는 또한, AR 오브젝트들이 환경 상에서 렌더링될 때 실세계 오브젝트들 상의 AR 오브젝트들로부터 조명 효과들을 적용시킬 수 있다. 모바일 디바이스(100)는 환경에서 임의적 지오메트리로부터 환경적 조명 조건들을 추정할 수 있다. 따라서, 모바일 디바이스(100)는 실세계 조명 조건들을 추정하기 위해 실세계 환경에 배치되도록 특수 라이트 프로브들(light probes), 이를테면, 반사적 스피어들(reflective spheres)을 요구하지 않는다. 모바일 디바이스(100)는 환경 조명의 추정을 개선하기 위해 방사 전달 계산들 및 구면 조화 계수(spherical harmonics)와 결합하여 임의적 지오메트리를 이용할 수 있다.
[0028] 도 2는 본 발명의 실시예에 따른, 환경에서 가상 오브젝트를 렌더링할 수 있는 모바일 디바이스(100)의 블록도이다. 모바일 디바이스(100)는 카메라(110)를 포함한다. 모바일 디바이스(100)는 사용자가 정보를 모바일 디바이스(100)에 입력할 수 있게 하는 디스플레이(102), 키패드(105) 또는 다른 입력 디바이스를 포함하는 사용자 인터페이스(103)를 더 포함할 수 있다. 원하는 경우, 키패드(105)는 가상 키패드를 터치 센서를 갖는 디스플레이(102)로 통합함으로써 제거될 수 있다. 사용자 인터페이스(103)는 또한, 예를 들어, 모바일 디바이스(100)가 셀룰러 전화와 같은 모바일 디바이스인 경우, 마이크로폰(106) 및 스피커(104)를 포함할 수 있다. 물론, 모바일 디바이스(100)는 본 개시에 관련되지 않은 다른 엘리먼트들을 포함할 수 있다.
[0029] 모바일 디바이스(100)는 또한, 카메라(110)에 연결되며 카메라(110)와 통신하는 제어 유닛(180)을 포함한다. 제어 유닛(180)은 버스(180b), 프로세서(181) 및 연관된 메모리(184), 하드웨어(182), 소프트웨어(185) 및 펌웨어(183)에 의해 제공될 수 있다. 제어 유닛(180)은 환경의 표면 재구성을 생성할 수 있는 표면 재구성 유닛(191)을 포함할 수 있다. 방사 전달 유닛(193)은 방사 전달을 생성한다. 조도 데이터 유닛(194)은 캡처된 적어도 하나의 비디오 프레임에 기초하여 조도 데이터를 생성하는데, 예를 들어, 이미지들을 강도 컴포넌트들로 변환하는 것 및 선택적으로 강도 컴포넌트들의 잡음을 제거하기 위해 강도 컴포넌트들을 필터링하는 것을 포함한다. 조명 추정 유닛(195)은 환경에 대한 방사 전달 및 조도 데이터에 기초하여 추정된 조명 조건들을 결정한다. 렌더링 유닛(197)은 포즈(pose) 및 조명 솔루션들에 기초하여 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링할 수 있으며, 차동 렌더링 및 합성을 이용할 수 있다.
[0030] 다양한 프로세싱 유닛들, 예를 들어, 표면 재구성 유닛(191), 방사 전달 유닛(193), 조도 데이터 유닛(194), 조명 추정 유닛(195), 조명 평가 유닛(196) 및 렌더링 유닛(197)은 명료함을 위해 개별적으로 그리고 프로세서(181)와 분리된 것으로 예시되지만, 그 전부 또는 일부는 결합되고 그리고/또는 프로세서(181)의 일부분일 수 있거나, 프로세서(181)에서 실행되는 소프트웨어(185)에서의 명령들에 기초하여 프로세서로 구현될 수 있다. 본원에서 이용되는 바와 같이, 프로세서(181) 및/또는 다양한 프로세싱 유닛들이 하나 또는 둘 이상의 마이크로프로세서들, 임베디드 프로세서들, 제어기들, ASIC(application specific integrated circuit)들, DSP(digital signal processor)들 등을 포함할 수 있지만, 이들을 반드시 포함할 필요는 없다는 것이 이해될 것이다. 프로세서라는 용어는 특정 하드웨어보다는 시스템에 의해 구현되는 기능들을 설명하는 것으로 의도된다. 더욱이, 본원에서 이용되는 바와 같이, "메모리"라는 용어는 롱 텀(long term), 쇼트 텀(short term) 또는 모바일 디바이스와 연관된 다른 메모리를 포함하는 임의의 타입의 컴퓨터 저장 매체를 지칭하며, 임의의 특정 타입의 메모리, 또는 메모리들의 수, 또는 메모리가 저장되는 매체들의 타입에 제한되는 것은 아니다.
[0031] 본원에 설명된 방법들은 애플리케이션에 따른 다양한 수단에 의해 구현될 수 있다. 예를 들어, 이러한 방법들은 하드웨어(182), 펌웨어(183), 소프트웨어(185) 또는 이들의 임의의 결합으로 구현될 수 있다. 하드웨어 구현에 있어서, 프로세싱 유닛들은 하나 또는 둘 이상의 ASIC(application specific integrated circuit)들, DSP(digital signal processor)들, DSPD(digital signal processing device)들, PLD(programmable logic device)들, FPGA(field programmable gate array)들, 프로세서들, 제어기들, 마이크로제어기들, 마이크로프로세서들, 전자 디바이스들, 본원에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 결합 내에서 구현될 수 있다.
[0032] 펌웨어 및/또는 소프트웨어 구현에 있어서, 방법들은 본원에 설명된 기능들을 수행하는 모듈들(예를 들어, 프로시저들, 함수들 등)로 구현될 수 있다. 명령들을 유형으로 구현하는 임의의 기계 판독가능한 매체는 본원에 설명된 방법들을 구현하는데 이용될 수 있다. 예를 들어, 소프트웨어 코드들은 메모리(184)에 저장되고, 프로세서(181)에 의해 실행될 수 있다. 메모리는 프로세서(181) 내에서 또는 프로세서(181) 외부에서 구현될 수 있다. 펌웨어 및/또는 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독가능한 저장 매체 상에 하나 또는 둘 이상의 명령들 또는 코드로서 저장될 수 있고, 여기서, 저장 매체는 일시적 전파 신호들을 포함하지 않는다. 예들은 데이터 구조를 이용하여 인코딩되는 저장 매체들 및 컴퓨터 프로그램을 이용하여 인코딩되는 스토리지를 포함한다. 저장 매체들은 물리적 컴퓨터 저장 매체들을 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 이러한 저장 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있고; 본원에서 이용되는 바와 같은 디스크(disk 및 disc)는 CD(compact disc), 레이저 디스크(disc), 광학 디스크(disc), DVD(digital versatile disc), 플로피 디스크(disk) 및 블루-레이 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 통상적으로 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 위의 것들의 결합들은 또한, 저장 매체들의 범위 내에 포함되어야 한다.
[0033] 모바일 디바이스(100)는, (제한 없이 로컬 및/또는 네트워크 액세스가능한 스토리지를 포함하고 그리고/또는 제한 없이 프로그램가능하고, 플래시-업데이트 가능한 식일 수 있는 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 고체-상태 저장 디바이스, 이를테면, "RAM"(random access memory) 및/또는 "ROM"(read-only memory)을 포함할 수 있는) 하나 또는 둘 이상의 비-일시적 저장 디바이스들(116)을 더 포함할 수 있다(그리고/또는 이들과 통신할 수 있다). 이러한 저장 디바이스들은, (제한 없이 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함하는) 임의의 적절한 데이터 스토리지를 구현하도록 구성될 수 있다.
[0034] 모바일 디바이스(100)는 또한, (제한 없이 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를테면, Bluetooth™ 디바이스, 802.11 디바이스, Wi-Fi 디바이스, WiMax 디바이스, 셀룰러 통신 시설들 등) 등을 포함할 수 있는) 통신 서브시스템(114)을 포함할 수 있다. 통신 서브시스템(114)은 데이터가 네트워크, 다른 컴퓨터 시스템들 및/또는 본원에 설명된 임의의 다른 디바이스들과 교환되게 허용할 수 있다. 많은 실시예들에서, 모바일 디바이스(100)는, RAM 또는 ROM 디바이스를 포함할 수 있는 비-일시적 작업 메모리(184)를 더 포함할 것이다.
[0035] 모바일 디바이스(100)는 추가적으로, 제한 없이, 본 발명의 실시예들에서 이용되는 디바이스, 프린터 등과 같은 디스플레이 유닛을 포함할 수 있는 하나 또는 둘 이상의 출력 디바이스들(112)을 포함할 수 있다. 본 발명의 실시예들의 일부 구현들에서, 다양한 사용자 인터페이스 디바이스들(예를 들어, 디스플레이(102), 마이크(106), 키패드(105) 및 스피커(104)) 및 출력 디바이스들(112)은 디스플레이 디바이스들, 테이블들, 플로어들, 월(wall)들 및 윈도우 스크린들과 같은 인터페이스들로 임베딩될 수 있다. 게다가, 프로세서들에 커플링된 출력 디바이스들(112) 및 사용자 인터페이스 디바이스들은 다차원 추적 시스템들을 형성할 수 있다.
[0036] 모바일 디바이스(100)는 또한, 운영 시스템, 디바이스 드라이버들, 실행가능한 라이브러리들 및/또는 다른 코드, 이를테면, 본원에 설명된 바와 같이, 다양한 실시예들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수 있고, 그리고/또는 다른 실시예들에 의해 제공되는 방법들을 구현하고 그리고/또는 시스템들을 구성하도록 설계될 수 있는 하나 또는 둘 이상의 애플리케이션 프로그램들을 비롯하여, 메모리(184) 내에 로케이팅된 소프트웨어 엘리먼트들을 포함할 수 있다. 단지 예로서, 아래에서 논의되는 방법(들)에 관하여 설명된 하나 또는 둘 이상의 프로시저들은 모바일 디바이스(및/또는 모바일 디바이스 내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수 있고, 양상에서, 그 다음, 이러한 코드 및/또는 명령들은 설명된 방법들에 따라 하나 또는 둘 이상의 동작들을 수행하도록 범용 컴퓨터(또는 다른 디바이스)를 구성시키고 그리고/또는 적응시키기 위해 이용될 수 있다.
[0037] 이러한 명령들 및/또는 코드의 세트는, 위에서 설명된 저장 디바이스(들)(116)와 같은 컴퓨터 판독가능한 저장 매체 상에 저장될 수 있다. 일부 경우들에서, 저장 매체는 컴퓨터 시스템, 이를테면, 모바일 디바이스(100) 내에 포함될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템(예를 들어, 이동식 매체, 이를테면, 컴팩트 디스크(disc))과 별개일 수도 있고, 그리고/또는 저장 매체가 저장 매체 상에 저장된 명령들/코드로 범용 컴퓨터를 프로그래밍하고, 구성하고 그리고/또는 적응시키는데 이용될 수 있도록 설치 패키지로 제공될 수 있다. 이러한 명령들은 모바일 디바이스(100)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고 그리고/또는 (그 다음, 모바일 디바이스(100) 상에서의 컴파일(compilation) 및/또는 설치(installation) 시에, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용하여) 실행가능한 코드의 형태를 취하는) 소스 및/또는 설치가능한 코드의 형태를 취할 수 있다.
[0038] 특정 요건들에 따라 상당한 변형들이 이루어질 수 있다. 예를 들어, 커스터마이징된 하드웨어가 또한 이용될 수 있고 그리고/또는 특정 엘리먼트들이 하드웨어, 소프트웨어(애플릿들과 같은 휴대용 소프트웨어 등을 포함함) 또는 둘 모두로 구현될 수 있다. 추가로, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들로의 연결이 이용될 수 있다. 일부 실시예들에서, 모바일 디바이스(100)의 하나 또는 둘 이상의 엘리먼트들은 생략될 수 있거나, 예시된 시스템으로부터 분리된 것으로 구현될 수 있다. 예를 들어, 프로세서(181) 및/또는 다른 엘리먼트들은 사용자 인터페이스(103) 디바이스들로부터 분리된 것으로 구현될 수 있다. 하나의 실시예에서, 프로세서(181)는 개별적으로 구현되는 하나 또는 둘 이상의 카메라들(110)로부터 이미지들을 수신하도록 구성된다. 일부 실시예들에서, 도 2에 예시된 것들과 더불어 엘리먼트들은 모바일 디바이스(100)에 포함될 수 있다.
[0039] 일부 실시예들은 본 개시에 따라 방법들을 수행하기 위해 모바일 디바이스(이를테면, 모바일 디바이스(100))를 이용할 수 있다. 예를 들어, 프로세서(181)가 메모리(184)에 포함되는 (운영 시스템 및/또는 다른 코드, 이를테면, 애플리케이션 프로그램에 포함될 수 있는) 하나 또는 둘 이상의 명령들의 하나 또는 둘 이상의 시퀀스들을 실행하는 것에 응답하여, 설명된 방법들의 프로시저들 전부 또는 일부가 모바일 디바이스(100)에 의해 수행될 수 있다. 이러한 명령들은 또 다른 컴퓨터 판독가능한 매체, 이를테면, 저장 디바이스(들)(116) 중 하나 또는 둘 이상의 저장 디바이스(들)로부터 메모리(184)로 판독될 수 있다. 단지 예로서, 메모리(184)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(181)로 하여금 본원에 설명된 방법들의 하나 또는 둘 이상의 프로시저들을 수행하게 할 수 있다.
[0040] 본원에 이용되는 바와 같은 "기계 판독가능한 매체" 및 "컴퓨터 판독가능한 매체"라는 용어들은, 기계로 하여금 특정 방식으로 동작하게 하는 데이터를 제공하는데 참여하는 임의의 매체를 지칭한다. 모바일 디바이스(100)를 이용하여 구현되는 일부 실시예들에서, 다양한 컴퓨터 판독가능한 매체들이, 실행을 위한 명령들/코드를 프로세서(들)(181)에 제공하는데 수반될 수 있고, 그리고/또는 (예를 들어, 신호들과 같은) 이러한 명령들/코드를 저장 및/또는 전달하는데 이용될 수 있다. 많은 구현들에서, 컴퓨터 판독가능한 매체는 물리 그리고/또는 유형의 저장 매체이다. 이러한 매체는 비-휘발성 매체들, 휘발성 매체들 및 송신 매체들을 포함하는(그러나, 이에 제한되는 것은 아님) 많은 형태들을 취할 수 있다. 비-휘발성 매체들은, 예를 들어, 광학 그리고/또는 자기 디스크들, 이를테면, 저장 디바이스(들)(116)를 포함한다. 휘발성 매체들은, 제한 없이, 동적 메모리, 이를테면, 메모리(184)를 포함한다. 송신 매체들은, 제한 없이, 버스(180b)뿐만 아니라 통신 서브시스템(114)의 다양한 컴포넌트들 (및/또는 통신 서브시스템(114)이 다른 디바이스들과의 통신을 제공하게 하는 매체들)을 포함하는 와이어들을 포함하는 동축 케이블들, 구리 유선 및 광섬유들을 포함한다. 따라서, 송신 매체들은 또한, (제한 없이, 라디오파(radio-wave) 및 적외선 데이터 통신들 동안 생성된 것들과 같은 라디오, 어쿠스틱(acoustic) 및/또는 광파들을 포함하는) 파들의 형태를 취할 수 있다.
[0041] 물리적 그리고/또는 유형의 컴퓨터 판독가능한 매체들의 일반적 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드들(punch cards), 페이퍼테이프(papertape), 홀들의 패턴들을 갖는 임의의 다른 물리 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이하에 설명되는 바와 같은 반송파, 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
[0042] 다양한 형태들의 컴퓨터 판독가능한 매체들은 실행을 위한 하나 또는 둘 이상의 명령들의 하나 또는 둘 이상의 시퀀스들을 프로세서(들)(181)에 전달하는데 수반될 수 있다. 단지 예로서, 명령들은 초기에, 원격 컴퓨터의 자기 디스크 및/또는 광학 디스크 상에서 전달될 수 있다. 원격 컴퓨터는 그것의 동적 메모리에 명령들을 로딩하며, 모바일 디바이스(100)에 의해 수신 및/또는 실행되도록 송신 매체 상에서 신호들로서 명령들을 전송할 수 있다. 전자기파 신호들, 어쿠스틱 신호들, 광학 신호들 등의 형태일 수 있는 이러한 신호들은 본 발명의 다양한 실시예들에 따라, 명령들이 인코딩될 수 있는 반송파들의 모든 예들이다.
[0043] 통신 서브시스템(114)(및/또는 이것의 컴포넌트들)은 일반적으로 신호들을 수신할 것이고, 그 다음, 버스(180b)는 신호들(및/또는 신호들에 의해 전달되는 데이터, 명령들 등)을 메모리(184)에 전달할 수 있고, 프로세서(들)(181)는 이러한 메모리(184)로부터의 명령들을 리트리브하고 실행한다. 메모리(184)에 의해 수신된 명령들은 프로세서(들)(181)에 의한 실행 이전에 또는 이후에 비-일시적 저장 디바이스(116) 상에 선택적으로 저장될 수 있다.
[0044] 도 3은 실세계 오브젝트(330) 및 가상 세계 오브젝트(340)를 포함하는 장면 지오메트리(300)를 예시한다. 장면 지오메트리(300)는 또한, 다수의 광선들이 세계 공간(world space)으로 투영되는 관점 또는 카메라(310)를 포함한다. 세계 공간은 실세계 오브젝트(330) 및 가상 세계 오브젝트(340) 둘 모두를 포함한다. 도면은 작업 영역 및 그것의 상이한 도메인들을 도시한다. 카메라(310)는 지오메트리의 표면을 결정하고 표면 포인트들의 반사 B(이미지 강도들)를 측정하기 위해 이미지 공간으로부터 광선들(350)을 전송한다. 반사 측정들은 이미지 공간 내에 있다. 광선이 (예를 들어, 실세계 오브젝트의 표면에 대한 포인트 x 및 가상 세계 오브젝트의 표면에 대한 포인트 z에서) 표면을 히팅(hit)하면, 알고리즘은 스피어를 균일하게 샘플링하는 상이한 방향들에서 광선을 전송함으로써 가시성 V(x)에 대해 테스트한다. 이것은 가시성 공간이라 칭해진다. 유사한 프로세스는 가시성 V(z)를 테스트하기 위해 수행될 수 있다.
[0045] 위에서 언급된 바와 같이, 현재 솔루션들은 많은 제한들을 갖는다. 이러한 제한들 중 하나는 계산하는 RT가 장면 모델에서 광선 트레이싱을 요구한다는 것이다. 모든 각각의 프레임에서 장면 모델의 모든 가시적 표면 포인트들에 대해 이러한 프로시저를 적용시키는 것은 계산적으로 비싸다.
[0046] RT는 장면의 표면 상에 주어진 포인트에 대한 잠재적 라이트 인터랙션(유출 및 유입 광선들)이다. 광선들은, 표면 포인트와 멀리 있는(distant) 환경 라이트(가시성 테스팅) 사이에 폐색 지오메트리(occluding geometry)가 존재하는지 여부를 결정하고, 얼마나 많은 라이트가 잠재적으로 표면 포인트 상에 떨어지는지를 결정하기 위해 트레이싱된다. 일부 실시예들에서, 결과적 RT를 압축하여 SH 표현(예를 들어, 16 플로트(float) 값들)에 저장하는 것은 증가된 효율성을 초래할 수 있다. 그러나, RT를 계산하기 위해, 충분한 수의 광선들은 가시성을 샘플링하기 위해 모든 각각의 방향(예를 들어, n=128개의 방향들)을 따라 환경으로 트레이싱되어야 한다. 따라서, 가시성 신호는 4-D 함수로서 표면 라이트 필드와 유사하게 파라미터화될 수 있다:
[0047] 여기서, (r,s)는 표면 상의 포인트를 나타내고, ()는 광선의 방향을 나타낸다. 4-D 공간뿐만 아니라, 적응형 샘플링, 필터링 및 재구성 접근법들을 적용시킴으로써 신호의 일시적 코히런스가 이용될 수 있다. 컴퓨터 그래픽스 애플리케이션들에 대한 샘플링에서 코히런스를 이용하기 위한 일부 접근법들이 존재하지만, 그 어떠한 것도 온라인 또는 실시간 재구성된 지오메트리에 대한 RT 샘플링에 적용되지 않았다. 컴퓨터 그래픽스 장면들은 전형적으로 더 예측가능하고, 따라서, RT는 당연히 미리 계산될 수 있다. 미리 계산하는 것은 최적의 실행 시간(runtime) 수행을 허용하지만, 동적 장면들에 대해서는 어렵다(challenging). AR 애플리케이션들은 이러한 동적 장면들을 지원하여야 한다.
스크린 및 가시성 공간에서
인터리빙된
샘플링
[0048] 인터리빙된 샘플링에 있어서, 샘플링 워크로드는, 예를 들어, 일련의 프레임들, 예를 들어, n개의 프레임들 상에서 확산된다. 예를 들어, 모든 각각의 픽셀 p(r,s)에 대한 샘플링 워크로드의 절반은 제 1 프레임에서 프로세싱되고, 픽셀 (p(r+1,s)에 대한 다른 절반은 제 2 프레임에서 프로세싱된다. 인터리빙된 중간 결과들은 최종 결과에서 전체 샘플링된 최종 결과로 결합된다. 이것은 스크린 공간 (r,s) 또는 가시성(광선) 공간 ()에서 달성될 수 있다. 이러한 경우, 관심은(interest) 단지 이러한 프레임과 관련된 RT 내에만 있을 수 있기 때문에, (r,s)는 스크린 상의 픽셀들에 대응하는 표면 포인트들을 지칭한다. 광선 공간 ()은 세계 좌표 시스템에 대해 주어질 수 있다. n개의 방향들의 공간 ()은 k개의 별개(disjoint) 서브세트들로 분할될 수 있고, k개의 인접 픽셀들에 하나씩 할당될 수 있어서, 계층화된 랜덤 샘플링 스킴이 전달될 수 있다. v가 주로 모든 4차원에서 스무드한(smooth) 변형들을 나타낸다고 가정할 이유들이 존재하기 때문에, 전체 해상도에서의 v의 타당한 재구성들은 4-D 가우시안 커널(또는 햇(hat) 또는 박스 필터와 같은 더 단순한 근사치)을 이용하여 그것을 필터링함으로써 획득될 수 있다. 결과적 필터링된 가시성 함수는 모든 각각의 픽셀에 대한 SH 표현으로 투영될 수 있다.
[0049] 특정 상황들에서, 단일 프레임에 대해 v를 계산하는 것이 요구될 수 있는데, 예를 들어, 이동 중인 카메라 또는 변화하는 장면에 대해서는 중요하지 않다. 인터리빙된 샘플링 접근법은 시간이 지남에 따라 전체 샘플링에 대해 커버리징하도록 확장될 수 있다. 이것은 n개의 프레임들 및 n개의 중간 결과들(서브세트들) 상에서 최종 결과를 계산하고, 이러한 중간 결과들을 전체 샘플링된 결과로 어셈블리함으로써 달성될 수 있다. 카메라는 당연히 정적이 아니기 때문에, 최종 결과를 어셈블리하는 것은 재투영(re-projection)을 포함할 수 있다.
가시성의 스크린 공간 및
오브젝트
공간 캐싱
[0050] 3-D 표면 포인트의 가시성은 당연히, 스크린 공간 좌표보다는 오브젝트 공간 좌표와 연관될 수 있다. 따라서, 오브젝트 공간에 가시성 계산을 저장하는 것이 더 당연할 수 있다. 그러나, 보셀 그리드가 이용될 수 있기 때문에, SH 정보를 저장하는 것은 많은 양의 메모리를 요구한다. 대신에, 다음의 정보: 길이 n의 가시성 비트 벡터 ― 각각의 비트는 특정 방향에 대한 값 v()를 표시함 - , 및 어떤 광선들이 이미 트레이싱되었는지를 표시하는 샘플링 수렴 비트 벡터가 저장될 수 있다.
[0051] SH 계수들로의 가시성의 투영이 또한 비싼 계산일 수 있기 때문에, (오브젝트 공간에서의) 비트 벡터 표현 및 (예를 들어, 픽셀당 이미지 공간에서의) SH 표현 둘 모두가 저장될 수 있다. 이것은 독립적으로 비트 벡터들 및 SH 표현의 재이용을 허용하고, 이는 이동 중인 카메라 및 변화하는 장면들을 다루는데 중요해진다.
적응형 샘플링
[0052] 정규적 인터리빙된 샘플링을 수행하기보다는, 적응형 샘플링이 가시적 차가 예상될 수 있는 영역들에서 계산에 노력을 기울이기 위해 이용될 수 있다. 그 목적을 위해, 더 양호한 업샘플링을 지원하기 위해 더 많은 샘플링에 대한 필요성을 인코딩하는 스크린 공간에서의 가중 마스크가 이용될 수 있다. 그 다음, 이 가중 마스크는 어디에서 더 많은 샘플들이 계산되어야 하는지를 결정하기 위해 (예를 들어, 단순한 스레쉬홀딩 연산을 이용하여) 검사될 수 있다. 추가적 샘플링 이후, 영향을 받은 표면 포인트에 대한 SH 투영이 재계산되어야 한다. 가중 마스크를 획득하기 위해 몇몇 방법들이 이용될 수 있다는 것이 인식될 수 있다.
가시성
[0053] 다수의 팩터들은 가중 마스크에 기여할 수 있다. 가중 마스크에서 섀도우 경계들을 보존하기 위해, 에 대한 4-D 분산이 계산될 수 있다. 가시성 신호의 분산을 계산하기 위해, 4D 영역들로의 세분화가 존재하여야 한다. 모든 각각의 픽셀 (r,s)은 개별적으로 고려될 수 있고, 광선 공간 ()은 8분원들(octants)로 세분화될 수 있다. 샘플링은 8분원당 최소 1개의 광선(픽셀당 8개의 광선들)으로 초기화될 수 있다. 1 픽셀의 1개의 8분원은 영역으로 지칭될 수 있다. 적응형 그리고/또는 인터리빙된 샘플링은 더 많은 광선들을 계산할 수 있고, 이들의 분산은 물론, 영역에 대해 모든 이용가능한 광선들을 고려하여야 한다.
[0054] 하나 또는 둘 이상의 광선들이 영역에 대해 계산될 때마다, 개요가 영역에 대해 계산될 수 있다. 개요는 계산된 광선들의 수 및 1로 평가한 계산된 광선들의 수로 구성된다. 이것은 가시성 비트 벡터 및 샘플링 수렴 비트 벡터의 세그먼트에서 1(해밍 웨이트(Hamming weight))의 값을 갖는 비트들을 카운팅함으로써 달성될 수 있다. 픽셀당 n=128개의 광선들 및 k=8개의 8분원들에 있어서, 결과는 영역당 n/k = m = 16개의 광선들이다. 개요는 빠른 "파퓰레이션 웨이트(population weight)" 기법을 이용하여 계산될 수 있으며, 2*4 = 8 비트들로 구성된다. 개요들은 스크린 공간에 저장된다.
[0055] 단일 개요에 있어서, 분산은 미리 계산되어 빠른 검색을 위해 256개의 엔트리들을 갖는 글로벌 테이블 내에 저장될 수 있다. 그러나, 인터리빙된 샘플링이 요구될 수 있다면, 필터는 더 큰 영역 상에서 적용될 필요가 있다. 이것은, 함께 몇몇 개요들로부터 정보를 부가하고, 그 다음, 결과의 분산을 계산함으로써 구현될 수 있다. 개별적으로 값 1을 갖는 광선들의 수 및 계산되는 광선들의 수가 부가될 수 있다. 이것은 비트 연산들(예를 들어, 시프트-op, 앤드-op, 덧셈 등)에 의해 달성될 수 있다.
[0056] 예를 들어, 특정 픽셀 주변의 몇몇 픽셀들의 영역이 고려될 수 있거나, 몇몇의 8분원들이 함께 고려될 수 있다. 가중치들은 또한 필터링에서 영역들 각각에 적용될 수 있다. 1, 2, 4 및 8의 가중치들을 이용하는 것은 이러한 것에 대한 빠른 비트 시프팅의 이용을 허용한다.
[0057] 단지 16개의 가중되지 않은 영역들이 부가되는 경우, 결과적 광선 카운트들은 2*8 비트들로 피팅(fit)될 것이다. 따라서, 실제 분산은 미리 계산되어 16-비트 테이블에 저장될 수 있다. 더 많은 영역들이 고려될 수 있고, 최하위 1 또는 2 비트들이 시프트-op를 이용하여, 본질적으로 결과를 정량화하여 폐기될 수 있는 경우, 16-비트 테이블이 여전히 이용될 수 있다.
차동
렌더링
[0058] 적응형 샘플링에 대한 가중 마스크는, 또한 차동 렌더링의 결과들을 고려하기 위해 확장될 수 있다. 전체 장면에 대한 높은 품질 솔루션이 계산될 필요가 없다는 점이 이용될 수 있다. 관심은 단지, 차동 렌더링 이후의 가시적 부분들, 예를 들어, 가시적인, 가상으로부터 실제로의 섀도우들 및 가시적 가상 부분들에 있을 수 있다. 단지 이러한 영역들의 경계들 가까이의 픽셀들만이 높은 품질을 가져야 한다. 따라서, 마지막 프레임으로부터의 차동 렌더링 결과는 또한, 부가되고, 가중치로서 현재 프레임으로 재투영될 수 있다. 이것은 아주 개략적(coarse) 해상도에서 수행될 수 있다. 다시 말해서, 차동 렌더링은 장면 내에서 렌더링하는데 어떤 것이 중요할 수 있는지 그리고 어떤 것이 중요하지 않을 수 있는지를 결정할 수 있다. 차동 렌더링에 있어서, 단지 가상 오브젝트만이 실세계 배경 상에서 렌더링될 수 있다.
지오메트리
버퍼들 및 안내된
필터링
[0059] 실제 장면의 지오메트리는 iso-표면 광선 트레이싱에 의해 보셀 그리드로부터 획득되지만, 가상 오브젝트들의 지오메트리는 다각형 형태로 명시적으로 주어질 수 있다. 장면의 지오메트리가 공지되고 이용가능할 수 있기 때문에, 현재 뷰에 대한 깊이 및 정상 버퍼가 계산될 수 있다. 이러한 지오메트리 버퍼들의 그라디언트(gradient) 이미지들이 계산되고, 이 정보는 2개의 목적들: (1) 가중 마스크에 대한 팩터로서(더 많은 샘플링이 깊이 또는 정상 불연속성들 가까이에 적용되어야 함) 그리고 (2) 분산에 대해 그리고 가시성 재구성 필터의 계산에서, 결합 양방향 필터링(joint bilateral filtering)에 대한 안내 버퍼로서 이용될 수 있다.
일시적
코히런스
[0060] 일반적으로, 카메라는 모든 각각의 프레임에서 이동 중일 수 있고, 결과적 이미지를 변화시킬 수 있다. 그러나, 카메라가 극도로 빠르게 이동 중이지 않을 수 있는 한, 이미지 내의 대부분의 정보는 유효하게 유지될 것이다. 따라서, 그것은 이전 프레임(렌더 캐시(render cache))으로부터 현재 프레임으로 재투영될 수 있다. 역방향 재투영(reverse re-projection)의 표준 접근법을 이용하여, 현재 프레임으로부터의 픽셀은 이전 프레임으로 재투영된다. 재투영은 재투영된 깊이를 이전 프레임에 저장된 1과 비교함으로써 유효화될 수 있다. 픽셀이 성공적으로 재투영되는 경우, 페이로드(이전 프레임으로부터의 정보)는 추출되어 재이용될 수 있다. 재투영이 (예를 들어, 폐색해제(disocclusion)의 경우) 성공적이지 않은 경우, 페이로드는 스크래치로부터 계산되어야 한다.
[0061] 일부 실시예들에서, SH 계수들은 페이로드로서 가능하게 대응하는 분산과 함께 재이용될 수 있다. 캐싱의 2개의 레벨들, 즉, 이미지 공간에서의 SH 및 오브젝트 공간에서의 비트 벡터들이 이용되고 있기 때문에, 캐시 미스들의 2개의 레벨들이 존재한다. 어떠한 페이로드도 이미지 공간 내에서 발견되지 않는 경우, 오브젝트 공간에서의 대응하는 보셀은 비트 벡터로서의 가시성이 이미 여기에 저장되었는지 여부를 결정하기 위해 검사될 수 있다. 비트 벡터가 발견되는 경우, 비트 벡터는 SH를 빨리 재계산하기 위해 이용될 수 있고, 그렇지 않은 경우, 일부 가시성 광선-트레이싱은 먼저 비트 벡터를 초기화하도록 수행되어야 한다.
[0062] 카메라가 위치로부터 멀어지게 이동하며, 이후에 위치로 다시 이동하는 경우, 위치에 대응하는 SH 계수들은 손실될 수 있다. 그러나, 비트 벡터들은 오브젝트 공간에서 캐싱되는 것으로 유지될 수 있으며, 재이용될 수 있다.
[0063] 재투영이 캐시로부터의 2중 선형 보간법과 결합하여 통상적으로 수행될 수 있기 때문에, 많은 반복된 재투영들은 에러들을 누적할 수 있다. 따라서, 에이지 속성(age attribute)이 캐시에 할당될 수 있고, 이는 지수 감쇠 함수를 따르는 모든 각각의 재투영에 의해 증가될 수 있다. 올드 에이지(old age)는 가중 마스크에 강하게 기여한다. 에이지는 또한, 더 이전의(older) 샘플들이 필터링에서 덜 가중되는 재구성 필터링에서 가중 팩터로서 이용될 수 있다.
변화하는
지오메트리
[0064] 특정 SDK 알고리즘들(예를 들어, KinectFusion)은 볼류메트릭 형태로 실제 장면을 표현하는 보셀 그리드를 업데이트하기 위해 깊이 이미지들의 유입 스트림을 계속적으로 평가할 수 있다. 보셀이 업데이트될 수 있을 때마다, (RT가 또한 근접한 보셀들에 대해 변화할 것이기 때문에) 타당한 크기 이웃에서의 모든 보셀들 및 업데이트된 보셀에 대한 연관된 비트 벡터에 저장될 수 있는 임의의 가시성 샘플링 정보는 유효화될 수 있다. 동일한 것이 가상 오브젝트가 이동하는 경우에 수행될 수 있다.
[0065] 오브젝트 공간에서의 비트 벡터들을 유효화하는 것과 더불어, 이미지 공간에서의 지오메트리 변화가 또한 반영되어야 한다(이것은 캐시 라이트-쓰루 전략(write-through strategy)으로서 나타날 수 있음). 즉, 비트 벡터들에 대응하는 SH 계수들이 또한 리셋된다.
[0066] 도 4는 프로브가 적은 포토메트릭 등록 파이프라인의 단계들을 예시하는 일반적 흐름도(400)이다. 추정의 코어 부분은 1차 방정식 시스템 Ay= b의 어셈블리일 수 있고, 여기서, A는 방사 전달을 표현하고, b는 카메라 이미지로부터의 반사 관측들을 갖는 벡터이며, y는 추정된 환경 라이트이다. 도 4에 도시된 바와 같이, 제 1 단계(410)는 카메라 이미지를 획득하는 단계일 수 있다. 카메라 이미지는 디바이스(100) 상의 카메라(110)에 의해 캡처될 수 있다. 카메라 이미지는 실세계 장면을 도시할 수 있다. 실세계 장면의 지오메트리는 그 다음, 캡처된 적어도 하나의 비디오 프레임에 기초하여 깊이 정보(430)를 이용함으로써 재구성될 수 있다(420). 일부 실시예들에서, 카메라는 환경 재구성에서 유용한 깊이 정보를 계산하는 또 다른 소스, 예를 들어, 외부 카메라 또는 모바일 디바이스로부터 깊이 정보를 공급받을 수 있다. 그 다음, 방사 전달 계산(440)은 방사 전달을 획득하기 위해 계산될 수 있다. 방사 전달 계산은 위에서 설명된 효율적 방사 전달 샘플링 방법을 이용하여 계산될 수 있다. 그 다음, 라이트 추정(450)은 실세계 장면 상에서 수행되고, 실세계 장면 내에서 AR의 조명(460)(예를 들어, 가상 오브젝트)을 결정하기 위해 방사 전달 계산(440)과 결합될 수 있다.
[0067] 위에서 설명된 효율적 방사 전달 샘플링 방법은 기존의 솔루션들보다 다수의 이익들을 제공한다. 첫째, 확산 조명 환경의 추정이 증강 현실에서 가시적 코히런트 렌더링을 지원한다. 가상 오브젝트들이 실세계 조명에 의해 비추어질 수 있다. 추가로, 실세계 데이터(카메라 이미지)로의 가상 데이터의 현실적 통합에 대한 지원이 존재할 수 있다. 반사 거울 공들과 같은 어떠한 특수한 라이트 프로브들도 필요하지 않다. 더욱이, 방법은 실시간으로 이용될 수 있으며, 임의의 형태의 수동 입력을 요구하지 않는다.
[0068] 둘째, 상이한 큐들, 이를테면, 지오메트리, 폐색 및 라이트 추정에 기초한 적응형 샘플링을 이용한 시간이 지남에 따른 가시성 공간 및 스크린에서의 샘플링은 기존의 솔루션들보다 개선된다. 또한, 이미지에서의 광선 캐싱 및 세계 공간이 또한 개선된다.
[0069] 셋째, 성능은 카메라 이미지로부터의 상호-반사들 및 섀도우 맵들의 고주파수 섀도윙 계산과 같은 추가적 증강 현실 조명 방법들에 대한 실현된 프리 소스들을 개선한다.
[0070] 도 5는 증강 현실에 대한 방사 전달 샘플링에 대한 예시적 동작을 도시하는 예시적 흐름도이다. 블록(502)에서, 환경의 적어도 하나의 비디오 프레임이 수신된다. 적어도 하나의 비디오 프레임은 모바일 디바이스 내의 스테레오 카메라 디바이스에 의해 캡처될 수 있다. 예를 들어, 도 2에서, 카메라는 적어도 하나의 비디오 프레임을 캡처할 수 있다. 그 다음, 캡처된 적어도 하나의 비디오 프레임은 추가적 프로세싱을 위해 디바이스(100) 내의 프로세서 또는 또 다른 모듈로 중계될 수 있다. 일부 실시예들에서, 원하는 경우, 단안 카메라 시스템, 스테레오 카메라 시스템 또는 깊이 센서를 갖는 카메라, 즉, RGBD 카메라가 또한 이용될 수 있다.
[0071] 블록(504)에서, 환경의 표면 재구성이 생성된다. 일부 실시예들에서, 환경의 표면 재구성을 생성하는 것은 적어도 하나의 비디오 프레임, 스테레오 카메라로부터의 이미지들 또는 깊이 카메라로부터의 깊이 이미지를 이용하여 수행된다. 예를 들어, 도 2에서, 표면 재구성 유닛(191)은 카메라로부터 캡처된 적어도 하나의 비디오 프레임을 이용하여 환경의 표면 재구성을 생성할 수 있다. 일부 실시예들에서, 환경의 표면 재구성은, 예를 들어, 단안 카메라 시스템으로부터의 다수의 비디오 프레임들, 스테레오 카메라로부터의 이미지들을 이용하여 또는 깊이 센서를 갖는 카메라로부터의 깊이 데이터를 이용하여 생성될 수 있다.
[0072] 블록(506)에서, 복수의 광선들은 표면 재구성 내에서 투영된다. 예를 들어, 도 3에서, 카메라 또는 관점은 표면 재구성 내에서 가상 오브젝트 및 실세계 오브젝트를 향해 복수의 광선들을 투영시킨다. 광선들의 투영은, 지오메트리의 표면을 결정하고 표면 포인트들의 반사(이미지 강도들)를 측정하기 위해 이용될 수 있다. 반사 측정들은 이미지 공간 내에 있다. 광선이 (예를 들어, 실세계 오브젝트의 표면에 대한 포인트 x 및 가상 세계 오브젝트의 표면에 대한 포인트 z에서) 표면을 히팅(hit)하면, 알고리즘은 스피어를 균일하게 샘플링하는 상이한 방향들에서 광선을 전송함으로써 가시성 V(x)에 대해 테스트한다. 이것은 가시성 공간이라 칭해진다. 유사한 프로세스는 가시성 V(z)를 테스트하기 위해 수행될 수 있다.
[0073] 블록(508)에서, 환경의 조도 데이터는 적어도 하나의 비디오 프레임으로부터 생성된다. 일부 실시예들에서, 조도 데이터를 생성하는 것은 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하는 것을 포함한다. 조도 데이터를 생성하는 것은 또한, 조도 데이터를 추출하기 위해 강도 컴포넌트들의 잡음을 제거하는 것을 포함할 수 있다. 조도 데이터는 조도 데이터 유닛에 의해 생성될 수 있다. 조도 데이터는 조도 데이터를 생성하기 위해 강도 컴포넌트들을 이용하여 생성될 수 있다.
[0074] 블록(510)에서, 환경에서의 복수의 광선들로부터 광선들의 서브세트가 결정될 수 있다. 결정은 정제가 필요한 섀도우 영역들 및 에지들에 기초하여 수행될 수 있다. 일부 실시예들에서, 결정하는 것은 조명 및 차동 렌더링 기법들을 환경에 적용시키는 것 및 이들의 결과로서 섀도우 정보를 분석하는 것을 포함한다. 다른 실시예들에서, 결정하는 것은 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 것을 포함한다. 예를 들어, 도 3에서, 환경으로 투영된 복수의 광선들의 서브세트가 결정된다. 결정은 표면 재구성 내에서 정제가 필요한 섀도우 영역들 및 에지들에 기초하여 수행될 수 있다. 이러한 영역들과 연관된 광선들은 광선들의 서브세트로서 식별될 수 있다.
[0075] 블록(512)에서, 가상 오브젝트는 광선들의 서브세트를 배제하는 복수의 광선들에 기초하여 비디오 프레임들 상에서 렌더링된다. 가상 오브젝트는 정제가 필요한 섀도우 영역들 또는 에지들과 연관된 광선들을 배제하는 광선들을 이용하여 렌더링될 수 있다.
[0076] 일부 실시예들에서, 환경의 추정된 조명 조건들은 표면 재구성 및 조도 데이터에 기초하여 각각의 비디오 프레임에서 생성될 수 있다. 생성은 조명 추정 유닛(195)을 이용하여 수행될 수 있다. 조명 조건들은 표면 재구성에 기초하여 환경에 대한 방사 전달을 생성하고, 방사 전달의 압축된 전달 함수를 생성함으로써, 예를 들어, 방사 전달을 SH 기반 함수들로 투영시킴으로써 추정될 수 있다. 그 다음, 조명 조건들은 조명 조건들을 추정하기 위해 RT의 압축된 전달 함수 및 조도 데이터를 이용하여 추정될 수 있다.
[0077] 일부 실시예들에서, 광선들의 서브세트와 연관된 일시적 코히런스 정보는 2-레벨 계층적 캐시에 저장될 수 있고, 여기서, 제 1 레벨은 스크린 공간에 정보를 저장하고, 제 2 레벨은 오브젝트 공간에 정보를 저장한다.
[0078] 위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 실시예들은 적절하게 다양한 프로시저들 또는 컴포넌트들을 생략, 치환 또는 부가할 수 있다. 예를 들어, 대안적 구성들에서, 설명된 방법들은 설명된 것과 상이한 순서로 수행될 수 있고, 그리고/또는 다양한 스테이지들이 부가, 생략 및/또는 결합될 수 있다. 또한, 특정 실시예들에 관하여 설명된 특징들은 다양한 다른 실시예들에서 결합될 수 있다. 실시예들의 상이한 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 또한, 기술은 진화하고, 따라서, 많은 엘리먼트들이 이 특정 예들에 대한 본 개시의 범위를 제한하지 않는 예들이다.
[0079] 특정 세부사항들이 실시예들의 완전한 이해를 제공하기 위해 설명에 주어진다. 그러나, 실시예들은 이러한 특정 세부사항들 없이 실시될 수 있다. 예를 들어, 공지된 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 실시예들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 나타낸다. 이러한 설명은 단지 예시적 실시예들만을 제공하며, 본 발명의 범위, 적용가능성 또는 구성을 제한하는 것으로 의도되지 않는다. 오히려, 실시예들의 상기 설명은 본 발명의 실시예들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 본 발명의 사상 및 범위로부터 벗어나지 않으면서 엘리먼트들의 배열 및 기능에서 다양한 변화들이 이루어질 수 있다.
[0080] 또한, 일부 실시예들은 흐름도들 또는 블록도들로서 도시되는 프로세스들로서 설명된다. 각각은 순차적 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 프로세스는 도면들에 포함되지 않는 추가적 단계들을 가질 수 있다. 게다가, 방법들의 실시예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술어들 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로 코드로 구현될 때, 연관된 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 컴퓨터 판독가능한 매체에 저장될 수 있다. 프로세서들은 연관된 태스크들을 수행할 수 있다. 따라서, 위에서의 설명에서, 컴퓨터 시스템에 의해 수행되는 바와 같이 설명된 기능들 또는 방법들은 기능들 또는 방법들을 수행하도록 구성되는 프로세서 - 예를 들어, 프로세서(604) - 에 의해 수행될 수 있다. 추가로, 이러한 기능들 또는 방법들은 하나 또는 둘 이상의 컴퓨터 판독가능한 매체들 상에서 저장된 명령들을 실행하는 프로세서에 의해 수행될 수 있다.
[0081] 몇몇 실시예들을 설명하였지만, 본 개시의 사상으로부터 벗어나지 않고 다양한 변경들, 대안적 구성들 및 등가물들이 이용될 수 있다. 예를 들어, 위의 엘리먼트들은 단지 더 큰 시스템의 컴포넌트일 수 있으며, 여기서 다른 규칙들이 본 발명의 애플리케이션보다 우선할 수도 있고 또는 그렇지 않으면 애플리케이션을 변경할 수도 있다. 또한, 다수의 단계들이 위의 엘리먼트들이 고려되기 이전에, 고려되는 동안에 또는 고려된 이후에 착수될 수 있다. 따라서, 위의 설명은 본 개시의 범위를 제한하지 않는다.
[0082] 다양한 예들이 설명되었다. 이러한 그리고 다른 예들은 다음의 청구항들의 범위 내에 있다.
Claims (30)
- 방법으로서,
환경의 적어도 하나의 비디오 프레임을 수신하는 단계;
상기 환경의 표면 재구성을 생성하는 단계;
상기 환경의 표면 재구성 내에서 복수의 광선들을 투영시키는 단계;
상기 적어도 하나의 비디오 프레임으로부터 상기 환경의 조도 데이터를 생성하는 단계;
정제(refinement)가 필요한 환경 내의 영역들에 기초하여 상기 환경에서 상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계; 및
상기 광선들의 서브세트를 배제하는 상기 복수의 광선들에 기초하여 상기 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하는 단계를 포함하는,
방법. - 제 1 항에 있어서,
상기 정제가 필요한 환경 내의 영역들은 섀도우(shadow) 영역들, 표면 에지들 및 섀도우 에지들을 포함하는,
방법. - 제 1 항에 있어서,
상기 표면 재구성 및 상기 조도 데이터에 기초하여 상기 적어도 하나의 비디오 프레임에서 상기 환경의 추정된 실세계 조명 데이터를 생성하는 단계를 더 포함하는,
방법. - 제 1 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계는, 조명 및 차동 렌더링 기법들을 상기 환경에 적용시키는 단계 및 이의 결과로서 섀도우 정보를 분석하는 단계를 포함하는,
방법. - 제 1 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 단계는, 상기 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 단계를 포함하는,
방법. - 제 1 항에 있어서,
2-레벨 계층 캐시에 상기 광선들의 서브세트와 연관된 일시적 코히런스 정보를 저장하는 단계를 더 포함하고,
제 1 레벨은 스크린 공간에 상기 정보를 저장하고,
제 2 레벨은 오브젝트 공간에 상기 정보를 저장하는,
방법. - 제 1 항에 있어서,
상기 조도 데이터를 생성하는 단계는,
상기 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하는 단계; 및
상기 조도 데이터를 추출하기 위해 상기 강도 컴포넌트들의 잡음을 제거하는 단계를 포함하는,
방법. - 제 1 항에 있어서,
상기 환경의 표면 재구성을 생성하는 단계는 상기 적어도 하나의 비디오 프레임을 이용하여 수행되는,
방법. - 장치로서,
카메라;
메모리; 및
상기 카메라에 의해 캡처된 환경의 적어도 하나의 비디오 프레임을 수신하기 위해 상기 메모리에 커플링된 프로세서를 포함하고,
상기 프로세서는,
상기 환경의 표면 재구성을 생성하고;
상기 환경의 표면 재구성 내에서 복수의 광선들을 투영시키고;
상기 적어도 하나의 비디오 프레임으로부터 상기 환경의 조도 데이터를 생성하고;
정제가 필요한 환경 내의 영역들에 기초하여 상기 환경에서 상기 복수의 광선들로부터의 광선들의 서브세트를 결정하고; 그리고
상기 광선들의 서브세트를 배제하는 상기 복수의 광선들에 기초하여 상기 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하도록 구성되는,
장치. - 제 9 항에 있어서,
상기 정제가 필요한 환경 내의 영역들은 섀도우 영역들, 표면 에지들 및 섀도우 에지들을 포함하는,
장치. - 제 9 항에 있어서,
상기 프로세서는 상기 표면 재구성 및 상기 조도 데이터에 기초하여 상기 적어도 하나의 비디오 프레임에서 상기 환경의 추정된 실세계 조명 데이터를 생성하도록 추가로 구성되는,
장치. - 제 9 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 것은, 조명 및 차동 렌더링 기법들을 상기 환경에 적용시키는 것 및 이의 결과로서 섀도우 정보를 분석하는 것을 포함하는,
장치. - 제 9 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 것은, 상기 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 것을 포함하는,
장치. - 제 9 항에 있어서,
상기 프로세서는 2-레벨 계층 캐시에 상기 광선들의 서브세트와 연관된 일시적 코히런스 정보를 저장하도록 추가로 구성되고,
제 1 레벨은 스크린 공간에 상기 정보를 저장하고,
제 2 레벨은 오브젝트 공간에 상기 정보를 저장하는,
장치. - 제 9 항에 있어서,
상기 조도 데이터를 생성하는 것은,
상기 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하는 것; 및
상기 조도 데이터를 추출하기 위해 상기 강도 컴포넌트들의 잡음을 제거하는 것을 포함하는,
장치. - 제 9 항에 있어서,
상기 환경의 표면 재구성을 생성하는 것은 상기 적어도 하나의 비디오 프레임을 이용하여 수행되는,
장치. - 장치로서,
환경의 적어도 하나의 비디오 프레임을 수신하기 위한 수단;
상기 환경의 표면 재구성을 생성하기 위한 수단;
상기 환경의 표면 재구성 내에서 복수의 광선들을 투영시키기 위한 수단;
상기 적어도 하나의 비디오 프레임으로부터 상기 환경의 조도 데이터를 생성하기 위한 수단;
정제가 필요한 환경 내의 영역들에 기초하여 상기 환경에서 상기 복수의 광선들로부터의 광선들의 서브세트를 결정하기 위한 수단; 및
상기 광선들의 서브세트를 배제하는 상기 복수의 광선들에 기초하여 상기 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하기 위한 수단을 포함하는,
장치. - 제 17 항에 있어서,
상기 정제가 필요한 환경 내의 영역들은 섀도우 영역들, 표면 에지들 및 섀도우 에지들을 포함하는,
장치. - 제 17 항에 있어서,
상기 표면 재구성 및 상기 조도 데이터에 기초하여 상기 적어도 하나의 비디오 프레임에서 상기 환경의 추정된 실세계 조명 데이터를 생성하기 위한 수단을 더 포함하는,
장치. - 제 17 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하기 위한 수단은, 조명 및 차동 렌더링 기법들을 상기 환경에 적용시키는 것 및 이의 결과로서 섀도우 정보를 분석하는 것을 포함하는,
장치. - 제 17 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하기 위한 수단은, 상기 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 것을 포함하는,
장치. - 제 17 항에 있어서,
2-레벨 계층 캐시에 상기 광선들의 서브세트와 연관된 일시적 코히런스 정보를 저장하기 위한 수단을 더 포함하고,
제 1 레벨은 스크린 공간에 상기 정보를 저장하고,
제 2 레벨은 오브젝트 공간에 상기 정보를 저장하는,
장치. - 제 17 항에 있어서,
상기 조도 데이터를 생성하기 위한 수단은,
상기 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하기 위한 수단; 및
상기 조도 데이터를 추출하기 위해 상기 강도 컴포넌트들의 잡음을 제거하기 위한 수단을 포함하는,
장치. - 프로세서 판독가능한 명령들을 포함하는 프로세서 판독가능한 비-일시적 매체로서,
상기 명령들은, 프로세서로 하여금,
환경의 적어도 하나의 비디오 프레임을 수신하게 하고;
상기 환경의 표면 재구성을 생성하게 하고;
상기 환경의 표면 재구성 내에서 복수의 광선들을 투영시키게 하고;
상기 적어도 하나의 비디오 프레임으로부터 상기 환경의 조도 데이터를 생성하게 하고;
정제가 필요한 환경 내의 영역들에 기초하여 상기 환경에서 상기 복수의 광선들로부터의 광선들의 서브세트를 결정하게 하고; 그리고
상기 광선들의 서브세트를 배제하는 상기 복수의 광선들에 기초하여 상기 적어도 하나의 비디오 프레임 상에서 가상 오브젝트를 렌더링하게 하도록 구성되는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 정제가 필요한 환경 내의 영역들은 섀도우 영역들, 표면 에지들 및 섀도우에지들을 포함하는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 프로세서 판독가능한 명령들은, 상기 프로세서로 하여금, 상기 표면 재구성 및 상기 조도 데이터에 기초하여 상기 적어도 하나의 비디오 프레임에서 상기 환경의 추정된 실세계 조명 데이터를 생성하게 하도록 추가로 구성되는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 것은, 조명 및 차동 렌더링 기법들을 상기 환경에 적용시키는 것 및 이의 결과로서 섀도우 정보를 분석하는 것을 포함하는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 복수의 광선들로부터의 광선들의 서브세트를 결정하는 것은, 상기 복수의 광선들 및 근사화된 분산 분석을 포함하는 광선 공간의 4-D 세분화 중 적어도 하나에 기초하여 적응형 샘플링 기법들을 적용시키는 것을 포함하는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 프로세서 판독가능한 명령들은, 상기 프로세서로 하여금, 2-레벨 계층 캐시에 상기 광선들의 서브세트와 연관된 일시적 코히런스 정보를 저장하게 하도록 추가로 구성되고,
제 1 레벨은 스크린 공간에 상기 정보를 저장하고,
제 2 레벨은 오브젝트 공간에 상기 정보를 저장하는,
프로세서 판독가능한 비-일시적 매체. - 제 24 항에 있어서,
상기 조도 데이터를 생성하는 것은,
상기 적어도 하나의 비디오 프레임을 강도 컴포넌트들 및 컬러 컴포넌트들로 변환하는 것; 및
상기 조도 데이터를 추출하기 위해 상기 강도 컴포넌트들의 잡음을 제거하는 것을 포함하는,
프로세서 판독가능한 비-일시적 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361815692P | 2013-04-24 | 2013-04-24 | |
US61/815,692 | 2013-04-24 | ||
US14/189,838 US10062210B2 (en) | 2013-04-24 | 2014-02-25 | Apparatus and method for radiance transfer sampling for augmented reality |
US14/189,838 | 2014-02-25 | ||
PCT/US2014/018775 WO2014175958A1 (en) | 2013-04-24 | 2014-02-26 | Apparatus and method for radiance transfer sampling for augmented reality |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160002994A true KR20160002994A (ko) | 2016-01-08 |
KR101933860B1 KR101933860B1 (ko) | 2018-12-31 |
Family
ID=51788883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157033153A KR101933860B1 (ko) | 2013-04-24 | 2014-02-26 | 증강 현실에 대한 방사 전달 샘플링을 위한 장치 및 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10062210B2 (ko) |
EP (1) | EP2989614B1 (ko) |
JP (1) | JP6356784B2 (ko) |
KR (1) | KR101933860B1 (ko) |
CN (1) | CN105144245B (ko) |
WO (1) | WO2014175958A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190043590A (ko) * | 2017-03-09 | 2019-04-26 | 플렉스-브이알 디지털 테크놀로지 (상하이) 씨오., 엘티디. | 가상 광선 추적 방법 및 라이트 필드 동적 리포커싱 디스플레이 시스템 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7239345B1 (en) * | 2001-10-12 | 2007-07-03 | Worldscape, Inc. | Camera arrangements with backlighting detection and methods of using same |
US10229526B2 (en) * | 2014-03-13 | 2019-03-12 | Imagination Technologies Limited | Rendering of soft shadows |
EP3123449B1 (en) * | 2014-03-25 | 2020-01-01 | Apple Inc. | Method and system for representing a virtual object in a view of a real environment |
CN106575450B (zh) * | 2014-05-13 | 2019-07-26 | 河谷控股Ip有限责任公司 | 通过反照率模型、系统和方法的增强现实内容渲染 |
WO2018014045A2 (en) * | 2016-07-15 | 2018-01-18 | Light Field Lab, Inc. | Method of calibration for holographic energy directing systems |
EP3485322A4 (en) | 2016-07-15 | 2020-08-19 | Light Field Lab, Inc. | SELECTIVE PROPAGATION OF ENERGY IN A LUMINOUS FIELD AND HOLOGRAPHIC WAVE GUIDE NETWORKS |
JP6899915B2 (ja) * | 2017-03-03 | 2021-07-07 | インターグラフ コーポレイションIntergraph Corporation | 標高データグリッドのためのシャドウキャスティング |
EP3503037A1 (en) * | 2017-12-24 | 2019-06-26 | Dassault Systèmes | Visibility function of a three-dimensional scene |
JP7274682B2 (ja) | 2018-01-14 | 2023-05-17 | ライト フィールド ラボ、インコーポレイテッド | 3d環境からデータをレンダリングするためのシステムおよび方法 |
US11163176B2 (en) | 2018-01-14 | 2021-11-02 | Light Field Lab, Inc. | Light field vision-correction device |
KR20200116941A (ko) | 2018-01-14 | 2020-10-13 | 라이트 필드 랩 인코포레이티드 | 정렬된 구조를 사용해 에너지 릴레이의 횡방향 에너지 편재를 위한 시스템 및 방법 |
WO2019140398A1 (en) | 2018-01-14 | 2019-07-18 | Light Field Lab, Inc. | Holographic and diffractive optical encoding systems |
CN108305328A (zh) * | 2018-02-08 | 2018-07-20 | 网易(杭州)网络有限公司 | 虚拟物体渲染方法、系统、介质和计算设备 |
US10898818B2 (en) | 2018-07-25 | 2021-01-26 | Light Field Lab, Inc. | Light field display system based amusement park attraction |
US11244493B2 (en) * | 2018-07-26 | 2022-02-08 | Nvidia Corporation | Global illumination using shared lighting contributions for interactions in path tracing |
US10909373B1 (en) | 2018-08-24 | 2021-02-02 | Snap Inc. | Augmented reality system using structured light |
US10930049B2 (en) | 2018-08-27 | 2021-02-23 | Apple Inc. | Rendering virtual objects with realistic surface properties that match the environment |
US10904479B2 (en) | 2019-03-12 | 2021-01-26 | Light Field Lab, Inc. | Video communication including holographic content |
US11212514B2 (en) | 2019-03-25 | 2021-12-28 | Light Field Lab, Inc. | Light field display system for cinemas |
US11428933B2 (en) | 2019-05-13 | 2022-08-30 | Light Field Lab, Inc. | Light field display system for performance events |
KR20220045166A (ko) | 2019-08-09 | 2022-04-12 | 라이트 필드 랩 인코포레이티드 | 라이트필드 디스플레이 시스템 기반 디지털 사이니지 시스템 |
US10981046B2 (en) * | 2019-08-26 | 2021-04-20 | Light Field Lab, Inc. | Light field display system for sporting events |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488700A (en) | 1993-07-30 | 1996-01-30 | Xerox Corporation | Image rendering system with local, adaptive estimation of incident diffuse energy |
US6628298B1 (en) * | 1998-07-17 | 2003-09-30 | The Regents Of The University Of California | Apparatus and method for rendering synthetic objects into real scenes using measurements of scene illumination |
US7164420B2 (en) | 2003-07-24 | 2007-01-16 | Autodesk, Inc. | Ray tracing hierarchy |
US7382369B2 (en) | 2003-10-10 | 2008-06-03 | Microsoft Corporation | Systems and methods for robust sampling for real-time relighting of objects in natural lighting environments |
US20090109240A1 (en) | 2007-10-24 | 2009-04-30 | Roman Englert | Method and System for Providing and Reconstructing a Photorealistic Three-Dimensional Environment |
US9082213B2 (en) | 2007-11-07 | 2015-07-14 | Canon Kabushiki Kaisha | Image processing apparatus for combining real object and virtual object and processing method therefor |
JP4999711B2 (ja) | 2007-11-07 | 2012-08-15 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
US8223148B1 (en) | 2007-11-12 | 2012-07-17 | Adobe Systems Incorporated | Method and apparatus for computing indirect lighting for global illumination rendering in 3-D computer graphics |
US20120120071A1 (en) | 2010-07-16 | 2012-05-17 | Sony Ericsson Mobile Communications Ab | Shading graphical objects based on face images |
-
2014
- 2014-02-25 US US14/189,838 patent/US10062210B2/en active Active
- 2014-02-26 WO PCT/US2014/018775 patent/WO2014175958A1/en active Application Filing
- 2014-02-26 CN CN201480021107.2A patent/CN105144245B/zh active Active
- 2014-02-26 JP JP2016510671A patent/JP6356784B2/ja active Active
- 2014-02-26 KR KR1020157033153A patent/KR101933860B1/ko active IP Right Grant
- 2014-02-26 EP EP14713282.3A patent/EP2989614B1/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190043590A (ko) * | 2017-03-09 | 2019-04-26 | 플렉스-브이알 디지털 테크놀로지 (상하이) 씨오., 엘티디. | 가상 광선 추적 방법 및 라이트 필드 동적 리포커싱 디스플레이 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20140320530A1 (en) | 2014-10-30 |
WO2014175958A1 (en) | 2014-10-30 |
EP2989614A1 (en) | 2016-03-02 |
US10062210B2 (en) | 2018-08-28 |
JP2016520908A (ja) | 2016-07-14 |
JP6356784B2 (ja) | 2018-07-11 |
CN105144245B (zh) | 2018-06-22 |
KR101933860B1 (ko) | 2018-12-31 |
CN105144245A (zh) | 2015-12-09 |
EP2989614B1 (en) | 2018-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101933860B1 (ko) | 증강 현실에 대한 방사 전달 샘플링을 위한 장치 및 방법 | |
TWI764974B (zh) | 使用一類神經網路過濾影像資料 | |
US10984556B2 (en) | Method and apparatus for calibrating relative parameters of collector, device and storage medium | |
US9578226B2 (en) | Photometric registration from arbitrary geometry for augmented reality | |
Lensing et al. | Instant indirect illumination for dynamic mixed reality scenes | |
US8803880B2 (en) | Image-based lighting simulation for objects | |
CN112184575B (zh) | 图像渲染的方法和装置 | |
US20150091931A1 (en) | Procedurally Defined Texture Maps | |
CN109191554B (zh) | 一种超分辨图像重建方法、装置、终端和存储介质 | |
US10832374B2 (en) | Image decomposition and path-space motion estimation | |
Bauer et al. | Fovolnet: Fast volume rendering using foveated deep neural networks | |
US20240177394A1 (en) | Motion vector optimization for multiple refractive and reflective interfaces | |
US8891857B2 (en) | Concave surface modeling in image-based visual hull | |
US20180176532A1 (en) | Systems and methods for computational zoom | |
Kolivand et al. | A quadratic spline approximation using detail multi-layer for soft shadow generation in augmented reality | |
US11615594B2 (en) | Systems and methods for reconstruction of dense depth maps | |
US11508119B2 (en) | Inverse path tracing for material and lighting estimation | |
CN109685882B (zh) | 在渲染中将光场作为更好的背景 | |
EP2831836A1 (en) | Flexible defocus blur for stochastic rasterization | |
EP3557532A1 (en) | Device and method for scene rendering with a depth-of-field effect | |
CN115311413A (zh) | 一种基于光流和时流的成像方法、装置及电子设备 | |
CN117058277A (zh) | 虚拟对象三维模型的生成方法、装置、介质与电子设备 | |
US20110249012A1 (en) | Computing the irradiance from a disk light source at a receiver point |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |