KR20210029244A - 동적 패널 마스킹 - Google Patents
동적 패널 마스킹 Download PDFInfo
- Publication number
- KR20210029244A KR20210029244A KR1020217003833A KR20217003833A KR20210029244A KR 20210029244 A KR20210029244 A KR 20210029244A KR 1020217003833 A KR1020217003833 A KR 1020217003833A KR 20217003833 A KR20217003833 A KR 20217003833A KR 20210029244 A KR20210029244 A KR 20210029244A
- Authority
- KR
- South Korea
- Prior art keywords
- size value
- panel
- hmd
- rendered
- mask
- Prior art date
Links
- 230000000873 masking effect Effects 0.000 title description 2
- 230000007423 decrease Effects 0.000 claims abstract description 10
- 230000003247 decreasing effect Effects 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 59
- 230000002829 reductive effect Effects 0.000 claims description 33
- 238000009877 rendering Methods 0.000 claims description 29
- 230000000007 visual effect Effects 0.000 abstract description 16
- 210000003128 head Anatomy 0.000 description 61
- 230000008569 process Effects 0.000 description 24
- 230000003287 optical effect Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000005259 measurement Methods 0.000 description 11
- 230000009467 reduction Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004075 alteration Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 241000226585 Antennaria plantaginifolia Species 0.000 description 2
- 208000003028 Stuttering Diseases 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004513 sizing Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 206010010071 Coma Diseases 0.000 description 1
- 206010028813 Nausea Diseases 0.000 description 1
- 239000006117 anti-reflective coating Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 201000009310 astigmatism Diseases 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 210000001331 nose Anatomy 0.000 description 1
- 210000004279 orbit Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F3/012—Head tracking input arrangements
-
- 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/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- 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/0189—Sight systems
-
- 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/18—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 for optical projection, e.g. combination of mirror and condenser and objective
-
- 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/013—Eye 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
- G06F3/0312—Detection arrangements using opto-electronic means for tracking the rotation of a spherical or circular member, e.g. optical rotary encoders used in mice or trackballs using a tracking ball or in mouse scroll wheels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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/20—Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
-
- 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/0132—Head-up displays characterised by optical features comprising binocular systems
-
- 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
- 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/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- 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
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2320/00—Control of display operating conditions
- G09G2320/02—Improving the quality of display appearance
-
- 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/12—Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Controls And Circuits For Display Device (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
헤드 장착형 디스플레이(HMD)의 디스플레이 패널(들)에 렌더링된 패널 마스크(들)는 필요에 따라 원치 않는 시각적 아티팩트들을 뷰에서 숨기기 위해 크기가 동적으로 조정(증가 및 감소)될 수 있다. 예를 들어, 프레임들이 재-투사를 사용하여 HMD의 디스플레이 패널에 렌더링되는 경우, 패널 마스크의 적어도 일부와 연관된 크기 값은 HMD의 회전에 기초하여 조정되어 적어도 패널 마스크의 일부의 크기를 현재 크기에서 조정된 크기로 증가시키거나 감소시킬 수 있으며, 패널 마스크는 조정된 크기로 렌더링된 적어도 패널 마스크의 일부로 렌더링되어 원치 않는 시각적 아티팩트들을 숨길 수 있다. 패널 마스크의 일부의 크기는 재-투사가 중단되는 경우 및/또는 머리 회전이 중단되거나 느려 지는 경우, 일정 시간 기간에 걸쳐 계속해서 감소할 수 있다.
Description
관련 출원에 대한 상호 참조
이는 2018년 7월 11일자로 출원된, "동적 패널 마스킹" 이라는 명칭의 미국 특허 출원 일련 번호 제16/033,162호에 대한 우선권을 주장하는 PCT 출원으로서, 이는 그 전체가 본원에 참조로서 통합된다.
가상 현실(VR) 시스템들은 비디오 게임 산업 내외부에서 모두 사용된다. VR 헤드셋에 내장된 것과 같은 VR 시스템용 디스플레이들은 일반적으로 VR 어플리케이션들에 적합한 최소 리프레시 속도로 동작한다. 예를 들어, 90 헤르츠(Hz)는 VR 디스플레이들의 일반적인 리프레시 속도다. "라이브 렌더링" 시나리오에서, 비디오 게임과 같은 그래픽 기반 어플리케이션은 디스플레이의 리프레시 속도와 일치하는 프레임 속도로 렌더링하기 위한 프레임들을 출력하며, 이는 어플리케이션으로부터 수신된 새 프레임(본원에서는 "실제 프레임"이라고 함)이 매 화면 리프레시마다 디스플레이 된다는 것을 의미한다. 이러한 라이브 렌더링 시나리오를 종종 어플리케이션 "히팅 프레임 속도"로 지칭된다.
실제로, 어플리케이션이 다양한 이유들로 항상 프레임 속도에 도달하는 것은 아니다. 예를 들어, 어플리케이션이 간헐적으로 프레임을 드롭할 수 있고/있거나 어플리케이션이 일시적으로 더 느린 속도(예를 들어, 이상적인 프레임 속도가 초당 90 프레임인 경우 초당 45 프레임)로 프레임들을 출력할 수 있다. 어플리케이션이 프레임 속도에 도달하지 않는 경우, "회전 전용 재-투사" 라는 기술이 사용되어 누락된 프레임들을 사용자의 머리 회전을 고려하는 방식으로 재-투사된 프레임들로 대체할 수 있으며, 이는 마치 어플리케이션이 프레임 속도에 도달한 것처럼 사용자에게 나타나도록 할 수 있다. 예를 들어, 재-투사 없이, 어플리케이션으로부터의 부족한 프레임 속도는 게임 내 가 떨어지면 게임 내 스터터링 또는 히칭을 유발할 수 있다. 사용자가 가상 현실에 완전히 몰입되는 VR 어플리케이션들에서, 어플리케이션이 프레임 속도에 도달하지 못하고 누락된 프레임들을 보상하기 위한 재-투사가 없으면 사용자는 메스꺼워질 수 있다. 따라서, 재-투사는 어플리케이션이 프레임 속도에 도달하지 않을 때 더 나은 사용자 경험을 제공하는 기술이다. 어플리케이션이 이상적인 프레임 속도의 절반(예를 들어, 초당 90 프레임이 이상적인 프레임 속도인 경우 초당 45 프레임)으로 프레임들을 출력하는 예를 고려하기로 한다. 이 예에서, 다른 모든 프레임은 가장 최근에 렌더링된 실제 프레임의 픽셀 데이터를 사용하여 재-투사될 수 있으며, 재-투사된 장면을 (예를 들어, 회전 및 재-투사 계산들을 통해) 사용자의 현재 머리 방향에 일치시키도록 변환하는 재-투사된 프레임을 생성할 수 있다. 이는 재-투사된 프레임들이 프레임 속도에 도달하지 못한 어플리케이션들을 보상하는 데 사용되는 경우에도, 사용자의 머리 회전에 따라 예상되는 방식으로 장면이 움직이는 것처럼 사용자에게 보이게 된다.
회전 전용 재-투사는 게임 내 스터터링 또는 히칭을 방지하지만, 적어도 낮은 지속성 디스플레이들을 사용하는 VR 시스템들(예를 들어, 디스플레이가 프레임 시간의 극히 일부 동안 켜지는 경우)에서는 머리 회전 동안 원치 않는 시각적 아티팩트들을 자체 생성한다. 예를 들어, 회전 전용 재-투사는 사용자가 자신의 머리를 회전할 때 머리 회전 방향으로 각 디스플레이 패널의 리딩 에지에 스트로브 플래시가 나타나게 할 수 있다. 이 스트로브 플래시는 디스플레이 패널의 리딩 에지에 있는 픽셀들이 다음 재-투사된 프레임에서 실제 프레임의 유효한 픽셀들과 단색 블랙 픽셀들 사이에서 매 프레임을 토글링하기 때문에 머리 회전 동안 발생한다. 블랙 픽셀들은 재-투사된 프레임들에 대해 디스플레이 패널의 리딩 에지에 있는 픽셀들에 사용할 수 있는 이전에 렌더링된 실제 프레임으로부터 사용할 수 있는 픽셀 데이터가 없기 때문에 재-투사된 프레임들에서 머리 회전 동안 발생한다. 따라서, 재-투사가 사용되는 동안 사용자가 자신의 머리를 회전하면, 사용자의 머리 회전 방향으로 디스플레이 패널의 리딩 에지들이 블랙 픽셀들과 조명 픽셀들 사이에서 모든 프레임을 토글링하여, 디스플레이 패널의 리딩 에지에서 원치 않는 스트로브 아티팩트를 발생시킨다.
본원에는 이들 및 다른 시스템들을 개선하고 향상시키기 위한 기술적 솔루션이 제공된다.
상세한 설명이 첨부된 도면들을 참조하여 설명된다. 이 도면들에서, 참조 번호의 가장 왼쪽 숫자(들)은 참조 번호가 처음 나타나는 도면을 식별한다. 서로 다른 도면들에서 동일한 참조 부호들의 사용은 유사하거나 동일한 컴포넌트들 또는 특징들을 나타낸다.
도 1a는 머리 회전 방향이 우측(또는 양의 X) 방향으로, 재-투사를 사용하여 처리되는 동안 머리 회전 중에 동적으로 확장된 패널 마스크로 프레임이 렌더링되는 헤드 장착형 디스플레이(HMD)의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 1b는 머리 회전 방향이 좌측(또는 음의 X) 방향으로, 재-투사를 사용하여 처리되는 동안 머리 회전 중에 동적으로 확장된 패널 마스크로 프레임이 렌더링되는 도 1a의 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 2는 패널 마스크들의 완전히 축소된 상태와 패널 마스크들의 완전히 확장된 상태 간 차이를 보여주는 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 3는 패널 마스크들의 완전히 축소된 상태와 패널 마스크들의 완전히 확장된 상태 간 차이를 보여주는 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 또 다른 도면이다.
도 4는 본원에 개시된 실시예들에 따른, HMD의 디스플레이 패널 상의 패널 마스크의 일부를 동적으로 크기 재조정하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 본원에 개시된 실시예들에 따른, HMD의 디스플레이 패널 상의 패널 마스크의 일부를 동적으로 크기 재조정하기 위한 보다 상세한 예시적인 프로세스의 흐름도이다.
도 6은 본원에 개시된 기술들이 구현될 수 있는 VR 헤드셋과 같은 웨어러블 장치의 예시적인 컴포넌트들을 예시한다.
도 1a는 머리 회전 방향이 우측(또는 양의 X) 방향으로, 재-투사를 사용하여 처리되는 동안 머리 회전 중에 동적으로 확장된 패널 마스크로 프레임이 렌더링되는 헤드 장착형 디스플레이(HMD)의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 1b는 머리 회전 방향이 좌측(또는 음의 X) 방향으로, 재-투사를 사용하여 처리되는 동안 머리 회전 중에 동적으로 확장된 패널 마스크로 프레임이 렌더링되는 도 1a의 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 2는 패널 마스크들의 완전히 축소된 상태와 패널 마스크들의 완전히 확장된 상태 간 차이를 보여주는 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 도면이다.
도 3는 패널 마스크들의 완전히 축소된 상태와 패널 마스크들의 완전히 확장된 상태 간 차이를 보여주는 HMD의 예시적인 좌우 디스플레이 패널들을 예시하는 또 다른 도면이다.
도 4는 본원에 개시된 실시예들에 따른, HMD의 디스플레이 패널 상의 패널 마스크의 일부를 동적으로 크기 재조정하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 본원에 개시된 실시예들에 따른, HMD의 디스플레이 패널 상의 패널 마스크의 일부를 동적으로 크기 재조정하기 위한 보다 상세한 예시적인 프로세스의 흐름도이다.
도 6은 본원에 개시된 기술들이 구현될 수 있는 VR 헤드셋과 같은 웨어러블 장치의 예시적인 컴포넌트들을 예시한다.
본원에는, 그 중에서도, 필요한 경우, 원치 않는 시각적 아티팩트들을 숨기기 위해 헤드 장착형 디스플레이(HMD)의 디스플레이 패널 주변부에 렌더링되는 패널 마스크의 크기를 동적으로 조정(증가 및 감소)하는 기술들이 설명된다. HMD는 사용자를 가상 현실(VR) 환경 또는 증강 현실(AR) 환경에 몰입시키기 위해 사용자에 의해 착용될 수 있다. HMD의 하나 이상의 디스플레이 패널들은 어플리케이션(예를 들어, 비디오 게임)에 의해 출력되는 프레임들에 기초하여 이미지를 렌더링하며, 이러한 이미지들은 HMD에 포함된 광학 장치를 통해 사용자가 볼 수 있어, 마치 사용자가 VR 또는 AR 환경에 몰입된 것처럼 사용자가 이미지들을 인식하게 한다.
패널 마스크(들)는 HMD의 디스플레이 패널(들)의 주변부에 렌더링되어 디스플레이 패널(들)에 제시된 이미지들 주위에 테두리를 제공할 수 있다. 패널 마스크는 픽쳐 프레임과 매우 유사하게 이미지를 프레임화한다. 일부 실시예들에서, 패널 마스크(들)의 내부 가장자리들은 (예를 들어, 미묘한 비네트 사용하여) 블러링되어 패널 마스크가, 원거리 객체들에 초점을 맞출 때 얼굴 특징들(예를 들어, 눈 사이의 콧대)이 보이는 것과 매우 유사하게, 사용자의 얼굴에 가까운 (또는 위에 배치된) 근거리 객체로 사용자에게 나타나도록 할 수 있다.
언급된 바와 같이, HMD는 프레임 속도를 초과하지 않는 어플리케이션을 보상하기 위해 "재-투사"이라는 기술을 활용할 수 있다. 재-투사 동안, HMD를 착용한 사용자는 머리를 회전시킬 수 있으며, 이는 언급된 바와 같이 현재 패널 마스크로 덮여 있지 않은 디스플레이 패널(들)의 리딩 에지(leading edge)에 원치 않는 스트로브 아티팩트가 나타나도록 할 수 있다. 따라서, HMD는 재-투사가 언제 사용되는지, 또는 언제 사용중이 아닌지를 검출할 수 있으며, 패널 마스크의 적어도 일부는 재-투사가 사용되는지 또는 사용중이 아닌지 여부에 따라 크기가 동적으로 조정될 수 있다. 예를 들어, 재-투사가 진행중인 경우, 패널 마스크의 일부가 재-투사 동안 HMD의 회전량에 따라 적절한 양으로 조정(예를 들어, 디스플레이 패널의 중앙으로부터 멀리 축소되거나 디스플레이 패널의 중앙을 향해 확장)될 수 있다. 이를 통해 머리 움직임과 결합된 재-투사 동안 나타날 수 있는 스트로브 플래시와 같은 원치 않는 시각적 아티팩트들을 가릴(또는 숨길) 수 있다. 예를 들어, 프레임들이 재-투사되는 동안 사용자가 머리를 우측 방향으로 돌리면, 디스플레이 패널의 이미지 영역에서 스트로브 플래시를 볼 수 없도록 원치 않는 스트로빙 아티팩트가 패널 마스크로 가려지도록 하기 위해 디스플레이 패널(들)의 리딩(예를 들어, 우측) 에지 있는 패널 마스크의 부분은 크기가 증가될 수 있다. 사용자가 나중에 머리 회전을 늦추거나 멈출 때, 또는 어플리케이션이 다시 프레임 속도에 도달할 때(즉, 재-투사의 사용이 중단될 때), 디스플레이 패널의 이미지 영역에서 더 많은 장면이 렌더링되도록 패널 마스크의 확장된 부분은 시간이 지남에 따라 완전히 축소된 상태로 크기가 다시 조정될 수 있다. 재-투사와 결합된 머리 회전을 기반으로, 패널 마스크의 적어도 일부를 동적으로 확장 및 축소하는 이 기술은 사용자가 머리 회전 동안 재-투사로 인한 원치 않는 스트로브 아티팩트를 알아 차리지 못하기 때문에 HMD 사용자에게 더 나은 시청 경험을 제공한다. 패널 마스크는 스트로브 아티팩트가 있을 때 가리기 위해 확장되고, 패널 마스크는 스트로브 아티팩트가 디스플레이 패널의 이미지 영역에서 더 많은 장면을 드러내지 않으면 축소된다.
본원에 설명된 실시예들에 따라, 패널 마스크의 일부의 크기를 동적으로 조정하기 위한 예시적인 프로세세는, 하나 이상의 프로세서들에 의해, 일련의 프레임들이 재-투사를 사용하여 HMD의 디스플레이 패널에 렌더링되는지를 결정하는 단계, 일련의 프레임들이 재-투사를 사용하여 렌더링되는지 여부에 적어도 부분적으로 기초하여, 패널 마스크의 적어도 일부에 대한 타겟 크기 값을 결정하는 단계, 패널 마스크의 적어도 일부와 연관된 크기 값이 타겟 크기 값과 같지 않는 기존 크기 값으로 설정된다고 결정하는 단계, 패널 마스크의 적어도 일부의 크기를 현재 크기에서 조정된 크기로 증가시키거나 감소시키기 위해 크기 값을 기존 크기 값에서 타겟 크기 값으로 조정하는 단계, 및 일련의 프레임들 중 어느 한 프레임을 디스플레이 패널의 주변부에 렌더링된 패널 마스크와 함께 디스플레이 패널에 렌더링하는 단계로서, 패널 마스크의 적어도 일부는 타겟 크기 값에 따라 조정된 크기로 렌더링되는, 상기 렌더링하는 단계를 포함한다. 크기 조정이 패널 마스크 일부의 크기를 증가시키는 것인 경우, 재-투사의 사용이 중단되고/되거나 머리 회전이 느려 지거나 완전히 중단되면 패널 마스크 일부의 크기는 이후 크기가 감소될 수 있다. 예를 들어, 재-투사의 사용이 중단되는 경우, 패널 마스크의 일부는 일정 기간 동안 최소 크기 또는 다른 타겟 값으로 크기가 점차 감소될 수 있다. 이러한 방식으로, 다시 완전히 축소된 상태로의 패널 마스크의 축소는 사용자에게 시각적으로 방해가 되지 않는다.
또한 본원에는 본원에 개시된 기술들 및 프로세스들을 구현하도록 구성된 HMD를 포함하는 시스템은 물론, 본원에 개시된 기술들 및 프로세스들을 구현하기 위한 컴퓨터 실행 가능 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체가 개시된다. 본원에 개시된 기술들 및 시스템들이, 예로서, 비디오 게임 어플리케이션들, 특히 VR 게임 어플리케이션들의 맥락에서 개시되어 있지만, 본원에 설명된 기술들 및 시스템들은 제한 없이, 비-VR 어플리케이션들(예를 들어, AR 어플리케이션들) 및/또는 산업 기계 어플리케이션들, 방어 어플리케이션들, 로봇 어플리케이션들 등과 같은 비-게임 어플리케이션들을 포함하는 HMD가 사용되는 다른 어플리케이션들에 이점들을 제공할 수 있음을 알아야 한다.
도 1a는 한 쌍의 디스플레이 패널들을 구성하는 좌측 디스플레이 패널(102(L)) 및 우측 디스플레이 패널(102(R))을 포함하는 예시적인 헤드 장착형 디스플레이(HMD)(100)를 예시하는 도면이다. 예시적인 HMD(100)는 2개의 디스플레이 패널들(102(L) 및 102(R))을 포함하지만, HMD(100)는 단일 디스플레이 패널(102) 또는 둘 이상의 디스플레이 패널들(102)을 포함할 수 있다는 것을 알아야 한다. 따라서, 본원에 사용되는 "디스플레이 패널(102)"은 도 1a에 도시된 바와 같이 2-패널 HMD(100)의 디스플레이 패널들(102(L) 또는 102(R)) 중 하나를 지칭할 수 있거나, 또는 임의 개수의 디스플레이 패널들(예를 들어, 단일 패널 HMD(100) 또는 다중 패널 HMD(100))을 갖는 HMD(100)의 단일 디스플레이 패널(102)을 지칭할 수 있다.
디스플레이 패널(들)(102)은 디스플레이 패널(들)(102) 상에 이미지 프레임들(본원에서는 "프레임들"이라고 함)의 제시 동안 광을 방출하기 위한 발광 소자들을 이용하는 발광 디스플레이와 같은 임의의 적절한 유형의 디스플레이를 나타낼 수 있다. 예로서, 좌측 및 우측 디스플레이 패널들(102(L) 및 102(R))은 액정 디스플레이들(LCD), 유기 발광 다이오드(OLED) 디스플레이들, 무기 발광 다이오드(ILED) 디스플레이들, 또는 HMD 어플리케이션들에 적합한 디스플레이 기술을 활용하는 임의의 다른 적절한 유형의 디스플레이를 포함할 수 있다.
HMD(100)는 VR 게임 시스템과 함께 사용하기 위한 것과 같은, VR 시스템들에서 사용하기 위한 VR 헤드셋을 나타낼 수 있다. 그러나, HMD(100)는 추가적으로 또는 대안적으로 AR 어플리케이션들에서 사용하기 위한 AR 헤드셋으로 구현될 수 있다. AR에서는 사용자가 실제 환경에 오버레이된 가상 객체들을 보며, 반면에, VR에서는 사용자가 실제 환경을 보지 못하지만 디스플레이 패널들(102) 및 HMD(100)의 광학 장치들(예를 들어, 렌즈들)을 통해 인식되는 가상 환경에 완전히 몰입된다. 본원에 설명된 예들은 주로 VR 기반 HMD(100)에 관련되지만, HMD(100)는 VR 어플리케이션들에서의 구현으로 제한되지 않는다는 것을 알아야 한다.
일반적으로, 컴퓨팅 장치 - 예컨대, HMD(100) 자체 또는 HMD(100)와 연관되고 이에 결합된 컴퓨팅 장치(예를 들어, 개인용 컴퓨터(PC), 게임 콘솔 등) - 에서 실행되는 어플리케이션은 HMD(100)의 디스플레이 패널(들)(102)에 궁극적으로 렌더링되는 일련의 프레임들(106)을 출력하도록 구성될 수 있다. 프레임들(106)의 이미지 데이터는 패널 마스크(110)에 의해 커버되지 않는 디스플레이 패널(들)(102)의 이미지 영역(108) 내에 제시된다. 도 1a는 좌측 디스플레이 패널(102(L))의 중앙 및 좌측 패널 마스크(110(L)) 내부의 좌측 이미지 영역(108(L)) 및 우측 디스플레이 패널(102(R))의 중앙 및 우측 패널 마스크(110(R)) 내부의 우측 이미지 영역(108(R))을 도시한다.
일련의 프레임들(106)은 비디오 게임 어플리케이션 또는 임의의 다른 유형의 그래픽 기반 어플리케이션으로부터 출력될 수 있다. 어플리케이션은 원하는 시각 효과로 디스플레이 패널(들)(102) 상의 이미지(이미지 영역(108) 내)에 생성하기 위해 결합되는 픽셀당 값들(예를 들어, 색상 값들)을 출력하는 그래픽 파이프라인에서 실행될 수 있다. 런타임 동안, HMD(100)의 헤드 추적 모듈은 사용자(104)의 머리 위치/포즈에 따른 일련의 프레임들(106)에서 다음 프레임(106)을 렌더링하는 방법에 대해 어플리케이션에 알리기 위해 어플리케이션에 제공되는 HMD(100)의 위치 및 포즈에 대한 데이터를 생성할 수 있다. 이를 통해 디스플레이 패널(들)(102) 상의 이미지 영역(들)(108) 내의 이미지를 사용자(104)가 객체들(정적 객체 및 움직이는 객체 둘 모두)을 포함하는 가상 환경 주위를 둘러보고 있다고 여겨지게 하는 방식으로 렌더링하도록 하며, 이러한 객체들은 사용자(104)의 머리 움직임과 함께 예상되는 방식으로 장면 내에서 이동한다.
언급된 바와 같이, 좌측 패널 마스크(110(L))는 좌측 디스플레이 패널(102(L))의 주변부에 렌더링되고, 우측 패널 마스크(110(R))은 우측 디스플레이 패널(102 (R))의 주변부에 렌더링된다. 본원에 사용된 바와 같이, "패널 마스크(110)"는 도 1a에 도시된 바와 같이 패널 마스크들(110(L) 또는 110(R)) 중 어느 하나를 지칭할 수 있다. 그러나, 단일 패널 HMD(100)는 단일 디스플레이 패널(102)의 이미지 영역(108)을 둘러싸는 단일 패널 마스크(110)를 포함할 수 있다. 시작 시, HMD(100)는 패널 마스크(들)(110)에 대한 메시를 계산할 수 있으며, 이는 디스플레이 패널(들)(102)의 주변부에서 패널 마스크(들)(110)를 완전히 축소된 상태로 렌더링하는데 사용되며, 이는 크기가 동적으로 조정 가능한 패널 마스크(들)(110)의 일부분들이 이미지 영역(들)(108) 내에 더 많은 장면을 드러내도록 초기에 가장 작은 크기로 렌더링되는 것을 의미한다. 일반적으로, 패널 마스크(들)(110)는 각 프레임과 함께 지속적으로 렌더링될 수 있지만, 패널 마스크(들)(110)의 개별 부분들의 크기는 필요에 따라 원치 않는 시각적 아티팩트들을 숨기기 위해 특히 프레임들 중 하나에서 조정될 수 있다. 일부 실시예들에서, 패널 마스크(들)(110)은 디스플레이 패널(들)(102)의 주변부에서 복수의 흑색 픽셀들로 구현될 수 있으며, 이는 프레임을 렌더링하기 전에 프레임 버퍼에 추가될 수 있다. 패널 마스크(들)(110)가 일반적으로 원형의 이미지 영역(108)을 에워싸는 일반적으로 환형의 패널 마스크로서 도면들에 도시되어 있지만, 예컨대 패널 마스크(들)(110)를 정사각형, 직사각형, 또는 이미지 영역(108)을 둘러싸는 다른 기하학적 형태의 프레임으로 렌더링함으로써, 다른 기하학적 구조들이 패널 마스크(들)(110)를 구현하는 데 사용될 수 있음을 알아야 한다. 일부 실시예들에서, 패널 마스크(들)(110)는 적색, 녹색 및 청색 컬러 채널들에 대응하는 3개의 개별 패널 마스크들로 구현될 수 있으며, 여기서 3개의 패널 마스크들(110)의 각각의 개별 패널 마스크(110)는 디스플레이 패널(102)의 외부 에지에서 또는 그 근처에서 발생할 수 있는 컬러 프린징의 효과들을 완화시키기 위해 HMD(100)에 포함된 광학 장치들의 알려진 색채 왜곡에 기초하여 형성된다. 예를 들어, 사용자(104)가 HMD(100)의 렌즈들을 통해 볼 때, 이미지를 어느 정도 왜곡(VR 헤드셋에서 "핀쿠션" 효과로 알려짐)하는 렌즈들로 인한 약간의 자연스러운 공간(방사형) 왜곡이 있을 수 있다. 또한 약간의 색채 왜곡(예를 들어, 적색, 녹색, 청색(RGB) 분리)이 있을 수 있다. 사용자 (104)의 눈이 사용자(104)가 디스플레이 패널들(102)의 에지들을 실제로 볼 수 있는 렌즈 어셈블리에 충분히 가까워지면, 사용자(102)는 RGB를 분리하는 색체 왜곡에서 비롯되는 패널 에지들 상의 시안 프린징(cyan fringing)을 볼 수 있으며, 적색 픽셀들이 적색 픽셀이 (디스플레이 패널(102)의 중앙쪽으로) 가장 색채적으로 왜곡되고, 뒤이어 녹색 픽셀들에 대한 왜곡 양이 더 적고, 청색 픽셀들에 대한 왜곡 양이 가장 적다(예를 들어, 청색은 최소로 왜곡되어, 패널의 에지에 가장 가깝게 남아 시안 프린징 효과를 발생시킨다). 이 컬러 프린징은 이를 볼 수 있는 사용자들에게 상당히 주의를 산만하게 할 수 있다(HMD(100)에 사용된 폼의 두께, 사용자 얼굴의 공간적 기하학 등에 따라, 사용자(104)는 컬러 플린징을 볼 수 있거나 볼 수 없을 수 있다). 따라서, 각 디스플레이 패널(102) 상의 3-패널 마스크 구현의 개별 패널 마스크들은 컬러 프린징 효과를 완화하기 위해 독립적으로 적색, 녹색 및 청색을 마스킹할 수 있다.
도 1a는 상대적으로 어두운 회색 영역으로 좌측 패널 마스크(110(L)), 상대적으로 밝은 회색 영역으로 우측 패널 마스크(110(R))를 도시한다. 이는 관련 도면들에서 두 개의 패널 마스크들을 서로 구별하기 위한 것일 뿐이며, 한 쌍의 패널 마스크들(110(L) 및 110(R))은 두 디스플레이 패널들(102(L) 및 102(R)) 상의 균일한 색상(예를 들어, 블랙 픽셀들)에서 렌더링될 수 있음을 알아야 한다. 이러한 방식으로, 사용자(104)는 마치 사람이 가까운 시야에서 각 눈을 둘러싸는 안와들(eye sockets) 및 콧등으로 환경을 인식하는 것과 같이, 2개의 패널 마스크들(110(L) 및 110(R))을 두 개의 이미지 영역들(108(L) 및 108(R))을 둘러싸는 단일 패널 마스크로 인식한다. 언급된 바와 같이, 각 패널 마스크(110(L) 및 110(R))의 내부 에지(112)는 샤프한 내부 에지(112)보다 사람들에게 더 친숙한 근거리 얼굴 특징들을 모방하기 위해(예를 들어, 미묘한 비네트를 사용하여) 약간 블러링될 수 있다.
추가로, 각각의 패널 마스크들(110(L) 및 110(R))의 개별 부분들은 필요에 따라 일련의 프레임들(106)의 각 프레임(106)에 대해 이미지 영역(108)의 더 많거나 적은 부분을 덮도록 패널 마스크(110)의 일부들을 확장 및 축소하도록 크기가 동적으로 조정 가능하다. 예를 들어, 패널 마스크(들)(110)의 일부는 디스플레이 패널(들)(102)의 중심을 향해 내측으로 확장함으로써 크기가 증가할 수 있으며, 이는 머리 회전과 결합된 재-투사 동안 디스플레이 패널(들)의 해당 부분에서 나타나는 원치 않는 시각적 아티팩트들을 덮을(또는 숨길) 수 있도록 한다.
언급된 바와 같이, VR 시스템들에 사용되는 디스플레이들은 일반적으로 VR 어플리케이션들에 적합한 최소 리프레시 속도로 동작한다. 이와 같이, HMD(100)의 디스플레이 패널(들)(102)은 VR 디스플레이들에 대한 공통 리프레시 속도인 90 Hz의 리프레시 속도로 동작할 수 있다. 90 Hz가 예시적인 리프레시 속도로서 사용되지만, 디스플레이 패널(들)(102)은 본원에 개시된 기술들 및 시스템들의 기본 특성들을 변경하지 않고 다른, 상이한 리프레시 속도들로 동작할 수 있다는 것을 알아야 한다. "라이브 렌더링" 시나리오에서, 일련의 프레임들(106)을 출력하는 어플리케이션은 디스플레이 패널(들)(102)의 리프레시 속도와 일치하는 프레임 속도로 실제 프레임들(106 (A))을 출력할 수 있다. 그러나, 어플리케이션이 프레임 속도에 도달하지 않는 경우(즉, 초당 90 프레임 미만으로 실제 프레임들(106(A))을 출력함), HMD(100)는 누락된 실제 프레임들(106(A))을 재-투사된 프레임들(106(R))로 교체하기 위해 재-투사(예를 들어, 회전 전용 재-투사)를 사용하도록 구성될 수 있으며, HMD(100)는 사용자(104)의 머리 회전을 고려하는 방식으로 그렇게 하여, 어플리케이션이 프레임 속도에 도달하고 사용자(104)의 머리 회전이 주어진 예상되는 방식으로 디스플레이 패널들(102) 주위로 장면이 이동하는 것처럼 사용자(104)에게 보이게 한다. 도 1a는 이러한 재-투사 시나리오 - 여기서 일련의 프레임들(106)은 실제 프레임(106(A)(1)), 그 뒤에 재-투사된 프레임(106(R)(2)), 그 뒤에 또 다른 실제 프레임(106(A)(3)) 등을 포함함 - 를 예시한다. 예를 들어, 도 1a의 예에서, 어플리케이션은 이상적인 프레임 속도의 절반으로(예를 들어, 초당 45 프레임의 프레임 속도로, 여기서 초당 90 프레임은 이상적인 프레임 속도임) 프레임들을 출력할 수 있다. 이 경우에, 순차적인 실제 프레임들(106(A)) 사이의 매 다른 프레임은 재-투사된 프레임(106(R))이다. 재-투사된 프레임(106(R))은 최근에 렌더링된 실제 프레임(106(A))(예를 들어, 가장 최근에 렌더링된 실제 프레임(106(A))의 픽셀 데이터를 사용하여 사용자(104)의 머리 회전을 설명하는 방식으로 (예를 들어, 회전 및 재-투사 계산을 통해) 변환된 장면을 생성한다. 실제 프레임(106(A)(1))이 도 1a의 재-투사된 프레임(106(R)(2)) 전에 렌더링된다고 가정하면, 재-투사된 프레임(106(R)(2))은 이전에 렌더링된 실제 프레임(106(A)(1))과 연관된 픽셀 데이터로부터 도출될 수 있다. 이 경우에, 이전에 렌더링된 실제 프레임(106(A)(1))의 장면이 회전되고 재-투영되어 사용자(104)가 주어진 자신의 머리 움직임으로 예상되는 방식으로 재-투사된 프레임(106(R)(2))을 생성한다.
일련의 프레임들(106)이 재-투사를 사용하여 HMD(100)의 디스플레이 패널(들)(102)에서 렌더링되고, 사용자(104)가 자신의 머리를 회전할 때, 각 디스플레이 패널(102)의 리딩 에지에 머리 회전 방향으로 스트로브 플래시가 나타날 수 있다. 예를 들어, 도 1a에서, 사용자(104)는 자신의 머리를 우측(즉, 양의 X) 회전 방향으로 회전시키는 것으로 도시되어 있다. 이 시나리오에서, 전술한 스트로브 플래시는 재-투사 동안 발생할 수 있으며, 이는 사용자(106)가 우측 방향으로 회전한 이후 재-투사된 프레임(106(R)(2))에 대해 각 디스플레이 패널(102(L) 및 102(R))의 우측 에지에 있는 픽셀들을 렌더링하기 위해 이전에 렌더링된 실제 프레임(106(A)(1))에서 이용 가능한 픽셀 데이터가 없기 때문에 각 디스플레이 패널(102(L) 및 102(R))의 우측 에지(즉, 회전 방향의 리딩 에지)에서 나타날 수 있다. 따라서, HMD(100)는 이러한 원치 않는 시각적 아티팩트를 덮도록(또는 숨기도록) 각 패널 마스크(110)의 우측 부분의 크기를 동적으로 증가시키도록 구성될 수 있다. 각 패널 마스크(110)의 우측 부분의 크기를 변경하지 않고, 이 스트로브 아티팩트는 디스플레이 패널(들)(102)의 이미지 영역(들)(108) 내에서 볼 수 있다.
예시적인 예에서, HMD(100)는 일련의 프레임들(106)이 재-투사를 이용하여 HMD(100)의 디스플레이 패널(들)(102)에서 렌더링되는지를 결정하도록 구성되는 로직(예를 들어, 소프트웨어, 하드웨어 및/또는 펌웨어 등)을 포함할 수 있다. 즉, 로직은 일련의 프레임들(106)에서 프레임들(106) 중 하나 이상이 이미 디스플레이 패널(들)(102) 상에 렌더링된 어플리케이션으로부터 수신된 실제 프레임들(106(A))과 연관된 픽셀 데이터로부터 생성된 재-투사된 프레임들(106(R))인지를 결정할 수 있다. 일부 실시예들에서, 로직은 재-투사된 프레임(106(R)(2))을 렌더링할 때 이 결정을 내릴 수 있다. 다른 실시예들에서, 로직은 실제 프레임(106(A)(1))을 렌더링한 후 재-투사된 프레임(106(R)(2))을 렌더링하기 전에 이 결정을 내릴 수 있다. 어느 경우든, 재-투사가 사용되는 경우, 로직은 또한 HMD(100)가 회전했음을 나타내는 HMD(100)의 헤드 추적 모듈에 의해 제공되는 회전 데이터에 적어도 부분적으로 기초하여(예를 들어, 시간(t1)과 시간(tㄴ) 사이), 패널 마스크(들)(110)의 각 조정 가능한 부분에 대한 타겟 크기 값을 결정하도록 구성될 수 있다. 패널 마스크(들)(110)의 주어진 부분에 대한 타겟 크기 값이 해당 부분에 대한 기존 크기 값과 동일하지 않은 경우, 로직은 패널 마스크(110)의 적어도 일부의 크기를 현재 크기에서 조정된 크기로 증가시키기 위해 패널 마스크(들)(110)의 적어도 일부분과 연관된 크기 값을 기존 크기 값에서 타겟 크기 값으로 조정함으로써, 그리고 디스플레이 패널(들)(102)의 주변부에서 렌더링되는 패널 마스크(들)(110)와 함께 디스플레이 패널(들)(102) 상에 일련의 프레임들(106) 중 한 프레임(예를 들어, 실제 프레임(106(A)(3)))을 렌더링함으로써 응답할 수 있으며, 패널 마스크(들)(110)의 적어도 일부는 조정된 크기로 렌더링된다. 좌측 패널 마스크(110(L))와 우측 패널 마스크(110(R))가 각각 좌, 우, 위 및 아래 부분들로 분할된 예를 고려하기로 한다. 도 1a는 좌측 패널 마스크(110(L))의 우측 부분과 우측 패널 마스크(110(R))의 우측 부분 - 우측 회전 방향에 대응되는 각 부분 -이 현재 크기에서 증가된 크기로 크기가 증가하는 것을 도시한다. 이는 좌측 디스플레이 패널(102(L))의 중심을 향해 내측으로(즉, 점선에서 실선으로) 이동하는 좌측 패널 마스크(110(L))의 내부 에지(112(L))에 의해, 그리고 우측 디스플레이 패널(102(R))의 중앙을 향해 내측으로(즉, 점선에서 실선으로) 이동하는 우측 패널 마스크(110(R))의 내부 에지(112(R))에 의해 도 1a에 표시된다. 다시 말해, 각 패널 마스크(110)의 우측 부분은 각 패널 마스크(110)의 우측 부분의 크기를 확장하기 위해 내측으로 당겨져 디스플레이 패널(들)(102)의 우측 에지/측면 상의 이미지 영역(108)의 더 많은 부분이 패널 마스크(들)(110)에 의해 덮이도록 한다. 이러한 "내측으로" 조정은 타겟 크기 값이 패널 마스크(들)(110)의 관련 부분에 대한 기존 크기 값보다 클 때 발생한다.
도 1b는 도 1a의 HMD(100)의 예시적인 좌측 및 우측 디스플레이 패널들(102)을 예시하는 도면이다. 프레임(106)(예를 들어, 실제 프레임(106(A)(3)))은 머리 회전 동안 동적으로 확장된 패널 마스크(들)(110)로 렌더링되는 반면, 프레임들(106)은 머리 회전 방향이 도 1a에 도시된 회전 방향과 반대인, 도 1b에서의 좌측(또는 음의 X) 방향에 있는, 재-투사를 사용하여 처리된다. 도 1b의 시나리오에서, HMD(100)의 로직은 도 1a의 시나리오에서 응답하는 방식과 유사하게 응답하도록 구성되며, 차이점은 각 패널 마스크(110)의 다른 부분(즉, 좌측 부분)이 HMD(100)에 의해 검출되는 각기 다른 회전 방향에 응답하여 크기가 조정된다는 점이다. 예를 들어, 재-투사 동안 좌측(즉, 음의 X)으로의 회전이 있을 때, 각 패널 마스크(110)의 좌측 부분은 패널 마스크(110)의 좌측 부분의 크기를 확장하기 위해 내측으로 당겨져 디스플레이 패널(들)(102)의 좌측 에지/측면 상의 이미지 영역(108)의 더 많은 부분이 패널 마스크(들)(110)에 의해 덮이도록 한다.
마찬가지로, 머리 회전의 상향 또는 하향 방향들은 각 패널 마스크(110)의 상부 및 하부가 각각 (예를 들어, 디스플레이 패널(들)(102)의 중심을 향해 내측으로 확장시킴으로써) 동적으로 크기가 증가하도록 하여 디스플레이 패널(들)(102)의 상단/하단 에지/측면 상의 이미지 영역(108)의 더 많은 이미지 영역(108)이 패널 마스크(들)(100)에 의해 덮이도록 할 수 있음을 알 수 있다. HMD(100)의 회전 방향성이 X 및 Y 성분을 둘 다를 갖는 벡터인 경우, 이는 패널 마스크(110)의 인접 부분들이 동시에 크기를 확장하게 할 수 있음을 알 수 있다. 예를 들어, 사용자(104)가 자신의 머리를 대각선 방향으로 도 1a 및 1b에 도시된 기준 좌표계의 양의 X-Y 사분면으로 회전시키는 경우, 패널 마스크(들)(110)의 우측 부분과 상부 부분 둘 다 동시에 크기가 확장되어 패널 마스크(110)의 인접한 두 부분들이 동시에 디스플레이 패널(102)의 중심을 향해 내측으로 확장하도록 할 수 있다. 또한, 일부 구현예들에서, 전체 패널 마스크(들)(110)(즉, 모든 부분들)는 크기가 확장될 수 있으며, 이는 이미지 영역(들)(108)이 보다 많은 이미지 영역(들)(108)이 확장된 패널 마스크(들)(110)에 의해 덮이므로 축소(또는 더 작게)되게 할 수 있음을 알 수 있다. 이후, 전체 패널 마스크(들)(110)가 더 작은 크기로 축소될 때, 이미지 영역(들)(108)은 더 적은 이미지 영역(들)(108)이 축소된 패널 마스크(들)(110)에 의해 덮이므로 이미지 영역(들)(108)의 최대 크기로 다시 확장할 수 있다.
도 2는 도 2의 상단에서 패널 마스크(들)(110)의 완전히 축소된 상태와 도 2의 하단에서 패널 마스크(들)(110)의 완전히 확장된 상태 간의 차이를 보여주는 HMD (100)의 예시적인 좌우 디스플레이 패널들(102)을 예시하는 도면이다. 언급된 바와 같이, 각각의 디스플레이 패널(102)에 대한 패널 마스크(110)의 개별 부분들은 각 디스플레이 패널(102)의 더 많거나 적은 이미지 영역(108)을 덮도록 필요에 따라 크기가 동적으로 조정될 수 있다. 이러한 크기 조정에는 제한 또는 한계가 있을 수 있다. 예를 들어, 패널 마스크(110)의 개별 부분은 최대 크기까지 증가할 수 있지만 그 이상은 아니고, 최소 크기까지 감소할 수 있지만 그 이하는 아니다. 이러한 의미에서, 패널 마스크(110)는 각 프레임으로 지속적으로 렌더링될 수 있으며, 그 크기는 최소 크기 값(예를 들어, "0")과 최대 크기 값(예를 들어, "1") 사이의 범위에 해당하는 값들을 기반으로 제어 가능하다. 다시 말해, 패널 마스크(110)의 개별 부분에 대한 크기 값은 최소 크기 값(예를 들어, "0")과 최대 크기 값(예를 들어, "1") 사이에서 클램핑되지만, 이들 두 경계 사이의 임의의 수로 조정 가능하며, 이 두 경계를 포함한다. 이에 대해 생각하는 한 가지 방법은 백분율 조정이다(예를 들어, 0은 0 %이고, 0.4는 40 %이고, 0.6은 60 %이며, 1은 100 % 등임). 언급된 바와 같이, 이 크기 조정은 패널 마스크(110)의 개별 부분들에 대해 독립적으로 제어될 수 있다.
예를 들어, 좌측 패널 마스크(110 (L))를 좌측 부분(110 (L)(1)), 상단 부분(110 (L)(2)), 우측 부분(110(L)(3)) 및 하단 부분(110(L)(4))을 포함하는 4개의 부분들로 분할하는 것을 고려하기로 한다. 마찬가지로, 우측 패널 마스크(110 (R))는 좌측 부분(110 (R)(1)), 상단 부분(110(R)(2)), 우측 부분(110(R)(3)) 및 하단 부분(110(R)(4))을 포함하는 4개의 부분들로 분할될 수 있다. 패널 마스크(110)의 이러한 부분들 각각은 도 2의 상단에서 완전히 축소된 상태에 대응하는 최소 크기 값(예를 들어, "0"으로 설정된 크기 값)과 도 2의 하단에서 완전히 확정된 상태에 대응하는 최대 크기 값(예를 들어, "1"로 설정된 크기 값) 사이에서 크기가 조정될 수 있다. 따라서, 패널 마스크(110)의 개별 부분들의 크기를 제어하기 위해 각 패널 마스크(110)에 대해 적어도 4개의 동적으로 조정 가능한 크기 값들이 있을 수 있다. 패널 마스크(110)의 내부 에지(112)(패널 마스크(110)의 각 부분에서)는 크기 값을 최소 크기 값과 최대 크기 값 사이의 값(예를 들어, "0"과 "1" 사이의 크기 값)으로 설정함으로써 최소 범위(도 2의 상단에 도시됨)와 최대 범위(도 2의 하단에 도시됨) 사이에서 어느 정도 이동될 수 있다. 재-투사가 사용되는지 및/또는 머리 회전이 존재하는지에 관계없이 패널 마스크(들)(110)를 최소 크기(즉, 완전히 축소된 상태)로 지속적으로 렌더링하는 이유가 있을 수 있다. 예를 들어, 일부 HMD들(100)은 디스플레이 패널(102)의 외부 에지에서 또는 그 근처에서 컬러 프린징을 나타낼 수 있으며, 이러한 시각적 아티팩트이 사용자(104)를 산만하게 하지 않도록 이러한 시각적 아티팩트들을 덮는(또는 숨기는) 것이 바람직할 수 있다. 한편, 패널 마스크(들)(110)는 사용자(104)에 의해 착용될 때 HMD(100)의 회전 속도에 실질적인 제한들이 있고, 사용자(104)가 자신의 머리를 고속으로 회전시킬 때 인식 가능한 시각적 요소들에 실질적인 제한들이 있기 때문에 최대 크기 값 이상으로 크기를 확장해야 한다. 예를 들어, 평균 사용자(104)가 특정 임계 각속도 이상으로 자신의 머리를 회전시키는 것은 실질적으로 불가능하며, 따라서 이와 관련하여 패널 마스크(110)는 디스플레이 패널(102) 전체를 덮도록 확장될 필요가 없다; 패널 마스크의 확장은 원치 않는 시각적 아티팩트들을 덮을 수 있을 정도로만 시야를 "가져올" 수 있다. 게다가, 사용자(104)가 이 임계 각속도 이상으로 자신의 머리를 회전시킬 수 있다고 하더라도, 사용자(104)는 시야가 빠른 속도로 변할 때 눈이 단순히 이러한 시각적 요소들을 추적할 수 없기 때문에 이러한 고속 회전에서 스스로 나타나는 원치 않는 시각적 아티팩트들을 식별할 수 없을 것이다.
도 3은 패널 마스크들(110(L) 및 110(R))의 완전히 축소된 상태와 패널 마스크들(110(L) 및 110(R))의 완전히 확장된 상태 간 차이를 보여주는 HMD(100)의 예시적인 좌우 디스플레이 패널들(102(L) 및 102(R))을 예시하는 또 다른 도면이다. 도 3에서, 패널 마스크들(110)의 내부 에지들(112)이 완전히 축소된 상태에 있을 완전히 축소된 상태는 점선으로 표시된다. 패널 마스크(110)의 각 부분(예를 들어, 상단, 하단, 좌측 및 우측)은 패널 마스크(110)의 일부가 최소 크기로 감소되도록 패널 마스크(110)의 해당 부분의 내부 에지(112)를 디스플레이 패널(102)의 중심으로부터 바깥쪽으로 멀리 이동시키기 위해 0으로 설정된 크기 값(SV)(예를 들어, SV = 0)을 가질 수 있다. 패널 마스크(110)의 개별 부분들은 HMD(100)의 시작 시 0으로 설정된 크기 값들을 가질 수 있다. 도 3에서, 마스크(들)(110)의 완전히 확장된 상태는 패널 마스크들(110)의 내부 에지들(112)이 완전히 확장된 상태에 있을 것임을 나타내는 실선으로 표시된다. 패널 마스크(110)의 각 부분은 패널 마스크(110)가 최대 크기로 증가되도록 패널 마스크(110)의 해당 부분의 내부 에지(112)를 디스플레이 패널(102)의 중심을 향해 내측으로 이동시키기 위해 1로 설정된 크기 값(예를 들어, SV = 1)을 가질 수 있다. 언급된 바와 같이, 패널 마스크(110)의 개별 부분들은 각 부분에 대한 크기 값을 최소 크기 값(예를 들어, "0")과 최대 크기 값(예를 들어, "1") 사이의 중간 값으로 설정함으로써 최소 크기와 최대 크기 사이의 중간 크기로 조정될 수 있다.
본원에 설명된 프로세스들은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합(즉, 로직)으로 구현될 수 있는 일련의 동작들을 나타내는 논리 흐름 그래프의 블록 집합으로서 예시된다. 소프트웨어의 맥락에서, 블록들은 하나 이상의 프로세서들에 의해 실행 시, 언급된 동작들을 수행하도록 하는 컴퓨터 실행 가능 인스트럭션들을 나타낸다. 일반적으로, 컴퓨터 실행 가능 인스트럭션들은 특정 기능들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되도록 의도되지 않으며, 임의의 수의 설명된 블록들이 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
도 4는 본원에 개시된 실시예들에 따른, HMD(100)의 디스플레이 패널(102) 상의 패널 마스크(110)의 일부를 동적으로 크기 재조정하기 위한 예시적인 프로세스(400)의 흐름도이다. 논의를 위해, 프로세스(400)는 이전 도면들을 참조하여 설명된다.
402에서, HMD(100)의 로직은 패널 마스크(들)(110)의 적어도 일부(들)에 대한 타겟 크기 값(들)을 결정할 수 있다. 주어진 프레임(106)의 경우, HMD(100)의 로직은 예를 들어, 좌측 패널 마스크(110(L))의 좌측 부분(110(L)(1)), 상단 부분(110(L)(2)), 우측 부분(110(L)(3)), 및 하단 부분(110(L)(4))에 대응되는 4개의 타겟 크기 값들, 뿐만 아니라 우측 패널 마스크(110(R))의 좌측 부분(110(R)(1), 상단 부분(110(R)(2)), 우측 부분(110(R)(3)) 및 하단 부분(110(R)(4))에 대응되는 4개의 타겟 크기 값들을 결정할 수 있다. 따라서, 주어진 프레임(106)에 대해 좌측 패널 마스크(110(L)) 및 우측 패널 마스크(110)를 렌더링하는 2-패널 HMD(100)에 대해 블록(402)에서 총 8개의 타겟 크기 값들이 결정될 수 있다. 블록(402)에서 타겟 크기 값(들)의 결정은 재-투사가 현재 일련의 프레임들(106)을 렌더링하는 데 사용되고 있는지 아닌지에 따라 달라질 수 있다. 재-투사가 진행중인 경우(예를 들어, 주어진 프레임(106)이 재-투사를 사용하여 렌더링되는 일련의 프레임들(106)의 일부인 경우), 타겟 크기 값(들)은 HMD(100)의 머리 트랙킹 모듈에 의해 제공되는 회전 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 재-투사가 진행중이 아닐 경우, 타겟 크기 값(들)은 블록(402)에서 0의 값(들)로 설정될 수 있다. 언급된 바와 같이, 패널 마스크(110)의 개별 부분에 대한 타겟 크기 값은 타겟 크기 값이 이러한 두 경계들을 포함하여, 이러한 두 경계들 사이(예를 들어, "0"과 "1" 사이)의 임의의 값으로 설정될 수 있도록 최소 크기 값(예를 들어, "0")과 최대 크기 값(예를 들어, "1") 사이에서 클램핑될 수 있다. 특히, 재-투사가 진행되는 동안, 타겟 크기 값은 HMD(100)가 회전한 양에 대응되는 값으로 계산될 수 있다. 예를 들어, 더 많은 양의 HMD(100) 회전은 최대 크기 값(예를 들어, "1")에 더 가까운 타겟 크기 값들에 해당하고, 더 적은 양의 HMD(100) 회전은 최소 크기 값(예를 들어, "0")에 더 가까운 타겟 크기 값들에 해당한다.
404에서, HMD(100)의 로직은 타겟 크기 값이 기존 크기와 동일하지 않다고 가정하여, 패널 마스크(110)의 적어도 일부와 관련된 크기 값을 기존 크기 값으로부터 블록(402)에서 결정된 타겟 크기 값으로 조정할 수 있다. 즉, 타겟 크기 값이 기존 크기 값과 동일한 경우, 로직은 블록(404)에서 크기 조정하는 것을 그만 둘 수 있다. 따라서, 재-투사가 진행중인 경우, 그리고 로직이 패널 마스크의 일부와 관련된 크기 값이 타겟 크기 값보다 작은 기존 크기 값으로 설정되었다고 결정하는 경우, 블록(404)에서의 조정은 패널 마스크(110)의 적어도 일부의 크기가 현재 크기에서 증가된 크기로 증가하는 결과를 초래할 수 있다. 재-투사가 진행중이 아니고(블록(402)에서 타겟 크기 값이 0이 됨) 기존 크기 값이 현재 0이 아닌 경우, 또는 그렇지 않으면 재-투사가 진행중이고 0이 아닌 타겟 크기 값이 기존 크기 값보다 적은 경우, 블록(404)에서의 조정은 패널 마스크(110)의 적어도 일부의 크기가 현재 크기에서 감소된 크기로 감소하는 결과를 초래할 수 있다. 블록(404)에서 감소된 크기로의 하향 크기 조정은 현재 크기 값에서 더 작은 타겟 값(예를 들어, 최소값 또는 일부 다른 타겟 값)으로 작은 양(예를 들어, 프레임 당 lerp 0.005 값)만큼 느린 보간단계일 수 있다. 일부 실시예들에서, 블록(404)에서의 하향 크기 조정은 현재 프레임(106)에 선행하는 미리 결정된 수의 연속 프레임들(106)의 과정에 걸쳐 패널 마스크(110)의 부분의 크기를 증가시키지 않는 것에 추가로 조건화된다. 예를 들어, 지난 10개의 연속 프레임들에서 패널 마스크(110) 부분의 크기가 증가하지 않은 경우, 크기는 감소된 크기로 하향 조정될 수 있다. 그렇지 않으면, 이 연속적인 프레임 기준이 충족되지 않으면, 블록(404)에서 크기 값에 대한 임의의 조정이 없을 수 있다.
406에서, HMD(100)의 로직은 디스플레이 패널(102)의 주변부에 렌더링되는 패널 마스크 110)와 함께 디스플레이 패널(102)에 일련의 프레임들(106)의 프레임(106)을 렌더링할 수 있으며, 패널 마스크(110)의 적어도 일부는 타겟 크기 값에 따른 크기(예를 들어, 조정된 크기)로 렌더링된다.
프로세스(400)는 원치 않는 시각적 아티팩트들이 그 자체로 제시될 디스플레이 패널(102)의 영역을 덮도록 확장되는 패널 마스크(110)에 의해 머리 회전과 결합된 재-투사 동안 발생할 수 있는 원치 않는 시각적 아티팩트들을 숨길 수 있게 한다. 이는 제한이 아닌 예로서 도 1a 및 1b에 도시되어 있으며, 여기서 각 디스플레이 패널(102) 상의 패널 마스크(110)의 일부는 현재 크기에서 증가된 크기로 크기가 증가되고 디스플레이 패널(들)(102) 상에 프레임(106)으로 렌더링된다.
도 5는 본원에 개시된 실시예들에 따른, HMD(100)의 디스플레이 패널(102) 상의 패널 마스크(110)의 일부를 동적으로 크기 재조정하기 위한 보다 상세한 예시적인 프로세스(500)의 흐름도이다. 논의를 위해, 프로세스(500)는 이전 도면들을 참조하여 설명된다.
502에서, 일련의 프레임들(106) 중 한 프레임(106)은 HMD(100)의 디스플레이 패널(들)(102) 상에서 렌더링하기 위해 처리된다. 이 시점에서, 프레임(106)과 함께 디스플레이 패널(들)(102) 상에 렌더링될 패널 마스크(들)(110)는 패널 마스크(들)(110)의 이러한 부분들이 완전히 축소된 상태, 완전히 확장된 상태 또는 그 사이 어딘가에 있는지를 나타내는 기존 크기 값들로 설정된 패널 마스크(들)(110)의 개별 부분들과 연관된 크기 값들을 가질 수 있다. 패널 마스크(들)(110)가 이전에 증가된 크기로 확장되지 않은 경우, 각 부분에 대한 기존 크기 값들은 완전히 축소된 상태에 해당하는 최소 크기 값(예를 들어, 0 크기 값)으로 설정될 수 있다.
504에서, HMD(100)의 로직은 일련의 프레임들(106) 중 가장 최근에 렌더링된 프레임(106)이 어플리케이션으로부터 수신된 이전에 렌더링된 실제 프레임(106(A))으로부터 도출된 재-투사된 프레임(106(R))이다. 달리 말하면, HMD(100)의 로직은 재-투사가 현재 일어나고 있는지를 결정한다. 504에서, 일련의 프레임들(106)이 재-투사를 사용하여 HMD(100)의 디스플레이 패널(들)(102)에 렌더링되는 것으로 결정되면, 프로세스(500)는 블록(504)에서 블록(506)으로의 "예" 경로를 따를 수 있다.
506에서, HMD(100)의 로직은 HMD(100)의 헤드 트랙킹 모듈에 의해 제공되는 회전 데이터에 적어도 부분적으로 기초하여, 패널 마스크(110)의 개별 부분들에 대한 타겟 크기 값들을 결정할 수 있다. 예를 들어, 방향 당 0.0 내지 1.0으로 클램핑된 4개의 타겟 크기 값들은 HMD(100) 회전에 기초하여 결정될 수 있다. 즉, 패널 마스크(110)의 좌측 부분에 대해 0 내지 1(이들을 포함) 사이의 제1 타겟 크기 값이 결정될 수 있고, 패널 마스크(110)의 상부 부분에 대해 0 내지 1(이들을 포함) 사이의 제2 타겟 크기 값이 결정될 수 있고, 패널 마스크(110)의 우측 부분에 대해 0 내지 1(이들을 포함) 사이의 제3 타겟 크기 값이 결정될 수 있고, 패널 마스크(110)의 하단 부분에 대해 0 내지 1(이들을 포함) 사이의 제4 타겟 크기 값이 결정될 수 있다. 이는 각의 패널 마스크(110)에 대해 수행될 수 있으며, 이는 총 8개의 타겟 크기 값들이 좌우 패널 마스크들(110(L) 및 110(R))에 대해 블록(506)에서 결정될 수 있음을 의미한다. 일반적으로, HMD(100)의 회전 방향 및 양은 각각 패널 마스크(110)의 부분 및 패널 마스크(110)의 해당 부분에 대한 타겟 크기 값들을 지시한다.
서브 블록(508)에 의해 도시된 바와 같이, HMD(100)의 로직은 HMD(100)의 헤드 트랙킹 모듈에 의해 제공되는 회전 데이터에 기초하여, 일련의 프레임들(106) 중 렌더링된 프레임(106)이 마지막으로 렌더링된 이후 일정 기간에 걸친 방향 당 HMD(100)의 회전량(예를 들어, 좌측, 우측, 위 및 아래 방향으로의 회전량)을 결정할 수 있다. 임의의 측정 단위에서 회전량을 결정하는 임의의 적절한 방식이 블록(508)에서의 결정을 위해 이용될 수 있다. 예를 들어, 프레임들 사이의 많은 회전 각도들이 회전량으로 결정될 수 있다. 일부 실시예들에서, 블록(508)에서 결정된 회전량은 각속도의 형태일 수 있다. HMD(100)의 회전 방향성은 양 또는 음의 수평 및 수직 방향, 또는 임의의 다른 적절한 형태의 방향 측정을 참조하여 결정될 수 있으며, HMD(100)의 회전 방향성은 컴포넌트 방향들(예를 들어, X-Y 평면에서 좌측, 우측, 위 및/또는 아래 방향들)로 나눌 수 있다. 따라서, 블록(506)의 로직은 HMD(100)가 회전한 방향에 대응하는 패널 마스크(들)(110)의 다수의 부분들 중에서 일부(들)를 결정하는 것을 포함할 수 있다. 일반적으로, HMD(100)의 회전량이 클수록, 디스플레이 패널(102) 상의 더 많은 이미지 영역(108)이 더 많은 회전량을 위해 패널 마스크(110)에 의해 덮이도록 타겟 크기 값이 커진다. 이러한 의미에서, 패널 마스크(110)의 일부에 대한 최대 크기 값에 대응하는 임계 회전량이 있을 수 있으며, HMD(100)의 회전량이 이 임계량을 충족하거나 초과하는 경우, 최대 크기 값이 블록(506)에서 타겟 크기 값으로 선택될 수 있다. HMD(100)의 회전량이 이 임계량보다 작은 경우, 타겟 크기 값은 최대 크기 값보다 작은 것으로 결정된다. 일부 실시예들에서, 타겟 크기 값은 이전 프레임(106) 및 현재 프레임(106)에 사용된 재-투사 변환들의 상대적 차이에 기초하여 결정될 수 있다. 즉, HMD(100)의 회전량을 결정하는 대신에 또는 그 외에도, 이전 프레임(106)과 현재 프레임(106) 동안 사용된 재-투사 변환들 간의 상대적 차이는 재-투사 변환들의 차이가 클수록 디스플레이 패널이 원치 않는 시각적 아티팩트들(예를 들어, 블랙 픽셀들과 켜진/유효 픽셀들 사이의 스트로브 플래시)을 더 많이 나타낸다는 개념에 근거하여 타겟 크기 값의 계산을 추진하는 데 사용될 수 있다.
504에서, 일련의 프레임들(106)이 재-투사를 사용하여 HMD(100)의 디스플레이 패널(들)(102)에 렌더링되지 않는 것으로 결정되면, 프로세스(500)는 블록(504)에서 블록(510)으로의 "아니오" 경로를 따를 수 있다. 이전 반복 후, 블록(504)에서의 이 결정은 재-투사가 중단되었다는 결정일 수 있다. 예를 들어, 프레임(106)을 렌더링하고 502에서 다음 프레임을 처리하도록 진행한 후, HMD(100)의 로직은 일련의 프레임들(106)이 재-투사 없이(예를 들어, 임의의 재-투사된 프레임들(106(R))없이) 렌더링되고 있다고 결정할 수 있으며, 이는 재-투사가 중단되었음을 나타낸다. 달리 말하면, 디스플레이 패널(102)에 렌더링될 하나 이상의 추가 프레임들은 임의의 재-투사된 프레임들(102(R))을 포함하지 않을 수 있으며, 이는 재-투사의 사용이 중단되었거나, 그렇지 않으면 현재 발생하지 않음을 나타낸다. 이는 이전에 프레임 속도에 도달하는 것에 실패한 후 어플리케이션이 프레임 속도에 도달할 때 발생할 수 있다.
510에서, HMD(100)의 로직은 패널 마스크(110)의 개별 부분들에 대한 타겟 크기 값들을 0(또는 최소 크기 값)으로 설정할 수 있다. 예를 들어, 패널 마스크(110)의 좌측, 상단, 우측 및 하단 부분들에 대응하는 4개의 타겟 크기 값들은 블록(510)에서 0으로 설정될 수 있다.
512에서, 어느 한 블록(506/508) 또는 블록(510) 이후에, HMD(100)의 로직은 패널 마스크(110)의 각 개별 부분에 대해, 타겟 크기 값이 패널 마스크(110)의 부분에 대한 기존 크기 값보다 큰지 여부를 결정할 수 있다. 블록(512)에서 타겟 크기 값이 기존 크기 값보다 크다고 결정되면, 프로세스(500)는 블록(512)에서 블록(514)으로의 "예" 경로를 따를 수 있다.
514에서, HMD(100)의 로직은 패널 마스크(110) 부분의 크기 값을 기존 크기 값에서 타겟 크기 값으로 조정(또는 변경)하여 패널 마스크(110)의 부분의 크기를 현재 크기에서 증가된 크기로 증가시킬 수 있다. 나타낸 바와 같이, 크기를 증가시키기 위한 이러한 조정은 기존 크기 값보다 큰 타겟 크기 값에 기초할 수 있으며, 이는 패널 마스크(110)의 일부가 더 많은 이미지 영역(108)을 덮도록 내측으로 가져와야 함을 나타낸다. 일부 실시예들에서, 블록(514)에서의 크기 조정은 갑작스러운 시야 변경을 완화하기 위해 일시적으로 평활화된다.
516에서, HMD(100)의 로직은 디스플레이 패널(들)(102)의 주변부에서 렌더링되는 패널 마스크(들)(110)와 함께 디스플레이 패널(들)(102) 상에 프레임(106)을 렌더링할 수 있으며, 여기서 패널 마스크의 적어도 일부는 타겟 크기 값에 따른 크기로 렌더링되고, 블록(518)에서, 일련의 프레임들(106) 내의 다음 프레임(106)은 다음 프레임에 대해 블록(502)으로부터 반복함으로써 처리될 수 있다. 블록(514)에 이어, 패널 마스크(110)는 기존 크기 값으로부터 타겟 크기 값으로의 증가로 인한 증가된 크기로 블록(516)에서 렌더링될 수 있다. 또한, 한 쌍의 디스플레이 패널들(예를 들어, 좌측 디스플레이 패널(102(L)) 및 우측 디스플레이 패널(102(R)))을 갖는 HMD(100)의 경우, 도 5의 알고리즘은 각 패널 마스크(110(L) 및 110(R))에 대해 독립적으로 수행될 수 있다. 실제로, 각 디스플레이 패널(102) 상의 패널 마스크(110)의 리딩 에지 부분이 도 1a 및 1b의 예들에 도시된 것처럼 각 디스플레이 패널(102)의 중심을 향해 내측으로 확장될 때와 같이, 재-투사 동안 특정 HMD(100) 회전에 응답하여 각 마스크의 동일한 부분들이 동일하거나 유사한 방식으로 조정될 수 있다. 더욱이, 새로 결정된 타겟 크기 값들에 따라 패널 마스크(110)가 렌더링되는 프레임(106)은 실제 프레임(106(A)) 또는 재-투사된 프레임(106(R))일 수 있다. 적어도 한 예에서, 블록(504)에서, 재-투사가 발생하고 있다는 결정은 이전에 렌더링된 재-투사된 프레임(106(R))에 기초한다. 따라서, 후속 프레임은 어플리케이션으로부터 수신된 실제 프레임(106(A))일 수 있으며, 이 경우 패널 마스크(110)는 실제 프레임(106(A))과 함께 계산된 타겟 크기 값들에 따라 블록(516)에서 렌더링된다. 달리 말하면, 재-투사가 처음 검출될 때, 크기가 조정된 패널 마스크(110)로 렌더링된 제1 프레임(106)은 다음 프레임일 수 있으며, 이는 어플리케이션으로부터 수신된 실제 프레임(106(A))일 수 있다. 그러나, 일부 실시예들에서, 예를 들어 복수의 재-투사된 프레임들(106(R))이 순차적인 실제 프레임들(106(A)) 사이에서 렌더링되는 경우(예를 들어, 어플리케이션이 초당 30 프레임으로 프레임들을 출력하고, 두 개의 재-투사된 프레임들(106(R))이 매 실제 프레임(106(A)) 사이에서 렌더링되는 경우), 증가된 크기의 패널 마스크(110)로 렌더링되는 제1 프레임(106)은 다음 재-투사된 프레임(106(R))일 수 있다.
블록(512)를 다시 참조하면, 블록(512)에서 타겟 크기 값이 기존 크기 값보다 크지 않다고 결정되면, 프로세스(500)는 블록(512)에서 블록(520)으로의 "아니오" 경로를 따를 수 있다. 520에서, HMD(100)의 로직은 (패널 마스크(110)의 개별 부분에 대한) 타겟 크기 값이 기존 크기 값보다 작은지를 결정할 수 있다. 블록(520)에서의 대답이 "아니오"이면, 프로세스(500)는 타겟 크기 값이 기존 크기 값과 같다는 결정에 기초하여 블록(520)에서 블록(522)으로의 "아니오" 경로를 따를 수 있다. 522에서, 패널 마스크(110)의 주어진 부분에 대한 크기 값에 대한 조정이 이루어지지 않고, 프레임은 패널 마스크(110)의 일부의 크기에 대한 어떠한 조정도 없이 블록(516)에서 렌더링된다. 다시 말해, 패널 마스크(110)가 덮여야 하는 부분을 이미 덮고 있다고 결정되면, 조정이 이루어지지 않는다. 반면, 블록(520)에서 패널 마스크(110)의 일부에 대한 타겟 크기 값이 기존 크기 값보다 작다고 결정되면, 프로세스(500)는 블록(520)에서 블록(524)로의 "예" 경로를 따를 수 있다.
524에서, HMD(100)의 로직은 패널 마스크(110)의 관련 부분의 크기를 증가시키지 않고 미리 결정된 수의 프레임들(106)(예를 들어, N 프레임들, 여기서 N은 5, 10 등과 같음)이 연속적으로 렌더링되었는지를 결정할 수 있다. 마지막 N개의 연속 프레임들(106)의 과정에 걸쳐 패널 마스크(110)의 관련 부분의 크기가 증가했다면, 프로세스(500)는 블록(524)에서 블록(522)으로의 "아니오" 경로를 따를 수 있으며, 여기서 패널 마스크(110)의 해당 부분에 대한 조정은 이루어지지 않으며, 프레임이 패널 마스크(110)의 관련 부분의 크기에 대한 어떠한 조정없이 렌더링되는 블록(516)으로 진행된다. 이는 이미지 영역(108)의 이전에 덮인 부분을 드러내기 위해 패널 마스크(110)를 축소시키기 전에 재-투사가 중단되었다는 것을 어느 정도 확신하는 것이 유리할 수 있다는 개념에 기초할 수 있다. 이 확신은 패널 마스크(110)의 관련 부분의 크기를 증가시키지 않고 렌더링되는 특정 개수의 연속 프레임들106 (A))에 기초할 수 있다. 따라서, 마지막 N개의 연속 프레임들(106)의 과정에 걸쳐 패널 마스크(110)의 관련 부분의 크기에 대한 어떠한 증가도 없었다면, 프로세스(500)는 블록(524)에서 블록(526)으로의 "예" 경로를 따를 수 있다.
526에서, 크기 값은 더 작은 타겟 값(예를 들어, 타겟 크기 값, 또는 그렇지 않으면 패널 마스크(110)의 완전히 축소된 상태에 대응하는 최소 크기 값 "0")을 향해 감소(예를 들어, 아래로 점진적으로 조정)될 수 있다. 이는 기존 크기 값에서 기존 크기 값보다 작은 타겟 크기 값으로의 시간 기간(예를 들어, 대략 2 초의 기간)에 걸쳐 패널 마스크(110) 일부의 일부의 크기를 감소시키도록 할 수 있으며, 이는 패널 마스크(110)의 일부가 현재 크기에서 더 작은 크기로 일정 기간에 걸쳐 크기가 감소하게 한다. 따라서, 다수의 프레임들의 과정에 걸쳐, 블록(526)에서의 감소는 결국 패널 마스크(110)의 이전에 확장된 부분이 크기가 감소되게 할 것이다. 머리 회전이 느려 지고/지거나 재-투사가 중단됨에 따라, 패널 마스크(110)의 이전에 확장된 부분은 결국 프로세스(500)의 다수의 반복에 걸쳐 최소 크기로 감소할 수 있다. 이는 인간의 눈으로 인지할 수 없는 속도로 패널 마스크(110)의 제어된 축소 속도를 가능하게 한다. 이러한 방식으로, 패널 마스크(110)의 축소는 사용자(104)에게 주의를 산만하게 하지 않을 수 있다. 일부 실시예들에서, 블록(526)에서의 감소 동작은 상대적으로 적은 양(예를 들어, 프레임 당 lerp 0.005 값)만큼 기존 크기 값을 더 작은 타겟 값으로 감소시키는 느린 보간이다. 다시 말해, 로직은 최대 축소 속도보다 빠르게 패널 마스크(110)의 일부를 축소시키는 것을 방지하도록 구성될 수 있으며, 이는 사용자(104)의 머리 회전이 갑자기 큰 폭으로 느려 지는 경우, 패널 마스크(110)의 일부의 크기를 모두 결정된 타겟 크기 값까지 감소시키는 대신, 기존 크기 값은 대신에 타겟 크기 값보다 크고 기존 크기 값보다 작은 중간 크기 값으로 감소될 수 있다. 일부 실시예들에서, 타겟 크기 값이 더 작은 크기 값과 기존 크기 값 사이에 있으면, 블록(526)에서의 감소는 타겟 크기 값으로 감소한다. 기존 크기 값을 감소시킨(예를 들어, 기존 크기 값을 특정 백분율(예를 들어, 5 %) 더 작게 만든) 후, 프로세스(500)는 블록(526)에서 프레임(106)이 패널 마스크와 함께 디스플레이 패널(102)에 렌더링되는 블록(516)으로 진행할 수 있으며, 크기가 감소된 패널 마스크(110)의 일부는 패널 마스크(110) 일부의 이전 크기에 비해 감소된 크기로 렌더링된다.
프로세스(500)의 후속 반복 시, 블록(504)에서 재-투사가 여전히 일련의 프레임들(106)을 렌더링하는 데 사용되고 있거나 또는 재-투사가 중단되었다고 결정될 수 있으며, 이는 패널 마스크(110)의 개별 부분들이 이전 크기 조정에 비해 동적으로 증가되는지, 감소되는지 또는 변경되지 않은 채로 유지되는지를 나타낸다. 일반적으로, 패널 마스크(110)의 적절한 부분들은 더 많은 HMD(100) 회전과 결합된 재-투사 동안 크기가 증가하고, HMD(100) 회전이 느려 지고/지거나 재-투사가 중지되면, 패널 마스크(110) 부분들은 크기가 감소하여 디스플레이 패널(102) 상에 더 많은 이미지 영역(108)을 드러낼 수 있다.
도 6은 본원에 개시된 실시예들에 따른, VR 헤드셋과 같은, HMD(600)의 예시적인 컴포넌트들이 내장될 수 있음을 예시한다. HMD(600)는 이전 도면들에서 참조된 HMD(100)와 동일하거나 유사할 수 있으며, 따라서 도 6에 도시 된 HMD(600)의 컴포넌트들은 HMD(100)에서 구현될 수 있다. HMD(600)는 사용자(104)에 의해(예를 들어, 사용자(104)의 머리에) 착용될 독립형 장치로서 구현될 수 있다. 일부 실시예들에서, HMD(600)는 사용자(104)가 사용자(104)의 머리 둘레에 맞도록 크기가 조정된 고정 메커니즘(예를 들어, 조정 가능한 밴드)을 사용하여 자신의 머리에 HMD(600)를 고정하도록 하는 것과 같은 헤드 장착 가능할 수 있다. 일부 실시예들에서, HMD(600)은 니어-아이(near-eye) 또는 니어-투-아이(near-to-eye) 디스플레이(들)를 포함하는 가상 현실(VR) 또는 증강 현실(AR) 헤드셋을 포함한다. 이와 같이, "웨어러블 장치", "웨어러블 전자 장치", "VR 헤드셋", "AR 헤드셋" 및 "헤드 장착형 디스플레이(HMD)"라는 용어들은 도 6의 장치(600)를 지칭하기 위해 본원에서 상호 교환적으로 사용될 수 있다. 그러나, 이러한 유형의 장치들은 HMD(600)의 예일 뿐이며, HMD(600)는 다양한 다른 폼 팩터들로 구현될 수 있음을 알아야 한다.
예시된 구현예에서, HMD(600)는 하나 이상의 프로세서들(602) 및 메모리(604)(예를 들어, 컴퓨터 판독 가능 매체(604))를 포함한다. 일부 구현예들에서, 프로세서(들)(602)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), CPU 및 GPU 둘 모두, 마이크로프로세서, 디지털 신호 프로세서 또는 당업계에 알려진 기타 처리 장치들 또는 컴포넌트들을 포함할 수 있다. 대안으로 또는 추가로, 본원에 기능적으로 설명된 것은 적어도 부분적으로 하나 이상의 하드웨어 로직 컴포넌트들에 의해 수행될 수 있다. 예를 들어, 그리고 제한 없이, 사용될 수 있는 예시적인 유형의 하드웨어 로직 컴포넌트들은 필드 프로그램 가능 게이트 어레이들(FPGA들), 어플리케이션별 집적 회로들(ASIC들), 어플리케이션별 표준 제품들(ASSP들), 시스템 온 칩시스템들(SOC), 복합 프로그램 가능 로직 장치들(CPLD들) 등을 포함한다. 추가로, 프로세서(들)(602) 각각은 프로그램 모듈들, 프로그램 데이터 및/또는 하나 이상의 운영 체제들을 저장할 수 있는 자체 로컬 메모리를 가질 수 있다.
메모리(604)는 컴퓨터 판독 가능 인스터럭션들, 데이터 구조들, 프로그램 모듈들 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 메모리, 착탈식 및 비착탈식 매체를 포함할 수 있다. 이러한 메모리는 이에 제한되는 것은 아니나, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD) 또는 기타 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 저장 장치들, RAID 저장 시스템들 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 장치에 의해 액세스될 수 있는 임의의 기타 매체를 포함한다. 메모리(604)는 컴퓨터 판독 가능 저장 매체("CRSM")로서 구현될 수 있으며, 이는 메모리(602)에 저장된 인스트럭션들 실행하기 위해 프로세서(들)(602)에 의해 액세스 가능한 임의의 이용 가능한 물리적 매체일 수 있다. 한 기본 구현예에서, CRSM은 랜덤 액세스 메모리("RAM") 및 플래시 메모리를 포함할 수 있다. 다른 구현예들에서, CRSM은 이에 제한되는 것은 아닌, 읽기 전용 메모리("ROM"), 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리("EEPROM") 또는 원하는 정보를 저장하는 데 사용될 수 있고 프로세서(들)(602)에 의해 처리될 수 있는 임의의 다른 유형의 매체를 포함할 수 있다.
일반적으로, HMD(600)는 본원에 설명된 기술들, 기능 및/또는 동작들을 구현하도록 구성되는 로직(예를 들어, 소프트웨어, 하드웨어 및/또는 펌웨어 등)을 포함할 수 있다. 컴퓨터 판독 가능 매체(604)는 본원에 설명된 기술들, 기능 및/또는 동작들을 수행하기 위해 프로세서(들)(602)에서 실행하도록 구성될 수 있는 인스트럭션, 데이터 저장소 등과 같은 다양한 모듈들을 포함하는 것으로 도시되어 있다. 몇 가지 예시적인 기능 모듈들이 컴퓨터 판독 가능 매체(604)에 저장되고 프로세서(들)(602)에서 실행 가능한 것으로 도시되어 있지만, 동일한 기능이 하드웨어, 펌웨어에서 또는 시스템 온 칩(SOC) 및/또는 기타 로직으로서 대안적으로 구현될 수 있다.
운영 체제 모듈(606)은 다른 모듈들의 이익을 위해 HMD(600) 내에서 그리고 이에 결합된 하드웨어를 관리하도록 구성될 수 있다. 추가로, 일부 경우에, HMD(600)는 메모리(604)에 저장되거나 그렇지 않으면 HMD(600)에 액세스할 수 있는 하나 이상의 어플리케이션들(608)을 포함할 수 있다. 이 구현예에서, 어플리케이션(들)(608)은 게임 어플리케이션(610)을 포함한다. 그러나, HMD(600)은 임의 개수 또는 유형의 어플리케이션들을 포함할 수 있으며, 여기에 도시된 특정 예에 제한되지 않는다. 게임 어플리케이션(610)은 사용자(104)에 의해 플레이 가능한 비디오 기반 대화형 게임(예를 들어, VR 게임)의 게임플레이를 시작하고, HMD(100)의 디스플레이 패널들에 렌더링될 프레임들(예를 들어, 실제 프레임들(106(A))을 출력하도록 구성될 수 있다. 컴포지터(611)는 후기(late-stage) 렌더링 동작으로서 각 프레임과 함께 패널 마스크(110)를 렌더링하고 동적으로 조정하도록 구성될 수 있다. 따라서, 컴포지터(611)는 HMD(100)의 관련 로직과 함께, 본원에 개시된 동적 패널 마스크 조정 기술들을 수행할 수 있다.
일반적으로, HMD(600)는 입력 장치들(612) 및 출력 장치들(614)을 갖는다. 입력 장치들(612)는 제어 버튼들을 포함할 수 있다. 일부 구현예들에서, 하나 이상의 마이크로폰들은 사용자 음성 입력과 같은 오디오 입력을 수신하기 위한 입력 장치들(612)로서 기능할 수 있다. 일부 구현예들에서, 하나 이상의 카메라들 또는 다른 유형의 센서들(예를 들어, 관성 측정 유닛(IMU))은 사용자(104)의 핸드 및/또는 헤드 모션과 같은 제스처 입력을 수신하는 입력 장치들(612)로서 기능할 수 있다. 일부 실시예들에서, 추가 입력 장치들(612)은 키보드, 키패드, 마우스, 터치 스크린, 조이스틱 등의 형태로 제공될 수 있다. 다른 실시예들에서, HMD(600)는 키보드, 키패드 또는 기타 유사한 형태의 기계적 입력을 생략할 수 있다. 대신, HMD(600)는 입력 장치(612), 네트워크 인터페이스(무선 또는 유선 기반), 전력 및 처리/메모리 능력들의 비교적 단순한 형태들로 구현될 수 있다. 예를 들어, 하나 이상의 입력 컴포넌트들의 제한된 세트(예를 들어, 구성을 시작하기 위한 전용 버튼, 전원 온/오프 등)는 이후에 HMD(600)가 사용될 수 있도록 사용될 수 있다. 한 구현예에서, 입력 장치(들)(612)는 볼륨 증가/감소를 위한 기본 볼륨 제어 버튼(들)뿐만 아니라 전원 및 리셋 버튼들과 같은 제어 메커니즘들을 포함할 수 있다.
출력 장치들(614)은 이전 도면들을 참조하여 설명된 디스플레이 패널(들)(102)과 동일하거나 유사할 수 있는 디스플레이(들)(616)를 포함할 수 있다. 출력 장치들(614)은, 제한 없이, 조명 요소(예를 들어, LED), 햅틱 감각을 생성하기 위한 진동기, 스피커(들)(예를 들어, 헤드폰들) 등을 더 포함할 수 있다. 예를 들어, 전원이 켜져 있을 때와 같은 상태를 나타내는 간단한 조명 요소(예를 들어, LED)가 있을 수도 있다.
HMD(600)는 네트워크에 대한 무선 연결을 용이하게 하기 위해 안테나(620)에 연결된 무선 유닛(618)을 더 포함할 수 있다. 무선 유닛(618)은 Wi-Fi, 블루투스, 무선 주파수(RF) 등과 같은 다양한 무선 기술들 중 하나 이상을 구현할 수 있다. HMD(600)는 네트워크, 연결된 주변 장치(PC, 게임 콘솔 등을 포함함) 또는 다른 무선 네트워크들과 통신하는 플러그-인 네트워크 장치에 대한 유선 연결을 용이하게 하기위한 물리적 포트들을 더 포함할 수 있다.
HMD(600)는 하나 이상의 광학 소자들을 사용하여 전자 디스플레이(들)(616)로부터 사용자의 눈(들)으로 광을 보내는 광학 서브시스템(622)을 더 포함할 수 있다. 광학 서브시스템(622)은, 제한업이, 조리개, 렌즈(예를 들어, 프레넬 렌즈, 볼록 렌즈, 오목 렌즈 등), 필터 등과 같은 이들을 포함하는 다양한 유형들 및 서로 다른 광학 요소들의 조합들을 포함할 수 있다. 일부 실시예들에서, 광학 서브시스템 (622) 내의 하나 이상의 광학 요소들은 반사 방지 코팅과 같은 하나 이상의 코팅들을 가질 수 있다. 광학 서브시스템(622)에 의한 이미지 광의 확대는 전자 디스플레이(들)(616)가 물리적으로 더 작고, 더 가볍고, 더 큰 디스플레이보다 더 적은 전력을 소모하게 한다. 추가로, 이미지 광의 확대는 디스플레이된 콘텐트(예를 들어, 이미지들)의 시야(FOV)를 증가시킬 수 있다. 예를 들어, 디스플레이된 콘텐트의 FOV는 디스플레이된 콘텐트가 거의 모든(예를 들어, 120 내지 150 도 대각선), 일부 경우에는 사용자의 FOV 모두를 사용하여 제시되도록 한다. AR 어플리케이션들은 더 좁은 FOV(예를 들어, 약 40도 FOV)를 가질 수 있다. 광학 서브시스템(622)은, 제한없이, 배럴 왜곡, 핀쿠션 왜곡, 길이방향 색수차, 가로 색수차, 구면 수차, 코마 수차, 필드 곡률, 난시 등과 같은 하나 이상의 광학 오류들을 수정하도록 설계될 수 있다. 일부 실시예들에서, 디스플레이를 위해 전자 디스플레이(들)(616)에 제공된 콘텐트는 사전 왜곡되고, 광학 서브시스템(622)은 콘텐트에 기초하여 생성된 전자 디스플레이(들)(616)로부터 이미지 광을 수신할 때 왜곡을 보정한다.
HMD(600)는 모션, 위치 및 방향 데이터를 생성하는 데 사용되는 센서들과 같은 하나 이상의 센서들(624)을 더 포함할 수 있다. 이들 센서들(624)은 자이로스코프, 가속도계, 자력계, 비디오 카메라, 컬러 센서, 또는 기타 모션, 위치 및 방향 센서들일 수 있거나 이들을 포함할 수 있다. 센서들(624)은 또한 모션, 위치 및 방향 데이터를 생성하기 위해 카메라 또는 컬러 센서에 의해 외부에서 볼 수 있는 일련의 능동 또는 수동 마커들과 같은 센서 서브 부분들을 포함할 수 있다. 예를 들어, VR 헤드셋은 외부 카메라로 보거나 광(예를 들어, 적외선 또는 가시광선)에 의해 조명될 때, 모션, 위치 및 방향 데이터를 생성하기 위해 소프트웨어에 의한 해석을 위해 하나 이상의 참조 지점들을 제공할 수 있는 반사기들 또는 광들(예를 들어, 적외선 또는 가시광선)과 같은 여러 마커들을 외부에 포함할 수 있다. HMD(600)는 HMD(600)의 환경에서 기지국에 의해 투사되거나 브로드캐스트되는 광(예를 들어, 적외선 또는 가시광선)에 민감한 광 센서들을 포함할 수 있다.
일 예에서, 센서(들)(624)는 관성 측정 유닛(IMU)(626)을 포함할 수 있다. IMU(626)는 가속도계, 자이로스코프, 자력계 및/또는 모션 검출, IMU(626)와 관련된 오류 수정에 적합한 기타 센서들, 또는 이들의 일부 조합으로부터 수신된 측정 신호들을 기반으로 캘리브레이션 데이터를 생성하는 전자 장치일 수 있다. 측정 신호들에 기초하여 IMU(626)와 같은 모션 기반 센서들은 HMD(600)의 초기 위치에 대한 HMD(600)의 추정 위치를 나타내는 캘리브레이션 데이터를 생성할 수 있다. 예를 들어, 다수의 가속도계들은 병진이동 모션(전진/후진, 위/아래, 좌/우)을 측정할 수 있고 다수의 자이로스코프들은 회전 모션(예를 들어, 피치, 요 및 롤)을 측정할 수 있다. 예를 들어, IMU(626)는 측정 신호들을 빠르게 샘플링하고 샘플링된 데이터로부터 HMD(600)의 추정 위치를 계산할 수 있다. 예를 들어, IMU(626)는 속도 벡터를 추정하기 위해 시간에 따라 가속도계들로부터 수신된 측정 신호들을 통합할 수 있고, HMD(600) 상의 기준 지점의 추정 위치를 결정하기 위해 시간에 따라 속도 벡터를 통합할 수 있다. 기준 지점은 웨어러블 장치(702)의 위치를 설명하는 데 사용될 수 있는 지점이다. 기준 지점은 일반적으로 공간 내의 지점으로 정의될 수 있지만, 다양한 실시예들에서, 기준 지점은 HMD(600) 내의 지점(예를 들어, IMU(626)의 중심)로 정의된다. 대안으로, IMU(626)은 샘플링된 측정 신호들을 캘리브레이션 데이터를 결정하는 외부 콘솔(또는 기타 컴퓨팅 장치)에 제공한다.
센서들(624)은 센서 데이터를 고속으로 제공하기 위해 비교적 고주파수들에서 동작할 수 있다. 예를 들어, 센서 데이터는 1000Hz(또는 1 밀리 초마다 1개의 센서 판독)의 속도로 생성될 수 있다. 이러한 방식으로, 초당 1,000 회 판독이 이루어진다. 센서가 이 속도(또는 더 빠른 속도)로 이 정도의 데이터를 생성할 때, 모션을 예측하는 데 사용되는 데이터 세트는 수십 밀리 초 정도의 비교적 짧은 시간 기간 동안에도 상당히 크다.
언급된 바와 같이, 일부 실시예들에서, 센서들(624)은 3D 공간에서 HMD(600)의 위치 및/또는 방향, 자세 등을 추적하기 위해 HMD(600)의 환경에서 기지국에 의해 방출되는 광에 민감한 광 센서들을 포함할 수 있다. 위치 및/또는 방향의 계산은 광 펄스들의 타이밍 특성들 및 센서(624)에 의해 검출된 광의 존재 또는 부재에 기초할 수 있다.
HMD(600)는 아이 트랙킹 모듈(628)을 더 포함할 수 있다. HMD(600) 내부의 카메라 또는 기타 광학 센서는 사용자 눈의 이미지 정보를 캡처할 수 있으며, 아이 트랙킹 모듈(628)은 캡처된 정보를 사용하여 비틀림 및 회전(즉, 롤, 피치 및 요)의 크기 및 각 눈에 대한 응시 방향을 포함하는, (예를 들어, 왜곡 조정을 위한) HMD(600)에 대한 각 눈의 동공 간 거리, 안간 거리, 3차원(3D) 위치를 결정할 수 있다. 일 예에서, 적외선은 HMD(600) 내에서 방출되어 각 눈으로부터 반사된다. 반사된 광은 HMD(600)의 카메라에 의해 수신되거나 검출되고 분석되어 각 눈에 의해 반사된 적외선 광의 변화들에서 눈의 회전을 추출한다. 사용자(104)의 눈을 추적하는 많은 방법들이 아이 트랙킹 모듈(628)에 의해 사용될 수 있다. 따라서, 아이 트랙킹 모듈(628)은 각 눈의 최대 6개의 자유도(즉, 3D 위치, 롤, 피치 및 요)를 추적할 수 있으며, 적어도 추적된 양 서브셋은 사용자(104)의 두 눈으로부터 결합되어 응시점(즉, 사용자가 보고 있는 가상 장면의 3D 위치 또는 지점)을 추정할 수 있다. 예를 들어, 아이 트랙킹 모듈(628)은 과거 측정들로부터의 정보, 사용자(104) 머리의 위치를 식별하는 측정들, 및 전자 디스플레이(들)(616)에 의해 제시된 장면을 설명하는 3D 정보를 통합할 수 있다. 따라서, 사용자(104) 눈의 위치 및 방향에 대한 정보는 사용자(104)가 보고 있는 HMD(600)에 의해 제시된 가상 장면 내의 응시점을 결정하는 데 사용된다.
HMD(600)는 헤드 트랙킹 모듈(630)을 더 포함할 수 있다. 헤드 트랙킹 모듈(630)은 상기에 설명된 바와 같이, 사용자(104)의 머리 회전을 포함하는 헤드 모션을 추적하기 위해 센서들(624) 중 하나 이상을 활용할 수 있다. 예를 들어, 헤드 트랙킹 모듈(630)은 HMD(600)의 최대 6개의 자유도(즉, 3D 위치, 롤, 피치 및 요)를 추적할 수 있다. 이러한 계산들은 일련의 프레임들(106)의 매 프레임(106)에서 이루어질 수 있으므로 어플리케이션(608)은 머리 위치 및 방향에 따라 다음 프레임(106)(재-투사된 프레임(106(R))의 경우에도)에서 장면을 렌더링하는 방법을 결정할 수 있다. 일부 실시예들에서, 헤드 트랙킹 모듈(630)은 현재 및/또는 과거 데이터에 기초하여 HMD(600)의 미래 위치 및/또는 방향을 예측하도록 구성된다. 이는 사용자(104)가 디스플레이(들)(616) 상의 광(및 이에 따른 이미지)을 실제로 보기 전에 어플리케이션이 프레임(106)을 렌더링하도록 요청되기 때문이다. 따라서, 다음 프레임(106)은 프레임(106)을 렌더링하기 전에 대략 25 내지 30 밀리초(ms)와 같은 초기 시점에서 만들어진 헤드 위치 및/또는 방향의 이러한 미래 예측에 기초하여 렌더링될 수 있다. 헤드 트랙킹 모듈(630)에 의해 제공되는 회전 데이터는 임의의 적절한 측정 유잇에서 HMD(600)의 HMD(600) 회전 방향 및 회전량 둘 다를 결정하는 데 사용될 수 있다. 예를 들어, 회전 방향은 좌, 우, 상, 하에 대응하는 양 또는 음의 수평 및 양 또는 음의 수직 방향으로 단순화 및 출력될 수 있다. 회전량은 각도, 라디안 등으로 할 수 있다. 각속도는 HMD(600)의 회전 속도를 결정하기 위해 계산될 수 있다.
주제가 구조적 특징들에 특정한 언어로 설명되었지만, 첨부된 청구 범위에 정의된 주제가 반드시 설명된 특정 특징들에 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 특정 특징들은 청구 범위를 구현하는 예시적인 형태들로 개시된다.
Claims (20)
- 헤드 장착형 디스플레이(HMD)에 있어서,
좌측 디스플레이 패널 및 우측 디스플레이 패널을 포함하는 한 쌍의 디스플레이 패널들;
하나 이상의 프로세서들;
상기 하나 이상의 프로세서들로, 상기 HMD의 회전 이동을 나타내는 회전 데이터를 제공하는 헤드 트랙킹 모듈; 및
로직으로서,
상기 한 쌍의 디스플레이 패널들 상에 렌더링되는 일련의 프레임들 중 한 프레임이 어플리케이션으로부터 수신된 이전에 레더링된 실제 프레임과 연관된 픽셀 데이터로부터 도출된 재-투사된 프레임으로 결정하되, 상기 프레임은 상기 좌측 디스플레이 패널의 주변부에 있는 좌측 패널 마스크 및 상기 우측 디스플레이 패널의 주변부에 있는 우측 패널 마스크와 함께 렌더링되고;
상기 헤드 트랙킹 모듈에 의해 제공된 상기 회전 데이터에 기초하여, 상기 프레임이 렌더링된 이후 상기 HMD가 일정 시간 기간에 걸쳐 회전되는 회전량을 결정하고;
상기 회전 데이터에 기초하여, 상기 HMD가 회전되는 방향을 결정하고;
각각이 상기 HMD가 회전되는 상기 방향에 대응하는 상기 좌측 패널 마스크의 일부 및 상기 우측 패널 마스크의 일부를 결정하고;
상기 HMD의 상기 회전량에 기초하여, 상기 좌측 패널 마스크의 상기 일부에 대한 제1 타겟 크기 값 및 상기 우측 패널 마스크의 상기 일부에 대한 제2 타겟 크기 값을 결정하고;
상기 제1 타겟 크기 값은 상기 좌측 패널 마스크의 상기 일부에 대한 제1 기존 크기 값과 동일하지 않다고 결정하고;
상기 제2 타겟 크기 값은 상기 우측 패널 마스크의 상기 일부에 대한 제2 기존 크기 값과 동일하지 않다고 결정하고;
상기 좌측 디스플레이 패널의 상기 주변부에 있는 상기 좌측 패널 마스크 및 상기 우측 디스플레이의 상기 주변부에 있는 상기 우측 패널 마스크와 함께 상기 한 쌍의 디스플레이 패널들 상에 상기 일련의 프레임들 중 다음 프레임을 렌더링하도록 구성된, 상기 로직을 포함하는, HMD. - 제1항에 있어서, 상기 다음 프레임은 상기 어플리케이션으로부터 수신된 실제 프레임이며, 상기 로직은,
상기 다음 프레임을 렌더링한 후, 상기 한 쌍의 디스플레이 패널들 상에 렌더링될 상기 일련의 프레임들 중 하나 이상의 추후 프레임들이 임의의 재-투사된 프레임들을 포함하지 않는다고 결정하고;
일전 시간 기간에 걸친 상기 좌측 패널 마스크의 상기 일부 및 상기 우측 패널 마스크의 상기 일부 각각에 대한 크기 값을 상기 제1 및 제2 타겟 크기 값들에서 최소 크기 값으로 감소시켜 상기 일정 시간 기간에 걸쳐 상기 좌측 패널 마스크의 상기 일부 및 상기 우측 패널 마스크의 상기 일부를 최소 크기로 감소시키도록 더 구성되는, HMD. - 제1항에 있어서, 상기 좌측 패널 마스크의 상기 일부는 상기 HMD가 회전되는 상기 방향으로 상기 좌측 디스플레이 패널의 리딩 에지에 렌더링되는 부분에 대응되고, 상기 우측 패널 마스크의 상기 일부는 상기 HMD가 회전되는 상기 방향으로 상기 우측 디스플레이 패널의 리딩 에지에 렌더링되는 부분에 대응되는, HMD.
- 방법에 있어서,
하나 이상의 프로세서들에 의해, 일련의 프레임들이 재-투사를 사용하여 헤드 장착형 디스플레이(HMD)의 디스플레이 패널 상에 렌더링된다고 결정하는 단계로서, 상기 재-투사는 상기 디스플레이 패널 상에 이미 렌더링된 어플리케이션으로부터 수신된 실제 프레임들과 연관된 픽셀 데이터로부터 재-투사된 프레임들을 생성하는, 상기 결정하는 단계;
상기 HMD의 헤드 트랙킹 모듈에 의해 제공된 회전 데이터에 적어도 부분적으로 기초하여, 패널 마스크의 적어도 일부에 대한 타겟 크기 값을 결정하는 단계;
적어도 상기 패널 마스크의 상기 일부와 연관된 크기 값이 상기 타겟 크기 값보다 작은 기존 크기 값으로 설정된다고 결정하는 단계;
적어도 상기 패널 마스크의 상기 일부의 크기를 현재 크기에서 증가된 크기로 증가시키기 위해 상기 크기 값을 상기 기존 크기 값에서 상기 타겟 크기 값으로 조정하는 단계; 및
상기 디스플레이 패널의 주변부에 렌더링되는 상기 패널 마스크와 함께 상기 디스플레이 패널 상에서 상기 일련의 프레임들 중 한 프레임을 렌더링하는 단계로서, 적어도 상기 패널 마스크의 상기 일부가 상기 타겟 크기 값에 따라 상기 증가된 크기로 렌더링되는, 상기 렌더링하는 단계를 포함하는, 방법. - 제4항에 있어서,
상기 프레임을 렌더링한 후, 상기 일련의 프레임들은 상기 재-투사된 프레임들 없이 렌더링된다고 결정하는 단계로서, 상기 재-투사의 사용이 중지되었음을 나타내는, 상기 결정하는 단계; 및
일정 시간 기간에 걸쳐 상기 크기 값을 상기 타겟 크기 값에서 상기 타겟 크기 값보다 적은 더 작은 크기 값으로 감소시켜 상기 일전 시간 기간에 걸쳐 적어도 상기 패널 마스크의 상기 일부의 상기 크기를 상기 증가된 크기에서 감소된 크기로 감소시키는 단계를 더 포함하는, 방법. - 제5항에 있어서, 상기 프레임을 렌더링한 후,
적어도 상기 패널 마스크의 상기 일부의 상기 크기를 증가시켜 미리 결정된 수의 프레임들이 연속적으로 렌더링된다고 결정하는 단계를 더 포함하며,
상기 일정 시간 기간에 걸쳐 상기 크기 값을 감소시키는 단계는 적어도 상기 패널 마스크의 상기 일부의 상기 크기를 증가시키지 않고 상기 미리 결정된 수의 프레임들이 연속적으로 렌더링된다는 결정에 적어도 일부 기초하는, 방법. - 제4항에 있어서, 상기 HMD의 상기 헤드 트랙킹 모듈에 의해 제공된 상기 회전 데이터에 적어도 부분적으로 기초하여, 적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값을 결정하는 단계는,
상기 회전 데이터에 기초하여, 상기 일련의 프레임들 중 한 렌더링된 프레임이 마지막으로 렌더링된 이후 상기 HMD의 회전량을 결정하는 단계;
상기 회전량에 기초하여, 적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값을 결정하는 단계를 포함하는, 방법. - 제7항에 있어서,
상기 렌더링된 프레임이 렌더링된 이후 상기 HMD의 상기 회전량이 임계량을 충족하거나 초과한다고 결정하는 단계를 더 포함하며,
적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값을 결정하는 단계는 적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값으로서 최대 크기 값을 선택하는 단계를 포함하는, 방법. - 제4항에 있어서,
상기 회전 데이터에 기초하여, 상기 일련의 프레임들 중 한 렌더링된 프레임이 마지막으로 렌더링된 이후 상기 HMD이 회전되는 방향을 결정하는 단계; 및
적어도 상기 패널 마스크의 상기 일부가 상기 HMD가 회전하는 상기 방향에 대응된다고 결정하는 단계를 더 포함하며,
적어도 상기 패널 마스크의 상기 일부와 연관된 상기 크기 값을 조정하는 단계는 적어도 상기 패널 마스크의 상기 일부가 상기 HMD가 회전한 상기 방향에 대응된다는 결정에 적어도 부분적으로 기초하는, 방법. - 제9항에 있어서, 적어도 상기 패널 마스크의 상기 일부는 상기 HMD가 회전한 상기 방향으로 상기 디스플레이 패널의 리딩 에지에 렌더링되는 상기 패널 마스크의 일부에 대응되는, 방법.
- 제4항에 있어서, 적어도 상기 패널 마스크의 상기 일부와 연관된 상기 크기 값은 최소 크기 값와 최대 크기 값 사이에서 조정 가능하며, 상기 최대 크기 값은 적어도 상기 패널 마스크의 상기 일부의 완전치 축소된 상태에 대응되고, 상기 최대 크기 값은 적어도 상기 패널 마스크의 상기 일부의 완전히 확장된 상태에 대응되는, 방법.
- 제4항에 있어서, 상기 디스플레이 패널 상에 렌더링된 상기 프레임은 상기 재-투사된 프레임들 중 한 재-투사된 프레임의 렌더링 이후 렌더링된 제1 실제 프레임인, 방법.
- 제4항에 있어서, 상기 디스플레이 패널은 한 상의 디스플레이 패널들 중 제1 디스플레이 패널이며, 상기 한 상의 디스플레이 패널들은 상기 제1 디스플레이 패널 및 제2 디스플레이 패널을 포함하고, 상기 방법은 상기 한 쌍의 디스플레이 패널들 중 상기 제2 디스플레이 패널에 대해,
상기 회전 데이터에 적어도 부분적으로 기초하여, 적어도 제2 패널 마스크의 일부에 대한 제2 타겟 크기 값을 결정하는 단계;
적어도 상기 패널 마스크의 상기 일부와 연관된 제2 크기 값이 상기 제2 타겟 크기 값보다 작은 제2 기존 크기 값으로 설정된다고 결정하는 단계;
적어도 상기 패널 마스크의 상기 일부의 크기를 제2 현재 크기에서 제2 증가된 크기로 증가시키기 위해 상기 제2 크기 값을 상기 제2 기존 크기 값에서 상기 제2 타겟 크기 값으로 조정하는 단계; 및
상기 제2 디스플레이 패널의 주변부에 렌더링되는 상기 제2 패널 마스크와 함께 상기 제2 디스플레이 패널 상에 상기 일련의 프레임들 중 상기 프레임을 렌더링하는 단계로서, 적어도 상기 패널 마스크의 상기 일부가 상기 제2 타겟 크기 값에 따라 상기 제2 증가된 크기로 렌더링되는, 상기 렌더링하는 단계를 더 포함하는, 방법. - 헤드 장착형 디스플레이(HMD)에 있어서,
디스플레이 패널;
하나 이상의 프로세서들; 및
로직으로서,
일련의 프레임들이 재-투사를 사용하여 상기 디스플레이 패널 상에 렌더링된다고 결정하되, 상기 재-투사는 상기 디스플레이 패널 상에 이미 렌더링된 어플리케이션으로부터 수신된 실제 프레임들과 연관된 픽셀 데이터로부터 재-투사된 프레임들을 생성하고;
상기 일련의 프레임들이 재-투사를 사용하여 렌더링되는지 여부에 적어도 부분적으로 기초하여, 패널 마스크의 적어도 일부에 대한 타겟 크기 값을 결정하고;
적어도 상기 패널 마스크의 상기 일부와 연관된 크기 값이 상기 타겟 크기 값과 같지 않는 기존 크기 값으로 설정된다고 결정하고;
적어도 상기 패널 마스크의 상기 일부의 크기를 현재 크기에서 조정된 크기로 증가시키거나 감소시키기 위해 상기 크기 값을 상기 기존 크기 값에서 상기 타겟 크기 값으로 조정하고;
상기 일련의 프레임들 중 어느 한 프레임을 상기 디스플레이 패널의 주변부에 렌더링된 상기 패널 마스크와 함께 상기 디스플레이 패널에 렌더링하되, 적어도 상기 패널 마스크의 상기 일부는 상기 타겟 크기 값에 따라 상기 조정된 크기로 렌더링되도록 구성된, 상기 로직을 포함하는, HMD. - 제14항에 있어서, 상기 일련의 프레임들이 상기 재-투사를 사용하여 상기 디스플레이 패널 상에 렌더링되는지를 결정하는 것은 상기 일련의 프레임들이 상기 재-투사를 사용하여 상기 디스플레이 패널 상에 렌더링된다고 결정하는 것을 포함하며, 상기 로직은,
상기 프레임을 렌더링한 후, 상기 일련의 프레임들은 상기 재-투사된 프레임들 없이 렌더링된다고 결정하되, 상기 재-투사의 사용이 중지되었음을 나타내고;
일정 시간 기간에 걸쳐 상기 크기 값을 상기 타겟 크기 값에서 상기 타겟 크기 값보다 적은 더 작은 크기 값으로 감소시켜 상기 일정 시간 기간에 걸쳐 적어도 상기 패널 마스크의 상기 일부의 상기 크기를 상기 조정된 크기에서 감소된 크기로 감소시키도록 더 구성되는, HMD. - 제14항에 있어서, 상기 하나 이상의 프로세서들로, 상기 HMD의 회전 이동을 나타내는 회전 데이터를 제공하는 헤드 트랙킹 모듈을 더 포함하며, 상기 타겟 크기 값을 결정하는 것은,
상기 회전 데이터에 기초하여, 상기 일련의 프레임들 중 한 렌더링된 프레임이 마지막으로 렌더링된 이후 상기 HMD의 회전량을 결정하는 것; 및
상기 회전량에 기초하여, 적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값을 결정하는 것을 포함하는, HMD. - 제16항에 있어서, 상기 로직은,
상기 회전 데이터에 기초하여, 상기 렌더링된 프레임이 마지막으로 렌더링된 이후 상기 HMD가 회전되는 방향을 결정하고;
적어도 상기 패널 마스크의 상기 일부가 상기 HMD가 회전하는 상기 방향에 대응된다고 결정하도록 더 구성되며,
적어도 상기 패널 마스크의 상기 일부와 연관된 상기 크기 값을 조정하는 것은 적어도 상기 패널 마스크의 상기 일부가 상기 HMD가 회전한 상기 방향에 대응된다는 결정에 적어도 부분적으로 기초하는, HMD. - 제14항에 있어서,
상기 크기 값이 상기 타겟 크기 값과 동일하지 않은 상기 기존 크기 값으로 결정하는 것은 상기 타겟 크기 값이 상기 기존 크기 값보다 크다고 결정하는 것을 포함하고;
상기 크기를 상기 기존 크기 값에서 상기 타겟 크기 값으로 조정하는 것은 적어도 상기 패널 마스크의 상기 일부의 상기 크기가 상기 현재 크기에서 증가된 크기로 증가하도록 하는, HMD. - 제14항에 있어서, 상기 디스플레이 패널 상에 렌더링된 상기 프레임은 상기 재-투사된 프레임들 중 한 재-투사된 프레임의 렌더링 이후 렌더링된 제1 실제 프레임인, HMD.
- 제14항에 있어서,
상기 일련의 프레임들이 상기 재-투사를 사용하여 상기 디스플레이 패널 상에 렌더링되는지를 결정하는 것은 상기 일련의 프레임들이 상기 재-투사를 사용하여 상기 디스플레이 패널 상에 렌더링되지 않는다고 결정하는 것을 포함하고,
적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값을 결정하는 것은 적어도 상기 패널 마스크의 상기 일부에 대한 상기 타겟 크기 값으로서 최대 크기 값을 선택하는 것을 포함하는, HMD.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/033,162 | 2018-07-11 | ||
US16/033,162 US10520739B1 (en) | 2018-07-11 | 2018-07-11 | Dynamic panel masking |
PCT/US2019/041432 WO2020014500A1 (en) | 2018-07-11 | 2019-07-11 | Dynamic panel masking |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210029244A true KR20210029244A (ko) | 2021-03-15 |
Family
ID=69057602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217003833A KR20210029244A (ko) | 2018-07-11 | 2019-07-11 | 동적 패널 마스킹 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10520739B1 (ko) |
EP (1) | EP3818410A4 (ko) |
JP (1) | JP2021531493A (ko) |
KR (1) | KR20210029244A (ko) |
CN (1) | CN112384843B (ko) |
WO (1) | WO2020014500A1 (ko) |
Families Citing this family (7)
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 |
CN110506419B (zh) * | 2017-02-03 | 2021-12-28 | 华纳兄弟娱乐公司 | 在虚拟现实中渲染扩展视频 |
US10520739B1 (en) * | 2018-07-11 | 2019-12-31 | Valve Corporation | Dynamic panel masking |
US10802287B2 (en) * | 2019-01-14 | 2020-10-13 | Valve Corporation | Dynamic render time targeting based on eye tracking |
US11741918B1 (en) * | 2021-02-22 | 2023-08-29 | Apple Inc. | Display with a vignetting mask |
US11514875B1 (en) * | 2021-07-07 | 2022-11-29 | Htc Corporation | Method for mitigating dizziness, electronic device, and computer readable medium |
WO2023151067A1 (en) * | 2022-02-14 | 2023-08-17 | Qualcomm Incorporated | Display mask layer generation and runtime adjustment |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310072B2 (en) | 1993-10-22 | 2007-12-18 | Kopin Corporation | Portable communication display device |
WO2002073955A1 (en) * | 2001-03-13 | 2002-09-19 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, studio apparatus, storage medium, and program |
JP2008096868A (ja) * | 2006-10-16 | 2008-04-24 | Sony Corp | 撮像表示装置、撮像表示方法 |
US7982750B2 (en) | 2008-05-01 | 2011-07-19 | Yiling Xie | Test-wearing image producing method for personal products |
US8957835B2 (en) | 2008-09-30 | 2015-02-17 | Apple Inc. | Head-mounted display apparatus for retaining a portable electronic device with display |
US8964298B2 (en) * | 2010-02-28 | 2015-02-24 | Microsoft Corporation | Video display modification based on sensor input for a see-through near-to-eye display |
US20130278631A1 (en) * | 2010-02-28 | 2013-10-24 | Osterhout Group, Inc. | 3d positioning of augmented reality information |
US8941559B2 (en) | 2010-09-21 | 2015-01-27 | Microsoft Corporation | Opacity filter for display device |
US10585472B2 (en) * | 2011-08-12 | 2020-03-10 | Sony Interactive Entertainment Inc. | Wireless head mounted display with differential rendering and sound localization |
JP5953963B2 (ja) * | 2012-06-13 | 2016-07-20 | ソニー株式会社 | 頭部装着型映像表示装置 |
US9996150B2 (en) * | 2012-12-19 | 2018-06-12 | Qualcomm Incorporated | Enabling augmented reality using eye gaze tracking |
GB201305402D0 (en) * | 2013-03-25 | 2013-05-08 | Sony Comp Entertainment Europe | Head mountable display |
US9443355B2 (en) * | 2013-06-28 | 2016-09-13 | Microsoft Technology Licensing, Llc | Reprojection OLED display for augmented reality experiences |
KR102332326B1 (ko) * | 2014-01-23 | 2021-11-30 | 소니그룹주식회사 | 화상 표시 장치 및 화상 표시 방법 |
GB2523740B (en) * | 2014-02-26 | 2020-10-14 | Sony Interactive Entertainment Inc | Image encoding and display |
GB2523555B (en) * | 2014-02-26 | 2020-03-25 | Sony Interactive Entertainment Europe Ltd | Image encoding and display |
US9995933B2 (en) * | 2014-06-24 | 2018-06-12 | Microsoft Technology Licensing, Llc | Display devices with transmittance compensation mask |
US20170186236A1 (en) * | 2014-07-22 | 2017-06-29 | Sony Corporation | Image display device, image display method, and computer program |
US10269184B2 (en) * | 2014-07-23 | 2019-04-23 | Sony Corporation | Information processing apparatus, information processing method, and image display system |
GB2528699B (en) * | 2014-07-29 | 2017-05-03 | Sony Computer Entertainment Europe Ltd | Image processing |
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 |
JP6505556B2 (ja) * | 2015-09-07 | 2019-04-24 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および画像生成方法 |
JP6511386B2 (ja) * | 2015-11-20 | 2019-05-15 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置および画像生成方法 |
US9961297B2 (en) * | 2015-12-26 | 2018-05-01 | Intel Corporation | Method and system of rotation of video frames for displaying a video |
US10089725B2 (en) | 2016-02-09 | 2018-10-02 | Google Llc | Electronic display stabilization at a graphics processing unit |
US10297077B1 (en) * | 2016-03-02 | 2019-05-21 | Valve Corporation | Hidden area stencil mesh rendering systems and methods |
US10068553B2 (en) * | 2016-09-12 | 2018-09-04 | Intel Corporation | Enhanced rendering by a wearable display attached to a tethered computer |
US10212428B2 (en) * | 2017-01-11 | 2019-02-19 | Microsoft Technology Licensing, Llc | Reprojecting holographic video to enhance streaming bandwidth/quality |
US10628994B2 (en) * | 2017-03-07 | 2020-04-21 | Google Llc | Reducing visually induced motion sickness in head mounted display systems |
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 |
US10831028B2 (en) * | 2017-06-14 | 2020-11-10 | Sony Interactive Entertainment Inc. | Tracking using retroreflectors mounted on a head-mounted display |
US10520739B1 (en) * | 2018-07-11 | 2019-12-31 | Valve Corporation | Dynamic panel masking |
US10600236B2 (en) * | 2018-08-06 | 2020-03-24 | Valve Corporation | Prediction and throttling adjustments based on application rendering performance |
US10692420B2 (en) * | 2018-09-13 | 2020-06-23 | Arm Limited | Data processing systems |
US10733783B2 (en) * | 2018-10-09 | 2020-08-04 | Valve Corporation | Motion smoothing for re-projected frames |
US10802287B2 (en) * | 2019-01-14 | 2020-10-13 | Valve Corporation | Dynamic render time targeting based on eye tracking |
-
2018
- 2018-07-11 US US16/033,162 patent/US10520739B1/en active Active
-
2019
- 2019-07-11 EP EP19833668.7A patent/EP3818410A4/en active Pending
- 2019-07-11 KR KR1020217003833A patent/KR20210029244A/ko not_active Application Discontinuation
- 2019-07-11 CN CN201980045960.0A patent/CN112384843B/zh active Active
- 2019-07-11 JP JP2021500445A patent/JP2021531493A/ja active Pending
- 2019-07-11 WO PCT/US2019/041432 patent/WO2020014500A1/en unknown
- 2019-12-12 US US16/712,370 patent/US10948730B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3818410A1 (en) | 2021-05-12 |
CN112384843B (zh) | 2023-06-06 |
EP3818410A4 (en) | 2022-04-06 |
CN112384843A (zh) | 2021-02-19 |
US10948730B2 (en) | 2021-03-16 |
US20200018978A1 (en) | 2020-01-16 |
US20200117015A1 (en) | 2020-04-16 |
WO2020014500A1 (en) | 2020-01-16 |
JP2021531493A (ja) | 2021-11-18 |
US10520739B1 (en) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113170136B (zh) | 重投影帧的运动平滑 | |
CN112384843B (zh) | 动态面板掩膜 | |
CN106502427B (zh) | 虚拟现实***及其场景呈现方法 | |
CN112639577B (zh) | 基于应用程序渲染性能的预测和限流调整 | |
CN113272715B (zh) | 基于眼睛跟踪的动态渲染时间确定 | |
US11343486B2 (en) | Counterrotation of display panels and/or virtual cameras in a HMD | |
US11720996B2 (en) | Camera-based transparent display | |
US11308685B2 (en) | Rendering computer-generated reality text | |
US11170578B1 (en) | Occlusion detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |