KR20220154780A - 3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법 - Google Patents

3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220154780A
KR20220154780A KR1020227035807A KR20227035807A KR20220154780A KR 20220154780 A KR20220154780 A KR 20220154780A KR 1020227035807 A KR1020227035807 A KR 1020227035807A KR 20227035807 A KR20227035807 A KR 20227035807A KR 20220154780 A KR20220154780 A KR 20220154780A
Authority
KR
South Korea
Prior art keywords
objects
scene
plane
camera
video
Prior art date
Application number
KR1020227035807A
Other languages
English (en)
Inventor
허치 루
파트리스 힐츠린.
프랑수아-루이스 타리올레
머완 아치벳
Original Assignee
인터디지털 씨이 페이튼트 홀딩스, 에스에이에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스 filed Critical 인터디지털 씨이 페이튼트 홀딩스, 에스에이에스
Publication of KR20220154780A publication Critical patent/KR20220154780A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3D 장면을 렌더링하기 위한 방법 및 시스템이 개시된다. 3D 장면 내의 객체들에 대한 파라미터들의 세트가 식별된다. 객체들은 파라미터들의 식별된 세트에 기초하여 그룹화되고, 객체 유형에 기초한 객체들의 중간 구조 그룹을 위한 공간 경계들이 결정된다. 중간 구조의 공간 경계의 각각의 평면에 대한 조명 기여는 3D 장면 내의 객체들을 위해 결정된다. 이어서, 3D 장면은 장면 내의 각각의 객체를 위한 중간 구조의 결정된 공간 경계 및 조명 기여에 기초하여 렌더링된다.

Description

3D 환경에서의 실시간 광선 추적을 위한 시스템 및 방법
본 개시내용은 대체적으로 증강 현실(augmented reality, AR) 응용들에 관한 것이다. 적어도 하나의 실시예는, 예를 들어 3D 환경의 라이브-비디오 피드와 같은, 비디오 내의 가상 객체들의 배치에 관한 것이다.
전통적으로, 광선 추적은, 애니메이션화된 영화들의 제작 또는 상이한 재료들에서 광의 거동을 더 충실하게 모델링하는 2D 이미지들의 생성과 같은 고품질 비실시간 그래픽 렌더링 태스크들에 사용되는 기법이다. 일례로서, 광선 추적은 조명 효과들을 렌더링된 이미지들에 도입하는 것에 특히 적합하다. 장면 내의 객체들 상으로 광을 캐스팅하는 장면을 위해 광원들이 정의될 수 있다. 일부 객체들은 광원들로부터 다른 객체들을 폐색하여 장면에 섀도우들을 생성할 수 있다. 광선 추적 기법을 사용한 렌더링은 광원들의 효과들이 정확하게 렌더링될 수 있게 하는데, 이는 광선 추적이 장면에서 광의 거동을 모델링하도록 적응되기 때문이다.
광선 추적 렌더링 기법들은 종종, 특히 렌더링이 실시간으로 수행되기를 원하는 경우, 구현하기에 비교적 계산적으로 비싸고 메모리 집약적이다. 추가적으로, 비평면, 유광 또는 굴절성 객체들의 경우, 그러한 광선 추적된 객체들에 대해 얻은 색상 정보에 기초하여, 유의한 에러들이 장면 내에 도입될 수 있다. 이와 같이, 광선 추적 기법들은 휴대폰, 태블릿, 디스플레이를 위한 AR 글래스, 및 비디오 캡처를 위한 내장형 카메라와 같은 디바이스들 상에서 구현하기가 어렵다. 본 명세서의 실시예들은 전술한 사항을 염두에 두고 고안되었다.
본 개시내용은 비디오의 3D 장면, 예를 들어 라이브-비디오 피드를 렌더링하기 위한 방법에 관한 것이다. 본 방법은, 예를 들어 휴대폰, 태블릿, 디스플레이를 위한 AR 글래스, 및 비디오 캡처를 위한 내장형 카메라와 같은 디바이스들 상에서의 구현을 고려할 수 있다.
본 개시내용의 제1 태양에 따르면, 비디오의 3D 장면을 렌더링하기 위한 방법이 제공되며, 본 방법은,
비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하는 단계;
상기 비디오의 3D 장면 내의 상기 하나 이상의 객체들 각각에 대한 파라미터들의 식별된 세트에 기초하여 하나 이상의 객체들을 그룹화하는 단계;
객체 유형에 기초하여 3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계를 결정하는 단계;
3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계의 각각의 평면에 대한 조명 기여를 결정하는 단계; 및
3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계의 각각의 평면에 대한 결정된 공간 경계 및 결정된 조명 기여에 기초하여 비디오의 상기 3D 장면을 렌더링하는 단계를 포함한다.
제안된 솔루션의 일반적인 원리는, 렌더링된 이미지들에 통합되는 객체들의 반사, 굴절 및 섀도잉(shadowing)과 같은 조명 효과들에 관한 것이다. 실제 객체들 상에서의 가상 객체의 고품질 반사는, 예를 들어 표면 조도 및 굴절률(안경과 같은 굴절성 객체들의 경우)과 같은 실제 객체 재료 파라미터들을 고려함으로써 얻어진다. 추가적으로, 실제 조명을 사용한 가상 객체들의 일관된 조명뿐만 아니라 실제 객체들 상의 대응하는 섀도우들의 캐스팅이 고려된다.
일 실시예에서, 조명 기여는, 방사성 객체(emissive objects)들을 위한 상기 공간 경계의 각각의 평면에 대한 가시성(visibility)을 결정하고, 비방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 색상 정보를 결정함으로써 결정된다.
일 실시예에서, 3D 장면의 렌더링은 카메라의 상기 중간 구조들에 대한 색상 정보를 결정하는 것을 추가로 포함한다.
일 실시예에서, 하나 이상의 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함한다.
일 실시예에서, 파라미터들의 세트는 비디오의 3D 장면에서의 객체 평탄도(planarity), 객체 굴절도 및 객체 중요도 중 적어도 하나를 포함한다.
일 실시예에서, 상기 비디오의 3D 장면 내의 상기 하나 이상의 객체들 중의 각각의 객체에 대한 영역이 결정된다. 결정된 영역은 하나 이상의 객체들 각각에 대한 경계 형상을 정의한다.
일 실시예에서, 객체 유형은 광, 카메라, 또는 다른 객체 중 하나이다.
일 실시예에서, 다른 객체는 평면 객체 및 비평면 객체 중 하나이다.
일 실시예에서, 중간 구조의 공간 경계는 세분된다.
일 실시예에서, 광을 위한 중간 구조의 공간 경계는 평면 또는 평면들의 세트이다.
일 실시예에서, 카메라를 위한 중간 구조의 공간 경계는 z-인근에 대응하는 평면이다.
일 실시예에서, 평면 객체를 위한 중간 구조의 공간 경계는 평면 객체에 대응하는 평면이다.
일 실시예에서, 비평면 객체를 위한 중간 구조의 공간 경계는 결정된 영역을 둘러싸는 평면들의 세트이다.
일 실시예에서, 렌더링은 카메라 광선, 반사 광선, 굴절 광선 및 섀도우 광선 중 적어도 하나를 사용한 광선 추적에 의해 수행된다.
본 개시내용의 제2 태양에 따르면, 비디오의 3D 장면을 렌더링하기 위한 시스템이 제공되며, 본 시스템은,
렌더링 디바이스; 및
적어도 하나의 하드웨어 프로세서를 포함하고, 적어도 하나의 프로세서는,
상기 비디오의 상기 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하도록;
상기 비디오의 상기 3D 장면 내의 상기 하나 이상의 객체들 각각에 대한 파라미터들의 식별된 세트에 기초하여 상기 하나 이상의 객체들을 그룹화하도록;
객체 유형에 기초하여 3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계를 결정하도록;
3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 상기 공간 경계의 각각의 평면에 대한 조명 기여를 결정하도록; 그리고
3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 상기 중간 구조의 상기 공간 경계의 각각의 평면에 대한 상기 결정된 공간 경계 및 상기 결정된 조명 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하도록 구성된다.
일 실시예에서, 조명 기여는, 방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 가시성을 결정하고, 비방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 색상 정보를 결정함으로써 결정된다.
일 실시예에서, 3D 장면은 카메라의 중간 구조들에 대한 색상 정보를 결정함으로써 렌더링된다.
일 실시예에서, 하나 이상의 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함한다.
일 실시예에서, 파라미터들의 세트는 비디오의 3D 장면에서의 객체 평탄도, 객체 굴절도 및 객체 중요도 중 적어도 하나이다.
일 실시예에서, 비디오의 상기 3D 장면 내의 상기 하나 이상의 객체들 중의 각각의 객체에 대한 영역이 결정된다. 결정된 영역은 하나 이상의 객체들 각각에 대한 경계 형상을 정의한다.
일 실시예에서, 객체 유형은 광, 카메라, 또는 다른 객체 중 하나이다.
일 실시예에서, 다른 객체는 평면 객체 및 비평면 객체 중 하나이다.
일 실시예에서, 중간 구조의 공간 경계는 세분된다.
일 실시예에서, 광을 위한 중간 구조의 공간 경계는 평면 또는 평면들의 세트이다.
일 실시예에서, 카메라를 위한 중간 구조의 공간 경계는 z-인근에 대응하는 평면이다.
일 실시예에서, 평면 객체를 위한 중간 구조의 공간 경계는 평면 객체에 대응하는 평면이다.
일 실시예에서, 비평면 객체를 위한 중간 구조의 공간 경계는 결정된 영역에 대응하는 평면들의 세트이다.
일 실시예에서, 장면은 카메라 광선, 반사 광선, 굴절 광선 및 섀도우 광선 중 적어도 하나를 사용한 광선 추적에 의해 렌더링된다.
본 개시내용의 제3 태양에 따르면, 비디오의 3D 장면을 렌더링하기 위한 방법이 제공되며, 본 방법은,
비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하는 단계;
식별된 파라미터들의 세트에 기초하여 3D 장면 내의 상기 하나 이상의 객체들을 위한 중간 구조들을 결정하는 단계;
대응하는 대체 객체에 기초하여 각각의 객체의 중간 구조들에 대한 색상 기여를 결정하는 단계; 및
중간 구조들의 상기 결정된 색상 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하는 단계를 포함한다.
이러한 제안된 솔루션의 일반적인 원리는 비디오의 3D 장면에서의 반사성/유광 및/또는 굴절성 객체들의 렌더링에 관한 것이다. 대체적인 객체들에 대한 고품질 반사는, 예를 들어 표면 조도 및 금속 표면과 같은 재료 파라미터들을 고려함으로써 달성된다. 추가적으로, 재료 굴절률을 고려함으로써 프리미티브(primitive) 형상들 또는 절차적 객체(procedural object)들에 대한 고품질 굴절이 달성된다.
일 실시예에서, 파라미터들의 세트는 객체 형상에 대한 복잡성, 반사성/굴절성 객체들에 대한 객체 위치 및/또는 거리, 및 환경 중요도 값 중 적어도 하나를 포함한다.
일 실시예에서, 환경 중요도 값은 3D 장면 내의 객체들로부터의 색상 기여와 관련된다.
일 실시예에서, 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함한다.
일 실시예에서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들에 의해 전달된다.
일 실시예에서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들 및 굴절 광선들에 의해 전달된다.
일 실시예에서, 3D 장면 내의 선택된 객체는 소스 객체이고, 3D 장면 내의 선택되지 않은 객체들은 타깃 객체들이다.
일 실시예에서, 소스 객체에 대한 대응하는 대체 객체는 프리미티브 형상을 갖는다.
일 실시예에서, 대응하는 대체 객체에 기초한 색상 기여는 가상 카메라 투영 파라미터들로부터 결정된다.
일 실시예에서, 가상 카메라 투영 파라미터들은 근거리 평면 거리, 원거리 평면 거리 및 시야(Field-of-View, FOV) 각도 중 적어도 하나를 포함한다.
본 개시내용의 제4 태양에 따르면, 비디오의 3D 장면을 렌더링하기 위한 디바이스가 제공되며, 본 디바이스는,
적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는,
비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하도록;
식별된 파라미터들의 세트에 기초하여 3D 장면 내의 상기 하나 이상의 객체들을 위한 중간 구조들을 결정하도록;
대응하는 대체 객체에 기초하여 각각의 객체의 중간 구조들에 대한 색상 기여를 결정하도록; 그리고
중간 구조들의 상기 결정된 색상 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하도록 구성된다.
일 실시예에서, 파라미터들의 세트는 객체 형상에 대한 복잡성, 반사성/굴절성 객체들에 대한 객체 위치 및/또는 거리, 및 환경 중요도 값 중 적어도 하나를 포함한다.
일 실시예에서, 환경 중요도 값은 3D 장면 내의 객체들로부터의 색상 기여와 관련된다.
일 실시예에서, 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함한다.
일 실시예에서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들에 의해 전달된다.
일 실시예에서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들 및 굴절 광선들에 의해 전달된다.
일 실시예에서, 3D 장면 내의 선택된 객체는 소스 객체이고, 3D 장면 내의 선택되지 않은 객체들은 타깃 객체들이다.
일 실시예에서, 소스 객체에 대한 대응하는 대체 객체는 프리미티브 형상을 갖는다.
일 실시예에서, 대응하는 대체 객체에 기초한 색상 기여는 가상 카메라 투영 파라미터들로부터 결정된다.
일 실시예에서, 가상 카메라 투영 파라미터들은 근거리 평면 거리, 원거리 평면 거리 및 시야(FOV) 각도 중 적어도 하나를 포함한다.
본 개시내용의 요소들에 의해 구현되는 일부 프로세스들은 컴퓨터 구현될 수 있다. 따라서, 그러한 요소들은, 전체적으로 하드웨어 실시예, 전체적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함함), 또는 소프트웨어 및 하드웨어 태양들을 조합하는 실시예의 형태를 취할 수 있으며, 이들은 모두 대체적으로, 본 명세서에서 "회로", "모듈" 또는 시스템으로 지칭될 수 있다. 더욱이, 그러한 요소들은 매체에서 구현되는 컴퓨터 사용가능한 프로그램 코드를 갖는 임의의 유형적(tangible) 표현 매체에서 구현되는 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
본 개시내용의 요소들이 소프트웨어로 구현될 수 있기 때문에, 본 개시내용은 임의의 적합한 반송 매체 상에서 프로그래밍가능 장치로의 제공을 위한 컴퓨터 판독가능 코드로서 구현될 수 있다. 유형적 반송 매체는 플로피 디스크, CD-ROM, 하드 디스크 드라이브, 자기 테이프 디바이스 또는 솔리드 스테이트 메모리 디바이스 등과 같은 저장 매체를 포함할 수 있다. 과도적 반송 매체는 전기 신호, 광학 신호, 음향 신호, 자기 신호 또는 전자기 신호, 예컨대 마이크로파 또는 RF 신호와 같은 신호를 포함할 수 있다.
실시예들의 다른 특징들 및 이점들은, 예시적이고 비배타적인 예들로 그리고 첨부된 도면으로부터 주어진, 하기의 설명으로부터 나타날 것이다.
도 1은 본 개시내용의 일 실시예에 따른, 비디오의 3D 장면을 렌더링하기 위한 예시적인 시스템을 도시한다.
도 2a는 실세계 3D 환경에서의 증강 현실(AR) 또는 혼합 현실(mixed reality, MR) 응용의 가상 객체의 렌더링을 위한 제안된 방법의 특정 실시예의 흐름도이다.
도 2b는 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 렌더링을 위한, 도 2a에 도시된 제안된 방법의 추가 실시예의 흐름도이다.
도 2c는 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 렌더링을 위한, 도 2b에 도시된 제안된 방법의 추가 실시예의 흐름도이다.
도 3은 전형적인 AR 장면을 캡처하는 실제 카메라의 위치뿐만 아니라 가상 카메라의 위치를 보여주는 예시이다.
도 4는 0의 객체 중요도 가중치를 갖는 객체들의 관련된 공유 그룹의 예시이다.
도 5는 1의 객체 중요도 가중치를 갖는 객체의 예시이다.
도 6은 2의 객체 중요도 가중치를 갖는 객체의 예시이다.
도 7은 비디오의 3D 장면 내의 객체들의 소프트 섀도잉(soft shadowing)을 지원하기 위해 면 광원(area light)의 표면 위에 위치된 가상 카메라들의 예시이다.
도 8은 도 3의 광의 중간 필드 구조에 대한 가시성 결정의 예시이다.
도 9는 현재 객체를 위한 중간 필드 구조(들)에 대한 색상 정보 결정의 흐름도이다.
도 10은 도 3에 도시된 실제 미러 평면에 대해, 도 9의 예시적인 흐름도에 따른, 중간 필드 구조에 대한 색상 정보 결정의 예시이다.
도 11은 도 3에 도시된 실제 유광 평면에 대해, 도 9의 예시적인 흐름도에 따른, 중간 필드 구조에 대한 색상 정보 결정의 예시이다.
도 12는 도 3에 도시된 가상 금속 캐릭터에 대해, 도 9의 예시적인 흐름도에 따른, 중간 필드 구조에 대한 색상 정보 결정의 예시이다.
도 13은 굴절성 객체에 대해, 하나의 가상 카메라를 사용한 이미지들의 생성에 대한 흐름도이다.
도 14는 도 3에 도시된 어항에 대해, 도 13의 예시적인 흐름도에 따른, 중간 필드 구조에 대한 색상 정보 결정의 예시이다.
도 15는 비굴절성 객체에 대해, 색상 정보를 얻기 위한 흐름도이다.
도 16은 도 3에 도시된 유광 평면에 대해, 도 15의 흐름도에 따른, 비굴절성 객체에 대한 색상 정보를 얻기 위한 예시이다.
도 17은 굴절성 객체에 대해, 색상 정보를 얻기 위한 흐름도이다.
도 18은 도 3에 도시된 어항에 대해, 도 17의 흐름도에 따른, 굴절성 객체에 대한 색상 정보를 얻기 위한 예시이다.
도 19는 섀도우 정보의 회수(retrieval)를 위한 흐름도이다.
도 20은 도 3의 어항에 대해, 도 19의 흐름도에 따른, 섀도우 정보의 회수를 위한 예시이다.
도 21은 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 렌더링을 위한 제안된 방법의 다른 특정 실시예의 흐름도이다.
도 22는 전형적인 AR 장면을 캡처하는 실제 카메라의 위치뿐만 아니라 가상 카메라의 위치를 보여주는 예시이다.
도 23은 대응하는 (프록시) 객체와 함께 3D 장면 내의 선택된 객체(들)를 위한 중간 구조(들)의 공간 경계들의 결정을 위한 흐름도이다.
도 24는 중간 구조 이미지를 생성하기 위한 가상 카메라 배치들과 함께 소스 및 타깃 객체들을 보여주는 예시이다.
도 25는 카메라 투시 투영에 대한 가상 카메라 근거리 평면 거리 결정을 보여주는 예시이다.
도 26은 카메라 투시 투영에 대한 가상 카메라 시야(FOV) 각도 결정을 보여주는 예시이다.
도 27은 각각의 타깃 객체에 대해 1의 N 값을 가정한, 도 22에 도시된 자동차에 대한 중간(중간 필드) 이미지 생성의 예시이다.
도 28은 반사성/유광 객체들 및 굴절성 객체들에 대한, 색상 정보의 회수를 위한 흐름도이다.
도 29는 예시적인 굴절 박스 기하구조에 대한 여러 출사 광선들을 보여주는 예시이다.
도 30은 출사 광선 계산들을 인에이블시키는 데 유용한 예시적인 대응하는 대체(프록시) 객체의 예시이다.
도 31은 타깃 프록시 교차점의 깊이와 판독 기하구조 깊이 사이의 비교의 예시이다.
도 32는 도 22에 도시된 자동차의 유광 표면들에 대한 색상 정보 회수를 묘사하는 예시이다.
도 1은 본 개시내용의 일 실시예에 따른, 비디오의 3D 장면을 렌더링하기 위한 예시적인 장치를 도시한다. 도 1은 예시적인 실시예들의 다양한 태양들이 구현될 수 있는 예시적인 시스템(100)의 블록도를 도시한다. 시스템(100)은 후술되는 다양한 컴포넌트들을 포함하는 디바이스로서 내장될 수 있으며, 대응하는 프로세스들을 수행하도록 구성된다. 그러한 디바이스들의 예들은 모바일 디바이스, 스마트폰, 태블릿 컴퓨터, 디스플레이를 위한 증강 현실 글래스, 및 비디오 캡처를 위한 내장형 카메라를 포함하지만, 이들로 제한되지 않는다. 시스템(100)은 다른 유사한 시스템들에, 그리고 통신 채널을 통해 디스플레이에 통신가능하게 커플링될 수 있다.
시스템(100)의 다양한 실시예들은, 하기에서 논의되는 바와 같은 다양한 프로세스들을 구현하기 위한 내부에 로딩된 명령어들을 실행하도록 구성된 적어도 하나의 프로세서(110)를 포함한다. 프로세서(110)는 내장형 메모리, 입출력 인터페이스, 및 당업계에 알려진 바와 같은 다양한 다른 회로부들을 포함할 수 있다. 시스템(100)은 또한, 적어도 하나의 메모리(120)(예컨대, 휘발성 메모리 디바이스, 비휘발성 메모리 디바이스)를 포함할 수 있다. 시스템(100)은 추가적으로 저장 디바이스(140)를 포함하는데, 이는 EEPROM, ROM, PROM, RAM, DRAM, SRAM, 플래시, 자기 디스크 드라이브, 및/또는 광학 디스크 드라이브를 포함하지만 이들로 제한되지 않는 비휘발성 메모리를 포함할 수 있다. 비제한적인 예로서, 저장 디바이스(140)는 내부 저장 디바이스, 부착된 저장 디바이스 및/또는 네트워크 액세스가능 저장 디바이스를 포함할 수 있다.
후술되는 다양한 프로세스들을 수행하기 위해 하나 이상의 프로세서들(110)에 로딩될 프로그램 코드는, 저장 디바이스(140)에 저장될 수 있고, 후속적으로 프로세서들(110)에 의한 실행을 위해 메모리(120)에 로딩될 수 있다. 예시적인 실시예들에 따르면, 프로세서(들)(110), 메모리(120) 및 저장 디바이스(140) 중 하나 이상은, 주변 이미지들, 캡처된 입력 이미지들, 텍스처 맵, 텍스처-프리 맵, 캐스트 섀도우 맵, 3D 장면 기하구조, 시점의 3D 포즈, 조명 파라미터들, 변수들, 동작들, 및 연산 로직을 포함하지만 이들로 제한되지 않는, 본 명세서에서 하기에 논의되는 프로세스들의 수행 동안 다양한 아이템 중 하나 이상을 저장할 수 있다.
시스템(100)은 또한, 통신 채널을 통한 다른 디바이스들과의 통신을 인에이블시키는 통신 인터페이스(150)를 포함할 수 있다. 통신 인터페이스(150)는 통신 채널로부터 데이터를 송신 및 수신하도록 구성된 송수신기를 포함할 수 있지만, 이로 제한되지 않는다. 통신 인터페이스(150)는 모뎀 또는 네트워크 카드를 포함할 수 있지만 이로 제한되지 않으며, 통신 채널(150)은 유선 및/또는 무선 매체 내에서 구현될 수 있다. 시스템(150)의 다양한 컴포넌트들은, 내부 버스, 와이어, 및 인쇄 회로 기판을 포함하지만 이들로 제한되지 않는 다양한 적합한 접속부들을 사용하여 함께 접속되거나 통신가능하게 커플링될 수 있다(도시되지 않음).
시스템(100)은 또한, 비디오 이미지들을 캡처하기 위해 프로세서에 커플링된, 카메라와 같은 비디오 캡처 수단(160)을 포함한다.
시스템(100)은 또한, 3D 장면을 렌더링하기 위해 프로세서에 커플링된, 프로젝터 또는 스크린과 같은 비디오 렌더링 수단(170)을 포함한다.
예시적인 실시예들은 프로세서(110)에 의해 구현되는 컴퓨터 소프트웨어에 의해 또는 하드웨어에 의해, 또는 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다. 비제한적인 예로서, 예시적인 실시예들은 하나 이상의 집적 회로들에 의해 구현될 수 있다. 메모리(120)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 광학 메모리 디바이스들, 자기 메모리 디바이스들, 반도체 기반 메모리 디바이스들, 고정식 메모리 및 착탈식 메모리와 같은 임의의 적절한 데이터 저장 기술을 사용하여 구현될 수 있다. 프로세서(110)는 기술적 환경에 적절한 임의의 유형의 것일 수 있고, 비제한적인 예들로서, 하나 이상의 마이크로프로세서들, 범용 컴퓨터들, 특수 목적 컴퓨터들, 및 다중 코어 아키텍처에 기반한 프로세서들을 포함할 수 있다.
본 명세서에 기술된 구현예들은, 예를 들어, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림, 또는 신호로 구현될 수 있다. 단일 형태의 구현예의 맥락에서만 논의되더라도(예를 들어, 방법으로서만 논의됨), 논의된 특징들의 구현예는 또한 다른 형태들(예를 들어, 장치 또는 프로그램)로 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어, 및 펌웨어로 구현될 수 있다. 방법들은, 예를 들어, 예컨대 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그래밍가능 로직 디바이스를 포함하는, 대체적으로 프로세싱 디바이스들로 지칭되는, 예를 들어, 프로세서와 같은 장치에서 구현될 수 있다. 프로세서들은 또한, 예를 들어, 컴퓨터, 휴대폰, 휴대용/개인 디지털 어시스턴트("PDA"), 태블릿, 헤드 마운트 디바이스, 및 가상 현실 응용을 용이하게 하는 다른 디바이스와 같은 통신 디바이스들을 포함한다.
본 개시내용은, 예를 들어, 휴대폰, 태블릿, 디스플레이를 위한 AR 글래스, 및 비디오 캡처를 위한 내장형 카메라와 같은 시-스루(see-through) 디바이스들을 사용하여, 가상 객체들이 실제 환경의 라이브-비디오 피드에 삽입되는(그와 합성되는) 증강 현실(AR) 응용들에 적용가능하다.
목표는 그러한 혼합 비디오 피드를 시청하는 뷰어가 실제 객체들과 가상 객체들 사이를 구별할 수 없게 하는 것이다. 그러한 응용들은 실시간으로 광 상호작용들을 일관되게 렌더링하여 3D 가상 객체들을 2D 비디오 이미지에 통합시키는 것을 요구한다. 실세계 비디오에서의 가상 객체 삽입은 여러 기술적 태양들을 고려하여 가능한 가장 현실적인 것이어야 한다: 가상 객체의 위치, 가상 객체의 배향(사용자가 카메라를 이동시킬 때 객체가 실제 3D 공간에서 후크/앵커된 듯 한 동적 정확도), 조명 조건들(가상 객체의 가상 재료 속성들에 따른 상이한 광원들의 반사/굴절).
혼합된 그럴 듯 한 비디오 피드(실시간 조건에서 2D 라이브-비디오 피드에 프레임별로 삽입된 합성 3D 객체들과의 혼합 현실)를 렌더링하기 위해 함께 혼합된(합성된) 실세계 및 가상 세계 둘 모두와의 상호작용들이 또한 매우 중요하다. 그러한 상호작용들은, 예를 들어, 비제한적인 예들로서, 광 상호작용(실제 광 및 가상 광을 사용한 전역 조명), 및 물리 상호작용들(실제 및 가상 둘 모두의 객체들 사이의 상호작용)을 포함할 수 있다.
요청된 컴퓨터 프로세싱의 속도도 또한 정말로 중요하다. 단일 프레임에 대한 비디오 카메라에 의한 실세계 장면의 획득과 디스플레이 디바이스 상의 (3D 객체들을 갖는) 대응하는 "증강" 프레임의 디스플레이 사이의 레이턴시는 0 ms에 가까워서, 뷰어(이는 또한, 카메라를 사용하는 사람임)가 몰입 경험을 살게 해야 한다.
도 2a는 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 배치를 위한 제안된 방법의 특정 실시예의 흐름도이다. 이러한 특정 실시예에서, 본 방법은 5개의 연속적인 단계들(210 내지 240)을 포함한다.
후술되는 예시적인 구현예에서, 본 방법은 렌더링 디바이스(170)(예컨대, 스마트폰, 태블릿, 또는 헤드 마운트 디스플레이)에 의해 수행된다. 대안적인 예시적인 구현예에서, 본 방법은 렌더링 디바이스(170) 외부의 프로세서(110)에 의해 수행된다. 후자의 경우, 프로세서(110)로부터의 결과들이 렌더링 디바이스(170)에 제공된다.
전형적인 AR 장면의 예시가 도 3에 도시되어 있다. 도 3에 도시된 장면은 실제 객체들 및 가상 객체들을 포함하는 유형적 객체들로 구성된다. 실제 객체인 일부 예시적인 유형적 객체들은 반사성 평면 객체(미러)(310), 유광 평면 객체(바닥 평면)(330), 굴절성 객체(어항)(360), 점 광원(point light)(320)을 포함한다. 가상 객체인 예시적인 유형적 객체는 금속 가상 캐릭터(370)를 포함한다.
사실성(realism)을 추가하고 렌더링을 지원하기 위해 추가적인 가상 객체들(도시되지 않음)이 장면에 추가될 수 있다. 그러한 가상 객체들의 예들은 비가시적 가상 미러(동일한 크기 및 위치를 갖는 실제 미러 객체의 프록시), 비가시적 가상 광(실제 광의 프록시), 및 비가시적 유광 평면(동일한 크기 및 위치를 갖는 실제 유광 평면의 프록시)을 포함할 수 있다.
다음의 하위섹션들은 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 배치를 위한 도 2a의 제안된 방법의 특정 실시예를 기술한다. 특정 실시예는 다양한 렌더링 태양들을 디스플레이하는 AR 장면의 각각의 객체에 대한 고품질 렌더링을 제공한다.
단계(210)에서, 3D 장면의 하나 이상의 객체들에 대한 파라미터들의 세트가 식별된다. 이러한 단계는 장면 내의 비-광 객체들 및 비-카메라 객체들을 위해 요구되고, AR 장면의 사전 지식에 기초한다. 장면 내의 객체들 각각은 파라미터들의 세트에 기초하여, AR의 맥락에서 실제 객체들 또는 가상 객체들로서 식별된다.
파라미터들의 세트는, 예를 들어, 객체 평탄도 - 객체가 평면인지 비평면인지의 여부 -, 객체 굴절도 - 정수 값이 사용될 수 있음(비굴절성 객체의 경우에 0, 또는 굴절성 객체의 경우에 1) -, 및 3D 장면에 대한 객체의 중요도와 관련된 객체 가중치 값을 포함할 수 있다. 0 내지 N의 정수 값이 객체 가중치 값에 사용될 수 있다. 객체 가중치 값이 높을수록, 객체의 렌더링이 더 양호할 것이다.
객체 가중치 값은 그러한 객체에 사용될 중간(중간 필드) 구조들의 수에 대응한다. 예를 들어, 0의 객체 가중치는 이러한 객체가 그의 중간 필드 구조를 다른 객체들과 공유한다는 것을 나타낼 수 있다. 객체 중요도 가중치는 하기의 기준에 기초하여 결정될 수 있다: AR 디바이스(350) 위치 및 배향뿐만 아니라, 객체 및 객체의 주변들까지의 그의 거리.
대부분의 경우들에 있어서, 객체 중요도 가중치는 1과 동일하다. 그러나, 다른 가중치 값들은 장면 렌더링에 대한 객체 중요도 및 그의 주변 객체들의 영향에 따라 렌더링 품질과 성능(예컨대, 메모리 비용, 프레임 레이트) 사이의 트레이드오프를 최적화하도록 설정될 수 있다.
도 3을 참조하면, 3D 장면 객체들의 파라미터들의 세트는 하기와 같다:
- 0의 굴절도 및 1의 중요도 가중치를 갖는 평면형 객체들: 미러(310) 및 바닥 평면(330);
- 1의 굴절도 및 1의 중요도 가중치를 갖는 비평면형 객체들: 어항(360);
- 0의 굴절도 및 2의 중요도 가중치를 갖는 비평면형 객체들: 금속 가상 캐릭터(370);
- 단계(220)는 0의 중요도 가중치를 갖는 모든 객체들을 함께 그룹화한다.
도 3을 참조하면, 모든 그룹들은 0이 아닌 중요도 가중치를 갖는 단일 객체를 포함한다.
도 2a에 단계(230)로서 도시된 하나의 특정 실시예의 경우, 상기 비디오의 3D 장면의 각각의 비-광 객체 및 각각의 비-카메라 객체에 대해 일정 영역이 결정된다. 그 영역은 3D 장면에서 비-광 객체들 및 비-카메라 객체들 각각에 대한 형상을 정의한다. 축-정렬 경계 박스(axis-aligned bounding box, AABB)로 알려진 하나의 기법이 이러한 영역을 정의하는 데 사용될 수 있다. AABB는, 그것이 좌표들의 비교들만을 요구하기 때문에 유리하고, 그것은 멀리 떨어진 좌표들의 신속한 배제를 허용한다.
주어진 지점 세트(S)에 대한 AABB는 전형적으로, 박스의 에지들이 좌표(직교좌표) 축들에 평행하다는 제약을 받는 그의 최소 영역이다. 이는 N개의 간격들의 카테시안 곱(Cartesian product)이며, 이러한 간격들 각각은 S 내의 지점들에 대한 대응하는 좌표의 최소 및 최대에 의해 정의된다.
단계(230)에서, 장면 내의 하나 이상의 객체들을 위한 중간 구조의 공간 경계가 결정된다.
중간 필드 이미지에 대한 예시적인 수학적 정의는 하기와 같다:
기하구조들의 그룹의 경우,
Figure pct00001
,
여기서 Gi는 직교 좌표들에서의 연관된 위치들 x, y, z를 갖는 기하구조가 중간 필드 이미지들의 세트
Figure pct00002
에 의해 표현될 수 있음을 나타내며, θ 및 ψ는 이미지의 회전을 표현하고, P는 이미지의 위치이다. n은 그 표현이 효율적이 되게 하기 위해 N보다 훨씬 더 작아야 한다.
중간 구조(중간 필드 구조)의 공간 경계는 객체 유형(예컨대, 광, 카메라, 다른 객체에 기초하며, 단계들(210, 220)과 관련하여 상기에서 논의된 객체 중요도 가중치 파라미터에 기초한 그룹화에 기초한다.
광 객체들의 경우, 광에 부여(attach)된 중간 필드(중간) 구조의 공간 경계들은 평면 또는 평면들의 세트이다.
카메라 객체들의 경우, 카메라에 부여된 중간 필드(중간) 구조의 공간 경계들은 평면이다.
비-광 객체들 및 비-카메라 객체들의 경우:
- 평면 객체들의 경우 - 평면 객체에 부여된 중간 필드(중간) 구조의 공간 경계들은 객체 평면에 대응하는 단일 평면으로 제한된다.
- 비평면 객체들의 경우 - 비평면 객체에 부여된 중간 필드(중간) 구조(들)의 공간 경계들은 직교 평면들의 세트이다. 파티션 없이, 6개의 직교 평면들이 있다.
도 4에 도시된 바와 같이, 0의 객체 중요도 가중치를 갖는 객체들(410)의 관련된 공유 그룹의 경우, 6개의 평면들이 경계 박스(결정된 영역)(420)에 대응한다.
도 5에 도시된 바와 같이, 1의 객체 중요도 가중치를 갖는 객체(510)의 경우, 6개의 평면들이 경계 박스(결정된 영역)(520)에 대응한다.
도 6에 도시된 바와 같이, 객체(610)가 2의 객체 중요도 가중치를 가질 때, 객체는 셀들(615)의 균일한 동일 이격 그리드로 파티셔닝된다. 그리드 셀들(N)의 수는 중요도 가중치 값과 동일하다. 도 6에 도시된 예에서, 객체 중요도 가중치는 2이고, 따라서, 그리드는 2개의 균일한 동일 이격 셀들(615)을 갖는다. 그리드 셀(615)당 하나의 중간 필드(중간) 구조(620)가 있다.
도 2a에 단계(235)로서 도시된 하나의 예시적인 실시예에서, 장면 내의 객체들 각각을 위한 중간 구조의 공간 경계가 결정된 후, 가상 카메라들을 사용하여 이미지들의 세트가 생성되어, 예를 들어, 광에 부여된 중간 필드 구조를 활성화시킬 수 있다. 이러한 단계에서, 중간 구조들을 위한 공간 경계의 각각의 평면에 대한 조명 기여가 결정된다. 이러한 단계는 장면에서 섀도우들을 캐스팅하는 광에 유리하다.
광에 부여된 중간 필드 구조의 경우, 가상 카메라(710)가 광 위치에 배치된다. 도 7에 도시된 바와 같이 소프트 섀도잉을 지원하기 위해 중간 필드 구조(720)의 동일한 평면 상에 추가적인 가상 카메라들이 배치될 수 있다. 가상 카메라(710)당 생성된 이미지들의 수는 광 유형에 의존하며, 보다 정확하게는, 광의 개구각(angular aperture)에 의존한다. 전형적으로, 160도 미만의 개구각은 단일 이미지를 사용함으로써 관리될 수 있다.
예를 들어, 가상 카메라마다 하기의 수의 이미지들이 생성된다:
- 스포트라이트가 스폿 개구(spot aperture)를 커버하도록 1개의 이미지가 생성될 수 있고;
- 면 광원이 반구체를 커버하도록 4개의 이미지들이 생성될 수 있고;
- 점 광원이 전체 공간을 커버하도록 6개의 이미지들이 생성될 수 있다.
각각의 생성된 이미지에 대해, 가상 카메라 절두체(frustrum)는 공간의 원하는 부분을 커버하도록 설정된다.
밝은 객체의 경우, 생성된 이미지들의 각각의 픽셀의 콘텐츠는 가시성에 대한 깊이 정보에 대응하는 단일 플로트 값(float value)이다. 예를 들어, 깊이 정보는 그 픽셀에 대응하는 방향을 따라 교차된 객체와 광의 위치들 사이의 거리에 대응할 수 있다.
도 3의 광(320)의 중간 필드 구조의 가시성 결정이 도 8에 도시되어 있다. 광(810)이 점 광원이기 때문에, 전체 공간은 중간 필드 구조에 의해 커버될 수 있다. 따라서, 정육면체 맵핑(820)을 구성하는 6개의 이미지들(830)이 생성된다.
도 2a를 참조하면, 단계(240)에서, 3D 장면은 장면 내의 하나 이상의 객체들 각각을 위한 중간(중간 필드) 구조의 결정된 공간 경계에 기초하여 렌더링된다. 3D 장면의 렌더링은 광선 추적을 사용하여 카메라에 의해 수행된다. 중간 필드 구조들은 전통적인 공간 파티셔닝 가속도 구조들(예컨대, 경계 볼륨 계층구조(Bounding Volume Hierarchy, BVH)) 대신에 가속도 구조들로서 사용된다. 예시적인 실시예에서, 광선 추적된 기하구조들은 그들의 대응하는 중간 필드 이미지 광선 유형을 광선 추적하는 것과 동등하다. 광선 추적에 보편적으로 사용되는 입수가능한 광선 유형들은 하기와 같다:
- 카메라 광선들: 카메라로부터 나오는 초기 광선들.
- 2차 광선들: 재료들과 상호작용(예컨대, 반사, 굴절)할 때 생성됨(다음 광선들).
- 섀도우 광선들: 광원들과 기하구조 사이의 폐색을 검출하는 데 사용되는 특수 광선들.
광선 그룹에 대한 예시적인 수학적 정의는 하기와 같다:
Figure pct00003
,
여기서 그룹 내의 광선(Ri)의 경우, P는 그룹 내의 광선들의 시점(origin) 또는 목적지(destination)이고, 광선들의 수는 교차된 기하구조 그룹을 표현하는 이미지들의 수에 대응한다. θ, ψ는 광선의 회전이고, W는 그룹 내의 광선들의 발산을 표현하는 로브(lobe) 크기의 근사치이다.
로브(W)가 클수록, 광선이 카메라 광선인 경우, 광선 그룹이 더 블러링/안티-앨리어싱된다. 로브(W)가 클수록, 광선이 2차 광선(반사/굴절)인 경우에 광선 그룹은 더 거칠고, 광선이 섀도우 광선인 경우에 광선 그룹은 더 부드럽다. 최소 로브 크기는 0 발산과 동등하다. 그러한 경우에, 하나의 광선은 도메인(카메라 광선, 반사 광선, 굴절 광선, 섀도우 광선)을 샘플링하기에 충분하며, 따라서, 중간 필드 이미지들에 대해 n = 1이다.
카메라 1차 광선들의 경우, 카메라 1차 광선들의 렌더링은 카메라에 부여된 중간 필드 구조를 활성화함으로써 행해진다. 생성된 이미지는 카메라에 의해 관찰된 장면의 래스터화된 이미지에 대응한다. 각각의 이미지 픽셀의 콘텐츠는 가장 가까운 히트 객체의 색상 정보(예컨대, 적색, 녹색 및 청색 색상 값들)를 저장하는 3개의 플로트 성분들의 벡터이다.
2차 광선들의 경우, 현재 카메라로부터의 각각의 가시적 객체에 대해 렌더링이 수행된다. 이러한 가시성을 결정하기 위한 하나의 예시적인 실시예는, 객체 경계 박스가 카메라 절두체와 교차하는지의 여부를 (즉, 예를 들어, 관찰용 절두체 컬링 기법을 사용하여) 확인하는 것이다. 초기에, 객체에 부여된 중간 필드 구조(들)가 활성화된다. 이어서, 색상 정보는 생성된 이미지들의 적절한 룩업(look-up)에 의해 회수된다.
현재 객체를 위한 중간 필드 구조(들)의 활성화가 도 9에 도시된 흐름도(900)에 예시되어 있다.
단계들(905, 910)에서, 카메라가 중간 필드 구조 평면을 향하고 있는지의 여부에 대한 체크가 이루어진다. 그렇지 않은 경우, 단계(920)로 진행한다.
단계(915)에서, 카메라가 중간 필드 구조 평면을 향하고 있는 경우, 평면에 대해 카메라 미러링 위치를 취한다.
단계(915) 이후, 객체가 굴절성인 경우(단계(920)), 평면에 대해 카메라 미러링 위치를 취하고(단계(925)), 단계(930)로 진행한다. 객체가 굴절성이 아닌 경우(단계(920)), 단계(930)로 진행한다.
단계(930)에서, 객체가 완전히 반사성인 경우, 가상 카메라 클립핑 영역을 계산한다(단계(935)). 단계(935) 이후, 가상 카메라로부터 관찰된 장면의 이미지를 생성한다(단계(940)).
단계(930)에서, 객체가 완전히 반사성이 아닌 경우, 주 카메라 주위에 다수의 가상 카메라들을 생성한다(단계(945)). 객체가 굴절성이 아닌 경우(단계(950)), 각각의 가상 카메라에 대해(단계(955)), 가상 카메라로부터 관찰된 장면의 이미지를 생성한다(단계(960)).
단계(950)에서, 객체가 굴절성인 경우, 각각의 가상 카메라에 대해(단계(965)), 깊이 및 ID 정보를 사용하여 가상 카메라로부터 관찰된 장면의 이미지들의 세트를 생성한다(단계(970)).
도 3의 미러 평면(310), 유광 평면(330), 및 가상 금속 캐릭터(370)에 대한, 도 9의 예시적인 흐름도에 따른 중간 필드 구조에 대한 색상 정보 결정이 각각, 도 10, 도 11 및 도 12에 도시되어 있다.
도 10을 참조하면, 도 3의 미러 평면(310)은 반사성 표면(1030)으로서 도시되어 있다. 도 10에 도시된 예시는 도 9에 도시된 흐름도에서 보여준 단계들(905, 910, 915, 920, 930, 935, 940)을 따른다. 카메라(1020)의 전방 방향 및 미러 평면의 법선 벡터는 평면이 카메라를 향하고 있는지의 여부를 결정하는 데 사용된다(단계(910)). 그 후, 객체(310)가 반사성 표면을 갖기 때문에, 이미징 카메라(1010)에 대한 클립핑 영역이 계산되고, 이어서, 클립핑 영역에서의 반사된 광선들을 사용하여, 이미징 카메라(1010)로부터 관찰된 장면의 이미지가 생성된다(단계(940)).
도 11을 참조하면, 도 3의 유광 평면(330)은 표면(1110)으로서 도시되어 있다. 도 11에 도시된 예시는 도 9에 도시된 흐름도에서 보여준 단계들(905, 910, 915, 920, 930, 945, 950, 955, 960)을 뒤따른다. 카메라(1120)의 전방 방향 및 미러 평면의 법선 벡터는 평면이 카메라를 향하고 있는지의 여부를 결정하는 데 사용된다(단계(910)). 이것이 도 11에 도시된 경우이기 때문에, 주 카메라 미러링 위치가 결정된다(단계(915)). 그 후, 유광 표면(330)이 완전히 반사되지 않기 때문에(단계(930)), 다수의 가상 카메라들(1135, 1140)이 주 가상 카메라(1130) 주위에 생성된다(단계(945)). 이어서, 각각의 가상 카메라(1130, 1135, 1140)에 대해(단계 955), 가상 카메라(1130, 1135, 1140)로부터 관찰된 장면의 이미지가 생성된다(단계(960)).
도 12를 참조하면, 도 3의 가상 캐릭터(370)의 그리드 셀이 1210으로 도시되어 있다. 도 12에 도시된 예시는 도 9에 도시된 흐름도에서 보여준 단계들(905, 910, 920, 930, 935, 940)을 따른다. 카메라(1220)의 전방 방향 및 각각의 중간 필드 평면의 법선 벡터는 평면이 카메라를 향하고 있는지의 여부를 결정하는 데 사용된다(단계(910)). 이는 평면 1 및 평면 2에 대한 사례이다. 따라서, 주 카메라 미러링 위치들이 평면 1 및 평면 2에 대해 결정된다(단계(915)). 그 후, 가상 금속 캐릭터(370)가 완전히 반사성이라고 가정함으로써(단계(930)), 가상 카메라 클립핑 영역이 입사 카메라 절두체 및 대응하는 공간 경계 평면의 크기로부터 계산된다(단계(935)). 이어서, 각각의 가상 카메라(1230, 1240)에 대해, 이미지가 생성된다(단계(940)). 각각의 이미지 픽셀의 콘텐츠는 가장 가까운 히트 객체의 색상 정보(예컨대, 적색, 녹색, 청색 색상 값들)를 저장하는 3개의 플로트 성분들의 벡터이다.
굴절성 객체를 위한 하나의 가상 카메라에 대한 이미지들의 생성(도 9의 단계(970))은 도 13에 도시된 흐름도(1300)에 도시되어 있다.
단계들(1305, 1310)에서, 카메라는 객체에 대한 경계 박스의 교차에 대한 znear가 설정되고, 컬링=후방(back)이 수행된다.
단계(1315)에서, 객체의 깊이가 렌더링되고, 객체 ID가 이미징된다.
단계(1315) 이후, 색상 객체가 렌더링된되고(단계(1320)), 객체 ID가 발견되는 경우(단계(1325)), 단계(1335)로 진행한다. 객체 ID가 발견되지 않은 경우(단계(1325)), 단계(1330)로 진행한다(종료).
단계(1335)에서, 객체 ID에 대해, zmin을 계산한다. 단계(1335) 이후, znear≠zmin인 경우(단계(1345)), znear=zmin을 설정한다.
단계(1335) 이후, zmin=znear인 경우, 단계(1360)로 진행한다. 단계(1360)에서, 전방 및 후방 표면들에 대한 객체 컬링이 수행되는 경우, 단계(1365)로 진행하고, zmax=zmin을 설정하고, 단계(1350)로 진행한다. 단계(1360)에서, 전방 및 후방 표면들에 대한 객체 컬링이 수행되지 않는 경우, 단계(1350)로 진행한다.
단계(1350)에서, 컬링=후방이 "아니오"인 경우, 컬링=후방을 설정한다(단계(1355)). 단계(1350)에서, 컬링=후방이 "예"인 경우, 컬링=전방을 설정한다(단계(1370)). 단계들(1370, 1355) 이후, 단계(1315)로 진행하고, 객체는 객체 깊이 및 객체 ID에 기초하여 이미징된다.
도 3의 어항(360)에 대한, 도 13의 예시적인 흐름도에 따른 중간 필드 구조의 활성화가 도 14에 도시되어 있다.
도 14를 참조하면, 도 3의 어항(310)은 객체(1420)로서 도시되어 있다. 카메라(1410)의 위치는 이미징 카메라(1435)에 대한 카메라 미러링 위치를 결정하는 데 사용된다. 어항이 굴절성 객체이기 때문에, 카메라(1435)는 이미지들을 생성하기 위해 카메라(1410)를 사용하도록 다시 미러링된다(도 9의 단계(925)). 그 후, 객체(310)가 굴절성 표면을 갖기 때문에, 가상 카메라 관찰 및 평면 위치들(1440, 1445, 1425)을 사용하여 전방 및 후방 컬링이 수행된다. 그 후, 깊이 및 ID 정보를 사용하여 굴절성 객체가 생성된다.
생성된 이미지들은 가상 카메라들에 의해 관찰된 장면의 래스터화된 이미지들에 대응한다. 각각의 이미지 픽셀의 콘텐츠는 가장 가까운 히트 객체의 색상 정보(예컨대, 적색, 녹색 및 청색 색상 값들)를 저장하는 3개의 플로트 성분들의 벡터이다. 각각의 중간 필드 구조에 대한 생성된 이미지들의 수는 하기에 의존한다:
- 객체 재료 유형:
완전한 반사성 재료의 경우 평면당 단일 생성된 이미지(도 10 및 도 12),
유광 재료(도 11) 또는 굴절성 재료(도 14)의 경우 평면당 수 개의 이미지들.
가상 카메라의 절두체는 출사 광선 방향들의 대부분을 지원하도록 설정되고, 따라서, 객체 재료 광택도 또는 굴절률에 의존한다. 대략 120°의 전형적인 개구각은 대부분의 경우들을 커버한다.
가상 카메라 절두체는 완전한 반사성 객체에 대해 최적화되는데, 이는 클립핑 평면들이 입사 절두체 및 대응하는 공간 경계 평면의 크기로부터 계산될 수 있기 때문이다(도 10 및 도 12). 유광 및/또는 굴절성 객체들의 경우, 각각의 경계 평면이 출사 광선들의 오차를 감소시키도록, 주 카메라 주위에 여러 가상 카메라들이 배치될 수 있다(도 11). 전형적으로, 2개 또는 3개의 추가적인 가상 카메라들이 오차를 유의하게 감소시키기에 충분하다. 굴절성 객체들의 경우, 깊이 및 객체 고유 식별자 정보를 포함하는 추가적인 이미지들이 생성될 수 있다. 도 13의 흐름도에서 기술되는 바와 같이, 이러한 이미지들은 색상 이미지들이 생성되는 곳으로부터 객체 매체 인터페이스들의 위치들을 찾기 위해 요구된다.
일단 모든 중간 필드 구조들이 결정되면, 각각의 입사 광선에 대한 색상 정보가 얻어진다. 비굴절성 객체의 경우, 색상 정보는 도 15의 흐름도(1500)에 따라 얻어진다.
단계들(1505, 1510)에서, 각각의 입사 광선에 대해, 중간 필드 경계들 상의 히트 지점이 계산된다.
단계(1515)에서, 주 가상 카메라에 대한 위치가 결정된다.
단계(1515) 이후, 주 가상 카메라 스크린 공간에 히트 지점이 투영되고(단계(1520)), 색상 정보가 판독된다(단계(1525)).
단계(1530)에서, 객체가 완전히 반사성인 경우, 최종 색상을 판독 색상 정보로서 설정한다(단계(1535)).
단계(1530)에서, 객체가 완전히 반사성이 아닌 경우, 반사된 로브 내부의 각각의 생성된 광선에 대해(단계(1540)), 광선 오차를 최소화하기 위한 하나 이상의 가상 카메라들을 결정한다(단계(1545)).
단계(1545) 이후, 선택된 가상 카메라 스크린 공간에 히트 지점이 투영되고(단계(1550)), 색상 정보가 판독된다(단계(1555)). 단계(1555) 이후, 모든 색상 기여들을 혼합함으로써 최종 색상을 설정한다(단계(1560)).
유광 표면에 대한 도 15의 흐름도의 예시가 도 16에 도시되어 있다. 카메라(1610)로부터의 입사 광선들은 히트 지점(1615)을 계산하기 위해(단계(1510)), 그리고 주 가상 카메라(1625)에 대한 위치를 결정하기 위해 사용된다. 그 후, 주 가상 카메라(1625) 및 추가적인 가상 카메라들(1620, 1630) 주위에 색상 정보(1635, 1640)가 생성된다(단계(1525)).
굴절성 객체의 경우, 색상 정보는 도 17의 흐름도(1700)에 따라 얻어진다.
단계들(1705, 1710)에서, 각각의 입사 광선에 대해, 중간 필드 경계들 상의 히트 지점이 계산된다.
단계(1715)에서, 주 가상 카메라에 대한 위치가 결정된다.
단계(1715) 이후, 주 가상 카메라로부터 제1 깊이 및 객체 ID가 얻어지고(단계(1720)), 가상 카메라 스크린 공간 (u, v) 좌표들이 결정된다(단계(1725)).
단계(1730)에서, 객체 ID에 대한 깊이 정보가 있는 경우, 깊이 정보를 사용하여 현재 인터페이스 상의 히트 지점을 계산하고(단계(1735)), 스넬(Snell)의 법칙을 사용하여 굴절각을 결정하고(단계(1740)), 단계(1740)의 각도를 위한 가상 카메라를 결정한다(단계(1745)).
단계(1745) 이후, 카메라에 대해 후속 깊이 및 객체 ID 이미지가 취해지고, 단계들(1710 내지 1725)이 반복된다.
단계(1725) 이후, 객체 ID에 대한 깊이 정보가 없는 경우(단계(1730)), 색상 정보가 대응하는 이미지 상에서 판독된다(단계(1755)).
어항에 대한 도 17의 흐름도의 예시가 도 18에 도시되어 있다. 카메라(1810)로부터의 입사 광선들은 히트 지점(1815)을 계산하기 위해(단계(1710)), 그리고 주 가상 카메라(1810)에 대한 위치를 결정하기 위해 사용된다. 그 후, 주 가상 카메라(1810) 및 추가적인 가상 카메라들(1820) 주위에 색상 정보(1830, 1835)가 생성된다(단계(1755)).
섀도우 광선들의 경우, 일단 색상 정보가 회수되었다면, 카메라 1차 광선과 객체 사이의 교차 지점은 그것이 조명되는지의 여부에 대해 체크된다. 3D 장면의 각각의 광에 대해, 섀도우 광선들이 광 기하구조를 향해 생성된다. 각각의 섀도우 광선에 대해, 섀도우 정보의 회수는 도 19에 도시된 흐름도를 따른다.
단계들(1910, 1920)에서, 각각의 섀도우 광선에 대해, 광 가상 카메라가 결정된다.
단계(1920) 이후, 가상 카메라 스크린 공간에 히트 지점이 투영된다(단계(1930)).
단계(1940)에서, 깊이 정보가 판독된다. 단계(1950)에서, 깊이 거리가 "예"인 경우, 섀도우 정보는 참이다(단계(1970)). 단계(1950)에서, 깊이 거리가 "아니오"인 경우, 섀도우 정보는 거짓이다(단계(1960)).
어항(2010)에 대한 도 19의 흐름도의 예시가 도 20에 도시되어 있다. 히트 지점(2015)(단계(1910))으로부터의 섀도우 광선들은 광 가상 카메라들(2005)을 결정한다. 그 후, 깊이 정보가 판독되고, 섀도우 정보(2040)가 생성된다.
도 2b 및 도 2c는 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 렌더링을 위한, 도 2a에 도시된 방법의 추가 실시예들의 흐름도들(205, 207)이다.
도 2b를 참조하면, 단계(210)에서, 3D 장면의 하나 이상의 객체들에 대한 파라미터들의 세트가 식별되고 그룹화된다(단계(220)). 단계(230)에서, 장면 내의 하나 이상의 객체들을 위한 중간 구조의 공간 경계가 결정된다.
도 2b의 단계(235a) 및 단계(235b)에서, 장면 내의 객체들 각각을 위한 중간 구조의 공간 경계가 결정된 후, 각각, 방사성 객체들을 위한 공간 경계들의 각각의 평면에 대한 가시성이 결정되고, 비방사성 객체들을 위한 공간 경계들의 각각의 평면에 대한 색상 정보가 결정된다. 색상 정보는, 예를 들어 방사조도(irradiance), 방사휘도(radiance), 조도, 휘도 및 세기를 포함할 수 있다. 단계(240)에서, 3D 장면은 장면 내의 객체들 각각을 위한 중간(중간 필드) 구조에 대한 결정된 공간 경계/가시성 및 색상 정보에 기초하여 렌더링된다.
도 2c를 참조하면, 단계(210)에서, 3D 장면의 하나 이상의 객체들에 대한 파라미터들의 세트가 식별되고 그룹화된다(단계(220)). 단계(230)에서, 장면 내의 하나 이상의 객체들을 위한 중간 구조의 공간 경계가 결정된다.
도 2c의 단계(235a) 및 단계(235b)에서, 장면 내의 객체들 각각을 위한 중간 구조의 공간 경계가 결정된 후, 각각, 방사성 객체들을 위한 공간 경계들의 각각의 평면에 대한 가시성이 결정되고, 비방사성 객체들을 위한 공간 경계들의 각각의 평면에 대한 색상 정보가 결정된다. 단계(240a)에서, 3D 장면은 카메라로부터의 중간(중간 필드) 구조에 대한 결정된 색상에 기초하여 렌더링된다.
도 21은 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용 내의 가상 객체의 배치를 위한 제안된 방법의 다른 특정 실시예의 흐름도(2100)이다. 이러한 특정 실시예에서, 본 방법은 4개의 연속적인 단계들(2110 내지 2140)을 포함한다.
후술되는 예시적인 구현예에서, 본 방법은 또한, 렌더링 디바이스(170)(예컨대, 스마트폰, 태블릿, 또는 헤드 마운트 디스플레이)에 의해 수행된다. 대안적인 예시적인 구현예에서, 본 방법은 렌더링 디바이스(170) 외부의 프로세서(110)에 의해 수행된다. 후자의 경우, 프로세서(110)로부터의 결과들이 렌더링 디바이스(170)에 제공된다.
전형적인 AR 장면의 예시가 도 22에 도시되어 있다. 도 22에 도시된 장면은 실제 객체들 및 가상 객체들을 포함하는 유형적 객체들로 구성된다. 실제 객체인 예시적인 유형적 객체는 투명 부분들(유리)(2210)을 갖는 굴절성 패널을 포함한다. 가상 객체들인 일부 예시적인 유형적 객체들은 금속/유광 비평면 표면들을 갖는 자동차(2220), 새(2230) 및 나무들(2240)을 포함한다.
사실성을 추가하고 렌더링을 지원하기 위해 추가적인 가상 객체(도시되지 않음)가 장면에 추가될 수 있다. 굴절성 패널(2210)과 동일한 크기 및 위치를 갖는, 실제 투명 패널을 나타내는 비가시적 가상 굴절성 패널은 비제한적인 예이다.
다음의 하위섹션들은 실세계 3D 환경에서의 AR(증강 현실) 또는 MR(혼합 현실) 응용의 가상 객체의 배치를 위한 도 21의 제안된 방법(2100)의 특정 실시예를 기술한다. 특정 실시예는 다양한 렌더링 태양들을 디스플레이하는 AR 장면의 각각의 객체에 대한 고품질 렌더링을 제공한다.
단계(2110)에서, 비디오의 3D 장면의 객체들에 대한 파라미터들의 세트가 식별된다. 이러한 단계는 장면 내의 비-광 객체들 및 비-카메라 객체들을 위해 요구되고, AR 장면의 사전 지식에 기초한다. 장면 내의 객체들 각각은 파라미터들의 세트에 기초하여, AR의 맥락에서 실제 객체들 또는 가상 객체들로서 식별된다.
파라미터들의 세트는, 예를 들어, 비디오의 장면 내의 반사성/굴절성 객체들의 수에 기초하여 환경 중요도 값 및 N개의 정수 값들의 어레이를 포함할 수 있다.
환경 중요도는 3D 장면의 환경으로부터의 객체의 색상 기여와 관련된다. 0 내지 2의 정수 값이 환경 중요도 값에 사용될 수 있다. 0의 환경 중요도 값은 환경으로부터의 색상 기여가 널(null)이거나 무시할 수 있는 정도임을 나타낸다. 1의 환경 중요도 값은 환경으로부터의 색상 기여가 반사 광선들에 의해 전달됨을 나타낸다. 2의 환경 중요도 값은 환경으로부터의 색상 기여가 반사 광선들 및 굴절 광선들에 의해 전달됨을 나타낸다. 적절한 객체 환경 중요도 값을 식별하는 것은 수월하다.
N개의 정수 값들의 어레이의 크기는 장면 내에 있는 반사성/굴절성 객체들(예컨대, 0과는 상이한 환경 중요도를 갖는 객체들)의 수에 대응한다. N 정수 값이 더 높을수록, 관련된 반사성/굴절성 객체에 대한 선택된 객체의 렌더링이 더 양호할 것이다. N 정수 값은 관련된 반사성/굴절성 객체에 대한 선택된 객체에 대해 생성될 중간(중간 필드) 이미지들의 수에 대응한다.
N개의 정수 값들의 어레이는 선택된 객체 형상의 복잡도뿐만 아니라 관련된 반사성/굴절성 객체들에 대한 객체 위치 및 거리에 기초하여 설정된다. N개의 정수 값들은 이러한 파라미터들이 변경되는 경우에 변경될 수 있다. N개의 정수 값들의 어레이는 렌더링 품질과 성능(메모리 비용, 프레임 레이트) 사이의 트레이드오프를 최적화하는 데 사용된다.
도 22를 참조하면, 3D 장면 객체들의 파라미터들의 세트는 후술되는 바와 같다. 도 22에 도시된 장면은 2개의 반사성/굴절성 객체들을 갖는다: 자동차(2220) 및 굴절성 (유리) 패널(2210). 따라서, N개의 정수 값들의 어레이의 크기는 2와 같다. 어레이의 제1 요소는 자동차(2220)에 대한 어레이 값에 대응한다. 어레이의 제2 요소는 굴절성 (유리) 패널(2210)에 대한 어레이 값에 대응한다.
자동차(2220)는 반사 광선들로부터의 색상 기여가 있기 때문에 1의 환경 중요도 값을 갖는다. 자동차(2220)에 대한 N개의 정수 값들의 어레이는 [-1, 1]이다. 어레이의 제1 요소는 -1로 설정되는데, 그 이유는 자동차가 자체로 색상에 기여할 수 없기 때문이다. 이러한 요소를 -1로 설정하는 것은 이 값이 관련 없게 만든다. 어레이의 제2 요소는 단일 중간(중간 필드) 이미지가 자동차(2220)로부터 굴절성 (유리) 패널(2210)로의 광선들을 수집하기 위해 생성될 것임을 나타낸다.
새(2230)는 환경으로부터의 색상 기여가 없기 때문에 0의 환경 중요도 값을 갖는다. 새(2230)에 대한 N개의 정수 값들의 어레이는 [2, 1]이다. 어레이의 제1 요소는 2개의 중간(중간 필드) 이미지들이 새로부터 반사성/유광 자동차(2220)로의 광선들을 수집하는 데 사용될 것임을 나타낸다. 어레이의 제2 요소는 단일 중간(중간 필드) 이미지가 새(2230)로부터 굴절성 (유리) 패널(2210)로의 광선들을 수집하기 위해 생성될 것임을 나타낸다.
굴절성 (유리) 패널(2210)은 반사 광선들 및 굴절 광선들 둘 모두로부터의 색상 기여가 있기 때문에 2의 환경 중요도 값을 갖는다. 굴절성 (유리) 패널(2210)에 대한 N개의 정수 값들의 어레이는 [1, -1]이다. 어레이의 제1 요소는 단일 중간(중간 필드) 이미지가 굴절성 (유리) 패널(2210)로부터 자동차(2220)로의 광선들을 수집하기 위해 생성될 것임을 나타낸다. 어레이의 제2 요소는 -1로 설정되는데, 그 이유는 굴절성 (유리) 패널(2210)이 자체로 색상에 기여할 수 없기 때문이다. 이러한 어레이 요소를 -1로 설정하는 것은 이 값이 관련 없게 만든다.
나무들(2240)은 환경으로부터의 색상 기여가 없기 때문에 0의 환경 중요도 값을 갖는다. 나무들(2240)에 대한 N개의 정수 값들의 어레이는 [2, 3]이다. 어레이의 제1 요소는 2개의 중간(중간 필드) 이미지들이 나무들(2240)로부터 반사성/유광 자동차(2220)로의 광선들을 수집하는 데 사용될 것임을 나타낸다. 어레이의 제2 요소는 3개의 중간(중간 필드) 이미지들이 나무들(2240)로부터 굴절성 (유리) 패널(2210)로의 광선들을 수집하기 위해 생성될 것임을 나타낸다.
도 21의 단계(2120)를 참조하면, 하나의 특정 실시예의 경우, 단계(2110)로부터의 식별된 파라미터들의 세트에 기초하여 각각의 선택된 객체에 대한 대응하는 대체(프록시) 객체들과 함께 3D 장면 내의 선택된 객체들을 위한 중간 구조가 결정된다. 단계(2120)는 환경 중요도 값이 0이 아닌 객체들에 적용가능하다. 그러한 객체들은 환경(예컨대, 주변 장면 객체들)으로부터의 색상 기여를 가질 것이다. 이러한 단계는 도 23의 흐름도와 관련하여 하기에서 추가로 논의될 것이다.
하나의 예시적인 실시예에서, 선택된 객체를 나타내기 위해 대응하는 대체(프록시) 객체가 사용된다. 대응하는 (프록시) 객체는 바람직하게는, 예를 들어, 경계 박스 구조와 같은 프리미티브 형상을 가져야 한다. 프리미티브 형상은 3D 장면 내의 비-광 및 비-카메라 객체들에 대한 영역을 정의한다.
축-정렬 경계 박스(AABB)로 알려진 하나의 기법은 프리미티브 형상을 정의하는 데 사용될 수 있다. AABB는, 그것이 좌표들의 비교들만을 요구하기 때문에 유리한데, 이는 그것이 멀리 떨어진 좌표들의 신속한 배제를 허용하기 때문이다.
주어진 지점 세트(S)에 대한 AABB는 전형적으로, 박스의 에지들이 좌표(직교좌표) 축들에 평행하다는 제약을 받는 그의 최소 영역이다. 이는 n개의 간격들의 카테시안 곱이며, 이러한 간격들 각각은 S 내의 지점들에 대한 대응하는 좌표의 최소 및 최대에 의해 정의된다.
중간 구조가 결정되는 선택된 객체는 소스 객체이다. 소스 객체는 소스 프록시(대응하는 대체) 객체를 갖는다. 선택된 객체에 대해, 주변 장면 객체들은 타깃 객체들이다. 각각의 타깃 객체는 또한 타깃 프록시(대응하는 대체) 객체를 갖는다.
단계(2130)에서, 각각의 선택된 객체를 위한 중간 구조의 색상 기여는 대응하는 대체(프록시) 객체에 기초하여 결정된다.
도 21의 단계(2140)를 참조하면, 3D 장면은 장면 내의 선택된 하나 이상의 객체들 각각에 대한 중간(중간 필드) 구조에 기초하여 렌더링된다. 3D 장면의 렌더링은 광선 추적을 사용하여 카메라(2250)(도 22)에 의해 수행된다. 중간(중간 필드) 구조들은 전통적인 공간 파티셔닝 가속도 구조들(예컨대, 경계 볼륨 계층구조(BVH) 대신에 가속도 구조들로서 사용된다. 예시적인 실시예에서, 광선 추적된 기하구조들은 그들의 대응하는 중간 필드 이미지 광선 유형을 광선 추적하는 것과 동등하다. 단계들(2130, 2140)은 도 28의 흐름도와 관련하여 하기에서 추가로 논의될 것이다.
광선 추적에 보편적으로 사용되는 입수가능한 광선 유형들은 하기와 같다:
- 카메라 광선들: 카메라로부터 나오는 초기 광선들.
- 2차 광선들: 재료들과 상호작용(예컨대, 반사, 굴절)할 때 생성됨(다음 광선들).
광선 그룹에 대한 예시적인 수학적 정의는 하기와 같다:
Figure pct00004
,
여기서 그룹 내의 광선(Ri)의 경우, P는 그룹 내의 광선들의 시점 또는 목적지이고, 광선들의 수는 교차된 기하구조 그룹을 표현하는 이미지들의 수에 대응한다. θ, ψ는 광선의 회전이고, W는 그룹 내의 광선들의 발산을 표현하는 로브 크기의 근사치이다.
로브(W)가 클수록, 광선이 카메라 광선인 경우, 광선 그룹이 더 블러링/안티-앨리어싱된다. 로브(W)가 클수록, 광선이 2차 광선(반사/굴절)인 경우에 광선 그룹은 더 거칠고, 광선이 섀도우 광선인 경우에 광선 그룹은 더 부드럽다. 최소 로브 크기는 0 발산과 동등하다. 그러한 경우에, 하나의 광선은 도메인(카메라 광선, 반사 광선, 굴절 광선, 섀도우 광선)을 샘플링하기에 충분하며, 따라서, 중간 필드 이미지들에 대해 n = 1이다.
카메라 1차 광선들의 경우, 카메라 1차 광선들의 렌더링은 카메라에 부여된 중간 필드 구조를 활성화함으로써 행해진다. 생성된 이미지는 카메라에 의해 관찰된 장면의 래스터화된 이미지에 대응한다. 각각의 이미지 픽셀의 콘텐츠는 가장 가까운 히트 객체의 색상 정보(예컨대, 적색, 녹색 및 청색 색상 값들)를 저장하는 3개의 플로트 성분들의 벡터이다.
2차 광선들의 경우, 현재 카메라로부터의 각각의 가시적 객체에 대해 렌더링이 수행된다. 이러한 가시성을 결정하기 위한 하나의 예시적인 실시예는, 객체 경계 박스가 카메라 절두체와 교차하는지의 여부를 (즉, 예를 들어, 관찰용 절두체 컬링 기법을 사용하여) 확인하는 것이다. 초기에, 객체에 부여된 중간 필드 구조(들)가 활성화된다. 이어서, 색상 정보는 생성된 이미지들의 적절한 룩업에 의해 회수된다.
도 21의 단계(2130)를 다시 참조하면, 중간 구조 (중간 필드) 이미지들은 도 23에 도시된 흐름도에 따라 생성된다.
단계(2305)에서, 0이 아닌 환경 중요도 값을 갖는 3D 장면 내의 각각의 객체가 소스 객체로서 선택된다. 타깃 객체들로 불리는 소스 객체를 둘러싸는 객체들이 단계(2310)에서 식별된다. 단계(2315)에서, 타깃 프록시(대응하는 대체) 객체들이 회수된다.
도 24를 참조하면, 단계(2305)의 예시적인 소스 객체(2420)가 도 22에 이전에 도시된 자동차로서 식별된다. 소스 객체(2420)는 박스(3D) 형상을 갖는 소스 프록시(대응하는 대체) 객체(2425)를 갖는다. 소스 객체(2420)에 대한 주변 장면 객체는 타깃 객체(2440)로서 식별되는 나무이다. 타깃 객체(2440)는, 또한 박스(3D) 형상을 갖는 타깃 프록시(대응하는 대체) 객체(2445)를 갖는다.
도 23을 다시 참조하면, 단계(2320)에서 가상 카메라들의 수가 업데이트된다. 단계(2325)에서, 가상 카메라들의 수는 타깃 객체로부터 소스 객체로의 (나무들로부터 자동차로의) 광선들을 수집하기 위해 사용될 중간(중간 필드) 이미지들의 수에 기초하고, 정수이다. 그 후, 단계(2330)에서, 가상 카메라들은 타깃 객체로부터 소스 객체로 오는 광선들의 캡처를 최대화하기 위해 장면에 배치된다.
타깃 객체에 대해 단 하나의 중간(중간 필드) 이미지만이 생성되는 경우(N=1), 가상 카메라는 소스 프록시(대응하는 대체) 객체의 중심에 배치될 수 있다. 도 24에서, 자동차를 위한 2개의 가상 카메라들(2450)이 소스 프록시(대응하는 대체) 객체(2425)의 각각의 측면을 따라 배치된다. 2개의 가상 카메라들(2450)은 자동차(소스 객체)에 대한 나무(타깃 객체)의 중간(중간 필드) 이미지들을 생성하기 위해 사용된다.
도 23의 단계(2335)에서, 가상 카메라(2450)의 배향이 계산된다. 도 24를 참조하면, 각각의 타깃 객체(2440)는 중간(중간 필드) 이미지를 생성하기 위해, 가상 카메라(2450)를 그 자체의 타깃 프록시 객체(2445) 중심 지점(도시되지 않음)을 향해 배향시킴으로써 그리고 적절한 투영 파라미터들을 설정함으로써 개별적으로 렌더링된다.
도 23에서, 가상 카메라(2450) 투영 파라미터들이 단계(2340)에서 계산된다. 투영 파라미터들은 근거리 평면 거리, 원거리 평면 거리 및 시야(FOV) 각도를 포함한다.
도 25를 참조하면, 근거리 평면 거리(2510)는 소스 프록시(대응하는 대체) 객체(2425)를 가상 카메라 전방 방향을 향해 투영함으로써 그리고 가상 카메라까지의 최대 거리 값을 취함으로써 결정된다. 단순화를 위해, 이러한 예에서, 단일 가상 카메라 위치(2550)(N=1)가 타깃 객체에 대해 가정되었고, 소스 프록시 객체의 중심에 배치되었다.
원거리 평면 거리는 사용자-정의되거나 주 카메라의 원거리 평면 거리로 설정될 수 있다. 하나의 예시적인 실시예에서, 원거리 평면 거리는 AR 디바이스에 부착된 가상 카메라로부터의 거리로 설정된다.
도 26을 참조하면, 시야(FOV) 각도(2610)는 (타깃 프록시 경계 - 가상 카메라 위치) 라인들(2630)과 가상 카메라 인근 평면(2620)의 교차를 식별함으로써 그리고 교차 지점들 모두를 포함하는 각도를 취함으로써 결정된다.
시야(FOV) = 2 * arctan (dmax/near)
도 23의 단계(2345)에서, 색상 및 깊이 정보 둘 모두를 포함하는, 타깃 객체를 위한 중간(중간 필드) 이미지가 결정된다. 하나의 예시적인 실시예에서, 정보는 4개의 구성요소들 ― 적색, 녹색 및 청색 색상 정보, 및 깊이 정보에 대한 값 - 의 벡터에 저장된다.
도 27에 도시된 하나의 예시적인 실시예에서, 도 22에 도시된 장면의 자동차 객체에 대한 색상 정보가 결정될 것이다. 도 27의 경우, 가상 카메라(2750)가 소스 프록시(대응하는 대체) 객체(2705)의 중심에 배치되도록, 모든 타깃 객체들에 대해 1의 N 값이 가정된다. 색상 정보는 도 28에 도시된 흐름도에 따라 결정된다.
단계(2805)에서, 0이 아닌 환경 중요도 값을 갖는 각각의 객체에 대해, 그러한 객체가 굴절성인지의 여부에 대한 결정이 단계(2810)에서 이루어진다. 단계(2810)는, 반사성/유광 객체들을 그로부터의 출사 광선들을 계산할 때 굴절성 객체들과 구별할 필요가 있기 때문에 중요하다.
반사성/유광 객체들의 경우, 단계(2815)에서, 출사 광선 결정들을 얻기 위해 양방향 산란 분포 함수(Bidirectional Scattering Distribution Function, BSDF) 로브가 샘플링된다. 각각의 광선에 대한 시작 위치, 방향 및 상대 에너지(전력) 정보가 획득된다.
굴절성 객체들의 경우, 단계(2820)에서, 각각의 공기/재료 인터페이스에 대한 출사 광선 결정들을 얻기 위해 양방향 산란 분포 함수(BSDF) 로브가 샘플링된다. 굴절성 객체들의 경우, 출사 광선 결정은, 각각의 입사 광선이 다양한 출사 광선들을 생성하기 때문에 복잡하다. 출사 광선들은 입사 광선 방향, 굴절성 객체 기하구조 및 그러한 객체에 대한 굴절률에 의존한다.
굴절성 박스 기하구조(2910)에 대한 여러 출사 광선들의 예시적인 예시가 도 29에 도시되어 있다. 도 29에 도시된 박스 기하구조는, 객체가 교차 지점들을 계산하고 이러한 지점에서 임의의 광선에 대해 법선 벡터를 결정하기 위해 완전히 분석될 수 있도록 완전히 분석적인 프리미티브 형상이다. 다른 적합한 프리미티브 형상들은, 예를 들어 구체, 원통 또는 절차적 객체들을 포함한다. 그러한 프리미티브 형상들의 경우, 출사 광선들의 즉석의(On-the-Fly) 정확한 계산이 수행될 수 있다.
도 29에서, AR 디바이스(2915)는 2개의 1차 광선들(2920, 2925)을 제공한다. 1차 광선(2920)의 경우, 4개의 출사 광선들(2930, 2935, 2940, 2945)이 있다. 1차 광선(2925)의 경우, 3개의 출사 광선들(2950, 2955, 2960)이 있다.
도 30은 분석적이지 않은 객체 기하구조(3005)의 예시이다. 그러한 상황에 대해, 대응하는 대체(프록시) 객체 기하구조(3010)는, 교차 지점들을 계산하고 이러한 지점에서 임의의 광선에 대한 법선 벡터를 결정하기 위해 사용된다. 하나의 예시적인 실시예에서, 대응하는 대체(프록시) 객체 기하구조는 소스/타깃 대응하는 대체(프록시) 객체와 동일할 수 있다. 대응하는 대체(프록시) 객체 기하구조의 경우, 출사 광선들의 즉석의 정확한 계산이 수행될 수 있다.
도 30에서, AR 디바이스(3015)는 1개의 1차 광선(3020)을 제공한다. 1차 광선(3020)의 경우, 2개의 출사 광선들(3030, 3035)이 있다. 광선(3030)은 정확한 출사 광선이고, 광선(3035)은 근사적인 출사 광선이다. 이론적이기 때문에 정확한 출사 광선(3030)을 계산하기에는 충분한 정보가 없고, 따라서, 근사적인 출사 광선(3035)이 사용된다. 즉석의 계산은 색상 기여 회수에 대한 근사적인 출사 광선(3035)의 출사 광선 방향에서 약간의 오차들을 도입하지만, 그러한 오차들은 거의 눈에 띄지 않는다.
추가적으로, 하나의 예시적인 실시예의 경우, 사용자-정의된 nbOfBounces 파라미터가 도입될 수 있다. nbOfBounces 파라미터는 출사 광선들을 계산할 때 고려되는 에어/재료 인터페이스들의 수를 제한한다. 예를 들어, nbOfBounces = 1은 제1 에어/재료 인터페이스(예컨대, 흡수성을 갖는 반사성 객체) 전용의 반사된 광선들에 대응한다. nbOfBounce = 2는 제1 에어/재료 인터페이스의 반사된 광선들 및 제2 재료/에어 인터페이스의 투과된 광선들에 대응한다.
도 28의 단계들(2825, 2830)을 참조하면, 단계들(2815, 2820)로부터 계산된 각각의 출사 광선은 대응하는 대체(프록시) 타깃 객체들까지 추적되는 광선이다. 그 후, 색상 정보는 도 28의 단계들(2835 내지 2850)에서 기술된 바와 같이 결정된다. 단계들(2835 내지 2850)은 도 31과 관련하여 더 상세히 논의될 것이다.
도 28의 단계(2830)에서, 출사 광선들은 프록시 타깃 객체들까지 추적되는 광선이다. 가장 가까운 교차 지점을 결정하기 위해 타깃 프록시들을 광선 추적할 때, 타깃 프록시들의 개량된 버전들이 선택적으로 사용될 수 있다. 정제된 버전들은 더 콤팩트한데, 이는 교차 테스트의 정확도를 증가시킨다.
도 31을 참조하면, AR 디바이스(3105)(도 28의 단계(2840))로부터의 1차 광선(3110)이 소스 객체(자동차)(3115)로부터 반사된다. 출사 광선(3120)은 타깃 프록시(새)(3130)로부터 멀게 지향되고, 따라서, 도 28의 단계(2865)에 따라 배경 색상 정보만이 얻어진다. 출사 광선(3125)은 타깃 프록시(3130)를 향해 반사되고, 교차 지점(3140)을 갖는다.
도 28의 단계(2845)에서, 교차 지점이 유효한지의 여부에 대한 결정이 이루어진다. 유효 교차 지점을 결정하기 위한 기준은 하기와 같다:
- 교차 지점은 현재 타깃 객체를 렌더링하는 데 사용되는 가상 카메라의 절두체 내부에 있음
- 타깃 기하구조가 타깃 프록시 내부에서 히트됨(예컨대, 판독 깊이 값은 가상 카메라 원거리 평면 거리와 동일하지 않음)
- 타깃 프록시 교차 지점의 깊이는 고스트 시각적 아티팩트들을 회피시키기 위해 판독된 기하구조 깊이보다 낮음.
도 31을 참조하면, 반사된 출사 광선(3125)은 교차 지점(3140)에서 타깃 프록시를 히트하고, 유효한 타깃 기하구조 깊이가 판독될 수 있다. 그러나, 반사된 출사 광선(3125)은 타깃 기하구조(새)와 교차하지 않는다. 추가적으로, 타깃 프록시 교차 지점(3140)의 깊이가 판독된 기하구조 깊이(3135)보다 더 높기 때문에, 교차 지점(3125)은 유효 교차 지점이 아니다.
도 28의 단계(2850)에서, 유효한 그러한 교차 지점들의 경우, 색상 기여가 취해진다. 단계(2855)에서, 모든 색상 기여들은 광선 에너지에 따라 축적된다. 히트 타깃 객체에 대한 모든 가상 카메라들의 색상 기여들의 축적은 혼합 가중치들의 계산을 요구한다. 색상 기여들의 축적들을 위한 하나의 예는, 문헌[S. Lagarde in "Image-based Lighting approaches and parallax-corrected cubemap", Siggraph 2012, Los Angeles, CA, USA, August 2012]에 의해 제안된 로컬 큐브맵 혼합 가중치 계산을 사용한다.
도 32는 도 22에 도시된 자동차의 유광 표면들에 대한 색상 정보 회수를 묘사하는 예시이다. 도 32에서, AR 디바이스(3205)(도 28의 단계(2840))로부터의 2개의 1차 광선들(3215, 3210)이 소스 객체(자동차)(3220)로부터 반사된다. 출사 광선(3225)은 타깃 프록시(새)(3230)로부터 멀게 지향되고, 따라서, 도 28의 단계(2865)에 따라 배경 색상 정보만이 얻어진다. 출사 광선(3235)은 타깃(새) 프록시(3230)를 향해 반사되고, 유효한 교차 지점인 교차 지점(3240)을 갖는다.
반사된 출사 광선들(3245, 3247)은 패널 프록시(3270) 및 나무 프록시(3275)와의 유효한 교차를 제공하는 교차 지점들(3250, 3255, 3260)에서 타깃 프록시를 히트하고, 따라서, 유리 패널 및 나무에 대한 색상 정보가 판독될 수 있다. 그러나, 광선(3265)은 로컬 표면에서의 법선 벡터이고, 타깃 기하구조들(나무 및 유리 패널)과 교차하지 않는다.
본 실시예들이 특정 실시예들을 참조하여 상기 본 명세서에서 설명되었지만, 본 개시내용은 특정 실시예들로 제한되지 않으며, 청구범위의 범주 내에 있는 수정들이 본 기술분야의 당업자에게 명백할 것이다.
단지 예로서 주어지고, 첨부된 청구범위에 의해서만 결정되는 본 발명의 범주를 제한하는 것으로 의도되지 않는 전술한 예시적인 실시예들을 참조할 시에 많은 추가의 수정들 및 변형들이 당업자에게 제안될 것이다. 특히, 상이한 실시예들로부터의 상이한 특징들은 적절한 경우 상호교환될 수 있다.

Claims (51)

  1. 방법으로서,
    비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하는 단계;
    파라미터들의 식별된 세트에 기초하여 상기 하나 이상의 객체들을 그룹화하는 단계;
    객체 유형에 기초하여 3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계를 결정하는 단계;
    3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 상기 공간 경계의 각각의 평면에 대한 조명 기여를 결정하는 단계; 및
    3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 상기 중간 구조의 상기 공간 경계의 각각의 평면에 대한 상기 결정된 공간 경계 및 상기 결정된 조명 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 조명 기여를 결정하는 단계는,
    방사성 객체(emissive object)들을 위한 상기 공간 경계의 각각의 평면에 대한 가시성(visibility)을 결정하는 단계; 및
    비방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 색상 정보를 결정하는 단계 중 적어도 하나를 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    카메라의 상기 중간 구조들에 대한 색상 정보를 결정하는 단계를 추가로 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 하나 이상의 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 파라미터들의 상기 세트는 비디오의 3D 장면에서의 객체 평탄도(planarity), 객체 굴절도 및 객체 중요도 중 적어도 하나를 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 비디오의 상기 3D 장면 내의 상기 하나 이상의 객체들 중의 각각의 객체를 위한 영역을 결정하는 단계를 추가로 포함하고, 상기 결정된 영역은 상기 하나 이상의 객체들 각각에 대한 형상을 정의하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 객체 유형은 광, 카메라, 또는 다른 객체 중 하나인, 방법.
  8. 제7항에 있어서, 다른 객체는 평면 객체 및 비평면 객체 중 하나인, 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서, 중간 구조의 공간 경계는 세분되는, 방법.
  10. 제7항에 있어서, 광을 위한 중간 구조의 공간 경계는 평면 또는 평면들의 세트인, 방법.
  11. 제7항에 있어서, 카메라를 위한 중간 구조의 공간 경계는 z-인근에 대응하는 평면인, 방법.
  12. 제8항에 있어서, 평면 객체를 위한 중간 구조의 공간 경계는 상기 평면 객체에 대응하는 평면인, 방법.
  13. 제8항에 있어서, 비평면 객체를 위한 중간 구조의 공간 경계는 상기 결정된 영역을 둘러싸는 평면들의 세트인, 방법.
  14. 비디오의 3D 장면을 렌더링하기 위한 디바이스로서,
    적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는,
    상기 비디오의 상기 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하도록;
    파라미터들의 식별된 세트에 기초하여 상기 하나 이상의 객체들을 그룹화하도록;
    객체 유형에 기초하여 3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 공간 경계를 결정하도록;
    3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 중간 구조의 상기 공간 경계의 각각의 평면에 대한 조명 기여를 결정하도록; 그리고
    3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 상기 중간 구조의 상기 공간 경계의 각각의 평면에 대한 상기 결정된 공간 경계 및 상기 결정된 조명 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하도록 구성되는, 디바이스.
  15. 제14항에 있어서, 프로세서는,
    방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 가시성; 및
    비방사성 객체들을 위한 상기 공간 경계의 각각의 평면에 대한 색상 정보 중 적어도 하나를 결정함으로써 상기 조명 기여를 결정하도록 구성되는, 디바이스.
  16. 제15항에 있어서, 프로세서는 카메라로부터 상기 중간 구조들에 대한 색상 정보를 결정하도록 구성되는, 디바이스.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 하나 이상의 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함하는, 디바이스.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서, 파라미터들의 상기 세트는 비디오의 3D 장면에서의 객체 평탄도, 객체 굴절도 및 객체 중요도 중 적어도 하나를 포함하는, 디바이스.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서, 프로세서는 상기 비디오의 상기 3D 장면 내의 상기 하나 이상의 객체들 중의 각각의 객체를 위한 영역을 결정하도록 구성되고, 상기 결정된 영역은 상기 하나 이상의 객체들 각각에 대한 형상을 정의하는, 디바이스.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서, 객체 유형은 광, 카메라, 또는 다른 객체 중 하나인, 디바이스.
  21. 제20항에 있어서, 다른 객체는 평면 객체 및 비평면 객체 중 하나인, 디바이스.
  22. 제14항 내지 제20항 중 어느 한 항에 있어서, 중간 구조의 공간 경계는 세분되는, 디바이스.
  23. 제20항에 있어서, 광을 위한 중간 구조의 공간 경계는 평면 또는 평면들의 세트인, 디바이스.
  24. 제20항에 있어서, 카메라를 위한 중간 구조의 공간 경계는 z-인근에 대응하는 평면인, 디바이스.
  25. 제21항에 있어서, 평면 객체를 위한 중간 구조의 공간 경계는 상기 평면 객체에 대응하는 평면인, 디바이스.
  26. 제21항에 있어서, 비평면 객체를 위한 중간 구조의 공간 경계는 상기 결정된 영역에 대응하는 평면들의 세트인, 디바이스.
  27. 제14항 내지 제26항 중 어느 한 항에 따른 디바이스 및 렌더링 디바이스를 포함하는 디바이스.
  28. 제27항에 있어서, 카메라 광선, 반사 광선, 굴절 광선 및 섀도우 광선 중 적어도 하나를 사용한 광선 추적에 의해 상기 3D 장면을 렌더링하도록 구성되는, 디바이스.
  29. 제1항 내지 제13항 중 어느 한 항에 있어서, 3D 장면 내의 하나 이상의 객체들의 각각의 그룹화를 위한 상기 중간 구조의 상기 공간 경계의 각각의 평면에 대한 상기 결정된 공간 경계 및 상기 결정된 조명 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 단계를 추가로 포함하는, 방법.
  30. 제29항에 있어서, 상기 렌더링하는 단계는 카메라 광선, 반사 광선, 굴절 광선 및 섀도우 광선 중 적어도 하나를 사용한 광선 추적에 의해 수행되는, 방법.
  31. 방법으로서,
    비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하는 단계;
    식별된 파라미터들의 세트에 기초하여 3D 장면 내의 상기 하나 이상의 객체들을 위한 중간 구조들을 결정하는 단계;
    대응하는 대체 객체에 기초하여 각각의 객체의 중간 구조들에 대한 색상 기여를 결정하는 단계; 및
    중간 구조들의 상기 결정된 색상 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하는 단계를 포함하는, 방법.
  32. 제31항에 있어서, 파라미터들의 상기 세트는 객체 형상에 대한 복잡성, 반사성/굴절성 객체들에 대한 객체 위치 및/또는 거리, 및 환경 중요도 값 중 적어도 하나를 포함하는, 방법.
  33. 제32항에 있어서, 환경 중요도 값은 3D 장면 내의 객체들로부터의 색상 기여와 관련되는, 방법.
  34. 제31항 내지 제33항 중 어느 한 항에 있어서, 상기 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함하는, 방법.
  35. 제33항에 있어서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들에 의해 전달되는, 방법.
  36. 제33항에 있어서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들 및 굴절 광선들에 의해 전달되는, 방법.
  37. 제31항 내지 제36항 중 어느 한 항에 있어서, 3D 장면 내의 선택된 객체는 소스 객체이고, 3D 장면 내의 선택되지 않은 객체들은 타깃 객체들인, 방법.
  38. 제37항에 있어서, 소스 객체에 대한 대응하는 대체 객체는 프리미티브(primitive) 형상을 갖는, 방법.
  39. 제31항 내지 제38항 중 어느 한 항에 있어서, 대응하는 대체 객체에 기초한 색상 기여는 가상 카메라 투영 파라미터들로부터 결정되는, 방법.
  40. 제39항에 있어서, 가상 카메라 투영 파라미터들은 근거리 평면 거리, 원거리 평면 거리 및 시야(Field-of-View, FOV) 각도 중 적어도 하나를 포함하는, 방법.
  41. 비디오의 3D 장면을 렌더링하기 위한 디바이스로서,
    적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는,
    비디오의 3D 장면 내의 하나 이상의 객체들에 대한 파라미터들의 세트를 식별하도록;
    식별된 파라미터들의 세트에 기초하여 3D 장면 내의 상기 하나 이상의 객체들을 위한 중간 구조들을 결정하도록;
    대응하는 대체 객체에 기초하여 각각의 객체의 중간 구조들에 대한 색상 기여를 결정하도록; 그리고
    중간 구조들의 상기 결정된 색상 기여에 기초하여 상기 비디오의 상기 3D 장면을 렌더링하는 것을 제공하도록 구성되는, 디바이스.
  42. 제41항에 있어서, 파라미터들의 상기 세트는 객체 형상에 대한 복잡성, 반사성/굴절성 객체들에 대한 객체 위치 및/또는 거리, 및 환경 중요도 값 중 적어도 하나를 포함하는, 디바이스.
  43. 제42항에 있어서, 환경 중요도 값은 3D 장면 내의 객체들로부터의 색상 기여와 관련되는, 디바이스.
  44. 제41항 내지 제43항 중 어느 한 항에 있어서, 상기 객체들은 실제 객체 및 가상 객체 중 적어도 하나를 포함하는, 디바이스.
  45. 제43항에 있어서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들에 의해 전달되는, 디바이스.
  46. 제43항에 있어서, 3D 장면 내의 객체들로부터의 색상 기여는 반사 광선들 및 굴절 광선들에 의해 전달되는, 디바이스.
  47. 제41항 내지 제46항 중 어느 한 항에 있어서, 3D 장면 내의 선택된 객체는 소스 객체이고, 3D 장면 내의 선택되지 않은 객체들은 타깃 객체들인, 디바이스.
  48. 제47항에 있어서, 소스 객체에 대한 대응하는 대체 객체는 프리미티브 형상을 갖는, 디바이스.
  49. 제41항 내지 제48항 중 어느 한 항에 있어서, 대응하는 대체 객체에 기초한 색상 기여는 가상 카메라 투영 파라미터들로부터 결정되는, 디바이스.
  50. 제49항에 있어서, 가상 카메라 투영 파라미터들은 근거리 평면 거리, 원거리 평면 거리 및 시야(FOV) 각도 중 적어도 하나를 포함하는, 디바이스.
  51. 실행될 때, 프로세서로 하여금, 제1항 내지 제13항 및 제29항 내지 제40항 중 어느 한 항의 방법을 구현하게 하는 명령어들을 포함하는 컴퓨터 프로그램 제품.
KR1020227035807A 2020-03-17 2021-03-15 3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법 KR20220154780A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP20305276.6 2020-03-17
EP20305276 2020-03-17
EP20305970 2020-09-02
EP20305970.4 2020-09-02
PCT/EP2021/056551 WO2021185771A1 (en) 2020-03-17 2021-03-15 System and method for real-time ray tracing in a 3d environment

Publications (1)

Publication Number Publication Date
KR20220154780A true KR20220154780A (ko) 2022-11-22

Family

ID=74870832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227035807A KR20220154780A (ko) 2020-03-17 2021-03-15 3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US20230090732A1 (ko)
EP (1) EP4121947A1 (ko)
KR (1) KR20220154780A (ko)
CN (1) CN115428029A (ko)
WO (1) WO2021185771A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6791563B2 (en) * 2001-09-18 2004-09-14 Bentley Systems, Incorporated System, method and computer program product for global rendering
US10083541B2 (en) * 2014-03-13 2018-09-25 Imagination Technologies Limited Object illumination in hybrid rasterization and ray traced 3-D rendering
US10614619B2 (en) * 2015-02-27 2020-04-07 Arm Limited Graphics processing systems
GB2535792B (en) * 2015-02-27 2021-03-31 Advanced Risc Mach Ltd Graphic processing systems
US9916677B2 (en) * 2016-06-09 2018-03-13 Disney Enterprises, Inc. Ray tracing across refractive boundaries
US10366263B2 (en) * 2016-12-30 2019-07-30 Accenture Global Solutions Limited Object detection for video camera self-calibration
US10607403B2 (en) * 2017-10-04 2020-03-31 Google Llc Shadows for inserted content
US10885698B2 (en) * 2018-08-10 2021-01-05 Nvidia Corporation Method for programmable timeouts of tree traversal mechanisms in hardware
CN110930497B (zh) * 2020-02-11 2020-05-05 南京芯瞳半导体技术有限公司 一种全局光照相交加速方法、装置及计算机存储介质

Also Published As

Publication number Publication date
EP4121947A1 (en) 2023-01-25
WO2021185771A1 (en) 2021-09-23
CN115428029A (zh) 2022-12-02
US20230090732A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US11551418B2 (en) Image rendering of laser scan data
JP6260924B2 (ja) レーザスキャンデータの画像レンダリング
US6903741B2 (en) Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene
US20130021445A1 (en) Camera Projection Meshes
CN114581589A (zh) 图像处理方法及相关装置
US20230230311A1 (en) Rendering Method and Apparatus, and Device
US20050001834A1 (en) Methods and apparatus for rendering an image including portions seen through one or more objects of the image
US20190066366A1 (en) Methods and Apparatus for Decorating User Interface Elements with Environmental Lighting
CN113034660A (zh) 一种基于pbr反射模型的激光雷达仿真方法
CN116758208A (zh) 全局光照渲染方法、装置、存储介质及电子设备
KR101118597B1 (ko) 모바일용 컴퓨터 그래픽 랜더링 방법 및 시스템
Chiu et al. GPU-based ocean rendering
KR20220154780A (ko) 3d 환경에서의 실시간 광선 추적을 위한 시스템 및 방법
US20230186575A1 (en) Method and apparatus for combining an augmented reality object in a real-world image
CN110832549B (zh) 现实世界环境中虚拟对象的经过光线追踪的反射的快速产生方法
CN117333598B (zh) 一种基于数字场景的3d模型渲染系统及方法
CN116485984B (zh) 全景影像车辆模型全局光照模拟方法、装置、设备及介质
EP4371076A1 (en) System and method for real-time ray tracing in a 3d environment
Shen THE PURDUE UNIVERSITY GRADUATE SCHOOL STATEMENT OF DISSERTATION APPROVAL
Tuceryan et al. Extraction and Integration of Physical Illumination in Dynamic Augmented Reality Environments
CN116485984A (zh) 全景影像车辆模型全局光照模拟方法、装置、设备及介质
Michael-Grigoriou et al. Real-time high quality HDR illumination and tonemapped rendering

Legal Events

Date Code Title Description
A201 Request for examination