KR102663558B1 - 후기 재투사 전력을 최적화하기 위한 시스템, 디바이스, 및 방법 - Google Patents
후기 재투사 전력을 최적화하기 위한 시스템, 디바이스, 및 방법 Download PDFInfo
- Publication number
- KR102663558B1 KR102663558B1 KR1020197031326A KR20197031326A KR102663558B1 KR 102663558 B1 KR102663558 B1 KR 102663558B1 KR 1020197031326 A KR1020197031326 A KR 1020197031326A KR 20197031326 A KR20197031326 A KR 20197031326A KR 102663558 B1 KR102663558 B1 KR 102663558B1
- Authority
- KR
- South Korea
- Prior art keywords
- layer
- layers
- region
- computer system
- sub
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 55
- 238000012545 processing Methods 0.000 claims abstract description 109
- 230000009466 transformation Effects 0.000 claims description 60
- 230000033001 locomotion Effects 0.000 claims description 53
- 238000009877 rendering Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 22
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000004424 eye movement Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract 1
- 239000010410 layer Substances 0.000 description 265
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 50
- 238000000844 transformation Methods 0.000 description 47
- 230000008569 process Effects 0.000 description 17
- 230000008859 change Effects 0.000 description 15
- 230000001133 acceleration Effects 0.000 description 11
- 230000003190 augmentative effect Effects 0.000 description 7
- 210000003128 head Anatomy 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 239000002131 composite material Substances 0.000 description 6
- 230000002441 reversible effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000011045 prefiltration Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000010339 dilation Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000004313 glare Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- 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
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/20—Linear translation of whole images or parts thereof, e.g. panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/192—Recognition using electronic means using simultaneous comparisons or correlations of the image signals with a plurality of references
- G06V30/194—References adjustable by an adaptive method, e.g. learning
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/001—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
- G09G3/003—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G3/00—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
- G09G3/007—Use of pixel shift techniques, e.g. by mechanical shift of the physical pixels or by optical shift of the perceived pixels
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0464—Positioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Optics & Photonics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Processing Or Creating Images (AREA)
- Optical Recording Or Reproduction (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
다중 레이어 장면에 대한 후기 재투사 프로세싱을 위한 최적화들이 제공된다. 컴퓨터 시스템의 일 부분의 예측된 포즈에 기초한 장면이 생성된다. 서브영역은 레이어들 중 하나 내에서 식별되고 장면에서의 다른 영역들로부터 격리된다. 그 후에, 후기 재투사 프로세싱은 동일한 후기 재투사 프로세싱을 거치지 않은 장면에서의 다른 영역들과 상이하게/선택적으로 그 서브영역에 적용된다.
Description
컴퓨터들 및 컴퓨팅 시스템들은 현대 생활의 거의 모든 측면에 영향을 미쳐 왔다. 컴퓨터들은 일반적으로 업무, 레크리에이션, 건강관리, 운송, 엔터테인먼트, 가정 관리 등에 관여되어 있다.
가상 현실 시스템들 및 증강 현실 시스템들을 포함하는 혼합 현실 컴퓨터 시스템들은 최근에 사용자들을 위한 몰입 경험들(immersive experiences)을 생성하는 그들의 능력에 대한 상당한 관심을 받아 왔다. 종래의 증강 현실 시스템들은 실제 세계에 가상 객체들을 시각적으로 제시하는 것에 의해 증강 현실 시나리오를 생성한다. 이와 달리, 종래의 가상 현실 시스템들은 사용자의 전체 시야(entire view)가 가상 세계에 의해 차단되도록 보다 몰입적인 경험을 생성한다. 본 명세서에서 사용되는 바와 같이, 혼합 현실, 증강 현실, 및 가상 현실 시스템들은 상호교환가능하게 설명되고 언급된다. 구체적으로 언급되지 않는 한 또는 구체적으로는 요구되지 않는 한, 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같이, 본 명세서에서의 설명들은, 증강 현실 시스템들, 가상 현실 시스템들, 및/또는 가상 객체들을 사용자에게 디스플레이할 수 있는 임의의 다른 유사한 시스템을 포함한, 임의의 유형의 혼합 현실 시스템에 동일하게 적용된다.
혼합 현실 컴퓨터 시스템들은 전형적으로 하나 이상의 신체상(on-body) 디바이스(예컨대, 헤드 마운티드 디바이스, 핸드헬드 디바이스 등)를 사용한다. 헤드 마운티드 디바이스는 사용자가 사용자의 주변 환경에서 오버랩하는 및/또는 통합된 시각적 정보를 볼 수 있게 해주는, 때때로 헤드 마운티드 디스플레이(이하 "HMD")라고 지칭되는, 디스플레이를 제공한다. 예를 들어, 혼합 현실 시스템은 실제 테이블 표면 상에 시뮬레이트된 객체의 형태로, HMD를 통해, 시각적 정보를 사용자에게 제시할 수 있다.
하드웨어 능력들 및 렌더링 기술들의 지속적인 발전들은 혼합 현실 환경 내에서 사용자에게 디스플레이되는 가상 객체들 및 장면들의 사실성(realism)을 크게 증대시켰다. 예를 들어, 혼합 현실 환경들에서는, 가상 객체가 실제 세계의 일부라는 인상을 주는 것과 같은 방식으로 가상 객체들이 실제 세계 내에 배치될 수 있다. 사용자가 실제 세계 내에서 이리저리 이동할 때, 사용자가 가상 객체의 적절한 원근감(perspective) 및 뷰(view)를 제공받도록 혼합 현실 환경이 자동으로 업데이트된다. 이 혼합 현실 환경은 종종 컴퓨터 생성 장면(computer-generated scene), 또는 단순히 "장면"이라고 지칭된다.
그러한 시스템들에서, 사용자의 신체(구체적으로는, 사용자의 머리와 대응하는 HMD)가 가상 환경과 관련하여 실시간으로 움직일 수 있다. 예를 들어, 혼합 현실 응용에서, 사용자가 머리를 한 방향으로 틸팅하더라도, 사용자는 이미지 또는 홀로그램이 그와 함께 틸팅할 것으로 예상하지 않을 것이다. 이상적으로는, 이 시스템은 사용자의 머리의 위치를 측정하고, 사용자에 의해 지각되는 바와 같은, 이미지 위치의 임의의 지터 또는 드리프트를 제거하기에 충분히 빠른 레이트로 이미지들을 렌더링할 것이다. 그렇지만, 전형적인 그래픽 프로세싱 유닛들("GPU")은 현재, GPU의 품질과 성능에 따라, 초당 30 내지 60 프레임만의 프레임들을 렌더링한다. 이것은 머리 위치가 검출되는 시점(point in time)과 이미지가 HMD 상에 실제로 디스플레이되는 시점 사이에 16 내지 33 밀리초의 잠재적 지연을 결과한다. 부가의 레이턴시는 새로운 머리 위치 및/또는 GPU의 프레임 버퍼와 최종적인 조정된 디스플레이 사이의 지연들을 결정하는 데 요구된 시간과 또한 연관될 수 있다. 결과는 사용자가 이미지를 예상하는 곳과 이미지가 실제로 디스플레이되는 곳 사이의 잠재적으로 큰 에러이며, 그로써 사용자 경험을 열화시킨다. 일부 경우들에서, 가상 이미지들이 적절한 위치들에 제시되지 않을 때, 특히 사용자의 머리와 HMD의 움직임 동안, 사용자는 불편감 및 방향 감각 상실(disorientation)을 또한 경험할 수 있다.
전술한 렌더링 에러들 중 일부를 감소시키거나 제거하기 위한 노력의 일환으로, 기존의 시스템들은 이미지가 GPU에 의해 렌더링된 후에 이미지에 대한 최종 조정들을 하기 위해 후기 보정들을 적용한다. 사용자의 머리 움직임으로부터 결과되는 가장 최근의 회전, 평행이동, 및/또는 확대들을 보상하기 위해 픽셀들이 디스플레이되기 전에 이 프로세스가 수행된다. 이 조정 프로세스는 종종 "후기 조정(Late Stage Adjustment)", "후기 재투사(Late Stage Reprojection)", "LSR" 또는 "LSR 조정들"이라고 지칭된다. 이하, 본 개시내용은 약어 "LSR"을 사용할 것이다. 프레임들이 높은 레이트로 그리고 높은 해상도로 렌더링될 수 있기 때문에, LSR을 이용하는 기존의 시스템들은 많은 양의 DRAM 대역폭 및 전력을 요구할 수 있다. 무선(wireless) 및 배터리 작동형(battery-powered) HMD의 맥락에서, 칩 사이즈는 물론 대역폭 및 전력 요구사항들이 매우 중요할 수 있으며, 이는 혼합 현실 장면들을 사용자에게 렌더링하는 것과 연관된 과제들 및 어려움들을 부가할 수 있음이 인식될 것이다.
앞서 암시된 바와 같이, 많은 혼합 현실 컴퓨터 시스템들은 동작 전력 제약들을 겪는 테더링되지 않은(untethered) 배터리 작동형 디바이스들이다. 사용자가 장면과 함께 보다 많은 시간을 즐길 수 있도록 이러한 제약들은 배터리의 수명(lifespan)을 연장시키도록 설계되어 있다. 그렇지만, 컴퓨터 시스템의 많은 동작들은 컴퓨터 시스템의 배터리 수명에 큰 영향을 미친다. 예를 들어, 데이터 취득 동작들 및 LSR 액션들을 수행하는 것은 그러한 배터리 톨링(battery-tolling) 동작들의 주요 예들이다. 그에 따라, 이러한 유형들의 동작들을 수행하는 시스템들의 전력 소비를 효율적으로 개선시키기 위한 현장에서의 강한 요구가 존재한다.
본 명세서에서 청구된 주제는 임의의 단점들을 해결하거나 앞서 설명된 것들과 같은 환경들에서만 동작하는 실시예들로 제한되지 않는다. 오히려, 이 배경기술은 본 명세서에서 설명된 일부 실시예들이 실시될 수 있는 하나의 예시적인 기술 분야만을 예시하기 위해 제공된다.
본 명세서에 개시된 실시예들은 LSR 프로세싱을 최적화하는 시스템들, 하드웨어 저장 디바이스들, 및 방법들에 관한 것이다.
일부 실시예들은 복수의 레이어들을 포함하는 컴퓨터 생성 장면을 생성한다. 이 장면은 컴퓨터 시스템의 일 부분(예컨대, HMD 또는 다른 혼합 현실 디바이스)의 제1 예측된 포즈(predicted pose)에 기초하여 생성된다. 실시예들은 또한 하나 이상의 레이어 내의 서브영역이 식별되게 한다. 이 서브영역은 하나 이상의 레이어에서 적어도 하나의 다른 영역과 구별된다. 이어서, 실시예들은 그 서브영역이 다른 영역(들)으로부터 격리되게 한다. 후속하여, 실시예들은 다른 영역(들)에는 LSR 프로세싱 또는 적어도 동일한 LSR 프로세싱을 적용하는 것을 억제하면서 격리된 서브영역에는 LSR 프로세싱이 적용되게 한다.
이 발명의 내용은 아래에서 발명을 실시하기 위한 구체적인 내용에 추가로 설명되는 선택된 개념들을 간략화된 형태로 소개하기 위해 제공된다. 이 발명의 내용은 청구된 주제(subject matter)의 핵심적인 특징들 또는 필수적인 특징들을 식별해주는 것으로 의도되어 있지도 않고, 청구된 주제의 범위를 결정하는 데 보조수단으로서 사용되는 것으로 의도되어 있지도 않다.
부가의 특징들 및 장점들이 이하의 설명에 기재될 것이고, 부분적으로 설명으로부터 명백할 것이거나, 본 명세서에서의 교시내용들의 실시에 의해 알게 될 수 있다. 본 발명의 특징들 및 장점들은 첨부된 청구항들에 특별히 언급된 수단들(instruments) 및 조합들(combinations)에 의해 실현되고 획득될 수 있다. 본 발명의 특징들은 하기의 설명 및 첨부된 청구항들로부터 보다 충분히 명백해질 것이거나, 이하에서 기재되는 바와 같은 본 발명의 실시에 의해 알게 될 수 있을 것이다.
위에서 열거된 및 다른 장점들 및 특징들이 획득될 수 있는 방식을 설명하기 위해, 위에서 간략하게 설명된 주제의 보다 상세한 설명이 첨부된 도면들에 예시된 특정 실시예들을 참조하여 행해질 것이다. 이 도면들이 전형적인 실시예들만을 묘사하고 따라서 범위를 제한하는 것으로 간주되어서는 안된다는 것을 이해하면서, 실시예들이 첨부 도면들을 사용하여 더 구체적이고 상세하게 기술되고 설명될 것이다:
도 1은 개시된 프로세스들 및 방법들을 수행할 수 있는 컴퓨터 시스템의 기본 구조도(basic architectural view)를 예시하고 있다.
도 2는 개시된 프로세스들 및 방법들을 수행할 수 있는 컴퓨터 시스템의 다른 실시예를 예시하고 있다.
도 3은 다중 레이어 장면(multi-layered scene)의 상위 레벨 개요를 예시하고 있다.
도 4는 다중 레이어 장면에서 사용될 수 있는 하나의 레이어의 사실적 묘사를 제공한다.
도 5는 다중 레이어 장면에서 사용될 수 있는 레이어의 다른 사실적 묘사를 제공한다.
도 6은 다수의 레이어들의 합성 렌더링(composite rendering)을 예시하고 있다.
도 7은 다수의 레이어들의 다른 합성 렌더링을 예시하고 있다.
도 8은 프리-필터(pre-filter)가 레이어에서의 특정한 픽셀들에 어떻게 적용될 수 있는지의 예를 예시하고 있다.
도 9는 레이어가 경계 영역(bounding region) 내에서 어떻게 제약되는지의 예를 예시하고 있다.
도 10은 레이어가 경계 영역 내에서 어떻게 제약되는지의 다른 예를 예시하고 있다.
도 11은 LSR 프로세싱 동안 사용가능한 버퍼 영역의 사용을 예시하고 있다.
도 12는 다양한 상황들에서 LSR 프로세싱의 양이 어떻게 감소될 수 있는지를 예시하고 있다.
도 13은 LSR 프로세싱을 최적화하기 위한 예시적인 방법을 예시하고 있다.
도 14는 LSR 프로세싱을 최적화하기 위한 다른 예시적인 방법을 예시하고 있다.
도 1은 개시된 프로세스들 및 방법들을 수행할 수 있는 컴퓨터 시스템의 기본 구조도(basic architectural view)를 예시하고 있다.
도 2는 개시된 프로세스들 및 방법들을 수행할 수 있는 컴퓨터 시스템의 다른 실시예를 예시하고 있다.
도 3은 다중 레이어 장면(multi-layered scene)의 상위 레벨 개요를 예시하고 있다.
도 4는 다중 레이어 장면에서 사용될 수 있는 하나의 레이어의 사실적 묘사를 제공한다.
도 5는 다중 레이어 장면에서 사용될 수 있는 레이어의 다른 사실적 묘사를 제공한다.
도 6은 다수의 레이어들의 합성 렌더링(composite rendering)을 예시하고 있다.
도 7은 다수의 레이어들의 다른 합성 렌더링을 예시하고 있다.
도 8은 프리-필터(pre-filter)가 레이어에서의 특정한 픽셀들에 어떻게 적용될 수 있는지의 예를 예시하고 있다.
도 9는 레이어가 경계 영역(bounding region) 내에서 어떻게 제약되는지의 예를 예시하고 있다.
도 10은 레이어가 경계 영역 내에서 어떻게 제약되는지의 다른 예를 예시하고 있다.
도 11은 LSR 프로세싱 동안 사용가능한 버퍼 영역의 사용을 예시하고 있다.
도 12는 다양한 상황들에서 LSR 프로세싱의 양이 어떻게 감소될 수 있는지를 예시하고 있다.
도 13은 LSR 프로세싱을 최적화하기 위한 예시적인 방법을 예시하고 있다.
도 14는 LSR 프로세싱을 최적화하기 위한 다른 예시적인 방법을 예시하고 있다.
서론으로서, 본 명세서에 개시된 실시예들은 LSR 프로세싱을 최적화하는 시스템들, 하드웨어 저장 디바이스들, 및 방법들에 관한 것이다. 그 목적을 위해, 개시된 실시예들은 복수의 레이어들을 포함하는 컴퓨터 생성 장면을 생성한다. 이 장면은 컴퓨터 시스템의 디바이스(예컨대, 아마도 HMD)의 제1 예측된 포즈에 기초하여 생성된다. 하나 이상의 레이어 내의 특정의 서브영역이 식별되고 하나 이상의 레이어 내의 적어도 하나의 다른 영역과 구별된다. 그 서브영역이 이어서 다른 영역(들)으로부터 격리된다. 후속하여, 다른 영역(들)에는 특정의 LSR을 적용하는 것을 억제하면서 격리된 서브영역에는 그 특정의 LSR 프로세싱이 적용된다.
나중에 논의될 것인 바와 같이, 본 명세서에 설명된 실시예들은 종래 기술 전체에 보편적인 많은 결점들을 극복한다. 게다가, 이 실시예들은 본 개시내용의 나머지 전체에 걸쳐 또한 설명될 많은 다른 실질적 이점들을 제공한다.
하기의 구절은 본 개시내용의 주제에 대한 초기 가이드로서 제공된다. 특히, 본 개시내용은 컴퓨팅 시스템에 대한 어떤 서론적 논의를 제시하기 위해 처음에 도 1을 사용할 것이다. 그 논의에 뒤이어서, LSR 프로세싱에 관한 어떤 서론적 주제가 제공된다. 이어서, 본 개시내용은, 다중 레이어 장면에 대해 수행되는 LSR 프로세싱을 최적화할 수 있는 컴퓨터 시스템에 관한 주제를 제시하는, 도 2에 대해 상세히 설명한다. 도 3 내지 도 12가 이어서 논의될 것이다. 이 도면들은 LSR이 수행되는 컴퓨터 생성 장면에서의 다수의 레이어들의 사용에 대한 세부사항을 제공한다. 마지막으로, 본 명세서에 설명된 신규의 원리들을 사용하는 부가의 지원 아키텍처들 및 방법들이 후속 도면들과 관련하여 상술될 것이다.
도 1에 예시된 바와 같이, 가장 기본적인 구성에서, 컴퓨터 시스템(100)은 많은 상이한 형태들을 취한다. 예를 들어, 도 1은 컴퓨터 시스템(100)을 데스크톱(또는 랩톱) 컴퓨터(100A), 태블릿(100B), 셀폰(100C), 또는 HMD를 포함하는 헤드 마운티드 디바이스(100D)로서 예시하고 있다. 도 1은 광범위한 컴퓨팅 디바이스들을 예시하지만, 본 실시예들은 도 1에 예시된 것들로만 제한되지 않는다. 그 결과, 생략부호(100E)는 임의의 유형의 컴퓨팅 디바이스가 본 실시예들에 의한 사용에 이용가능하다는 것을 나타낸다.
컴퓨터 시스템(100)은 전형적으로 적어도 하나의 프로세싱 유닛(110) 및 스토리지(120)를 포함한다. 스토리지(120)는, 휘발성, 비휘발성, 또는 이 둘의 어떤 조합일 수 있는, 물리 시스템 메모리일 수 있다. 용어 “메모리"는 물리 저장 매체들과 같은 비휘발성 대용량 스토리지를 지칭하기 위해 본 명세서에서 또한 사용될 수 있다. 컴퓨팅 시스템이 분산되어 있으면, 프로세싱, 메모리, 및/또는 저장 능력도 분산될 수 있다. 본 명세서에서 사용되는 바와 같이, 용어 “실행가능 모듈", "실행가능 컴포넌트", 또는 심지어 "컴포넌트"는 컴퓨팅 시스템 상에서 실행될 수 있는 소프트웨어 객체들, 루틴들, 또는 메소드들을 지칭할 수 있다. 본 명세서에 설명된 상이한 컴포넌트들, 모듈들, 엔진들, 및 서비스들은 컴퓨팅 시스템 상에서 실행되는 객체들 또는 프로세스들(예컨대, 개별 스레드들)로서 구현될 수 있다.
본 발명의 실시예들은 아래에서 더 상세히 논의되는 바와 같이, 예를 들어, (프로세서(110)와 같은) 하나 이상의 프로세서 및 (스토리지(120)와 같은) 시스템 메모리와 같은, 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함하거나 이용할 수 있다. 본 발명의 범위 내의 실시예들은 컴퓨터 실행가능 명령어들 및/또는 데이터 구조들을 운반하거나 저장하기 위한 물리 및 다른 컴퓨터 판독가능 매체들을 또한 포함한다. 그러한 컴퓨터 판독가능 매체들은 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 컴퓨터 실행가능 명령어들을 데이터의 형태로 저장하는 컴퓨터 판독가능 매체들은 물리 컴퓨터 저장 매체들이다. 컴퓨터 실행가능 명령어들을 운반하는 컴퓨터 판독가능 매체들은 전송 매체들이다. 따라서, 제한이 아닌 예로서, 본 발명의 실시예들은 적어도 두 가지 상이한 종류의 컴퓨터 판독가능 매체들: 컴퓨터 저장 매체들 및 전송 매체들을 포함할 수 있다.
컴퓨터 저장 매체들은, RAM, ROM, EEPROM, CD-ROM, RAM, 플래시 메모리, 상변화 메모리(PCM), 또는 다른 유형들의 메모리에 기초하는 솔리드 스테이트 드라이브들(SSD들), 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행가능 명령어들, 데이터 또는 데이터 구조들의 형태로 저장하는 데 사용될 수 있고 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 다른 하드웨어 매체와 같은, 하드웨어를 포함한다.
도 1에 또한 도시된 바와 같이, 컴퓨터 시스템(100)은 I/O 인터페이스(들)(130), 그래픽 렌더링 엔진(들)(140), 및 하나 이상의 센서(150)를 포함한 다양한 상이한 컴포넌트들을 포함한다. 컴퓨터 시스템(100)은 외부 센서들(160)(예컨대, 하나 이상의 원격 카메라, 가속도계, 자이로스코프, 음향 센서, 자력계 등)에 (유선 또는 무선 접속을 통해) 또한 접속될 수 있다. 게다가, 컴퓨터 시스템(100)은 컴퓨터 시스템(100)과 관련하여 설명된 프로세싱 중 임의의 것을 수행하도록 구성된 원격 시스템(들)(180)에 하나 이상의 유선 또는 무선 네트워크(170)를 통해 또한 접속될 수 있다.
사용 동안, 컴퓨터 시스템(100)의 사용자는 I/O 인터페이스(들)(130) 내에 포함된 디스플레이 스크린을 통해 정보(예컨대, 컴퓨터 생성 장면)를 지각할 수 있다. I/O 인터페이스(들)(130) 및 센서들(150/160)은, 장면(즉, 혼합 현실 환경)에 몰입되어 있는 동안 사용자가 상호작용하는 데 사용할 수 있는 사용자의 손, 스타일러스, 및/또는 임의의 다른 객체(들)와 같은, 하나 이상의 실세계 객체의 포지셔닝 및 움직임을 검출할 수 있는 제스처 검출 디바이스들, 눈 추적기들(eye trackers), 및/또는 다른 움직임 검출 컴포넌트들(예컨대, 카메라들, 자이로스코프들, 가속도계들, 자력계들, 음향 센서들, 글로벌 포지셔닝 시스템들("GPS") 등)을 또한 포함한다.
일부 경우들에서, 사용자 및 객체들의 포지셔닝 및 움직임이 연속적으로 모니터링된다. 이러한 모니터링은 구체적으로는, 위치, 속도, 배향, 또는 가속도의 검출된 변화와 같은, 객체들의 위치 및 움직임의 임의의 변동을 검출한다. 객체들이 장면에 제시될 때 HMD의 움직임들/포지셔닝이 객체들의 상대 움직임들/포지셔닝으로 계산되도록, 이러한 움직임들은, HMD의 상대 포지셔닝과 비교하여, 절대 움직임들 및/또는 상대 움직임들일 수 있다.
그래픽 렌더링 엔진(140)은, 프로세서(들)(110)와 함께, 컴퓨터 생성 장면 내에 하나 이상의 가상 객체를 렌더링하도록 구성된다. 이 렌더링은, 실세계 객체들의 상대 위치들에 매핑되는, 손 폐색들(hand occlusions) 또는 다른 유형들의 폐색들을 포함한다. 그 결과, 가상 객체들이 실세계 객체들의 움직임에 응답하여 정확하게 움직인다. 그래픽 렌더링 엔진(140)은 (실세계 객체들에 매핑되는 일 없이) 순전히 가상적이지만, 그럼에도 불구하고, 사용자가 장면 내에서 상호작용할 때 사용자 입력에 응답하여 위치되고 이동되는 하나 이상의 폐색을 렌더링하도록 또한 구성된다.
하나 이상의 GPU를 포함할 수 있는, 그래픽 렌더링 엔진(들)(140)은 특정한 디스플레이 속성들을 갖는 폐색들(즉, 가상 객체들)을 렌더링하도록 구성된다. 이 속성들은 착색(coloring), 투명도(transparency) 또는 불투명도(opaqueness), 텍스처링(texturing), 에지 정의(edge definition)(예컨대, 두께 및/또는 선예도(sharpness) 대 블러링(blurring) 및/또는 페더링(feathering)), 사이즈 등을 포함한다. 폐색에 대한 특정한 움직임 임계값들이 검출될 때, (적어도 검출된 움직임이 움직임 임계값들을 충족시키거나 초과하는 동안) 폐색에 대한 디스플레이 속성들의 하나 이상의 조합이 수정될 것이다.
움직임 임계값들은 다음과 같은 것들: 1) 폐색과 연관된 실세계 객체의 검출된 실제 움직임들, 2) 가상화된 폐색의 검출된 애니메이션 움직임, 및/또는 3) 실세계 움직임과 애니메이트된 움직임 사이의 검출된 변동(variance) 또는 래그(lag)의 임의의 조합을 포함할 수 있다. 검출된 움직임들은 속도 및/또는 가속도 어트리뷰트 값들과 연관된다. 이 값들은, 미리 결정된 임계값들이 언제 충족 및/또는 초과되었는지를 결정하기 위해, 컴퓨터 시스템(100)의 센서들(150) 및/또는 프로세서들(110)에 의해 검출, 측정, 및/또는 계산된다.
일부 실시예들에서, 동일한 절대 움직임 임계값들이 모든 유형들의 움직임들과 연관된다. 예를 들어, 폐색의 디스플레이 속성들의 변화를 트리거하는 데 폐색과 연관된 특정한 속도, 가속도, 또는 래그로 충분할 것이다. 이 변화는 특정 유형의 검출된 움직임에 관계없이 트리거될 수 있다. 다른 실시예들에서, 상이한 유형들의 움직임들(즉, 서지(surge), 히브(heave), 스웨이(sway), 피치(pitch), 롤(roll), 및 요(yaw)를 포함한, 6 자유도 내에서의 상이한 움직임들)은 상이한 움직임 임계값들과 연관된다. 예를 들어, 특정의 회전 가속도(rotational acceleration)는 횡방향 가속도(lateral acceleration)와 상이한 제1 임계값을 트리거할 것이다.
일부 경우들에서, 상이한 움직임 유형들 중 하나 이상에 대해 적어도 2개 이상의 개별 임계값 한계가 있다. 예를 들어, 제1 가속도 메트릭에서, 제1 임계값이 충족된다. 제1 가속도 메트릭보다 크거나 작은 제2 가속도 메트릭에서, 제2 임계값이 충족된다. 일부 경우들에서, 하나 이상의 유형의 움직임 각각에 대해 하나 이상의 개별 속도 임계값이 설정된다. 폐색의 외관은, 폐색의 디스플레이 어트리뷰트들을 변경하는 것에 의해서와 같이, 상이한 임계값들 각각이 충족되는 것에 응답하여 동적으로 변할 것이다.
다양한 임계값들 및 움직임 어트리뷰트 유형들은 컴퓨팅 시스템(100)의 스토리지(120)에 및/또는 하나 이상의 원격 시스템(들)(180)에 저장된 데이터 구조들로 매핑된다.
일부 개시된 실시예들은 GPU(들)(140)가 폐색과 연관된 움직임 어트리뷰트(들)의 상이한 검출된 변화들에 대응하여 폐색의 외관을 언제 그리고 어떻게 점진적으로 수정해야 하는지를 결정하기 위해 스토리지와 통신하는 것을 포함한다. 그러한 실시예들에서, 디스플레이 어트리뷰트들/속성들은 (이산 레벨들이 없도록) 연속적으로 변하는 움직임 어트리뷰트에 따라 연속적으로 변경/스케일링된다. 예를 들어, 폐색에 대한 투명도 및/또는 에지 페더링의 레벨들은 (실세계 객체의 움직임을 포함할 때에도) 폐색과 연관된 속도 및/또는 가속도 및/또는 폐색의 애니메이션을 렌더링하는 것과 연관된 래그의 많은 상이한 대응하는 크기들과 연관될 수 있다.
도 1에 도시된 네트워크(170)와 같은 "네트워크"는 컴퓨터 시스템들, 모듈들, 및/또는 다른 전자 디바이스들 사이에서의 전자 데이터의 전송을 가능하게 해주는 하나 이상의 데이터 링크 및/또는 데이터 스위치로서 정의된다. 정보가 네트워크(유선(hardwired), 무선, 또는 유선과 무선의 조합)를 통해 컴퓨터로 전송되거나 제공될 때, 컴퓨터는 적절하게도 접속을 전송 매체로 본다. 컴퓨터 시스템(100)은 네트워크(170)와 통신하는 데 사용되는 하나 이상의 통신 채널을 포함할 것이다. 전송 매체는 컴퓨터 실행가능 명령어들의 형태로 또는 데이터 구조들의 형태로 데이터 또는 원하는 프로그램 코드 수단을 운반하는 데 사용될 수 있는 네트워크를 포함한다. 게다가, 이러한 컴퓨터 실행가능 명령어들은 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있다. 상기한 것들의 조합들이 컴퓨터 판독가능 매체들의 범위 내에 또한 포함되어야 한다.
다양한 컴퓨터 시스템 컴포넌트들에 도달할 시에, 컴퓨터 실행가능 명령어들 또는 데이터 구조들의 형태로 된 프로그램 코드 수단은 전송 매체들로부터 컴퓨터 저장 매체들로(또는 그 반대로) 자동으로 전송될 수 있다. 예를 들어, 네트워크 또는 데이터 링크를 통해 수신된 컴퓨터 실행가능 명령어들 또는 데이터 구조들은 네트워크 인터페이스 모듈(예컨대, 네트워크 인터페이스 카드 또는 "NIC") 내의 RAM에 버퍼링되고 이어서 궁극적으로 컴퓨터 시스템 RAM으로 그리고/또는 컴퓨터 시스템에 있는 덜 휘발성인 컴퓨터 저장 매체들로 전송될 수 있다. 따라서, 컴퓨터 저장 매체들이 전송 매체들을 또한(또는 심지어 주로) 이용하는 컴퓨터 시스템 컴포넌트들에 또한 포함될 수 있음이 이해되어야 한다.
컴퓨터 실행가능(또는 컴퓨터 해석가능(computer-interpretable)) 명령어들은, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스로 하여금 특정한 기능 또는 기능들의 그룹을 수행하게 하는 명령어들을 포함한다. 컴퓨터 실행가능 명령어들은, 예를 들어, 바이너리들(binaries), 어셈블리 언어와 같은 중간 포맷 명령어들, 또는 심지어 소스 코드일 수 있다. 비록 주제가 구조적 특징들 및/또는 방법 동작들(methodological acts)과 관련하여 설명되어 있지만, 첨부된 청구항들에 한정된 주제가 위에서 설명되는 설명된 특징들 또는 동작들로 반드시 제한되는 것은 아님이 이해되어야 한다. 오히려, 설명된 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시되어 있다.
본 기술분야의 통상의 기술자는 본 발명이, 개인 컴퓨터들, 데스크톱 컴퓨터들, 랩톱 컴퓨터들, 메시지 프로세서들, 핸드헬드 디바이스들, 멀티 프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래머블 소비자 전자기기들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들, 모바일 전화들, PDA들, 페이저들, 라우터들, 스위치들, 및 이와 유사한 것을 포함한, 많은 유형들의 컴퓨터 시스템 구성들을 갖는 네트워크 컴퓨팅 환경들에서 실시될 수 있음을 이해할 것이다. 본 발명은 네트워크를 통해 (유선 데이터 링크들, 무선 데이터 링크들에 의해, 또는 유선 데이터 링크들과 무선 데이터 링크들의 조합에 의해) 링크되는 로컬 및 원격 컴퓨터 시스템들 각각이 태스크들(예컨대, 클라우드 컴퓨팅, 클라우드 서비스들 및 이와 유사한 것)을 수행하는 분산 시스템 환경들에서 또한 실시될 수 있다. 분산 시스템 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 디바이스들 둘 다에 위치될 수 있다.
후기 재투사("LSR")
사실적인 혼합 현실 환경을 생성하는 것에서의 하나의 이슈는 HMD의 특정의 포즈에 대응하는 세계에 고정된 가상 객체들(world-locked virtual objects)의 이미지들이 HMD의 최종 사용자에게 디스플레이되는 레이턴시, 또는 시간량에 관련된다. 예를 들어, 최종 사용자의 머리가 특정의 포즈로부터 벗어난 시간과 가상 객체의 이미지가 다음 포즈에 기초하여 디스플레이되는 시간 사이에 너무 많은 시간이 경과하면, 가상 객체가 혼합 현실 환경 내의 의도된 위치로부터 멀어지게 드리프트하는 것처럼 보일 것이다(즉, 이미지는 의도된 실세계 위치 또는 객체와 정렬된 것처럼 보이지 않을 수 있다). 결과적으로, HMD들은 다른 가상 객체들의 렌더링 프레임 레이트보다 큰 프레임 레이트로 일부 가상 객체들을 생성하고 디스플레이하기 위한 기술을 또한 포함할 수 있다.
증가된 프레임 속도로 가상 객체들을 렌더링하는 것은 장면의 안정성을 크게 개선시킨다. 디스플레이된 객체들(즉, 가상 객체들)은 보다 높은 빈도수(frequency)의 포즈 추정치들을 포함시키기 위해 미리 렌더링된 장면들(즉, 특정한 렌더링 프레임 레이트로 렌더링되는 순방향 예측된 장면들)의 후기 그래픽 조정들을 포함할 수 있다. 렌더링 프레임 레이트는 HMD의 포즈와 연관된 이미지들을 렌더링하기 위한 최소 시간에 대응할 수 있다. 그 목적들을 달성하기 위해, HMD는 다음과 같은 것들: 1) HMD의 미래 위치 및 배향과 연관된 예측된 포즈(예컨대, 10 ms 또는 20 ms 미래에서의 HMD의 예측된 포즈)를 결정하는 것, 2) 그 예측된 포즈에 기초하여 미리 렌더링된 이미지를 생성하는 것, 3) 미리 렌더링된 이미지를 생성한 후에 또는 미리 렌더링된 이미지가 생성되는 것과 동시에 HMD와 연관된 업데이트된 포즈를 결정하는 것, 4) 업데이트된 포즈 및 미리 렌더링된 이미지에 기초하여 업데이트된 이미지를 생성하는 것, 및 5) 업데이트된 이미지를 HMD 상에 디스플레이하는 것 중 하나 이상을 수행할 수 있다. 업데이트된 이미지는 미리 렌더링된 이미지의 호모그래픽 변환(homographic transformation) 및/또는 픽셀 오프셋 조정(pixel offset adjustment)을 통해 생성될 수 있다. 일부 경우들에서, 업데이트된 이미지는 디스플레이 내의 회로부에 의해 생성될 수 있다. 이 기능들에 대한 추가의 세부사항은 본 개시내용에서 나중에 제공될 것이다.
예측된 포즈는 1) HMD의 현재 위치 및 배향 및 2) (예컨대, 예측된 포즈를 결정하기 5 ms, 10 ms 또는 다른 미리 결정된 거리 이전의 HMD의 움직임에 기초하여 예측된 포즈를 외삽하는 것에 의해) 예측된 포즈를 결정하기 직전의 HMD의 가속도 및 속도에 기초하여 결정될 수 있다. 업데이트된 포즈는 (예컨대, 가속도계들, 자이로스코프들 등과 같은, 다양한 포즈 추적 기기로부터 데이터를 취득하는 것에 의해) 렌더링 프레임 레이트보다 높은 빈도수로 포즈 추적기에 제공되는 업데이트된 포즈 정보에 기초하여 결정될 수 있다.
이 업데이트된 포즈 정보는 저 레이턴시 관성 측정 유닛(inertial measurement unit, IMU) 또는 IMU와 카메라 기반 포즈 추적의 조합을 사용하여 생성될 수 있다. 업데이트된 이미지는 예측된 포즈와 업데이트된 포즈 사이의 차이들을 보정하기 위해(예컨대, 미리 렌더링된 이미지를 생성할 때 잘못된 포즈 예측을 보상하기 위해) 미리 렌더링된 이미지의 적어도 일 부분의 이미지 회전, 평행이동, 확장(dilation)(예컨대, 연신(stretching) 또는 수축(shrinking)), 시프팅(shifting), 또는 틸팅(tilting)을 포함할 수 있다.
게다가, 업데이트된 이미지는 미리 렌더링된 이미지의 호모그래픽 변환을 통해 생성될 수 있다. 일부 경우들에서, 호모그래픽 변환은 아핀 변환(affine transformation)을 포함할 수 있다. 업데이트된 이미지는 픽셀 오프셋 조정 또는 호모그래픽 변환들과 픽셀 오프셋 조정들의 조합을 사용하여 생성될 수 있다. 일부 경우들에서, 호모그래픽 변환들 및/또는 픽셀 오프셋 조정들은 (예컨대, HMD와 통합된 제어기 또는 프로세서를 사용하여) 코어 렌더링 파이프라인(core rendering pipeline)으로부터 하류에서 생성될 수 있다. 다른 경우들에서, 픽셀 오프셋 조정들은 (예컨대, 전하 결합 디바이스(charge-coupled device)의 동작과 유사한) 디스플레이의 픽셀 어레이 내에서의 픽셀 값들의 시프팅을 가능하게 하기 위한 시프트 레지스터들 또는 다른 회로부를 포함하는 디스플레이를 사용하여 수행될 수 있다.
업데이트된 이미지들은 순방향 예측된 렌더링된 이미지들의 후기 그래픽 조정들을 포함하고, 변하는 계산 복잡도의 다양한 이미지 재투사 기술들을 사용하여 생성될 수 있다. 이미지 재투사 기술들은 픽셀당 재투사(예컨대, 렌더링된 이미지의 각각의 픽셀이 업데이트된 포즈에 기초하여 재투사됨), 다중 레이어 호모그래피(예컨대, 3D 장면 내의 다수의 레이어들과 연관된 다수의 렌더링된 이미지들이 합성 업데이트된 이미지를 생성하는 데 사용됨), 단일 레이어 호모그래피(예컨대, 3D 장면 내의 단일 레이어와 연관된 단일 렌더링된 이미지가 업데이트된 이미지를 생성하는 데 사용됨), 아핀 호모그래피, 또는 픽셀 오프셋 기반 조정들을 포함할 수 있다.
비록 종래의 시스템들이 LSR 조정을 지원하지만, 이러한 시스템들은 그 프로세싱을 효율적인 방식으로 최적화하지 못한다. 그 결과, 이러한 시스템들은 배터리 수명과 연관된 많은 핸디캡들을 겪는다. 개시된 실시예들은 다중 레이어 장면들에 대해 선택적 LSR 조정들을 수행함으로써 이러한 문제들 중 일부를 해결하는 데 도움을 주기 위해 사용될 수 있다.
다중 레이어 컴퓨터 생성 장면들
이제 도 2 내지 도 12에 주목할 것이다. 간략히 말하면, 도 2는 다수의 레이어들을 포함하는 컴퓨터 생성 장면들에 대한 LSR 프로세싱을 최적화하기 위한 다양한 컴포넌트들을 포함하는 예시적인 컴퓨터 시스템을 예시하고 있다. 도 3 내지 도 12는 본 실시예들에서 이용가능한 다양한 기능들에 대해 상세히 설명한다.
위에서 살펴본 바와 같이, 도 2는 다양한 컴포넌트들(예컨대, 장면 생성 컴포넌트(210), LSR 컴포넌트(220), 레이어 생성 컴포넌트(230), 및 렌더링 컴포넌트(240))을 포함하는 컴퓨터 시스템(200)을 예시하고 있다. 컴퓨터 시스템(200)은 도 1에서 제시된 컴퓨터 시스템(100)과 유사하다. 일부 실시예들에서, 컴퓨터 시스템(200)은 하나 이상의 프로세서(예컨대, GPU)의 특수 세트로서 구성된다. 컴퓨터 시스템(200)의 부가의 어트리뷰트들은 나머지 도면들과 관련하여 또한 논의될 것이다.
특히, 컴퓨터 시스템(200)은 컴퓨터 생성 장면을 생성 및 렌더링할 수 있다. 이 장면은 혼합, 증강, 또는 가상 현실 장면일 수 있다. 이전에 논의된 바와 같이, 이 장면은 컴퓨터 시스템의 하나 이상의 하드웨어 컴포넌트(예컨대, IMU 기기, 가속도계들, 자이로스코프들, 자력계들, 깊이 센서들, 카메라, 적외선 센서들 등)에 의해 이전에 취득된 정보에 기초하여 생성된다.
일부 실시예들은 컴퓨터 시스템의 일부(예컨대, 아마도 HMD)의 제1 예측된 포즈에 응답하여 이 장면을 생성한다. 이 제1 예측된 포즈는 컴퓨터 시스템의 일부의 이전에 취득된 실제 결정된 포즈와 상이하다. 하드웨어 컴포넌트들로부터 데이터가 취득되는 빈도(how often)를 감소시키기 위한 노력의 일환으로(이 프로세스는 컴퓨터 시스템의 배터리 수명에 영향을 미치는), 본 발명의 실시예들은 예측된 또는 컴퓨터 추정된 포즈 데이터로 실제 포즈 데이터를 보강한다. 이러한 보강 프로세스를 수행함으로써, 포즈 데이터가 하드웨어 컴포넌트들로부터 획득되는 빈도(즉, 빈도수)가 감소될 수 있다. 이러한 보강 프로세스는 전력 소비를 크게 저하시킨다. 추가로 명확하게 하기 위해, 컴퓨터 시스템이 특정한 빈도수로 다양한 하드웨어 컴포넌트들(예컨대, 앞서 논의된 IMU 기기)로부터 포즈 데이터를 수집한다고 가정한다. 본 실시예들은 실제 포즈 데이터를 예측된 포즈 데이터로 보강함으로써 이 실제(real)/실제(actual) 데이터가 수집되는 빈도를 감소시킨다. 그에 따라, 본 개시내용 전체에 걸쳐 논의된 바와 같이, 본 실시예들은 1) 이전에 취득된 실제 포즈 결정들 및 2) (예컨대, 신체 움직임 또는 다른 특성들을 추적하는 것에 의한) 사용자의 현재 및/또는 미래 행동에 관한 추정들에 기초하여 컴퓨터 디바이스의 포즈를 예측할 수 있다.
논의를 계속하면, 장면 생성 컴포넌트(210)는, 도 3에 도시된 입력 프레임(310)과 같은, 복수의 입력 프레임들을 포함하는 장면을 생성할 수 있다. 용어 “입력 프레임"의 사용은 용어 "장면"과 관련이 있고; 장면이 실제로는 HMD를 착용한 사용자에게 디스플레이되는 복수의 입력 프레임들로 구성된다는 것을 의미한다. 도 3에 추가로 도시된 바와 같이, 입력 프레임(310)은 전경 레이어(320)("FG 레이어") 및 배경 레이어(330)("BG 레이어")를 포함한다. FG 레이어(320) 및 BG 레이어(330)는 레이어 생성 컴포넌트(230)에 의해 생성된다. 일부 상황들에서, FG 레이어(320)는 제1 해상도에 따라 렌더링되는 반면 BG 레이어(330)는 제2 해상도에 따라 렌더링된다. 예로서, FG 레이어(320)는 사용자에게 시각적으로 보다 가까이 있는 것처럼 보이는 객체(예컨대, 나무)를 포함할 수 있는 반면, BG 레이어(330)는 사용자로부터 보다 멀리 떨어져 있는 것처럼 보이는 풍경(예컨대, 먼 배경에 있는 산들)을 포함할 수 있다. BG 레이어(330)가 사용자로부터 시각적으로 "보다 멀리 떨어져 있는"것처럼 보이는 콘텐츠를 포함하기 때문에, BG 레이어(330)에서의 콘텐츠는 보다 낮은 해상도로 렌더링될 수 있다.
다른 상황들에서, 컴퓨터 시스템(100)은 포비티드 렌더링(foveated rendering)을 지원한다. 이 포비티드 렌더링을 고려하여, FG 레이어(320)는 보다 높은 해상도 영역(즉, 중심와 영역(fovea area))에 배치될 수 있는 반면 BG 레이어(330)는 훨씬 더 낮은 해상도 영역(예컨대, 장면의 에지 또는 주변 영역)에 배치될 수 있다.
LSR 컴포넌트(220)는 FG 레이어(320) 및 BG 레이어(330)에 대해 LSR 프로세싱을 수행할 수 있다. 일부 경우들에서, FG 레이어(320)에 적용되는 LSR 프로세싱은 BG 레이어(330)에 적용되는 LSR 프로세싱과 상이하다. FG 레이어(320)와 BG 레이어(330) 사이의 LSR 프로세싱의 이러한 차이는 매우 다양한 이유들에 기인할 수 있다. 제한이 아닌 예로서, 차이는 FG 레이어(320)와 BG 레이어(330) 사이의 결정된 깊이의 차이로 인한 것일 수 있다. HMD의 움직임은 BG 컴포넌트들의 포지셔닝/렌더링과 상이하게 FG 컴포넌트들의 포지셔닝/렌더링에 또한 영향을 미칠 수 있다.
이 시점에서, 예가 도움이 될 것이다. 위의 예를 사용하여, 사용자에게 제시되고 있는 장면이 근처에 있는 나무 및 먼 산악 풍경을 포함한다고 가정한다. 이제, 사용자가 위치를 이동하거나 다른 방식으로 배향을 변경한다고 가정한다. 사용자의 위치 변화에 응답하여, 혼합 현실 장면이 업데이트될 필요가 있을 것이다. 여기서, 지각된 깊이의 차이로 인해 사용자에게 훨씬 더 가까운 나무에 대한 시각적 효과의 변화가 먼 산악 풍경에 대한 임의의 변화보다 훨씬 클 것임에 유의할 가치가 있다. 그 결과, 각각의 레이어에 대한 LSR 프로세싱이 상이할 수 있다.
LSR 프로세싱이 장면의 다양한 레이어들(예컨대, FG 레이어(320) 및 BG 레이어(330))에 적용된 후에, 컴퓨터 시스템은 레이어들을 함께 합성하여, 도 3에서의 통합된 레이어(unified layer)(340)와 같은, 통합된 레이어를 형성한다. 환언하면, (LSR 프로세싱을 거친 후의) FG 레이어(320) 및 BG 레이어(330)는 함께 합성되어 통합된 레이어(340)를 형성한다. 장면에서 레이어들이 적절하게 시각화되도록 하기 위해(예컨대, 레이어들이 서로에 대해 올바른 깊이 및 배향으로 시각화되도록 하기 위해), 컴퓨터 시스템(200)은 레이어들 중 하나 이상에 하나 이상의 변환을 또한 적용한다. 이 변환들은 LSR 프로세싱 동안 또는 합성 프로세싱 동안 중 어느 하나에서 적용될 수 있다. 예로서, 하나의 레이어가 리사이징되거나(resized)(즉, 확장되거나(dilated)), 회전되거나, 스큐잉되거나(skewed), 또는 다른 방식으로 조작될 필요가 있을 수 있는데, 이들이 통합된 장면(unified scene)에서의 다른 레이어(들)에 대해서는 요구되지 않을 수 있다. 이러한 선택적 조작을 달성하기 위해, 컴퓨터 시스템(200)은 레이어가 적절하게 렌더링될 수 있게 해주기 위해 적절한 유형의 변환을 적용한다. 이 변환들 중 일부는 호모그래픽 변환, 가역적 이미지 변환, 아핀 변환, 픽셀 오프셋 조정, 깊이 프로세싱 변환들, 및/또는 행렬 변환을 포함한다. 레이어들을 함께 합성한 후에, 렌더링 컴포넌트(240)는 통합된 레이어(340)를 HMD 상에 렌더링한다.
도 3이 다중 레이어 장면의 추상적 시각화(abstract visualization)를 예시하였지만, 도 4 내지 도 7은 특정 구현을 예시하고 있다.
특히, 도 4는 컴퓨터 생성 장면의 제1 레이어(400)를 예시하고 있다. 이 제1 레이어는 도 3에서의 BG 레이어(330)와 유사하다. 이 제1 레이어(400)는 경계 영역(410)에 의해 경계지어지는 것으로 예시되어 있다. 이 경계 영역(410)은 HMD를 착용한 사용자에 의해 보이는 영역에 관련된다. 그렇지만, 특히, 컴퓨터 생성 장면이 단일 시점으로만 제한되지 않는다. 오히려, 사용자가 위치를 이동하거나 다른 방식으로 배향을 변경함에 따라, HMD 상에 디스플레이되는 뷰가 HMD의 배향과 관련하여 변할 것이다(예컨대, 사용자의 움직임에 따라 새로운 콘텐츠가 나타날 것인 반면 다른 콘텐츠가 사라질 것이다). 그 결과, 제1 레이어(400) 및 경계 영역(410)이 컴퓨터 시스템(200)의 능력을 특징짓거나 다른 방식으로 제한하는 데 사용되어서는 안된다.
도 4와 유사하게, 도 5는 컴퓨터 시스템(200)에 의해 시각화될 수 있는 제2 레이어(500)를 예시하고 있다. 이 제2 레이어(500)는 도 3에서의 FG 레이어(320)와 유사하다. 제2 레이어(500)는 경계 영역(510)을 가지는 것으로 또한 예시되어 있다. 여기서, 제2 레이어(500)가 도 4의 제1 레이어(400)와 약간 상이하다는 점에 유의할 가치가 있다. 특히, 제2 레이어(500)는 하나 이상의 투명 부분(520)을 포함한다. 투명이란 이 투명 부분(520) 아래에 위치된 임의의 콘텐츠가, 그 아래의 콘텐츠가 제2 레이어(500)의 일부가 아니더라도, 보일 것임을 의미한다. 그 결과, 1) 제2 레이어(500)의 LSR 프로세싱, 2) 임의의 변환들, 및/또는 3) 합성 프로세스들이 제2 레이어(500)에 적용된 후에(그리고 레이어(500)가 다른 레이어 위에 여전히 배치되어 그 다른 레이어를 오버랩하면), 하부 레이어(bottom layer)의 적어도 일부는 제2 레이어(500)의 투명 부분들(520)을 통해 보일 것이다.
도 6은 통합된 합성 레이어로서 제시된 다중 레이어 장면(600)을 예시하고 있다. 이 다중 레이어 장면(600)은 장면 생성 컴포넌트(210)에 의해 생성된다. 다중 레이어 장면(600)은, 도 4에서의 제1 레이어(400)와 유사한, 제1 레이어(610), 및, 도 5에서의 제2 레이어(500)와 유사한, 제2 레이어(620)를 포함한다. 환언하면, 이 통합된 레이어(600)는 다수의 레이어들의 합성물(composite)이다. 도 6에 추가로 예시된 바와 같이, 제2 레이어(620)는, 도 5에서의 투명 부분들(520)과 유사한, 하나 이상의 투명 부분(630)을 포함한다. 여기서, 제1 레이어(610)의 일 부분이 제2 레이어(620)의 투명 부분(630)을 통해 보인다는 점에 유의할 가치가 있다. 명확히 하기 위해, 제2 레이어(620)는 제1 레이어(610) 위에 배치된 레이어이다. 그 결과, 제2 레이어(620)는 제1 레이어(610)의 다양한 부분들을 폐색하거나 난독화한다(obfuscates). 그렇지만, 제2 레이어(620)가 투명 부분들(630)을 포함하기 때문에, (적어도 사용자가 이 특정의 포즈로 있는 동안) 제1 레이어(610)의 특정한 부분들이 제2 레이어(620)의 투명 부분들(630)을 통해 보인다. 사용자가 위치 또는 배향을 나중에 변경하면, 제1 레이어(610)의 다른 부분들이 제2 레이어(620)의 투명 부분들(630)을 통해 보이게 될 것이다. 어느 부분들이 보이는지는 사용자의 포즈에 직접 관련된다.
도 7은 도 6과 유사하지만 부가의 레이어인 레이어(710)를 포함한다. 특히, 도 7은 도 6에서의 다중 레이어 장면(600)과 유사한 다중 레이어 장면(700)을 예시하고 있다. 그렇지만, 이제, 다중 레이어 장면(700)은 부가의 레이어인 레이어(710)(즉, 나무)를 포함한다. 레이어(710)는 다중 레이어 장면(700)에서 다른 레이어들과 오버랩하도록 위치된다. 특히, 레이어(710)의 일 부분은 하부 레이어(즉, 주택)의 투명 부분들 중 일부를 폐색한다. 그 결과, 레이어(710)는 다른 레이어들의 다양한 부분들을 폐색한다(예컨대, 나무가 창문을 커버하고, 창문이 산을 커버하지만, 창문이 투명하기 때문에 산이 창문을 통해 보이지만, 나무가 또한 산의 일부를 커버한다).
위에서 논의된 바와 같이, 다양한 레이어들 각각은, 수행되는 LSR 프로세싱 및 HMD의 검출된 움직임들에 따라, 동일한 또는 상이한 LSR 프로세싱을 거칠 수 있다. 최악의 시나리오에서, 레이어들 전부에서의 픽셀들 전부가 LSR 프로세싱을 거친다. 도 3을 예로서 사용하면, BG 레이어(330)의 픽셀들 전부 및 FG 레이어(320)의 픽셀들 전부가 LSR 프로세싱을 거치면 최악의 시나리오가 발생할 것이다.
LSR 프로세싱의 효율을 개선시키기 위한 노력의 일환으로, 본 실시예들 중 일부는 다중 레이어 장면의 다양한 레이어들에서 픽셀들 중 적어도 일부를 프리-필터링한다(pre-filter). 픽셀들을 프리-필터링하는 하나의 방법은 픽셀 마스크를 사용하는 것이다. 픽셀 마스크는 특정의 레이어의 상부 에지, 하부 에지, 좌측 에지, 및 우측 에지 상에 행 및 열 단위로(per row and column) 정의될 수 있다. 위의 논의에서 언급된 바와 같이, 이 픽셀 마스크는, 그 일부가 이미지 품질에 크게 기여하지 않을 수 있는, 픽셀들(예컨대, 디스플레이의 에지 영역 상에 위치된 픽셀들)에 대한 프로세싱을 제거하는 데 사용될 수 있다. 이 프리-필터링 프로세스는 LSR 프로세싱의 일부가 개개의 픽셀들에 대해 그리고 심지어 넓은 범위의 픽셀들에 대해 스킵될 수 있게 해준다. 이 프리-필터링 프로세스가 도 8에 개괄적으로 시각화되어 있다.
특히, 도 8은 픽셀 마스크가 하나 (이상의) 레이어(예컨대, 도 3의 BG 레이어(330))에 적용될 수 있음을 도시하고 있다. 픽셀 마스크를 적용함으로써, 픽셀 마스크에 의해 식별된, 픽셀 마스크에 의해 처리된(operated on), 또는 픽셀 마스크에 다른 방식으로 대응하는 픽셀들에 대해 LSR 프로세싱이 수행될 필요가 없거나, 또는 오히려 생략/스킵될 수 있다.
도 8이 픽셀 마스크의 사용을 개시하였지만, 다른 유형들의 동작들이 픽셀들을 프리-필터링하는 데 또한 사용될 수 있다. 제한이 아닌 예로서, 벡터 마스크가 픽셀들 중 일부를 프리-필터링(예컨대, LSR로부터 제외시킬 픽셀들을 식별)하는 데 사용될 수 있다.
다른 실시예들은 특정한 레이어들 주위에 경계 박스를 적용함으로써 모든 픽셀 위치에서의 LSR 컴퓨팅을 감소시키거나 제거한다. 이 경계 박스 기능은 도 9에 시각화되어 있다. 특히, 이 경계 박스는 출력 이미지(즉, 렌더링된 장면) 내의 특정한 레이어를 완전히 포함하는 영역(또는 레이어 내의 서브영역)을 정의하는 데 사용된다. 이 경계 박스를 사용할 때, 다양한 실시예들은 출력 이미지가 변함에 따라(예컨대, 사용자가 위치 또는 배향을 변경하고 장면이 그에 따라 조정됨에 따라) 박스 밖에서의 모든 계산들을 제거한다. 이 구절에 예시된 바와 같이, 경계 박스는 특정의 레이어 내의 서브영역을 식별하고 격리시키는 데 사용된다. 이 서브영역이 격리된 후에, 컴퓨터 시스템(200)은 이 서브영역에 LSR 프로세싱을 적용하는 반면 그 레이어에서의 나머지 영역들에 LSR 프로세싱을 적용하는 것을 보류(forego)한다. 그 결과, 컴퓨터 시스템(200)은 레이어의 어느 영역들에 LSR 프로세싱이 적용되어야 하는지를 선택적으로 결정한다.
앞서 논의된 바와 같이, 사용자가 위치 또는 배향을 변경할 때, 위치 또는 배향의 그 변화를 반영하도록 레이어들이 그에 따라 조정될 필요가 있을 것이다. 예로서, 사용자가 자신의 우측으로 이동하면, 사용자의 새로운 시점(viewpoint)을 반영하도록 다양한 레이어들이 조정될 필요가 있을 것이다. 여기서, 일 예가 통찰력 있을 것이다. 사용자가 도 7의 다중 레이어 장면(700)을 보고 있다고 가정한다. 사용자가 자신의 우측으로 이동함에 따라, 나무, 주택, 및 산 풍경에 대한 사용자의 시야 모두가 변할 것이다. 특히, 나무 및 주택의 새로운 영역들이 보일 것이다. 산 풍경과 관련하여 나무 및 주택에 대한 사용자의 시야가 또한 변할 것이다. 이와 달리, 사용자로부터 매우 멀리 떨어져 있는, 산악 풍경의 뷰는 전혀 변하지 않을 것이며, 만일 그렇다면, 변화가 눈에 띄지 않을 정도로 극히 작을 것이다. 나무는 주택보다 사용자에게 더 가깝기 때문에, 주택과 관련하여 눈에 띄게 될 것보다 나무에 대한 원근감의 변화와 관련하여 더 많은 시각적 변화들이 눈에 띄게 될 것이다. 그에 따라, 컴퓨터 시스템은 상이한 레이어들에 대한 특정한 움직임 임계값들을 검출함으로써 트리거될 수 있는 상이한 레이어들에 대한 상이한 LSR 프로세싱의 적용을 지원한다. 독립적인 트리거들이 각각의 레이어에 대한 개별 임계값 결정들에 적용될 수 있다.
논의를 계속하면, 사용자의 위치 변화에 응답하여 이러한 조정을 수행하기 위해, 컴퓨터 시스템(200)은 레이어들에 다양한 변환들을 선택적으로 적용한다. 이러한 변환들은 LSR 프로세싱 동안 그리고/또는 추후의 합성 프로세스 동안 적용된다. 앞서 간략하게 언급된 바와 같은, 하나의 그러한 변환은 가역적 이미지 변환이다. 이 유형의 변환은 이미지 분해(image resolution) 기술들을 사용하여 (예컨대, 아마도 도 9의 경계 박스를 사용하여) 레이어의 코너들을 결정한다. 이 변환은 이어서, 도 10에 현재 도시된 바와 같이, 입력 이미지의 좌측 상부 코너에 대응하는 통합된 레이어(즉, 출력 이미지)에서의 지점을 결정하기 위해 반전된다. 다른 코너들을 결정하기 위해 유사한 계산들이 수행된다. 레이어가 일단 식별되면, 레이어는 다양한 방식들로 조작(예컨대, 연신, 수축, 스큐잉 등)될 수 있다. 앞서 논의된 바와 같이, 다른 유형들의 변환들은 호모그래픽 변환들, 아핀 변환들, 픽셀 오프셋 조정들, 깊이 프로세싱 변환들, 및 행렬 변환들을 포함한다.
여기서, 모든 변환들이 용이하게 가역적인 것은 아님에 유의할 가치가 있다. 예를 들어, 대규모 움직임들은 행렬 변환으로 수행될 수 있다. 그렇지만, 보다 작은 조정들은 다른 변환들(예컨대, 깊이 프로세싱 변환들)을 사용하여 행해질 수 있다. 이 변환들을 설명하기 위해, 일부 실시예들은 이전에 생성된 경계 박스 주위에 버퍼 영역을 부과한다. 이 버퍼 영역은 도 11에 예시되어 있으며, 다양한 레이어들을 함께 블렌딩하여 응집력 있고(cohesive) 시각적으로 매력적인 통합된 레이어를 만드는 데 도움을 주기 위해 사용될 수 있다.
HMD가 포비티드 렌더링을 지원할 때와 같은, 많은 경우들에서, 적은 양의 블렌딩이 수행된 후에 배경 레이어가 전경 레이어에 의해 완전히 폐색될 것이다. 본 실시예들은 그 폐색된 부분들에 적용되는 프로세싱의 양을 감소시키거나 심지어 완전히 제거함으로써 이들과 같은 상황들을 활용한다. 예를 들어, 도 12는 불투명하고 하부 BG 레이어의 일 부분을 폐색하는 전경 레이어를 도시하고 있다. 상부 레이어(top layer)의 불투명 영역들에 의해 폐색되는 하부 레이어의 부분들에 대해, LSR 계산들이 스킵될 수 있고 배터리 소비가 감소될 수 있다.
다중 레이어 장면에 대한 LSR 프로세싱을 최적화하는 컴퓨터 시스템을 방금 논의하였으며, 본 개시내용은 이제 LSR 프로세싱을 최적화하기 위한 다양한 예시적인 방법들을 제시할 것이다. 특히, 하기의 논의는 수행될 수 있는 다수의 방법들 및 방법 동작들을 언급한다. 비록 방법 동작들이 특정한 순서로 논의되거나 특정의 순서로 발생하는 것으로 플로차트에 예시될 수 있지만, 구체적으로 언급되지 않은 한, 특정의 순서가 요구되지 않거나, 또는 한 동작이 그 동작이 수행되기 전에 완료되는 다른 동작에 의존하기 때문에, 특정의 순서가 요구되지 않는다.
레이어 서브영역들에 대한 재투사 프로세싱의 선택적 적용
도 13은, 도 2의 컴퓨터 시스템(200)과 같은, 컴퓨터 시스템에 의해 수행되는 예시적인 방법(1300)을 예시하고 있다. 특히, 방법(1300)은 하나 이상의 레이어를 포함하는 장면을 생성하는 동작(동작(1310))을 포함한다.
여기서, 일부 경우들에서, 요소가 레이어이도록 전체 레이어가 단일 요소만으로 구성될 수 있음에 유의할 가치가 있다. 도 5를 예로서 사용하면, 전체 레이어(500)가 단일 주택 요소만으로 구성된다. 그렇지만, 다른 경우들에서, 레이어가 다수의 요소들로 구성될 수 있다. 제한이 아닌 예로서, 도 4는 레이어(400)가 산악 풍경, 도로, 하늘, 및 아마도 초원을 포함하는 것을 예시하고 있다. 여기서, 산악 풍경이 구별되는 요소로 간주될 수 있고, 도로가 구별되는 요소로 간주될 수 있으며, 기타 등등이다. 따라서, 일부 경우들에서, 레이어(400)가 다수의 구별되는 요소들로 구성된다. 그렇지만, 다른 실시예들에서, 레이어에서의 요소들 사이에 그러한 구별이 없다.
일부 실시예들에서, 장면이 컴퓨터 시스템의 일 부분(예컨대, HMD)의 다양한 포즈들에 기초하여 생성된다. 명확히 하기 위해, 포즈들은 IMU 기기에 의해 결정된 실제 포즈들은 물론 추정된 행동 및 예상된 움직임에 의해 결정된 예측된 포즈들 둘 다를 포함한다. 여기서, 장면 생성 컴포넌트(210)는 이전에 설명된 방식으로 장면을 생성한다. 이 기능에 대한 추가 설명은 본 개시내용에서 나중에 제시될 것이다.
일부 실시예들은 이 장면을 포비티드 렌더링을 위해 구성한다. 특히, 이 실시예들은 사용자의 눈 움직임들을 추적하기 위해 눈 추적 기술을 이용한다. 이어서, 이 실시예들은 레이어들 중 적어도 하나의 레이어는 사용자의 눈의 중심와 근방에 있는 것으로 디스플레이되는 반면 다른 레이어들은 사용자의 눈의 중심와 근방에 있는 것으로 디스플레이되지 않도록 장면을 렌더링한다. 그에 대응하여, 실시예들이 레이어 내의 요소들을 구별하면, 요소들이 또한 포비티드 렌더링 기술들에 따라 디스플레이된다.
방법(1300)은 하나 이상의 레이어 내의 서브영역을 식별하는 동작(동작(1320))을 또한 포함한다. 이 서브영역은 하나 이상의 레이어에서 적어도 하나의 다른 영역과 구별된다. 여기서, 레이어 생성 컴포넌트(230)는 다양한 레이어들 내의 서브영역들을 조작하고 다른 방식으로 구별한다.
일부 실시예들에서, 이 서브영역을 식별하는 프로세스는 1) 하나 이상의 레이어 내의 특정의 요소 및 2) 특정의 요소 주위의 버퍼 경계를 식별하는 단계를 또한 포함한다. 따라서, 이 실시예들에서, 서브영역은 요소 자체는 물론 요소 주위의 버퍼 경계 둘 다를 포함한다. 이와 달리, 다른 실시예들은 서브 영역 주위의 그러한 버퍼 경계를 포함하지 않는다.
위의 예에서, 도 4에서의 레이어(400)는 다수의 요소들(예컨대, 산악 풍경 요소, 도로 요소 등)로 구성된다. 일부 실시예들은 서브영역으로서 역할할 전체 요소(예컨대, 도로 요소)를 선택한다. 그렇지만, 대안적으로, 식별된 서브영역이 요소와 어떠한 특정의 관계도 갖지 않는 일반화된 레이어 부분에 불과할 수 있다.
일부 실시예들에서, HMD에 대한 다른 요소들/레이어들의 상대 움직임에 대해서는 충족되지 않은, 특정의 움직임 임계값이 HMD에 대한 요소의 상대 움직임에 대해서는 충족되거나 초과된 것을 검출하는 것에 응답하여 특정의 요소가 식별된다.
방법(1300)은 이어서 식별된 서브영역을 하나 이상의 레이어의 적어도 하나의 다른 영역으로부터 격리시키는 동작(동작(1330))을 포함한다. 상기 단계와 유사하게, 레이어 생성 컴포넌트(230)는 이 동작을 또한 수행한다. 이 격리는 다양한 방식들로 수행된다. 예를 들어, 이 격리는 하나 이상의 레이어에 픽셀 마스크 또는 벡터 마스크를 적용함으로써 수행된다. 위에서 상술된 바와 같이, 이 격리된 서브영역 주위에 버퍼 영역이 또한 적용될 수 있다. 이 버퍼 영역은 본 개시내용에서 이전에 설명된 방식으로 생성된다.
위의 예를 계속하면, 도로 요소가 서브영역으로서 선택된 것으로 가정한다. 이 도로 요소는 이어서 레이어(400)에서의 다른 영역들과 구별된다(예컨대, 다른 영역들은 산악 풍경 요소를 적어도 포함한다). 도로 요소를 구별하기 위해, 실시예들은 픽셀 마스크, 벡터 마스크, 경계 박스 등을 사용하여 도로 요소를 다른 영역들로부터 격리시킨다.
마지막으로, 도 13은 하나 이상의 레이어의 적어도 하나의 다른 영역에는 후기 재투사 프로세싱을 적용하는 것을 억제하면서 격리된 서브영역에는 후기 재투사 프로세싱을 적용하는 동작(동작(1340))을 도시하고 있다. 예로서, LSR 컴포넌트(220)는 이전에 설명된 방식으로 LSR 프로세싱을 수행한다. 일부 실시예들에서, LSR 프로세싱은 하나 이상의 레이어 또는 하나 이상의 레이어 내의 요소들을 변환하기 위한 하나 이상의 변환을 포함한다. 이 변환들은 호모그래픽 변환, 아핀 변환, 가역적 이미지 변환, 픽셀 오프셋 조정, 깊이 프로세싱 변환, 행렬 변환, 또는 임의의 다른 종류의 이미지 변환(연신, 스큐잉, 확장, 회전 등)을 포함한다. 게다가, 하나 이상의 변환은 컴퓨터 시스템의 일 부분(예컨대, HMD)의 특정한 예측된 포즈에 응답하여 하나 이상의 레이어(또는 그 레이어들 내의 요소들)에 적용된다. 여기서, 일부 다중 레이어 장면들에서, LSR 프로세싱이 하나의 레이어에서는 픽셀들 전부에 적용되는 반면 LSR 프로세싱이 상이한 레이어에서는 픽셀들의 서브셋에만 적용된다는 점에 유의할 가치가 있다. 그렇지만, 다른 상황들에서, LSR 프로세싱이 레이어들 전부에서의 픽셀들 전부에 적용된다. 이 상황은 종종 최악의 시나리오이다.
위의 예를 계속하면, 도로 요소가 격리를 위해 선택된 후에, 실시예들은 그 도로 요소에 대해 LSR 프로세싱을 수행한다. 예를 들어, 사용자가 어떤 방식으로 자신의 자세 또는 배향을 변경한다고(예컨대, 아마도 사용자가 선 자세(standing position)로부터 앉은 자세(sitting position)로 간다고) 가정한다. 사용자로부터 가장 멀리 있는 도로의 부분들은 원근감 또는 뷰가 많이 변하지 않았을 것이다. 그렇지만, 사용자에 가장 가까이 있는 도로의 부분들은 사용자의 위치 변화에 응답하여 원근감이 크게 변했을 것이고, 그로써 총 거리 및/또는 가속도에서의 움직임 임계값을 초과할 것이다. 이 새로운 포즈에 응답하여, 이 실시예들은 식별된 요소(예컨대, 도로 또는 도로의 특정의 부분)에 대해 LSR 프로세싱을 수행한다.
위에서 살펴본 바와 같이, 이 LSR 프로세싱은 다양한 변환들의 선택적 적용을 또한 포함할 수 있다. 여기서, 사용자의 위치 변화에 응답하여 도로 요소의 시각화가 적절하게 렌더링되도록 하기 위해 특정한 변환들이 도로 요소에 적용될 필요가 있을 것이다. 예를 들어, 도로가 사용자에 의해 적절하게 정렬되고 지각되도록 하기 위해 사용자에 가장 가까운 도로의 부분이 연신되거나, 스큐잉되거나, 또는 다른 방식으로 조작될 필요가 있을 것이다. 그 결과, 식별된 서브영역(예컨대, 레이어(400)에서의 도로 요소)에 적용되는 LSR 프로세싱은 그 레이어 내의 나머지 영역들에 적용되는 LSR 프로세싱과 상이할 수 있다(예컨대, 아마도 LSR 프로세싱이 산악 풍경 요소에는 적용되지 않았는데, 그 이유는 그 요소가 사용자로부터 매우 멀리 떨어진 것으로 지각되고 사용자 위치 변화들에 응답하여 거의 변하지 않을 것이기 때문이다).
다수의 레이어들을 포함하는 장면들에서, 하나의 레이어(예컨대, 상부 레이어)의 일 부분은 하부 레이어의 일 부분과 오버랩할 것이다. 그 결과, 상부 레이어의 부분은 하부 레이어의 난독화된 부분을 난독화한다. 그러한 다중 레이어 장면들에서, 식별된 서브영역은 아래의 레이어(underneath layer)의 난독화된 부분을 난독화하는 상부 레이어의 부분 내에 포함될 수 있다. 여기서, 식별된 서브영역이, 일부 경우들에서, 투명 부분(예컨대, 도 6의 투명 부분(630))을 포함할 것임에 유의할 가치가 있다. 이 상황들에서, 서브영역의 투명 부분 아래에 위치된 아래의 레이어의 부분은, LSR 프로세싱이 적용된 후에도, 투명 부분을 통해 보일 것이다.
그에 따라, 실시예들은 다중 레이어 장면의 레이어 서브 영역들에 대한 LSR 프로세싱의 선택적 적용을 지원한다.
다중 레이어 장면들에 재투사 프로세싱을 선택적으로 적용
도 14는, 도 2에서의 컴퓨터 시스템(200)과 같은, 컴퓨터 시스템에 의해 수행되는 다른 예시적인 방법(1400)을 예시하고 있으며, 여기서 각각의 장면 요소는 상이한 레이어를 포함할 수 있다.
먼저, 방법(1400)은 복수의 레이어들을 포함하는 장면을 생성하는 동작(동작(1410))을 포함한다. 여기서, 다중 레이어 장면들을 생성하기 위해 장면 생성 컴포넌트(210)와 레이어 생성 컴포넌트(230)가 나란히(in tandem) 작동한다. 위와 같이, 이 장면은 혼합, 증강, 또는 가상 현실 장면의 일부로서 포함될 수 있다.
일부 실시예들에서, 이 장면은 컴퓨터 시스템의 일부(예컨대, HMD)의 다양한 포즈들에 응답하여 생성된다. 이 포즈들은 1) IMU 기기에 의해 결정된 실제 포즈들 및 2) 사용자 행동(예컨대, 과거 및 현재 행동 둘 다) 및 예상된 움직임 둘 다에 기초한 예측된 포즈들을 포함한다. 예측된 포즈가 생성될 때, 이는 이전의 포즈 결정들에 기초한다. 게다가, 컴퓨터 시스템이 그의 하드웨어 IMU 기기로부터 데이터를 취득하는 빈도를 감소시키도록, 예측된 포즈 데이터가 실제 포즈 데이터를 보강하는 데 사용된다. 데이터가 실제로 수집되는 빈도를 감소시킴으로써, 실시예들은 컴퓨터 시스템의 배터리 수명을 연장시킨다.
다수의 포즈 결정들이 생성될 수 있다. 예를 들어, 일부 실시예들은 특정의 시점에 대한 복수의 예측된 포즈 결정들(예컨대, 시간 X에 대한 10개의 상이한 포즈 추정치)을 생성하며, 여기서 각각의 예측된 포즈 결정은 HMD가 그 시점에 어떻게 배치될 것인지에 관한 추정치이다. 이 실시예들은 그 예측된 포즈 결정들 각각에 실현 확률(probability of realization)을 할당한다(예컨대, 포즈 Y는 52% 실현 가능성을 갖고, 포즈 Z는 35% 실현 가능성을 가지며, 기타 등등이다). 이 확률은 1) 사용자의 과거 행동, 2) 사용자의 현재 움직임들, 및/또는 3) 장면에서 현재 발생하고 있거나 곧 발생할 이벤트들에 기초하여 결정된다(예컨대, 소프트웨어 애플리케이션은 새로운 적이 장면에서 특정의 위치에 곧 나타날 것이라고 결정하고 소프트웨어 애플리케이션은 사용자가 특정한 움직임을 수행함으로써 그 새로운 외관에 반응할 것이라고 추정한다). 확률 결정들이 완료된 후에, 실시예들은 최고 순위의 예측된 포즈를 선택하고 다음 동작들을 계속한다.
다른 실시예들은 복수의 예측된 포즈 결정들을 상이한 방식으로 생성한다. 여기서, 단일 시점에 대해 복수의 예측된 포즈 결정들을 생성하는 대신에, 이 실시예들은 이전의 예측된 포즈 결정들에 기초하여 연속적인 예측된 포즈 결정들을 한다. 명확히 하기 위해, 컴퓨터 시스템이 특정의 빈도수로, 아마도 매 20 ms마다, 실제 포즈 데이터를 수집한다고 가정한다(이 숫자는 예일 뿐이며 제한적인 메트릭으로서 간주되어서는 안되고 20 ms 초과 또는 미만일 수 있다). 그렇지만, 특히, 장면이 보다 빠른 레이트로 업데이트될 필요가 있을 수 있다. 그 결과, 이 실시예들은 예측된 포즈 데이터로 실제 포즈 데이터를 보강한다. 그렇게 하기 위해, 이 실시예들은 실제 포즈 데이터에 적어도 부분적으로 기초하여 제1 예측된 포즈를 생성하고 그 제1 예측된 포즈에 기초하여 장면을 렌더링한다. 이어서, 실시예들은 제1 예측된 포즈에 적어도 부분적으로 기초하여 제2 예측된 포즈를 생성하고 이어서 그 제2 예측된 포즈에 기초하여 장면을 렌더링한다. 컴퓨터 시스템이 실제 포즈 데이터를 또다시 취득할 때까지, 연속적인 예측된 포즈가 이전의 예측된 포즈에 기초하는, 이 프로세스가 계속된다. 그 결과, 연속적인 예측된 포즈들은 컴퓨터 시스템의 일부의 이전에 취득된 실제 결정된 포즈와 상이하다. 일부 상황들에서(그리고 다양한 예측된 포즈들에 응답하여), 장면에서의 다수의 레이어들에 적용되는 LSR 프로세싱이 그 레이어들의 픽셀들 전부에 적용된다. 그렇지만, 다른 상황들에서, LSR 프로세싱이 하나 이상의 레이어 내의 픽셀들의 서브세트에만 적용된다.
방법(1400)은 복수의 레이어들 중 제1 레이어에 LSR 프로세싱을 적용하는 동작(동작(1420))을 또한 포함한다. 여기서, LSR 컴포넌트(220)는 레이어들에 LSR 프로세싱을 적용한다. 특히, 일부 실시예들은 특정의 레이어 내의 식별된 픽셀 서브세트에만 LSR 프로세싱을 적용하는 반면(예컨대, 아마도 픽셀들 중 일부는 본 개시내용에서 앞서 설명된 방식으로 레이어로부터 프리-필터링되었음) 다른 실시예들은 다수의 레이어들의 픽셀들 전부에 LSR 프로세싱을 적용한다.
방법(1400)은 복수의 레이어들 중 제2 레이어에 LSR 프로세싱을 적용하는 동작(동작(1430))을 또한 포함한다. 이 제2 레이어에 적용되는 LSR 프로세싱은 제1 레이어의 LSR 프로세싱과 독립적으로 수행된다. 게다가, 제2 레이어에 적용되는 LSR 프로세싱은 하나 이상의 변환(예컨대, 가역적 이미지 변환 및/또는 행렬 변환)을 포함한다. 이러한 변환들이 제2 레이어에는 적용되지만 제1 레이어에는 적용되지 않는다. 제1 레이어 및 제2 레이어에 적용되는 상이한 변환들은, 상이한 레이어들의 상이한 어트리뷰트들을 검출하는 것에 기초하여 그리고/또는 상이한 레이어들에 대해 상이한 움직임 임계값들이 충족되었거나 충족되지 않았음을 검출하는 것에 기초하여, 상이할 수 있다. 저장되고 액세스되는 파라미터들은 언제 상이한 변환들이 상이한 레이어들에 적용되어야 하는지를 정의한다.
추후에 설명될 후속 합성 프로세스 동안 부가의 변환들이 또한 적용될 수 있다. 따라서, 이미지 변환들이 다양한 상이한 때에 레이어들에 적용될 수 있다. 위의 동작과 유사하게, LSR 컴포넌트(220)는 이 LSR 프로세싱을 적용한다. 그 결과, LSR 컴포넌트(220)는 상이한 때에 상이한 레이어들에 상이한 LSR 프로세싱을 적용할 수 있다.
여기서, 광범위한 변환들이 레이어들에 적용될 수 있음에 유의할 가치가 있다. 위에서 언급된 변환들(예컨대, 호모그래픽 변환들, 아핀 변환들, 가역적 이미지 변환들, 깊이 프로세싱 변환들, 픽셀 오프셋 변환들, 매트릭스 변환들 등)에 부가하여, 변환들은 1) 평행이동, 2) 반사, 3) 회전, 또는 4) 확장 변환을 또한 포함한다. 레이어의 다른 특성들을 변경하기 위해 다양한 다른 변환들이 적용될 수 있다. 예로서, 사용자의 위치 변화에 응답하여, 새로운 반짝거리는 빛(glare) 또는 반사가 장면 내에 도입되어야 한다(예컨대, 아마도 컴퓨터 시스템이 햇빛이 이제 도 5에서의 주택의 창문에서 반사되어야 하고 사용자의 눈으로 투사되어야 한다고 결정한다)고 가정한다. 이 새로운 반짝거리는 빛 또는 반사는 사용자가 장면을 어떻게 보는지, 특히 다양한 레이어들의 색상 및 투명도 양태들에 영향을 미칠 것이다. 그 결과, 장면의 다양한 레이어들의 색상 또는 투명도가 변경될 필요가 있을 수 있다. 따라서, 사이즈 변환들에 부가하여, 하나 이상의 변환은 색상 및 투명도 변환들을 또한 포함한다.
방법(1400)은 통합된 레이어를 생성하는 동작(동작(1440))을 또한 포함한다. 이 통합된 레이어는 다양한 레이어들을 함께(예컨대, 변환된 제2 레이어를 제1 레이어와) 합성함으로써 생성된다. 여기서, 레이어 생성 컴포넌트(230)는 이 통합된 레이어를 생성한다.
일부 실시예들은 본 개시내용에서 이전에 설명된 방식으로 제2 레이어 주위에 버퍼 영역을 생성함으로써 이 합성을 수행한다. 게다가, 변환된 제2 레이어를 제1 레이어와 합성하는 것은 변환된 제2 레이어로 하여금 제1 레이어의 일 부분과 오버랩하게 할 수 있다. 그 결과, 변환된 제2 레이어는 제1 레이어의 일 부분을 적어도 부분적으로 난독화한다. 그렇지만, 레이어들 중 일부는 투명 부분(들)을 포함할 수 있다. 이 투명 부분(들)으로 인해, 투명 부분(들) 아래에 있는 콘텐츠가 투명 부분(들)을 통해 보인다.
마지막으로, 방법(1400)은 통합된 레이어를 렌더링하는 동작(동작(1450))을 포함한다. 이 통합된 레이어는 HMD 상에 렌더링될 수 있다. 여기서, 렌더링 컴포넌트(240)는 통합된 레이어를 렌더링한다.
일부 실시예들은, 통합된 레이어가 포비티드 렌더링 기술들을 사용하여 렌더링되도록, HMD 상에서의 포비티드 렌더링을 지원한다. 명확히 하기 위해, 기반 컴퓨터 시스템(underlying computer system)이 HMD를 포함하면, 통합된 레이어의 렌더링은 통합된 레이어를 HMD 상에 렌더링하는 것에 의해 수행된다.
비록 도 14에 도시되어 있지는 않지만, 다른 실시예들은 다양한 레이어들로부터 픽셀들을 프리-필터링하는 동작들을 포함한다. 예를 들어, 제1 레이어의 일부 픽셀들이 제1 레이어의 다른 픽셀들로부터 프리-필터링될 수 있다. 대안적으로, 제1 레이어의 일부 픽셀들이 상이한 레이어의 픽셀들로부터 프리-필터링될 수 있다(예컨대, 통합된 합성 레이어의 경우에). 이 프리-필터링 프로세스는 픽셀 마스크 또는 벡터 마스크를 적용하는 것에 의해 수행된다. 이 실시예들에서, 프리-필터링되는 픽셀들 중 적어도 일부는 에지 픽셀들인 것으로 식별된다. 이 에지 픽셀들은 비-필터링된 또는 비-에지 픽셀들보다 장면 품질에 덜 기여하는 것으로 결정된다. 이 픽셀들이 장면 품질에 덜 기여하기 때문에, 실시예들은 이 픽셀들에 대한 LSR 프로세싱을 스킵함으로써 배터리 수명을 최적화한다.
다른 실시예들은 컴퓨터 시스템의 일부(예컨대, HMD)의 부가의 예측된 포즈들을 생성한다. 이 실시예들은 제2 레이어를 제1 레이어와 또다시 합성함으로써 새로운 통합된 레이어를 생성한다. 일부 경우들에서, 제2 레이어의 투명 부분을 통해 이전에 보였던 제1 레이어의 부분은 이제 예측된 다음 포즈와 연관된 배향 변화들에 응답하여 난독화된다. 이제, 제2 레이어의 투명 부분을 통해 당초 보이지 않았던 제1 레이어의 새로운 부분이 예측된 다음 포즈와 연관된 배향 변화들에 응답하여 투명 부분을 통해 보이게 된다(예컨대, 도 6에 도시된 창을 통한 산악 풍경의 새로운 뷰가 이제 보인다).
일부 실시예들은 제1 레이어의 이전에 오버랩된 부분이 컴퓨터 시스템의 일부의 예측된 다음 포즈에 응답해서도 제2 레이어에 의해 여전히 오버랩될(예컨대, 도 6에서의 주택의 하부 근방의 산악 풍경의 부분이 여전히 오버랩될) 때를 또한 결정한다. 그에 응답하여, 이 실시예들은 제1 레이어의 오버랩된 부분의 LSR 프로세싱을 스킵한다. 명확히 하기 위해, 실시예들은 제2 레이어에 의해 여전히 오버랩되는 제1 레이어의 오버랩된 부분에는 LSR 프로세싱을 적용하는 것을 억제하면서 제1 레이어의 일부 부분들에는 LSR 프로세싱을 적용한다. 그 결과, 실시예들은 LSR 프로세싱이 회피가능한 때를 동적으로 결정하고 그 회피가능한 인스턴스들 동안 LSR 프로세싱을 스킵하는 것에 의해 컴퓨터 시스템의 배터리 수명을 효율적으로 최적화한다.
본 개시내용의 대부분이 HMD의 포즈에 기초하여 포즈 데이터를 생성하는 것을 강조하지만, 항상 이렇지는 않을 것임이 인식될 것이다. 예를 들어, 개시된 실시예들은 HMD와 상이한 신체상 디바이스(예컨대, 핸드헬드 디바이스, 풋 디바이스(foot device), 체스트 디바이스(chest device) 등) 또는 심지어 사용자의 신체 상에 배치되지 않은 디바이스(예컨대, 방에 배치되고 방의 내용물들(contents)을 매핑하고 상술하는 것에 의해 혼합 현실 경험을 추가로 향상시키는 데 사용되는 기지국) 사이에 관계형 포즈 데이터(relational pose data)를 또한 생성할 수 있다. 따라서, HMD의 포즈에 기초하여 장면을 생성하는 것에 부가하여, 실시예들은 HMD와 다양한 신체상 및/또는 베이스 디바이스들 사이의 관계에 기초하여 장면을 또한 생성할 수 있다. 여기서, 간략한 예가 도움이 될 것이다. 사용자가 HMD를 착용하고 있으며 핸드헬드 디바이스를 소지하고 있다고 가정한다. 장면에 몰입될 때, 레이저 건이 사용자의 팔에 부착된 것으로 시각화될 수 있다. 레이저 건의 올바른 배향 및 포즈를 계산하기 위해, 컴퓨터 시스템은 HMD와 핸드헬드 디바이스 둘 다로부터 수집된 포즈 데이터에 의존한다. 그에 따라, 본 명세서에 논의된 실시예들은 HMD로부터 취득된 포즈 데이터에만 기초하여 장면을 생성하는 것으로 제한되지 않는다. 오히려, 실시예들은 다른 유형들의 신체상 및/또는 베이스 디바이스들로부터 수집된 포즈 데이터에 기초하여 장면을 또한 생성할 수 있다.
그에 따라, 본 개시내용은 다수의 레이어들을 포함하는 컴퓨터 생성 장면들에 대한 LSR 프로세싱을 최적화하는 시스템들, 하드웨어 저장 디바이스들, 및 방법들을 제시하였다. 일부 실시예들은 LSR 프로세싱이 레이어의 다양한 서브영역들에 선택적으로 적용되게 한다. 다른 실시예들은 LSR 프로세싱이 다중 레이어 장면들에 선택적으로 적용되게 한다. 이 프로세스들의 결과로서, 본 명세서에 제시된 실시예들은 LSR 프로세싱을 최적화하고 선택적으로 적용하며, 그로써, 범용 LSR 프로세싱에 의해 그렇지 않았으면 소비될 전력을 보존하는 데 도움을 줄 수 있다.
본 발명은 그의 사상 또는 특성들을 벗어나지 않으면서 다른 특정 형태들로 구체화될 수 있다. 설명된 실시예들은 모든 점들에서 제한적인 것이 아니라 단지 예시적인 것으로 간주되어야 한다. 따라서, 본 발명의 범위는 전술한 설명에 의해서보다는 첨부된 청구항들에 의해 표시된다. 청구항들의 등가성(equivalency)의 의미 및 범위 내에 있는 모든 변경들은 그들의 범위 내에 포괄되어야 한다.
Claims (21)
- 컴퓨터 시스템에 있어서,
하나 이상의 프로세서; 및
컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독가능 하드웨어 저장 매체
를 포함하고, 상기 컴퓨터 실행가능 명령어들은 상기 컴퓨터 시스템이,
복수의 레이어(layer)들을 포함하는 장면(scene)을 생성하게 하고 - 상기 복수의 레이어들은 제1 레이어 및 제2 레이어를 포함하고, 상기 장면은 상기 컴퓨터 시스템의 일 부분의 제1의 예측된 포즈(pose)에 기초하여 생성됨 - ;
상기 제1 레이어와 연관된 사용자 움직임 문턱값(user movement threshold)이 충족되고 상기 제2 레이어와 연관된 사용자 움직임 문턱값이 충족되지 않는다고 결정한 것에 응답하여 상기 복수의 레이어들 내의 서브영역(sub-region)을 식별하게 하고 - 상기 서브영역은 상기 제1 레이어의 적어도 일부를 포함하고 상기 제2 레이어의 적어도 일부를 배제(exclude)하며, 상기 서브영역은 상기 복수의 레이어들 내의 적어도 하나의 다른 영역과 구별됨 - ;
상기 서브영역을 상기 복수의 레이어들의 상기 적어도 하나의 다른 영역으로부터 격리시키게 하고;
상기 복수의 레이어들의 상기 적어도 하나의 다른 영역에 후기 재투사 프로세싱(late stage reprojection processing)을 적용하는 것을 억제하면서 상기 격리된 서브영역에 후기 재투사 프로세싱을 적용하게 함으로써
상기 컴퓨터 시스템이 후기 재투사를 최적화하게 하기 위해 상기 하나 이상의 프로세서에 의해 실행가능하고,
상기 서브영역을 식별하는 것은, (1) 상기 복수의 레이어들 내의 특정 요소 및 (2) 상기 특정 요소 주위의 경계를 식별하는 것을 포함하고, 상기 서브영역은 상기 특정 요소 및 상기 특정 요소 주위의 상기 경계를 포함하는 것인, 컴퓨터 시스템. - 제1항에 있어서, 상기 후기 재투사 프로세싱은, 상기 복수의 레이어들에 가역적 이미지 변환(invertible image transformation)을 적용하는 것을 포함하는 것인, 컴퓨터 시스템.
- 제1항에 있어서, 상기 서브영역을 격리시키는 것은, 상기 복수의 레이어들에 픽셀 마스크를 적용함으로써 적어도 부분적으로 수행되는 것인, 컴퓨터 시스템.
- 삭제
- 제1항에 있어서, 상기 후기 재투사 프로세싱은 상기 복수의 레이어들을 변환하기 위한 하나 이상의 변환을 포함하고, 상기 하나 이상의 변환은 상기 컴퓨터 시스템의 상기 일 부분의 상기 제1의 예측된 포즈에 응답하여 상기 복수의 레이어들에 적용되는 것인, 컴퓨터 시스템.
- 제1항에 있어서, 상기 컴퓨터 실행가능 명령어들의 실행은 또한, 상기 컴퓨터 시스템이 상기 격리된 서브영역 주위에 버퍼 영역을 적용하게 하는 것인, 컴퓨터 시스템.
- 제1항에 있어서, 상기 장면은 혼합 현실 장면(mixed-reality scene)인 것인, 컴퓨터 시스템.
- 제1항에 있어서, 상기 장면은 증강 현실 장면(augmented-reality scene)인 것인, 컴퓨터 시스템.
- 제1항에 있어서, 상기 장면은 가상 현실 장면(virtual-reality scene)인 것인, 컴퓨터 시스템.
- 컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 하드웨어 저장 디바이스에 있어서, 상기 컴퓨터 실행가능 명령어들은 컴퓨터 시스템이,
복수의 레이어들을 포함하는 장면을 생성하게 하고 - 상기 복수의 레이어들은 제1 레이어 및 제2 레이어를 포함하고, 상기 장면은 상기 컴퓨터 시스템의 일 부분의 제1의 예측된 포즈에 기초하여 생성됨 - ;
상기 제1 레이어와 연관된 사용자 움직임 문턱값이 충족되고 상기 제2 레이어와 연관된 사용자 움직임 문턱값이 충족되지 않는다고 결정한 것에 응답하여 상기 복수의 레이어들 내의 서브영역을 식별하게 하고 - 상기 서브영역은 상기 제1 레이어의 적어도 일부를 포함하고 상기 제2 레이어의 적어도 일부를 배제하며, 상기 서브영역은 상기 복수의 레이어들 내의 적어도 하나의 다른 영역과 구별됨 - ;
상기 서브영역을 상기 복수의 레이어들의 상기 적어도 하나의 다른 영역으로부터 격리시키게 하고;
상기 복수의 레이어들의 상기 적어도 하나의 다른 영역에 후기 재투사 프로세싱을 적용하는 것을 억제하면서 상기 격리된 서브영역에 후기 재투사 프로세싱을 적용하게 함으로써
상기 컴퓨터 시스템이 후기 재투사를 최적화하게 하기 위해 상기 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행가능하고,
상기 서브영역을 식별하는 것은, (1) 상기 복수의 레이어들 내의 특정 요소 및 (2) 상기 특정 요소 주위의 경계를 식별하는 것을 포함하고, 상기 서브영역은 상기 특정 요소 및 상기 특정 요소 주위의 상기 경계를 포함하는 것인, 하나 이상의 하드웨어 저장 디바이스. - 제10항에 있어서, 상기 서브영역을 격리시키는 것은, 상기 복수의 레이어들에 벡터 마스크를 적용함으로써 적어도 부분적으로 수행되는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제10항에 있어서, 상기 후기 재투사 프로세싱은, 상기 복수의 레이어들에 매트릭스 변환을 적용하는 것을 포함하는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제10항에 있어서, 상기 제1의 예측된 포즈는, 상기 컴퓨터 시스템의 하나 이상의 하드웨어 기구(hardware instrument)에 의해 이전에 취득된 정보에 기초하여 결정되는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제13항에 있어서, 상기 컴퓨터 시스템의 상기 하나 이상의 하드웨어 기구는 가속도계, 자이로스코프, 자력계, 깊이 센서, 카메라, 또는 적외선 센서를 포함하는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제10항에 있어서, 상기 제1 레이어는 제1 해상도에 따라 렌더링되고, 상기 제2 레이어는 제2 해상도에 따라 렌더링되는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제15항에 있어서, 상기 컴퓨터 시스템은 또한 상기 컴퓨터 시스템의 사용자의 눈의 움직임들을 추적하고, 상기 제2 레이어 내에 포함된 장면 요소들이 상기 사용자의 눈의 중심와(fovea) 근방에 디스플레이되지 않으면서 상기 제1 레이어 내에 포함된 장면 요소들이 상기 사용자의 눈의 상기 중심와 근방에 디스플레이되어, 상기 장면이 중심와 렌더링(foveated rendering)을 위하여 구성되는 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제10항에 있어서, 상기 제1 레이어에 적용되는 후기 재투사 프로세싱은 상기 제2 레이어에 적용되는 후기 재투사 프로세싱과는 상이한 것인, 하나 이상의 하드웨어 저장 디바이스.
- 제17항에 있어서, 상기 제1 레이어의 후기 재투사 프로세싱과 상기 제2 레이어의 후기 재투사 프로세싱 간의 차이는 상기 제1 레이어와 상기 제2 레이어 간의 결정된 깊이에서의 차이로 인한 것인, 하나 이상의 하드웨어 저장 디바이스.
- 후기 재투사를 최적화하기 위한 방법에 있어서, 상기 방법은 컴퓨터 시스템의 하나 이상의 프로세서에 의해 수행되고, 상기 방법은,
복수의 레이어들을 포함하는 장면을 생성하는 단계 - 상기 복수의 레이어들은 제1 레이어 및 제2 레이어를 포함하고, 상기 장면은 상기 컴퓨터 시스템의 일 부분의 제1의 예측된 포즈에 기초하여 생성됨 - ;
상기 제1 레이어와 연관된 사용자 움직임 문턱값이 충족되고 상기 제2 레이어와 연관된 사용자 움직임 문턱값이 충족되지 않는다고 결정한 것에 응답하여 상기 복수의 레이어들 내의 서브영역을 식별하는 단계 - 상기 서브영역은 상기 제1 레이어의 적어도 일부를 포함하고 상기 제2 레이어의 적어도 일부를 배제하며, 상기 서브영역은 상기 복수의 레이어들 내의 적어도 하나의 다른 영역과 구별됨 - ;
상기 서브영역을 상기 복수의 레이어들의 상기 적어도 하나의 다른 영역으로부터 격리시키는 단계; 및
상기 복수의 레이어들의 상기 적어도 하나의 다른 영역에 후기 재투사 프로세싱을 적용하는 것을 억제하면서 상기 격리된 서브영역에 후기 재투사 프로세싱을 적용하는 단계
를 포함하고,
상기 서브영역을 식별하는 단계는, (1) 상기 복수의 레이어들 내의 특정 요소 및 (2) 상기 특정 요소 주위의 경계를 식별하는 단계를 포함하고, 상기 서브영역은 상기 특정 요소 및 상기 특정 요소 주위의 상기 경계를 포함하는 것인, 후기 재투사를 최적화하기 위한 방법. - 제19항에 있어서, 후기 재투사 프로세싱이 상기 제2 레이어 내의 픽셀들의 서브세트에만 적용되면서 후기 재투사 프로세싱이 상기 제1 레이어 내의 모든 픽셀들에 적용되는 것인, 후기 재투사를 최적화하기 위한 방법.
- 제19항에 있어서, 상기 서브영역은 투명 부분을 포함하고, 상기 후기 재투사 프로세싱이 상기 격리된 서브영역에 적용된 후, 상기 제2 레이어의 난독화된 부분(obfuscated portion)이 상기 서브영역의 상기 투명 부분을 통해 보이는 것인, 후기 재투사를 최적화하기 위한 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/470,737 | 2017-03-27 | ||
US15/470,737 US10410349B2 (en) | 2017-03-27 | 2017-03-27 | Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power |
PCT/US2018/023212 WO2018183025A1 (en) | 2017-03-27 | 2018-03-20 | Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190133716A KR20190133716A (ko) | 2019-12-03 |
KR102663558B1 true KR102663558B1 (ko) | 2024-05-09 |
Family
ID=61966057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197031326A KR102663558B1 (ko) | 2017-03-27 | 2018-03-20 | 후기 재투사 전력을 최적화하기 위한 시스템, 디바이스, 및 방법 |
Country Status (17)
Country | Link |
---|---|
US (1) | US10410349B2 (ko) |
EP (1) | EP3602248B1 (ko) |
JP (1) | JP7158404B2 (ko) |
KR (1) | KR102663558B1 (ko) |
CN (1) | CN110462555B (ko) |
AU (1) | AU2018245993B2 (ko) |
BR (1) | BR112019016952A2 (ko) |
CA (1) | CA3053408A1 (ko) |
CL (1) | CL2019002687A1 (ko) |
CO (1) | CO2019009849A2 (ko) |
IL (1) | IL268797B (ko) |
MX (1) | MX2019011541A (ko) |
PH (1) | PH12019550174A1 (ko) |
RU (1) | RU2762123C2 (ko) |
SG (1) | SG11201908293QA (ko) |
WO (1) | WO2018183025A1 (ko) |
ZA (1) | ZA201905233B (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10962780B2 (en) * | 2015-10-26 | 2021-03-30 | Microsoft Technology Licensing, Llc | Remote rendering for virtual images |
US9978118B1 (en) | 2017-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations with data compression |
US10242654B2 (en) | 2017-01-25 | 2019-03-26 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations |
US10514753B2 (en) | 2017-03-27 | 2019-12-24 | Microsoft Technology Licensing, Llc | Selectively applying reprojection processing to multi-layer scenes for optimizing late stage reprojection power |
US10255891B2 (en) | 2017-04-12 | 2019-04-09 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations with multiple LSR processing engines |
US10939038B2 (en) * | 2017-04-24 | 2021-03-02 | Intel Corporation | Object pre-encoding for 360-degree view for optimal quality and latency |
US10649521B2 (en) | 2017-04-24 | 2020-05-12 | Intel Corporation | Compensating for high head movement in head-mounted displays |
JP6711803B2 (ja) * | 2017-10-13 | 2020-06-17 | 株式会社ソニー・インタラクティブエンタテインメント | 画像生成装置および画像生成方法 |
ES2938535T3 (es) * | 2018-07-20 | 2023-04-12 | Tobii Ab | Representación foveada distribuida basada en la mirada del usuario |
CN109242943B (zh) * | 2018-08-21 | 2023-03-21 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及图像处理设备、存储介质 |
US11100899B2 (en) * | 2019-08-13 | 2021-08-24 | Facebook Technologies, Llc | Systems and methods for foveated rendering |
KR102092735B1 (ko) * | 2019-12-17 | 2020-03-24 | 주식회사 오썸피아 | 전망대 망원경에 증강현실 콘텐츠를 제공하는 방법 및 장치 |
US20230132045A1 (en) * | 2020-03-09 | 2023-04-27 | Sony Group Corporation | Information processing device, information processing method, and recording medium |
EP4147192A1 (en) * | 2020-05-08 | 2023-03-15 | QUALCOMM Incorporated | Multi-layer reprojection techniques for augmented reality |
JP7287409B2 (ja) * | 2021-02-26 | 2023-06-06 | セイコーエプソン株式会社 | 表示方法およびプログラム |
WO2023048955A1 (en) * | 2021-09-24 | 2023-03-30 | Callisto Design Solutions Llc | Warping a frame based on pose and warping data |
US20230128288A1 (en) * | 2021-10-27 | 2023-04-27 | Meta Platforms Technologies, Llc | Compositor layer extrapolation |
US11514654B1 (en) * | 2021-12-09 | 2022-11-29 | Unity Technologies Sf | Calibrating focus/defocus operations of a virtual display based on camera settings |
US20230298212A1 (en) * | 2022-03-17 | 2023-09-21 | Advanced Micro Devices, Inc. | Locking mechanism for image classification |
US20240029363A1 (en) * | 2022-07-20 | 2024-01-25 | Qualcomm Incorporated | Late stage occlusion based rendering for extended reality (xr) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009156992A (ja) * | 2007-12-25 | 2009-07-16 | Canon Inc | 制御装置、表示装置及びそれらの制御方法、複合現実システム、及びコンピュータプログラム |
JP2012033038A (ja) * | 2010-07-30 | 2012-02-16 | Fujitsu Ltd | 模擬映像生成装置、方法、プログラム |
JP2015022458A (ja) * | 2013-07-18 | 2015-02-02 | 株式会社Jvcケンウッド | 画像処理装置、画像処理方法及び画像処理プログラム |
WO2016018487A9 (en) * | 2014-05-09 | 2016-03-24 | Eyefluene, Inc. | Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects |
Family Cites Families (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864342A (en) | 1995-08-04 | 1999-01-26 | Microsoft Corporation | Method and system for rendering graphical objects to image chunks |
US6008820A (en) | 1995-08-04 | 1999-12-28 | Microsoft Corporation | Processor for controlling the display of rendered image layers and method for controlling same |
US5933125A (en) | 1995-11-27 | 1999-08-03 | Cae Electronics, Ltd. | Method and apparatus for reducing instability in the display of a virtual environment |
US6111582A (en) | 1996-12-20 | 2000-08-29 | Jenkins; Barry L. | System and method of image generation and encoding using primitive reprojection |
US6057847A (en) | 1996-12-20 | 2000-05-02 | Jenkins; Barry | System and method of image generation and encoding using primitive reprojection |
JP3356663B2 (ja) | 1997-10-22 | 2002-12-16 | 松下電器産業株式会社 | 画像符号化装置、画像符号化方法および画像符号化プログラムを記録した記録媒体 |
US6456340B1 (en) | 1998-08-12 | 2002-09-24 | Pixonics, Llc | Apparatus and method for performing image transforms in a digital display system |
US6369830B1 (en) | 1999-05-10 | 2002-04-09 | Apple Computer, Inc. | Rendering translucent layers in a display system |
US7071935B1 (en) | 1999-06-14 | 2006-07-04 | Sun Microsystems, Inc. | Graphics system with just-in-time decompression of compressed graphics data |
US6901169B2 (en) | 2001-02-01 | 2005-05-31 | At & T Corp. | Method and system for classifying image elements |
US7324695B2 (en) | 2002-03-18 | 2008-01-29 | Seimens Medical Solutions Usa, Inc. | Prioritized image visualization from scalable compressed data |
US7199793B2 (en) | 2002-05-21 | 2007-04-03 | Mok3, Inc. | Image-based modeling and photo editing |
US20050132385A1 (en) | 2003-10-06 | 2005-06-16 | Mikael Bourges-Sevenier | System and method for creating and executing rich applications on multimedia terminals |
US7369134B2 (en) | 2003-12-29 | 2008-05-06 | Anark Corporation | Methods and systems for multimedia memory management |
EP1854011A2 (en) | 2005-02-15 | 2007-11-14 | Koninklijke Philips Electronics N.V. | Enhancing performance of a memory unit of a data processing device by separating reading and fetching functionalities |
US20070050605A1 (en) * | 2005-08-29 | 2007-03-01 | Bran Ferren | Freeze-dried ghost pages |
US9117309B1 (en) | 2005-12-19 | 2015-08-25 | Nvidia Corporation | Method and system for rendering polygons with a bounding box in a graphics processor unit |
US20090016333A1 (en) | 2006-06-14 | 2009-01-15 | Derek Wang | Content-based adaptive jitter handling |
US9019300B2 (en) | 2006-08-04 | 2015-04-28 | Apple Inc. | Framework for graphics animation and compositing operations |
US20080158254A1 (en) | 2006-12-29 | 2008-07-03 | Hong Jiang | Using supplementary information of bounding boxes in multi-layer video composition |
US7982733B2 (en) | 2007-01-05 | 2011-07-19 | Qualcomm Incorporated | Rendering 3D video images on a stereo-enabled display |
JP4857196B2 (ja) | 2007-05-31 | 2012-01-18 | キヤノン株式会社 | 頭部装着型表示装置、及びその制御方法 |
US9648325B2 (en) | 2007-06-30 | 2017-05-09 | Microsoft Technology Licensing, Llc | Video decoding implementations for a graphics processing unit |
US9665951B2 (en) | 2007-12-20 | 2017-05-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Unified compression/decompression graphics architecture |
US9355493B2 (en) | 2007-12-31 | 2016-05-31 | Advanced Micro Devices, Inc. | Device and method for compositing video planes |
US20110115792A1 (en) | 2008-07-24 | 2011-05-19 | Nobumasa Tamaoki | Image processing device, method and system |
US8106924B2 (en) | 2008-07-31 | 2012-01-31 | Stmicroelectronics S.R.L. | Method and system for video rendering, computer program product therefor |
JP5563597B2 (ja) | 2009-01-19 | 2014-07-30 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 多重化イメージング |
CA2812523C (en) | 2009-09-25 | 2021-03-16 | Avazap Inc. | Frameless video system |
US8416263B2 (en) | 2010-03-08 | 2013-04-09 | Empire Technology Development, Llc | Alignment of objects in augmented reality |
US9113130B2 (en) | 2012-02-06 | 2015-08-18 | Legend3D, Inc. | Multi-stage production pipeline system |
US9077970B2 (en) | 2011-02-25 | 2015-07-07 | Adobe Systems Incorporated | Independent layered content for hardware-accelerated media playback |
US9262950B2 (en) | 2011-04-20 | 2016-02-16 | Microsoft Technology Licensing, Llc | Augmented reality extrapolation techniques |
CN103597839B (zh) | 2011-05-31 | 2017-10-20 | 杜比实验室特许公司 | 视频压缩方法、视频重构方法和系统、及编码器 |
US9602766B2 (en) | 2011-06-24 | 2017-03-21 | At&T Intellectual Property I, L.P. | Apparatus and method for presenting three dimensional objects with telepresence |
RU2017115669A (ru) * | 2011-10-28 | 2019-01-28 | Мэджик Лип, Инк. | Система и способ для дополненной и виртуальной реальности |
US9153062B2 (en) | 2012-02-29 | 2015-10-06 | Yale University | Systems and methods for sketching and imaging |
ES2665535T3 (es) | 2012-03-20 | 2018-04-26 | Siemens Corporation | Visualización de equipajes y desempaquetado virtual |
US9098418B2 (en) | 2012-03-20 | 2015-08-04 | Apple Inc. | Coordinated prefetching based on training in hierarchically cached processors |
US8687902B2 (en) | 2012-03-29 | 2014-04-01 | Intel Corporation | System, method, and computer program product for decompression of block compressed images |
US9576397B2 (en) | 2012-09-10 | 2017-02-21 | Blackberry Limited | Reducing latency in an augmented-reality display |
CN103873758B (zh) * | 2012-12-17 | 2018-09-21 | 北京三星通信技术研究有限公司 | 全景图实时生成的方法、装置及设备 |
WO2014160342A1 (en) | 2013-03-13 | 2014-10-02 | The University Of North Carolina At Chapel Hill | Low latency stabilization for head-worn displays |
KR102458124B1 (ko) | 2013-03-15 | 2022-10-21 | 매직 립, 인코포레이티드 | 디스플레이 시스템 및 방법 |
US9443355B2 (en) | 2013-06-28 | 2016-09-13 | Microsoft Technology Licensing, Llc | Reprojection OLED display for augmented reality experiences |
US9582075B2 (en) * | 2013-07-19 | 2017-02-28 | Nvidia Corporation | Gaze-tracking eye illumination from display |
US9514571B2 (en) | 2013-07-25 | 2016-12-06 | Microsoft Technology Licensing, Llc | Late stage reprojection |
EP2833326B1 (en) | 2013-07-30 | 2016-04-06 | Dassault Systèmes | Lossless compression of a 3D mesh including transforming of the mesh to a image |
WO2015104451A1 (en) | 2014-01-07 | 2015-07-16 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US10935788B2 (en) | 2014-01-24 | 2021-03-02 | Nvidia Corporation | Hybrid virtual 3D rendering approach to stereovision |
JP6087301B2 (ja) | 2014-02-13 | 2017-03-01 | 株式会社ジオ技術研究所 | 3次元地図表示システム |
US9652893B2 (en) | 2014-04-29 | 2017-05-16 | Microsoft Technology Licensing, Llc | Stabilization plane determination based on gaze location |
US9996976B2 (en) | 2014-05-05 | 2018-06-12 | Avigilon Fortress Corporation | System and method for real-time overlay of map features onto a video feed |
US9430393B2 (en) | 2014-05-26 | 2016-08-30 | Texas Instruments Incorporated | System and method for managing cache |
US20150378920A1 (en) | 2014-06-30 | 2015-12-31 | John G. Gierach | Graphics data pre-fetcher for last level caches |
US20150379772A1 (en) | 2014-06-30 | 2015-12-31 | Samsung Display Co., Ltd. | Tracking accelerator for virtual and augmented reality displays |
US9761001B2 (en) | 2014-09-25 | 2017-09-12 | Intel Corporation | Filtered shadow mapping |
US9659410B2 (en) | 2014-10-21 | 2017-05-23 | Honeywell International Inc. | Low latency augmented reality display |
US10726560B2 (en) | 2014-10-31 | 2020-07-28 | Fyusion, Inc. | Real-time mobile device capture and generation of art-styled AR/VR content |
US20160136816A1 (en) | 2014-11-14 | 2016-05-19 | James Charles Pistorino | Sorting apparatus and method |
US9412169B2 (en) * | 2014-11-21 | 2016-08-09 | iProov | Real-time visual feedback for user positioning with respect to a camera and a display |
US9824498B2 (en) | 2014-12-30 | 2017-11-21 | Sony Interactive Entertainment Inc. | Scanning display system in head-mounted display for virtual reality |
US9756375B2 (en) | 2015-01-22 | 2017-09-05 | Microsoft Technology Licensing, Llc | Predictive server-side rendering of scenes |
GB2534847A (en) | 2015-01-28 | 2016-08-10 | Sony Computer Entertainment Europe Ltd | Display |
US9874932B2 (en) | 2015-04-09 | 2018-01-23 | Microsoft Technology Licensing, Llc | Avoidance of color breakup in late-stage re-projection |
CN104834372A (zh) * | 2015-04-15 | 2015-08-12 | 程锦发 | 基于mems加速度传感器的多功能穿戴式人机交互输入设备 |
US10163180B2 (en) | 2015-04-29 | 2018-12-25 | Qualcomm Incorporated | Adaptive memory address scanning based on surface format for graphics processing |
CN107438866B (zh) | 2015-05-13 | 2020-12-01 | 谷歌公司 | 深度立体:学习从现实世界形象预测新视图 |
US10810797B2 (en) | 2015-05-22 | 2020-10-20 | Otoy, Inc | Augmenting AR/VR displays with image projections |
US9588598B2 (en) | 2015-06-30 | 2017-03-07 | Ariadne's Thread (Usa), Inc. | Efficient orientation estimation system using magnetic, angular rate, and gravity sensors |
US10282806B2 (en) | 2016-04-20 | 2019-05-07 | Mediatek, Inc. | Graphics Accelerator |
US10643381B2 (en) | 2016-01-12 | 2020-05-05 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
US9978180B2 (en) | 2016-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | Frame projection for augmented reality environments |
US10497089B2 (en) | 2016-01-29 | 2019-12-03 | Fotonation Limited | Convolutional neural network |
US10317989B2 (en) | 2016-03-13 | 2019-06-11 | Logitech Europe S.A. | Transition between virtual and augmented reality |
US11024014B2 (en) | 2016-06-28 | 2021-06-01 | Microsoft Technology Licensing, Llc | Sharp text rendering with reprojection |
US10037626B2 (en) | 2016-06-30 | 2018-07-31 | Microsoft Technology Licensing, Llc | Interaction with virtual objects based on determined restrictions |
US9978118B1 (en) | 2017-01-25 | 2018-05-22 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations with data compression |
US10514753B2 (en) | 2017-03-27 | 2019-12-24 | Microsoft Technology Licensing, Llc | Selectively applying reprojection processing to multi-layer scenes for optimizing late stage reprojection power |
US10255891B2 (en) | 2017-04-12 | 2019-04-09 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations with multiple LSR processing engines |
-
2017
- 2017-03-27 US US15/470,737 patent/US10410349B2/en active Active
-
2018
- 2018-03-20 AU AU2018245993A patent/AU2018245993B2/en active Active
- 2018-03-20 CA CA3053408A patent/CA3053408A1/en active Pending
- 2018-03-20 BR BR112019016952A patent/BR112019016952A2/pt unknown
- 2018-03-20 RU RU2019134184A patent/RU2762123C2/ru active
- 2018-03-20 EP EP18717458.6A patent/EP3602248B1/en active Active
- 2018-03-20 JP JP2019552943A patent/JP7158404B2/ja active Active
- 2018-03-20 CN CN201880020799.7A patent/CN110462555B/zh active Active
- 2018-03-20 KR KR1020197031326A patent/KR102663558B1/ko active IP Right Grant
- 2018-03-20 WO PCT/US2018/023212 patent/WO2018183025A1/en unknown
- 2018-03-20 MX MX2019011541A patent/MX2019011541A/es unknown
- 2018-03-20 SG SG11201908293Q patent/SG11201908293QA/en unknown
-
2019
- 2019-08-07 ZA ZA2019/05233A patent/ZA201905233B/en unknown
- 2019-08-20 IL IL268797A patent/IL268797B/en unknown
- 2019-08-31 PH PH12019550174A patent/PH12019550174A1/en unknown
- 2019-09-11 CO CONC2019/0009849A patent/CO2019009849A2/es unknown
- 2019-09-23 CL CL2019002687A patent/CL2019002687A1/es unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009156992A (ja) * | 2007-12-25 | 2009-07-16 | Canon Inc | 制御装置、表示装置及びそれらの制御方法、複合現実システム、及びコンピュータプログラム |
JP2012033038A (ja) * | 2010-07-30 | 2012-02-16 | Fujitsu Ltd | 模擬映像生成装置、方法、プログラム |
JP2015022458A (ja) * | 2013-07-18 | 2015-02-02 | 株式会社Jvcケンウッド | 画像処理装置、画像処理方法及び画像処理プログラム |
WO2016018487A9 (en) * | 2014-05-09 | 2016-03-24 | Eyefluene, Inc. | Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects |
Also Published As
Publication number | Publication date |
---|---|
CL2019002687A1 (es) | 2020-02-14 |
IL268797A (en) | 2019-10-31 |
US10410349B2 (en) | 2019-09-10 |
CN110462555A (zh) | 2019-11-15 |
PH12019550174A1 (en) | 2020-06-08 |
RU2762123C2 (ru) | 2021-12-15 |
ZA201905233B (en) | 2020-10-28 |
EP3602248B1 (en) | 2023-03-08 |
KR20190133716A (ko) | 2019-12-03 |
RU2019134184A3 (ko) | 2021-07-05 |
AU2018245993A1 (en) | 2019-08-22 |
AU2018245993B2 (en) | 2022-03-03 |
NZ756028A (en) | 2023-08-25 |
US20180276824A1 (en) | 2018-09-27 |
JP2020518885A (ja) | 2020-06-25 |
EP3602248A1 (en) | 2020-02-05 |
SG11201908293QA (en) | 2019-10-30 |
WO2018183025A1 (en) | 2018-10-04 |
MX2019011541A (es) | 2019-12-11 |
CA3053408A1 (en) | 2018-10-04 |
RU2019134184A (ru) | 2021-04-28 |
CO2019009849A2 (es) | 2019-09-30 |
CN110462555B (zh) | 2021-12-03 |
JP7158404B2 (ja) | 2022-10-21 |
IL268797B (en) | 2022-01-01 |
BR112019016952A2 (pt) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102663558B1 (ko) | 후기 재투사 전력을 최적화하기 위한 시스템, 디바이스, 및 방법 | |
US10514753B2 (en) | Selectively applying reprojection processing to multi-layer scenes for optimizing late stage reprojection power | |
EP2732436B1 (en) | Simulating three-dimensional features | |
CN107306332B (zh) | 闭塞直接视图增强现实系统、计算设备及方法 | |
CN110249317B (zh) | 用于实时图像变换的无未命中高速缓存结构 | |
EP3526774B1 (en) | Modifying hand occlusion of holograms based on contextual information | |
US12112449B2 (en) | Camera-based transparent display | |
US11887267B2 (en) | Generating and modifying representations of hands in an artificial reality environment | |
US12033270B2 (en) | Systems and methods for generating stabilized images of a real environment in artificial reality | |
NZ756028B2 (en) | Selective application of reprojection processing on layer sub-regions for optimizing late stage reprojection power | |
US12002132B1 (en) | Rendering using analytic signed distance fields |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |