[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20220013396A - 컴퓨터 생성 현실 텍스트의 렌더링 - Google Patents

컴퓨터 생성 현실 텍스트의 렌더링 Download PDF

Info

Publication number
KR20220013396A
KR20220013396A KR1020217042086A KR20217042086A KR20220013396A KR 20220013396 A KR20220013396 A KR 20220013396A KR 1020217042086 A KR1020217042086 A KR 1020217042086A KR 20217042086 A KR20217042086 A KR 20217042086A KR 20220013396 A KR20220013396 A KR 20220013396A
Authority
KR
South Korea
Prior art keywords
rendering
text
zone
image
viewpoint
Prior art date
Application number
KR1020217042086A
Other languages
English (en)
Other versions
KR102705789B1 (ko
Inventor
시다르스 에스. 하즈라
윌리엄 제이. 도비
모이눌 에이치. 칸
얀리 장
요한 라잔
아서 와이. 장
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20220013396A publication Critical patent/KR20220013396A/ko
Application granted granted Critical
Publication of KR102705789B1 publication Critical patent/KR102705789B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/18Eye characteristics, e.g. of the iris
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display 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
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical 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
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/004Annotating, labelling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 명세서에 개시된 다양한 구현예들은 텍스트를 포함하는 콘텐츠의 포비티드 렌더링에 사용되는 구역들을 동적으로-크기설정하는 디바이스들, 시스템들, 및 방법들을 포함한다. 일부 구현예들에서, 이는, 시점으로부터의 텍스트의 겉보기 크기에 기초하여 제1 구역, 예컨대 포비티드 시선 구역(FGZ)의 크기를 조정하는 것을 수반한다. 예를 들어, FGZ는 시점으로부터 텍스트의 하나 이상의 개개의 글리프들에 의해 정해지는 각도를 결정하는 것에 기초하여 폭, 높이, 직경, 또는 다른 크기 속성이 증가 또는 감소될 수 있다. 본 명세서에 개시된 다양한 구현예들은 (a) 글리프의 부분에 대응하는 이미지의 일부분의 렌더링 해상도와 (b) 글리프의 부분이 이미지에서 점유할 크기 사이의 관계에 기초하여 텍스트 렌더링 알고리즘을 선택하는 디바이스들, 시스템들, 및 방법들을 포함한다.

Description

컴퓨터 생성 현실 텍스트의 렌더링
관련 출원에 대한 상호 참조
본 출원은 2019년 9월 23일자로 출원된 미국 가출원 제62/904,073호의 이익을 주장하며, 이는 그 전체가 본 명세서에 포함된다.
기술분야
본 개시내용은 일반적으로 디스플레이를 위해 전자 콘텐츠를 렌더링하는 것에 관한 것이며, 특히, 텍스트를 포함하는 콘텐츠를 렌더링하기 위한 시스템들, 방법들, 및 디바이스들에 관한 것이다.
기존의 렌더링 기법들은 텍스트를 포함하는 콘텐츠를 정확하고 효율적으로 렌더링하지 않을 수 있고, 기존의 포비티드 렌더링(foveated rendering) 기법들을 사용하여 텍스트를 포함하는 콘텐츠를 렌더링할 시 현저한 문제들을 포함할 수 있다.
본 명세서에 개시된 다양한 구현예들은 텍스트를 포함하는 콘텐츠의 포비티드 렌더링에 사용되는 구역들을 동적으로-크기설정하는 디바이스들, 시스템들, 및 방법들을 포함한다. 본 명세서에 사용되는 바와 같이, 문구 "텍스트"는 쓰기 체계, 알파벳, 코드(예컨대, 모스 부호), 스크립트, 또는 기호(symbol)(예컨대, 방사선 장해 기호) 등에 대응하는 임의의 시각적 요소들을 지칭한다. 일부 구현예들에서, 구역들을 동적으로 크기설정하는 것은, 시점으로부터의 텍스트의 겉보기 크기에 기초하여 제1 구역, 예컨대 포비티드 시선 구역(foveated gaze zone, FGZ)의 크기를 조정하는 것을 수반한다. 예를 들어, FGZ는 시점으로부터 텍스트의 하나 이상의 개개의 글리프(glyph)들에 의해 정해지는(subtended) 각도를 결정하는 것에 기초하여 폭, 높이, 직경, 또는 다른 크기 속성이 증가 또는 감소될 수 있다.
일부 구현예들은 프로세서를 갖는 디바이스를 통해 포비티드 렌더링에 사용되는 구역들을 동적으로 크기설정하는 방법을 수반한다. 예를 들어, 프로세서는 방법을 수행하기 위해 비일시적 컴퓨터 판독가능 매체에 저장된 명령어들을 실행할 수 있다. 방법은 텍스트를 포함하는 컴퓨터 생성 현실(computer-generated reality, CGR) 환경의 시점을 결정한다. 일부 구현예들에서, 시점은 헤드 장착형 디바이스(HMD) 또는 CGR 환경의 뷰를 제시할 다른 디바이스의 포즈(pose)(예컨대, 위치 및 배향)를 추적하는 것에 기초하여 결정된다. 방법은 CGR 환경에서의 시점으로부터 텍스트를 보는 것과 연관된 측정치를 결정한다. 예를 들어, 방법은 하나 이상의 개개의 글리프들에 의해 정해지는 각도를 결정할 수 있다. 그러한 각도는 시점으로부터의 텍스트의 거리 및 텍스트 크기에 의존하고, 따라서 시점으로부터의 텍스트의 겉보기 크기의 측정치를 제공한다.
시점으로부터 텍스트를 보는 것과 연관된 측정치에 기초하여, 방법은 측정치에 기초하여 제1 구역의 크기(예컨대, 직경, 폭, 높이 등)를 결정한다. 예를 들어, 사용자의 현재 시선 방향에 중심을 둔 FGZ의 폭은 미리결정된 수의 글리프들의 크기에 기초할 수 있는데, 예를 들어, FGZ 폭은 텍스트 내의 글리프들의 결정된 또는 평균 크기를 고려할 때 미리결정된 수의 글리프들(예컨대, 28개의 글리프)의 폭에 대응할 수 있다. 따라서, 상이한 글리프 크기들(예컨대, 이미지 평면 내의 상이한 크기들에 대응함)에 대해, FGZ는 미리결정된 수의 글리프들의 폭에 대응하는 상이한 크기들을 제공받을 것이다.
방법은 제1 렌더링 기법에 따라 제1 구역(예컨대, 포비티드 시선 구역/FGZ) 내의 콘텐츠를 렌더링하고 제2 렌더링 기법에 따라 제2 구역(예컨대, 중심와주변 구역(parafoveal zone)) 내의 콘텐츠를 렌더링함으로써 시점으로부터의 CGR 환경의 뷰를 제공하는 이미지를 렌더링한다. 제1 구역은 제2 구역과 구별되고 제1 렌더링 기법은 제2 렌더링 기법과 상이하다. FGZ의 크기는 텍스트를 보는 것과 연관된 측정치에(예컨대, 시점으로부터의 하나 이상의 개개의 글리프들에 의해 정해지는 각도에 따라) 의존하기 때문에, FGZ의 크기는 가변적이며, 특정 상황들에 따라 조정될 수 있다(예컨대, 현재 텍스트 크기 및 현재 시점을 고려할 때). 더욱이, 상이한 렌더링 기법들을 사용하여 상이한 구역들에서 렌더링하는 것은 포비티드 렌더링을 가능하게 한다. 구역들의 크기는 상황들(예컨대, 텍스트 크기 또는 시점)이 변화함에 따라 시간이 지남에 따라 조정될 수 있기 때문에, 포비티드 렌더링은 동적이다.
본 명세서에 개시된 다양한 구현예들은 (a) 글리프의 부분에 대응하는 이미지의 일부분의 렌더링 해상도와 (b) 글리프의 부분이 이미지에서 점유할 크기 사이의 관계에 기초하여 텍스트 렌더링 알고리즘을 선택하는 디바이스들, 시스템들, 및 방법들을 포함한다. 따라서, FGZ 내의 "e"는 고가의 알고리즘을 사용하여 렌더링될 수 있는 반면, 중심와주변 구역 내의 동일한 크기의 동일한 "e"는 저렴한 알고리즘을 사용하여 렌더링될 수 있다.
일부 구현예들은 프로세서를 갖는 디바이스를 통해 텍스트 렌더링 알고리즘을 선택하는 방법을 수반한다. 예를 들어, 프로세서는 방법을 수행하기 위해 비일시적 컴퓨터 판독가능 매체에 저장된 명령어들을 실행할 수 있다. 방법은 텍스트를 포함하는 CGR 환경의 시점을 결정하고, 시점으로부터의 CGR 환경의 뷰를 제공할 이미지의 일부분에 대한 렌더링 해상도를 결정한다. 일부 구현예들에서, 이미지의 상이한 구역들은 상이한 렌더링 해상도들을 갖는다. 일부 구현예들에서, 이미지의 일부분은 이미지의 전부이고, 따라서 이미지는 단일 구역 및 렌더링 해상도를 갖는다.
방법은 글리프의 부분이 이미지의 일부분에서 점유할 영역 및 이미지의 일부분에 대한 렌더링 해상도에 기초하여 글리프의 부분에 대한 렌더링 기법을 결정한다. 예를 들어, 이것은 (a) 글리프의 부분이 점유할 이미지의 영역을 결정하는 것, (b) 렌더링 해상도에 따라 영역의 렌더링 픽셀들의 수를 결정하는 것, 및 (c) 렌더링 픽셀들의 수(예컨대, 글리프당 픽셀 또는 글리프의 부분당 픽셀)에 기초하여 렌더링 기법을 선택하는 것을 수반할 수 있다. 예를 들어, 제1 상황에서, 글리프의 부분은 10 픽셀 × 10 픽셀(예컨대, 100개의 픽셀)의 영역을 점유할 것이며, 여기서 렌더링 해상도는 실제 디스플레이 해상도이다. 따라서, 방법은 글리프 부분에 대해 100개의 렌더링 픽셀이 있다고 결정하고 그에 따라 제1 렌더링 기법을 선택할 수 있다. 대조적으로, 제2 상황에서, 글리프의 부분은 10 픽셀 × 10 픽셀(예컨대, 100개의 픽셀)의 동일한 영역을 점유할 것이며, 여기서 렌더링 해상도는 실제 디스플레이 해상도의 ½일 수 있다. 따라서, 방법은 5 렌더링 픽셀 × 5 렌더링 픽셀(예컨대, 25개의 렌더링 픽셀)이 있다고 결정하고 그에 따라 제2 렌더링 기법을 선택할 수 있다. 제1 렌더링 기법은 더 높은 품질의 외관을 제공할 수 있지만, 제2 렌더링 기법보다 계산 요건들, 실행 시간, 또는 전력 소비의 관점에서 더 고가일 수 있다.
방법은 시점으로부터의 CGR 환경의 뷰를 제공하는 이미지를 렌더링한다. 글리프의 부분은 선택된 렌더링 기법에 따라 렌더링된다. 더욱이, 동일한 글리프의 상이한 부분들 및 다른 글리프들의 부분들이, 각각의 부분의 상황들에 기초하여 선택된 렌더링 기법들에 따라 유사하게 렌더링될 수 있다. 이러한 방식으로, 이미지는, 상황들(예컨대, 글리프 크기, 글리프 속성들, 렌더링 해상도 등)에 의존하는 상이한 글리프들 또는 글리프 부분들에 대해 상이한 텍스트 렌더링 기법들을 선택적으로 사용함으로써 렌더링될 수 있다.
일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 설명된 방법들 중 임의의 방법을 수행하게 하거나 그의 수행을 야기하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 설명된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 수단을 포함한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경의 블록도이다.
도 2는 일부 구현예들에 따른 예시적인 제어기의 블록도이다.
도 3은 일부 구현예들에 따른 예시적인 디바이스의 블록도이다.
도 4는 일부 구현예들에 따른 예시적인 헤드 장착형 디바이스(head-mounted device, HMD)의 블록도이다.
도 5는 텍스트를 포함하는 콘텐츠의 포비티드 렌더링에 사용되는 구역들을 동적으로-크기설정하는 예시적인 방법의 흐름도 표현이다.
도 6은 CGR 환경의 이미지를 생성하는 데 사용되는 시점을 예시하는 블록도이다.
도 7은 도 6의 이미지 평면에 대응하는 이미지의 구역들을 예시하는 블록도이다.
도 8은 텍스트를 포함하는 CGR 환경의 이미지를 생성하는 데 사용되는 시점을 예시하는 블록도이다.
도 9는 소정 구현예들에 따른 도 8의 이미지 평면에 대응하는 이미지의 구역들을 예시하는 블록도이다.
도 10은 소정 구현예들에 따른 텍스트 보기 상황들에 기초하여 크기설정된 구역들을 예시하는 블록도이다.
도 11은 소정 구현예들에 따른 텍스트 보기 상황들에 기초하여 크기설정된 구역들을 예시하는 블록도이다.
도 12는 소정 구현예들에 따른 텍스트 보기 상황들에 기초하여 크기설정된 구역들을 예시하는 블록도이다.
도 13은 텍스트-렌더링 알고리즘을 선택하는 예시적인 방법의 흐름도 표현이다.
도 14는 글리프당 픽셀 결정을 예시하는 블록도이다.
일반적인 실시에 따라, 도면에 예시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수들은 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 당업자들은 다른 효과적인 양태들 및/또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 또한, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 철저히 상세하게 설명되지 않았다.
렌더링은 2D 또는 3D 환경의 모델 또는 설명으로부터의 전자 디바이스 상에서의 디스플레이를 위한 이미지의 생성을 지칭한다. 디스플레이의 픽셀들 각각에 대한 색상 값은 2D 또는 3D 환경을 조사함으로써 결정된다. 이는, 예를 들어, 이미지 평면의 픽셀들을 통해 시점(예컨대, 가상 카메라 위치)으로부터 투영되어 환경 내의 물체들에 충돌하는 광선들을 사용함으로써 달성될 수 있다. 광선들은 디스플레이의 픽셀들에 대한 객체들에 관한 정보(예컨대, 색상)를 획득한다. 그러한 프로세스들은 가상 카메라의 이미지 평면 내의 픽셀들을 "샘플링"하는 것으로서 지칭될 수 있다. 더 높은 샘플링 레이트는 더 높은 품질의 외관을 제공할 수 있지만, 증가된 작업 부하(예컨대, 프로세싱 시간, 송신 요건들, 및 전력 요건들)를 필요로 할 수 있다.
포비티드 렌더링은 사용자의 시선 구역 밖에 있는 시각 영역들에서 이미지 품질(예를 들어, 샘플링 레이트)을 감소시킴으로써 렌더링 작업 부하를 감소시키기 위해 눈 추적을 사용한다. 인간의 시각은 수평으로 160도에 걸쳐 그리고 수직으로 135도에 걸쳐 커버할 수 있지만, 그것은 현재 시선 방향 주위로 약 5도 내에서만 세부사항들을 인지할 수 있다. 시력은 중심 시선 방향으로부터 떨어진 각도 거리에 따라 급속하게 떨어진다. 기존의 포비티드 렌더링 기법들은 상이한 이미지 품질들(예컨대, 샘플링 레이트들)을 사용하여 시선 방향을 중심을 둔 네스팅된(nested) 구역들로 렌더링한다. 예를 들어, 중심 구역(예컨대, "포비티드 시선 구역" 또는 "FGZ"로 지칭될 수 있음)은 디스플레이의 최대 샘플링 레이트(예컨대, 각각의 픽셀마다 N개의 광선)를 사용하여 렌더링될 수 있다. 대조적으로, 다음 바깥 구역(예를 들어, 중심와주변 구역)은 각각의 차원에서 디스플레이의 해상도의 절반에서 샘플링될 수 있고, 다음 바깥 구역(예컨대, 주변 또는 배경 구역)은 각각의 차원에서 디스플레이의 해상도의 1/5를 가질 수 있다. 구역들은 전형적으로 주어진 시간 기간 내에서 예상되는 눈의 가정된 또는 계산된 최대 움직임에 기초하여 일정한 크기이도록 미리결정된다.
고정된-크기의 FGZ들의 현재 사용의 기저가 되는 가정들은, 디스플레이된 콘텐츠가 표기법 시스템을 압축하는 알파벳들을 표현하는 텍스트 또는 유사한 기호들을 포함할 때 부정확할 수 있다. 텍스트를 읽는 동안 나타나는 안구 운동 동역학은 그래픽 또는 그림 장면들 및 이미지들을 보는 동안과는 실질적으로 상이한 것으로 알려져 있다. 텍스트를 읽는 동안의 그러한 동역학은 매끄럽지 않을 수 있다. 시선은 초당 100도 초과의 문자들, 단어들 또는 문구들 만큼의 점프들을 포함하는 단속성 운동(saccade)(예컨대, 눈의 움직임)을 포함할 수 있다. 단속성 운동 길이 및 눈 멈춤(예컨대, 눈이 움직이지 않는 지점들)의 지속기간들은 사용자의 중심와주변 시각으로부터 얻은 미리보기 이득에 의해 영향을 받을 수 있다. 일부 증거는 읽는 동안의 단속성 운동 길이들이 텍스트 크기로부터의 영향이 거의 또는 전혀 없이 문자들과 대략적으로 상관될 수 있다는 것을 시사할 수 있는데, 예를 들어, 50%의 단속성 운동은 텍스트 크기에 관계없이 현재 시선 방향의 8개 문자들 내에 있을 수 있고, 95%의 단속성 운동은 텍스트 크기에 관계없이 현재 시선 위치의 14개 문자들 내에 있을 수 있고, 기타 등등일 수 있다. 큰 텍스트의 경우, 일정한 크기의 FGZ는 잠재적인 사용자 단속성 운동을 고려하기 위해 사용자의 시선 방향 주위로 충분한 문자들을 제공하지 않을 수 있다. 다시 말하면, 일부 경우들에서, 텍스트를 읽는 것에 대한 FGZ는 현저한 해상도 문제들을 피하기 위해 그래픽에 대해서보다 더 커야 하는 것으로 보인다.
본 명세서에 개시된 구현예들은 기존의 포비티드 렌더링 기법들이 현저한 문제들을 제공할 수 있거나, 그렇지 않으면 텍스트를 포함하는 환경들의 포비티드 렌더링을 정확하고 효율적으로 제공하지 못할 수 있음을 인식한다. 본 명세서에 개시된 구현예들은 이들 문제들 및 다른 문제들을 해결하기 위해 동적 포비에이션(dynamic foveation) 기법들을 제공한다. 따라서, 본 명세서에 개시된 다양한 구현예들은 텍스트를 포함하는 콘텐츠의 포비티드 렌더링에 사용되는 구역들을 동적으로-크기설정한다. 일부 구현예들에서, 이는, 시점으로부터의 텍스트의 겉보기 크기에 기초하여 제1 구역, 예컨대 포비티드 시선 구역(FGZ)의 크기를 조정하는 것을 수반한다. 예를 들어, FGZ는 시점으로부터 텍스트의 하나 이상의 개개의 글리프들에 의해 정해지는 각도를 결정하는 것에 기초하여 폭, 높이, 직경, 또는 다른 크기 속성이 증가 또는 감소될 수 있다. 일부 구현예들에서, 포비티드 렌더링에 사용되는 구역들은 텍스트 폰트 크기, 텍스트의 가상 거리, 사용자의 눈 움직임(예컨대, 읽기 방향), 폰트 복잡도, 또는 심지어 언어(예컨대, 영어, 히브리어, 아랍어 등)에 기초하여 크기설정된다. 일부 구현예들에서, 포비티드 렌더링에 사용되는 구역들은 다른 콘텐츠에 대해서보다 텍스트에 대해 상이하다. 예를 들어, 텍스트 중심와(foveal) 구역은 주어진 컴퓨터 생성 현실(CGR) 환경의 이미지들에 사용되는 그래픽 중심와 구역보다 클 수 있다.
본 명세서에 개시된 다양한 구현예들은 추가적으로 또는 대안적으로, 각자의 영역이 특정 중심와 구역 내에 있는지(예컨대, 중심와 구역 내부에 또는 중심와 구역 외부에) 여부에 기초하여 이미지의 상이한 영역들에 대해 상이한 텍스트 렌더링 알고리즘들을 사용한다. 일부 구현예들에서, 알고리즘 충실도 제어 방법은 SDF 캐싱, 캐시 생성 및 2D 폰트들을 위한 벡터 텍스트, 주변부 상의 2D 폰트들을 사용하는 것을 수반한다.
일부 구현예들은 CGR 환경들에서의 텍스트 렌더링에 사용하기 위한 텍스트 렌더링 알고리즘을 선택하기 위해 기준들을 적용한다. 이들 구현예들은 (a) 글리프의 부분에 대응하는 이미지의 일부분의 렌더링 해상도와 (b) 글리프의 부분이 이미지에서 점유할 크기 사이의 관계에 기초하여 텍스트 내의 글리프 또는 글리프의 부분에 대해 사용할 텍스트 렌더링 알고리즘을 선택할 수 있다. 따라서, FGZ 내의 "e"는 고가의 알고리즘을 사용하여 렌더링될 수 있는 반면, 중심와주변 구역 내의 동일한 크기의 동일한 "e"는 저렴한 알고리즘을 사용하여 렌더링될 수 있다.
일부 구현예들에서, 사용자가 CGR 환경을 경험하고 있는 동안, 사용자가 세계-고정 텍스트 필드로부터 더 가까이 그리고 더 멀리 이동함에 따라, 개개의 글리프들에 의해 정해진 각도는 각각 증가하거나 감소한다. 글리프들에 의해 커버되는 물리적 디스플레이 픽셀들의 수가 또한 증가/감소한다는 것이 함축될 수 있다. 글리프당 더 적은 픽셀들을 갖는 작은 각도의 경우, 계산적으로 더 저렴한 텍스트 렌더링 알고리즘들을 사용하는 것이 바람직할 수 있는 반면에, 글리프당 더 많은 픽셀들을 갖는 큰 각도의 경우, 더 우수하지만 더 계산적으로 고가인 알고리즘이 사용되어야 한다. 일부 구현예들에서, 그러한 알고리즘 전환을 최적화하는 임계값이 결정되고 사용된다. 일부 구현예들에서, 그러한 임계치들은 글리프-당-픽셀 등가 메트릭을 사용하여 정의된다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경(100)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자는 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 적절한 양태들을 불명료하게 하지 않도록 하기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비제한적인 예로서, 동작 환경(100)은 제어기(110) 및 디바이스(120)를 포함한다.
일부 구현예들에서, 제어기(110)는 사용자에 대한 경험을 관리 및 조정하도록 구성된다. 일부 구현예들에서, 제어기(110)는 소프트웨어, 펌웨어, 및/또는 하드웨어의 적합한 조합을 포함한다. 제어기(110)는 도 2와 관련하여 아래에서 더욱 상세히 설명된다. 일부 구현예들에서, 제어기(110)는 물리적 환경(105)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 일 예에서, 제어기(110)는 물리적 환경(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 물리적 환경(105)의 외부에 위치된 원격 서버(예컨대, 클라우드 서버, 중앙 서버 등)이다. 일부 구현예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예컨대, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 디바이스(120)와 통신가능하게 결합된다.
일부 구현예들에서, 디바이스(120)는 환경을 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 디바이스(120)는 소프트웨어, 펌웨어, 또는 하드웨어의 적합한 조합을 포함한다. 디바이스(120)는 도 3과 관련하여 아래에서 더욱 상세히 설명된다. 일부 구현예들에서, 제어기(110)의 기능들은 디바이스(120)에 의해 제공되고/되거나 이와 조합된다.
일부 구현예들에 따라, 사용자가 물리적 환경(105) 내에 있는 동안 디바이스(120)는 컴퓨터 생성 현실(CGR) 환경을 사용자에게 제시한다. CGR 환경은 사람들이 전자 시스템을 통해 감지하고/하거나 상호작용하는 전체적으로 또는 부분적으로 시뮬레이션된 환경을 지칭한다. CGR에서, 사람의 신체적 움직임들, 또는 이들의 표현들의 서브세트가 추적되고, 이에 응답하여, CGR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 예를 들어, CGR 시스템은 사람이 고개를 돌리는 것을 검출할 수 있고, 이에 응답하여, 그 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 물리적 환경에서 그러한 뷰들 및 소리들이 변화하는 방식과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 접근성 이유들 때문에), CGR 환경에서의 가상 객체(들)의 특성(들)에 대한 조정들은 신체적 움직임들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 이루어질 수 있다.
사람은, 시각, 청각, 촉각, 미각, 및 후각을 포함하는 그들의 감각들 중 임의의 하나를 사용하여 CGR 객체를 감지하고/하거나 그와 상호작용할 수 있다. 예를 들어, 사람은 3D 공간에서의 포인트 오디오 소스들의 지각을 제공하는 3D 또는 공간적 오디오 환경을 생성하는 오디오 객체들을 감지하고/하거나 그와 상호작용할 수 있다. 다른 예에서, 오디오 객체들은 오디오 투명성을 가능하게 할 수 있으며, 이는 선택적으로, 물리적 환경으로부터의 주변 소리들을 컴퓨터 생성 오디오와 함께 또는 그것 없이 통합한다. 일부 CGR 환경들에서, 사람은 오디오 객체들만을 감지하고/하거나 그와 상호작용할 수 있다.
CGR의 예들은 가상 현실 및 혼합 현실을 포함한다. 가상 현실(VR) 환경은 하나 이상의 감각들에 대한 컴퓨터 생성 감각 입력들에 전적으로 기초하도록 설계된 시뮬레이션된 환경을 지칭한다. VR 환경은 사람이 감지하고/하거나 상호작용할 수 있는 가상 객체들을 포함한다. 예를 들어, 나무들, 빌딩들, 및 사람들을 표현하는 아바타들의 컴퓨터 생성 형상화가 가상 객체들의 예들이다. 사람은, 컴퓨터 생성 환경에서의 사람의 존재의 시뮬레이션을 통해 그리고/또는 컴퓨터 생성 환경에서의 사람의 신체적 움직임들의 서브세트의 시뮬레이션을 통해 VR 환경에서 가상 객체들을 감지하고/하거나 그와 상호작용할 수 있다.
컴퓨터 생성 감각 입력들에 전적으로 기초하도록 설계되는 VR 환경과는 대조적으로, 혼합 현실(MR) 환경은 컴퓨터 생성 감각 입력들(예를 들어, 가상 객체들)을 포함하는 것에 부가하여, 물리적 환경으로부터의 감각 입력들, 또는 그들의 표현을 통합하도록 설계된 시뮬레이션된 환경을 지칭한다. 가상 연속체(virtuality continuum)에서, 혼합 현실 환경은 한쪽의 완전히 물리적인 환경과 다른 쪽의 가상 현실 환경 사이의 임의의 곳에 있지만, 포함하지는 않는다.
일부 MR 환경들에서, 컴퓨터 생성 감각 입력들은 물리적 환경으로부터의 감각 입력들의 변경들에 응답할 수 있다. 또한, MR 환경을 제시하기 위한 일부 전자 시스템들은 물리적 환경에 대한 위치 및/또는 배향을 추적하여 가상 객체들이 실제 객체들(즉, 물리적 환경으로부터의 물리적 물품들 또는 물리적 물품들의 표현들)과 상호작용할 수 있게 할 수 있다. 예를 들어, 시스템은 움직임들을 고려하여 가상 나무가 물리적 땅에 대하여 고정되어 있는 것처럼 보이도록 할 수 있다.
혼합 현실들의 예들은 증강 현실 및 증강 가상을 포함한다. 증강 현실(AR) 환경은 하나 이상의 가상 객체들이 물리적 환경, 또는 그의 표현 위에 중첩되어 있는 시뮬레이션된 환경을 지칭한다. 예를 들어, AR 환경을 제시하기 위한 전자 시스템은 사람이 직접 물리적 환경을 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하도록, 투명 또는 반투명 디스플레이 상에 가상 객체들을 제시하도록 구성될 수 있다. 대안적으로, 시스템은 불투명 디스플레이, 및 물리적 환경의 표현들인 물리적 환경의 이미지들 또는 비디오를 캡처하는 하나 이상의 이미징 센서들을 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 합성하고, 합성물을 불투명 디스플레이 상에 제시한다. 사람은 시스템을 사용하여 물리적 환경의 이미지들 또는 비디오에 의해 물리적 환경을 간접적으로 보고, 물리적 환경 위에 중첩된 가상 객체들을 인지한다. 본 명세서에 사용되는 바와 같이, 불투명 디스플레이 상에 보여지는 물리적 환경의 비디오는 "패스 스루(pass-through) 비디오"로 불리는데, 이는 시스템이 하나 이상의 이미지 센서(들)를 사용하여 물리적 환경의 이미지들을 캡처하고, AR 환경을 불투명 디스플레이 상에 제시할 시에 이들 이미지들을 사용하는 것을 의미한다. 추가로 대안적으로, 시스템은, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하도록, 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하는 투영 시스템을 가질 수 있다.
증강 현실 환경은 또한 물리적 환경의 표현이 컴퓨터 생성 감각 정보에 의해 변환되는 시뮬레이션된 환경을 지칭한다. 예를 들어, 패스 스루 비디오를 제공할 시에, 시스템은 하나 이상의 센서 이미지들을 변환하여 이미징 센서들에 의해 캡처된 관점과 상이한 선택 관점(예를 들어, 시점)을 부과할 수 있다. 다른 예를 들어, 물리적 환경의 표현은 그것의 일부들을 그래픽적으로 수정(예를 들어, 확대)함으로써 변환될 수 있어서, 수정된 부분은 원래 캡처된 이미지들의 표현일 수 있지만, 실사 버전은 아닐 수 있다. 추가적인 예로서, 물리적 환경의 표현은 그의 일부들을 그래픽적으로 제거하거나 또는 흐리게 함으로써 변환될 수 있다.
증강 가상(AV) 환경은 가상 또는 컴퓨터 생성 환경이 물리적 환경으로부터의 하나 이상의 감각 입력들을 통합하는 시뮬레이션된 환경을 지칭한다. 감각 입력들은 물리적 환경의 하나 이상의 특성들의 표현들일 수 있다. 예를 들어, AV 공원은 가상 나무들 및 가상 빌딩들을 가질 수 있지만, 사람들의 안면들은 물리적 사람들을 촬영한 이미지들로부터 실사처럼 재현될 수 있다. 다른 예로서, 가상 객체는 하나 이상의 이미징 센서들에 의해 이미징되는 물리적 물품의 형상 또는 색상을 채용할 수 있다. 추가적인 예로서, 가상 객체는 물리적 환경에서 태양의 위치에 부합하는 그림자들을 채용할 수 있다.
사람이 다양한 CGR 환경들을 감지하고/하거나 그와 상호작용할 수 있게 하는 많은 상이한 유형들의 전자 시스템들이 존재한다. 예들은 헤드 장착형 시스템들, 투영 기반 시스템들, 헤드업(head-up) 디스플레이(HUD)들, 디스플레이 능력이 통합된 차량 앞유리들, 디스플레이 능력이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이들(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 헤드 장착형 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 헤드 장착형 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 헤드 장착형 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 통합할 수 있다. 헤드 장착형 시스템은 불투명 디스플레이보다는, 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, uLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일 구현예에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명해지도록 구성될 수 있다. 투영-기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투영하는 망막 투영 기술을 이용할 수 있다. 투영 시스템들은 또한 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하도록 구성될 수 있다.
일부 구현예들에서, 사용자는 디바이스(120)를 자신의 머리 상에 착용한다. 이와 같이, 디바이스(120)는 콘텐츠를 디스플레이하기 위해 제공된 하나 이상의 디스플레이들을 포함할 수 있다. 예를 들어, 디바이스(120)는 사용자의 시야를 둘러쌀 수 있다. 일부 구현예들에서, 디바이스(120)는 콘텐츠를 사용자에게 제시하도록 구성된 핸드헬드 전자 디바이스(예를 들어, 스마트폰 또는 태블릿)이다. 일부 구현예들에서, 디바이스(120)는 콘텐츠를 제시하도록 구성된 챔버, 인클로저, 또는 방으로 대체되며, 여기서 사용자는 디바이스(120)를 착용하거나 보유하지 않는다.
도 2는 일부 구현예들에 따른 제어기(110)의 일례의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 그래픽 프로세싱 유닛(GPU)들, 중앙 프로세싱 유닛(CPU)들, 프로세싱 코어들 등), 하나 이상의 입/출력(I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(GSM), 코드 분할 다중 액세스(CDMA), 시분할 다중 액세스(TDMA), 글로벌 포지셔닝 시스템(GPS), 적외선(IR), 블루투스, 지그비, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트(solid-state) 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 경험 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다. 일부 구현예들에서, 제시 모듈(240)은 하나 이상의 사용자들에 대한 하나 이상의 경험들(예를 들어, 하나 이상의 사용자들에 대한 단일 경험, 또는 하나 이상의 사용자들의 개개의 그룹들에 대한 다수의 경험들)을 관리 및 조정하도록 구성된다. 이를 위해, 다양한 구현예들에서, 제시 모듈(240)은 추적기(242), 구역 결정기(244), 및 텍스트 렌더러(246)를 포함한다.
일부 구현예들에서, 추적기(244)는 본 명세서에 개시된 기법들 또는 다른 적절한 시선 추적 기법 중 하나 이상을 통해 사용자의 시선 방향을 결정하도록 구성된다. 이를 위해, 다양한 구현예들에서, 추적기(244)는 그에 대한 명령어들 및/또는 로직, 구성된 신경망, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 텍스트 렌더러(246)는 본 명세서에 개시된 기법들 또는 다른 적절한 텍스트 렌더링 기법들 중 하나 이상을 통해 하나 이상의 텍스트 렌더링 기법들을 사용하여 텍스트를 렌더링하도록 구성된다. 이를 위해, 다양한 구현예들에서, 텍스트 렌더러(246)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
게다가, 도 2는 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 2에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 구현예들에 따른, 디바이스(120)의 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비-제한적인 예로서, 일부 구현예들에서 디바이스(120)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, ZIGBEE, SPI, I2C, 및/또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 AR/VR 디스플레이들(312), 하나 이상의 내부 및/또는 외부 대면 이미지 센서 시스템들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자력계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예를 들어, 구조화된 광, 비행시간(time-of-flight) 등) 등 중 적어도 하나를 포함한다.
일부 구현예들에서, 하나 이상의 디스플레이들(312)은 경험을 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계-효과 트랜지터리(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자기계 시스템(MEMS), 및/또는 유사한 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, 디바이스(120)는 단일 디스플레이를 포함한다. 다른 예에서, 디바이스(120)는 사용자의 각각의 눈을 위한 디스플레이를 포함한다.
일부 구현예들에서, 하나 이상의 이미지 센서 시스템들(314)은 사용자의 눈들을 포함하는 사용자의 얼굴의 적어도 일부분에 대응하는 이미지 데이터를 획득하도록 구성된다. 예를 들어, 하나 이상의 이미지 센서 시스템들(314)은 하나 이상의 RGB 카메라들(예를 들어, 상보형 금속-산화물-반도체(CMOS) 이미지 센서 또는 전하-결합 디바이스(CCD) 이미지 센서를 구비함), 흑백 카메라들, IR 카메라들, 이벤트-기반 카메라들 등을 포함한다. 다양한 구현예들에서, 하나 이상의 이미지 센서 시스템들(314)은 플래시 또는 글린트 소스와 같은 사용자의 얼굴의 일부분 상에 광을 방출하는 조명원들을 추가로 포함한다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330), AR/VR 제시 모듈(340) 및 사용자 데이터 저장소(360)를 포함하는 그것들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다. 일부 구현예들에서, 제시 모듈(340)은 하나 이상의 디스플레이들(312)을 통해 콘텐츠를 사용자에게 제시하도록 구성된다. 이를 위해, 다양한 구현예들에서, 제시 모듈(340)은 추적기(342), 구역 결정기(344), 및 텍스트 렌더러(346)를 포함한다.
일부 구현예들에서, 추적기(344)는 본 명세서에 개시된 기법들 또는 다른 적절한 시선 추적 기법 중 하나 이상을 통해 사용자의 시선 방향을 결정하도록 구성된다. 이를 위해, 다양한 구현예들에서, 추적기(344)는 그에 대한 명령어들 및/또는 로직, 구성된 신경망, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
일부 구현예들에서, 텍스트 렌더러(346)는 본 명세서에 개시된 기법들 또는 다른 적절한 텍스트 렌더링 기법들 중 하나 이상을 통해 하나 이상의 텍스트 렌더링 기법들을 사용하여 텍스트를 렌더링하도록 구성된다. 이를 위해, 다양한 구현예들에서, 텍스트 렌더러(346)는 그에 대한 명령어들 및/또는 로직, 및 그에 대한 휴리스틱 및 메타데이터를 포함한다.
이러한 요소들이 단일 디바이스(예컨대, 디바이스(120)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 요소들의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해하여야 한다. 게다가, 도 3은 본 명세서에 설명된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 3에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예에 대해 선택된 하드웨어, 소프트웨어, 및/또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3의 디바이스(120)는 헤드 장착형 디바이스로서 구현될 수 있다.
도 4는 일부 구현예들에 따른 헤드 장착형 디바이스(400)의 블록도를 예시한다. 헤드 장착형 디바이스(400)는 헤드 장착형 디바이스(400)의 다양한 컴포넌트들을 수용하는 하우징(401)(또는 인클로저)을 포함한다. 하우징(401)은 하우징(401)의 (사용자(10)에 대한) 근위 단부에 배치되는 눈 패드(405)를 포함한다(또는 이에 결합된다). 다양한 구현예들에서, 눈 패드(405)는 (예컨대, 사용자(10)의 눈을 둘러싼) 사용자(10)의 얼굴의 적절한 위치에 헤드 장착형 디바이스(400)를 편안하고 포근하게 유지하는 플라스틱 또는 고무 조각이다.
하우징(401)은 이미지를 디스플레이하여, 사용자(10)의 눈을 향해 광을 방출하는 디스플레이(410)를 수용한다. 다양한 구현예들에서, 디스플레이(410)는 디스플레이(410)에 의해 방출되는 광을 굴절시키는 아이피스(eyepiece)(도시되지 않음)를 통해 광을 방출하여, 디스플레이가 눈으로부터 디스플레이(410)까지의 실제 거리보다 더 먼 가상 거리에 있는 것으로 사용자(10)에게 보이게 한다. 사용자가 디스플레이(410)에 초점을 맞출 수 있게 하기 위해, 다양한 구현예들에서, 가상 거리는 적어도 눈의 최소 초점 거리(예컨대, 7 cm)보다 크다. 또한, 더 나은 사용자 경험을 제공하기 위해, 다양한 구현예들에서, 가상 거리는 1 미터 초과이다.
도 4는 디스플레이(410) 및 아이 패드(405)를 포함하는 헤드 장착형 디바이스(400)를 예시하지만, 다양한 구현예들에서, 헤드 장착형 디바이스(400)는 디스플레이(410)를 포함하지 않거나, 또는 아이 패드(405)를 포함하지 않는 광학 시스루(see-through) 디스플레이를 포함한다.
하우징(401)은 또한 하나 이상의 광원들(422), 카메라(424), 및 제어기(480)를 포함하는 시선 추적 시스템을 수용한다. 하나 이상의 광원들(422)은 센서(424)에 의해 검출될 수 있는 광(예컨대, 지향성 빔)을 반사하는 사용자(10)의 눈 상으로 광을 방출한다. 반사된 글린트(들)에 기초하여, 제어기(480)는 사용자(10)의 시선 방향을 결정할 수 있다. 다른 예로서, 제어기(480)는 동공 중심, 동공 크기, 또는 관심 포인트를 결정할 수 있다. 따라서, 다양한 구현예들에서, 광은 하나 이상의 광원들(422)에 의해 방출되고, 사용자(10)의 눈에서 반사되고, 센서(424)에 의해 검출된다. 다양한 구현예들에서, 사용자(10)의 눈으로부터의 광은 센서(424)에 도달하기 전에 핫 미러로부터 반사되거나 아이피스를 통과한다.
디스플레이(410)는 제1 파장 범위 내의 광을 방출할 수 있고, 하나 이상의 광원들(422)은 제2 파장 범위 내의 광을 방출할 수 있다. 유사하게, 센서(424)는 제2 파장 범위 내의 광을 검출할 수 있다. 다양한 구현예들에서, 제1 파장 범위는 가시 파장 범위(예를 들어, 대략 400 내지 700 nm의 가시 스펙트럼 내의 파장 범위)이고, 제2 파장 범위는 근적외선 파장 범위(예컨대, 대략 700 내지 1400 nm의 근적외선 스펙트럼 내의 파장 범위)이다.
다양한 구현예들에서, 시선 추적(또는, 특히, 결정된 시선 방향)은 사용자 상호작용을 가능하게 하고/하거나(예를 들어, 사용자(10)는 디스플레이(410) 상의 옵션을 봄으로써 이를 선택함), 포비티드 렌더링을 제공하고/하거나(예를 들어, 사용자(10)가 보고 있는 디스플레이(410)의 영역에 더 높은 해상도를 그리고 디스플레이(410) 상의 다른 곳에 더 낮은 해상도를 제시함), (예를 들어, 디스플레이(410) 상의 객체들의 3D 렌더링에서) 기하학적 왜곡을 감소시키기 위해 사용된다.
다양한 구현예들에서, 하나 이상의 광원들(422)은 하나 이상의 글린트들의 형태로 반사하는 사용자의 눈을 향해 광을 방출한다. 눈에 의해 반사되고 센서(424)에 의해 검출되는 글린트가 분석될 때, 글린트의 아이덴티티가 결정될 수 있다. 다양한 구현예들에서, 하나 이상의 광원들(422)은 다수의 광원들을 포함한다.
다양한 구현예들에서, 하나 이상의 광원들(422)은 상이한 변조 주파수들을 이용해 방출된 광의 세기를 변조한다. 예를 들어, 다양한 구현예들에서, 하나 이상의 광원들(422) 중 제1 광원은 제1 주파수(예를 들어, 600 ㎐)에서 변조되고, 하나 이상의 광원들(422) 중 제2 광원은 제2 주파수(예를 들어, 500 ㎐)에서 변조된다.
다양한 구현예들에서, 하나 이상의 광원들(422)은 제시된 사용자 인터페이스(예를 들어, 디스플레이(410) 상에 디스플레이된 것)에 따라 방출된 광의 세기를 변조한다. 예를 들어, 디스플레이(410)가 비정상적으로 밝으면(예컨대, 폭발의 비디오가 디스플레이되고 있는 경우), 하나 이상의 광원들(422)은 디스플레이(410)로부터의 잠재적인 간섭을 보상하기 위해 방출된 광의 세기를 증가시킨다.
다양한 구현예들에서, 센서(424)는 소정 프레임 레이트에서 특정 시점 또는 다수의 시점들에서, 사용자(10)의 눈의 이미지를 생성하는 프레임/셔터-기반 카메라이다. 각각의 이미지는 카메라의 광 센서들의 매트릭스의 위치들에 대응하는 이미지의 픽셀들에 대응하는 픽셀 값들의 매트릭스를 포함한다.
다양한 구현예들에서, 카메라(424)는 특정 광 센서가 광의 세기에서의 변화를 검출하는 것에 응답하여 특정 광 센서의 특정 위치를 나타내는 이벤트 메시지를 생성하는, 복수의 각자의 위치들에 있는 복수의 광 센서들(예컨대, 광 센서들의 매트릭스)을 포함하는 이벤트 카메라이다.
다양한 구현예들에서, 카메라(424)는 눈의 이미지 및 눈의 움직임에 기초한 전압 편향 둘 모두를 생성하는 복수의 각자의 위치들에서 광학 부착물들을 갖는 프레임/셔터-기반 카메라 및 복수의 광 센서들 및 광검출기들의 조합일 수 있다.
다양한 구현예들에서, 사용자의 시선 방향은 사용자의 눈으로부터 반사된 하나 이상의 글린트들, 사용자의 망막으로부터의 반사들, 및/또는 사용자의 얼굴 또는 머리로부터의 반사들에 기초하여 또는 광학 센서들로부터 검출된 전압들의 변화들로부터 결정된다. 일부 구현예들에서, 사용자의 시선 방향은 사용자의 시선 방향과 연관된 벡터 상의 2개 이상의 점들을 식별함으로써, 예를 들어, 동공 중심 및 각막 중심 또는 눈 중심을 결정하고 그 점들을 벡터 방향과 연결시킴으로써 결정된다.
동적 포비에이션 구역 크기설정 기법
도 5는 텍스트를 포함하는 콘텐츠의 포비티드 렌더링에 사용되는 구역들을 동적으로-크기설정하는 예시적인 방법(500)의 흐름도 표현이다. 일부 구현예들에서, 방법(500)은 모바일 디바이스, 데스크톱, 랩톱, 또는 서버 디바이스와 같은 디바이스(예를 들어, 도 1 및 도 2의 제어기(110))에 의해 수행된다. 방법(500)은 헤드 장착형 디스플레이(HMD)와 같은 2D 이미지들을 디스플레이하기 위한 스크린 및/또는 입체 이미지들을 보기 위한 스크린을 갖는 디바이스(예컨대, 도 1 및 도 3의 디바이스(120)) 상에서 수행될 수 있다. 일부 구현예들에서, 방법(500)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(500)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다.
블록(510)에서, 방법(500)은 텍스트를 포함하는 CGR 환경의 시점을 결정한다. 일부 구현예들에서, 시점은 헤드 장착형 디바이스(HMD) 또는 CGR 환경의 뷰를 제시할 다른 디바이스의 포즈(예컨대, 위치 및 배향)를 추적하는 것에 기초하여 결정된다. 예를 들어, HMD는 내부 센서들을 포함하거나, 시간 경과에 따라 3D 좌표계에서 HMD의 현재 위치 및 배향을 추적하는 외부 센서들과 함께 사용될 수 있다. 추적은 컴퓨터 시각, VIO(visual inertial odometry), SLAM(simultaneous localization and mapping), 또는 임의의 다른 적절한 기법을 수반할 수 있다. 일부 구현예들에서, 시점은 실제 디바이스의 실제 포즈와 연관된다. 일부 구현예들에서, 시점은 가상 카메라의 가상 포즈와 연관된다.
블록(520)에서, 방법(500)은 CGR 환경에서의 시점으로부터 텍스트를 보는 것과 연관된 측정치를 결정한다. 예를 들어, 방법은 개개의 글리프에 의해 정해지는 각도, 다수의 개개의 글리프들의 평균에 의해 정해지는 각도, 또는 다수의 개개의 글리프들에 의해 정해지는 최대 각도를 결정할 수 있다. 일부 구현예들에서, 측정치는 텍스트의 라인들 사이의 간격에 의해 정해지는 각도이다. 그러한 각도들은 시점으로부터의 텍스트의 거리 및 텍스트 크기에 의존할 수 있고, 따라서 시점으로부터의 텍스트의 겉보기 크기의 측정치를 제공한다. 일부 구현예들에서, 측정치는 현재 시선 위치와 텍스트의 현재 라인의 끝에 의해 정해지는 각도이다. 일부 구현예들에서, 측정치는 그래픽 프로세서의 일부로서 포함될 수 있는데, 여기서 프로세서는 원하는 글리프 또는 표기법을 커버하는 데 필요한 픽셀들의 수를 인식한다.
블록(530)에서, 방법(500)은 측정치에 기초하여 제1 구역의 크기(예컨대, 직경, 폭, 높이 등)를 결정한다. 예를 들어, 사용자의 현재 시선 방향에 중심을 둔 FGZ의 폭은 미리결정된 수의 글리프들의 크기에 기초할 수 있는데, 예를 들어, FGZ 폭은 텍스트 내의 글리프들의 결정된 또는 평균 크기를 고려할 때 미리결정된 수의 글리프들(예컨대, 28개의 글리프)의 폭에 대응할 수 있다. 따라서, 상이한 글리프 크기들(예컨대, 이미지 평면 내의 상이한 크기들에 대응함)에 대해, FGZ는 미리결정된 수의 글리프들의 폭에 대응하는 상이한 크기들을 제공받을 것이다. 많은 포비티드 렌더링 애플리케이션들에 대해, 하나 이상의 구역들은 중심설정되거나 그렇지 않으면 사용자의 현재(또는 예상된) 시선 방향에 기초하여 위치되는데, 이는 본 명세서에 개시된 기법들 또는 임의의 다른 적절한 기법을 사용하여 추정될 수 있다.
일부 구현예들에서, 측정치는 수평 텍스트에 대한 FGZ의 수평 크기를 조정하는 데 사용되는 하나 이상의 글리프들에 의해 정해지는 각도이다. 일부 구현예들에서, 측정치는 수직 텍스트에 대한 FGZ의 수직 크기를 조정하는 데 사용되는 하나 이상의 글리프들에 의해 정해지는 각도이다.
일부 구현예들에서, 측정치는 수평 텍스트에 대한 FGZ의 수직 크기를 조정하는 데 사용되는 텍스트의 라인들 사이의 간격에 의해 정해지는 각도이다. 일부 구현예들에서, 측정치는 수직 텍스트에 대한 FGZ의 수평 크기를 조정하는 데 사용되는 텍스트의 라인들 사이의 간격에 의해 정해지는 각도이다.
일부 구현예들에서, 제1 구역의 크기는 추가적으로 또는 대안적으로 사용자-특정 속성에 기초하여 결정된다. 예를 들어, 본 방법은 읽는 동안 사용자의 평균 단속성 운동 크기 또는 시선 점프와 같은 사용자 속성을 식별하고 그에 따라 제1 구역의 크기를 조정할 수 있다. 예를 들어, 사용자의 단속적 운동이 시간의 95%에서 10개 문자들 내에 있는 경우, FGZ 구역은 20개 문자 폭(예를 들어, 현재 시선 방향 위치의 각각의 측에 10개 문자들)으로 설정될 수 있다. 일부 구현예들에서, 시간 기간, 예를 들어, 분, 시간, 일, 월, 년, 평생 등에 대한 사용자-데이터가 추적되고, 시스템은 (예를 들어, 기계 학습 모델을 사용하여) 사용자가 이러한 이력 데이터에 기초하여 어떻게 거동할 것인지 예측하기 위해 학습한다.
일부 구현예들에서, 제1 구역의 크기는 추가적으로 또는 대안적으로 텍스트 렌더링을 고려하기 위해 혼합된 그래픽/텍스트 콘텐츠에서의 추정치들에 기초한다. 렌더링된 이미지의 시각적 현저성(visual salience)은, 예를 들어, 알고리즘을 사용하여, 사용자의 눈이 이미지 내의 하나의 영역으로부터 다른 영역으로 어떻게 움직일 수 있는지를 추정하는 데 사용될 수 있다.
블록(540)에서, 방법은 제1 렌더링 기법에 따라 제1 구역(예컨대, 포비티드 시선 구역/FGZ) 내의 콘텐츠를 렌더링하고 제2 렌더링 기법에 따라 제2 구역(예컨대, 중심와주변 구역) 내의 콘텐츠를 렌더링함으로써 시점으로부터의 CGR 환경의 뷰를 제공하는 이미지를 렌더링한다. 제1 구역은 제2 구역과 구별되고 제1 렌더링 기법은 제2 렌더링 기법과 상이하다. 일부 구현예들에서, 제1 렌더링 기법은 제2 렌더링 기법보다 더 큰 샘플링 레이트를 사용한다. 일부 구현예들에서, 제1 렌더링 기법은 제2 렌더링 기법보다 더 고가의 텍스트 렌더링 기법을 사용하여 텍스트를 렌더링한다.
FGZ의 크기는 텍스트를 보는 것과 연관된 측정치에(예컨대, 시점으로부터의 하나 이상의 개개의 글리프들에 의해 정해지는 각도에 따라) 의존하기 때문에, FGZ의 크기는 가변적이며, 특정 상황들에 따라 조정될 수 있다(예컨대, 현재 텍스트 크기 및 현재 시점을 고려할 때). 더욱이, 상이한 렌더링 기법들을 사용하여 상이한 구역들에서 렌더링하는 것은 포비티드 렌더링을 가능하게 한다. 구역들의 크기는 상황들(예컨대, 텍스트 크기 또는 시점)이 변화함에 따라 시간이 지남에 따라 조정될 수 있기 때문에, 포비티드 렌더링은 동적이다. 따라서, 방법(500)은 CGR 환경에서 텍스트를 보는 것과 연관된 추가 측정치들에 기초하여 CGR 환경의 뷰들을 제공하는 추가 이미지들을 렌더링하기 위해 제1 구역의 크기를 동적으로 조정하는 것을 수반할 수 있다.
일부 구현예들에서, 방법(500)은 제3 렌더링 기법에 따라 제3 구역 내의 콘텐츠를 렌더링한다. 제3 구역은 제1 구역 및 제2 구역과 별개이고, 제3 렌더링 기법은 제1 렌더링 기법 및 제2 렌더링 기법과 상이하다. 일부 구현예들에서, 제2 구역의 크기, 예컨대, 제2 구역과 제1 및 제3 구역들 각각 사이의 경계들의 위치는 CGR 환경 내의 시점으로부터 텍스트를 보는 것과 연관된 측정치에 기초할 수 있다. 제3 구역의 크기, 예컨대, 제2 구역과 제3 구역 사이의 경계의 위치는 CGR 환경 내의 시점으로부터 텍스트를 보는 것과 연관된 측정치에 기초할 수 있다. 일부 구현예들에서, 다수의 구역들이 사용된다. 일부 구현예들에서, 구역들의 수는 "타일-기반 렌더링(tile-based rendering)"에서의 선택된 타일 크기; 예를 들어 32개의 픽셀에 기초한다. 예를 들어, 크기 1280x1280의 패널의 사용은, 포비에이션 없이, 40x40 또는 1600개 타일들을 생성할 수 있다. 일례에서, 포비에이션이 있는 27x27의 타일들은 13개(예컨대, (27-1)/2) 구역들을 생성할 것이다.
도 6은 CGR 환경의 이미지를 생성하는 데 사용되는 시점을 예시한다. 이 예에서, 시점(605)은 사람(615)의 3D 표현을 포함하는 CGR 환경의 이미지 평면(610) 상에 이미지를 생성하는 데 사용된다. 이 예에서, 광선들(620a, 620b, 620c, 620d)은 CGR 환경의 뷰를 제공하도록 생성되고 있는 이미지에 대응하는 이미지 평면(610)을 통해 시점(605)으로부터 투영된다. 이미지 평면(610)에 대응하는 이미지의 픽셀 값들은 광선들이 이미지 평면(610)을 통과하는 곳(예컨대, 하나 이상의 픽셀들을 식별함) 및 광선들이 CGR 환경과 교차하는 곳(예컨대, 하나 이상의 픽셀들에 대한 색상과 같은 속성을 식별함)에 기초하여 결정된다. 픽셀 값들을 결정하기 위해 광선들을 사용하는 것은 하나의 예시적인 렌더링 기법이다. 이미지 평면에 대한 픽셀 값들을 결정하는 데 사용되는 광선들의 수는 이미지/이미지 평면의 대응하는 일부분의 부분의 렌더링 해상도(예컨대, 이미지/이미지 평면의 그 일부분 내의 렌더링 픽셀들의 수)에 의존할 수 있다. 상대적으로 더 많은 렌더링 픽셀들을 갖는 부분들에 대해, (예를 들어, 상대적으로 더 많은 광선들을 사용하는) 상대적으로 더 고가의 렌더링 기법이 사용될 수 있다. 계산 비용을 다양하게 하는 다른 렌더링 기법들이 사용될 수 있다.
도 7은 도 6의 이미지 평면(610)에 대응하는 이미지(705)의 렌더링 구역들을 예시한다. 이 예에서, 이미지(705)는 이미지 평면(610)에 기초하고, 현재 시선 방향 포인트(710)에 기초하는 제1 구역(720)(예컨대, 포비티드 시선 구역(FGZ))을 포함한다. 일부 구현예들에서, 제1 구역의 크기는 CGR 환경의 콘텐츠에 기초하여 방향들 및 양들에서 시선 방향 포인트(710)로부터 멀어지는 거리들을 결정함으로써 결정된다. 도 7은 또한 제1 구역(720)의 외부에 있고 그에 따라 그와 구별되는 제2 구역(730)을 예시한다. 포비티드 렌더링은 제2 구역(730) 내의 콘텐츠를 렌더링하는 것과 상이한 렌더링 기법을 사용하여 제1 구역(720) 내의 콘텐츠를 렌더링하는 것을 수반할 수 있다.
도 8은 텍스트를 포함하는 CGR 환경의 이미지를 생성하는 데 사용되는 시점을 예시한다. 이 예에서, 시점(805)은 텍스트(815)를 포함하는 CGR 환경의 이미지 평면(810) 상에 이미지를 생성하는 데 사용된다. 이미지 평면에 대응하는 이미지의 픽셀 값들은 시점(815)으로부터의 (예컨대, 픽셀들에 대한 색상과 같은 속성을 식별하는) CGR 환경의 뷰에 기초하여 결정된다.
도 9는 도 8의 이미지 평면(810)에 대응하는 이미지(905)의 렌더링 구역들을 예시한다. 이 예에서, 이미지(905)는 이미지 평면(810)에 기초하고, 현재 시선 방향 포인트(910)에 기초하는 제1 구역(920)(예컨대, 포비티드 시선 구역(FGZ))을 포함한다. 제2 구역(930)은 제1 구역(920)의 외부에 있고 따라서 그와 구별된다. 포비티드 렌더링은 제2 구역(930) 내의 콘텐츠를 렌더링하는 것과 상이한 렌더링 기법을 사용하여 제1 구역(920)을 갖는 콘텐츠를 렌더링하는 것을 수반할 수 있다. 이 예에서, 제1 구역(920) 크기는 텍스트 콘텐츠가 아닌 그래픽 콘텐츠에 대해 적절한 가정들에 기초할 수 있는 고정된 크기 파라미터들을 사용하여 결정된다. 따라서, 사용자는 제1 구역(910) 외부의 단어(예컨대, 제2 구역(930) 내의 텍스트)를 응시하고 읽기 위해 단속성 운동을 할 수 있고, 바람직하지 않은 경험을 가질 수 있다. 예를 들어, 사용자는, 사용자의 눈이 점프한 렌더링된 텍스트에서의 지각된 차이를 알아차리거나, 그에 의해 산만해지거나, 또는 그렇지 않으면 그로 인해 부정적인 경험을 가질 수 있다.
대조적으로, 도 10은 소정 구현예들에 따른 도 8의 이미지의 텍스트에 기초하여 크기설정된 포비티드 렌더링 구역들(1020, 1030)을 예시한다. 이 예에서, 이미지(1005)는 이미지 평면(810)에 기초하고, 현재 시선 방향 포인트(1010)에 기초하는 제1 구역(1020)(예컨대, 포비티드 시선 구역(FGZ))을 포함한다. 제2 구역(1030)은 제1 구역(1020)의 외부에 있고 따라서 그와 구별된다. 포비티드 렌더링은 제2 구역(1030) 내의 콘텐츠를 렌더링하는 것과 상이한 렌더링 기법을 사용하여 제1 구역(1020)을 갖는 콘텐츠를 렌더링하는 것을 수반할 수 있다.
일부 구현예들에서, 제1 구역(1020)은 CGR 환경의 콘텐츠에 기초하여 방향들 및 양들에서 시선 방향 포인트(1010)로부터 멀어지는 거리들을 결정함으로써 결정된다. 예를 들어, 시선 방향 포인트(1010)의 좌측 및/또는 우측으로의 수평 확장 및/또는 시선 방향 포인트(1010)의 위 또는 아래의 수직 확장은 CGR 환경 내의 텍스트 및 그 텍스트에 대한 사용자의 시점에 기초하여 결정될 수 있다. 이 예에서, 시선 방향 포인트(1010)의 좌측 및 우측으로의 수평 확장은 임계 수의 문자들/텍스트 글리프들(예컨대, "a", "b", "?", " " 등)을 포함하는 것으로 결정된다. 예를 들어, FGZ는 시선 방향 포인트(1010)의 좌측 및 우측으로 14개의 문자들을 포함하도록 크기설정될 수 있다. 미리결정된 수의 문자 임계치는 독서 단속성 운동을 고려하고, 또한 사용자의 미리보기 이득 창을 고려할 수 있다는 것에 유의한다. (예컨대, 읽기 방향으로 서로의 위 및 아래에 연속적인 문자들 또는 기호들을 갖는) 수직으로 읽는 텍스트의 상황에서, 시선 방향 포인트(1010)의 위 또는 아래의 수직 확장은 문자들/텍스트 글리프들의 임계 수에 기초할 수 있다.
수평 텍스트의 경우, 시선 방향 포인트(1010)의 위 또는 아래의 수직 확장은 다른 텍스트 특성들에 기초할 수 있다(예컨대, 임계 수의 텍스트 줄들/행들을 포함하기 위해 - 이는 줄 간격에 의존할 것임 - 또는 단락 또는 텍스트의 다른 블록의 시작 또는 끝에 기초함). 도 10의 예에서, FGZ의 수직 크기는 텍스트의 시작 및 끝에 기초한다. 유사하게, 수직 텍스트의 경우, 시선 방향 포인트(1010)의 좌측 및 우측으로의 수평 확장은 다른 텍스트 특성들에 기초할 수 있다(예컨대, 임계 수의 텍스트 줄들/열들을 포함하기 위해 - 이는 줄 간격에 의존할 것임 - 또는 단락 또는 텍스트의 다른 블록의 시작 또는 끝에 기초함).
도 11은 대안적인 환경에서 CGR 환경의 이미지의 텍스트에 기초하여 크기설정된 포비티드 렌더링 구역들을 예시한다. 이 예에서, 텍스트는 도 10의 텍스트와 비교하여 (시점으로부터 볼 때) 상대적으로 더 크다. 이 예에서, 이미지(1105)는 이미지 평면(810)에 기초하고, 현재 시선 방향 포인트(1110)에 기초하는 제1 구역(1120)(예컨대, 포비티드 시선 구역(FGZ))을 포함한다. 제2 구역(1130)은 제1 구역(1120)의 외부에 있고 따라서 그와 구별된다. 포비티드 렌더링은 제2 구역(1130) 내의 콘텐츠를 렌더링하는 것과 상이한 렌더링 기법을 사용하여 제1 구역(1120)을 갖는 콘텐츠를 렌더링하는 것을 수반할 수 있다. 이 예에서, 시선 방향 포인트(1110)의 좌측 및 우측으로의 수평 확장은 임계 수의 문자들/텍스트 글리프들(예컨대, "a", "b", "?", " " 등)을 포함하는 것으로 결정된다. 예를 들어, FGZ는 시선 방향 포인트(1110)의 좌측 및 우측으로 14개의 문자들을 포함하도록 크기설정될 수 있다. 따라서, 도 11의 제1 구역(1120)은 도 10의 제1 구역(1020)보다 상대적으로 더 크다.
도 12는 대안적인 환경에서 CGR 환경의 이미지의 텍스트에 기초하여 크기설정된 포비티드 렌더링 구역들을 예시한다. 이 예에서, 텍스트는 도 10 및 도 11의 텍스트와 비교하여 (시점으로부터 볼 때) 상대적으로 더 작다. 이 예에서, 이미지(1205)는 이미지 평면(810)에 기초하고, 현재 시선 방향 포인트(1210)에 기초하는 제1 구역(1220)(예컨대, 포비티드 시선 구역(FGZ))을 포함한다. 제2 구역(1230)은 제1 구역(1220)의 외부에 있고 따라서 그와 구별된다. 포비티드 렌더링은 제2 구역(1230) 내의 콘텐츠를 렌더링하는 것과 상이한 렌더링 기법을 사용하여 제1 구역(1220)을 갖는 콘텐츠를 렌더링하는 것을 수반할 수 있다. 이 예에서, 시선 방향 포인트(1210)의 좌측 및 우측으로의 수평 확장은 임계 수의 문자들/텍스트 글리프들(예컨대, "a", "b", "?", " " 등)을 포함하는 것으로 결정된다. 예를 들어, FGZ는 시선 방향 포인트(1210)의 좌측 및 우측으로 14개의 문자들을 포함하도록 크기설정될 수 있다. 따라서, 도 12의 제1 구역(1220)은 도 10의 제1 구역(1020) 및 도 11의 제1 구역(1120)보다 상대적으로 더 작다.
텍스트 렌더링 알고리즘 선택 기법
본 명세서에 개시된 다양한 구현예들은 (a) 글리프의 부분에 대응하는 이미지의 일부분의 렌더링 해상도와 (b) 글리프의 부분이 이미지에서 점유할 크기 사이의 관계에 기초하여 텍스트 렌더링 알고리즘을 선택하는 디바이스들, 시스템들, 및 방법들을 포함한다. 따라서, FGZ 내의 "e"는 고가의 알고리즘을 사용하여 렌더링될 수 있는 반면, 중심와주변 구역 내의 동일한 크기의 동일한 "e"는 저렴한 알고리즘을 사용하여 렌더링될 수 있다.
도 13은 텍스트 렌더링 알고리즘을 선택하는 예시적인 방법(1300)의 흐름도 표현이다. 일부 구현예들에서, 방법(1300)은 모바일 디바이스, 데스크톱, 랩톱, 또는 서버 디바이스와 같은 디바이스(예를 들어, 도 1 및 도 2의 제어기(110))에 의해 수행된다. 방법(1300)은 헤드 장착형 디스플레이(HMD)와 같은 2D 이미지들을 디스플레이하기 위한 스크린 및/또는 입체 이미지들을 보기 위한 스크린을 갖는 디바이스(예컨대, 도 1 및 도 3의 디바이스(120)) 상에서 수행될 수 있다. 일부 구현예들에서, 방법(1300)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1300)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다.
블록(1310)에서, 방법(1300)은 텍스트를 포함하는 CGR 환경의 시점을 결정한다. 일부 구현예들에서, 시점은 헤드 장착형 디바이스(HMD) 또는 CGR 환경의 뷰를 제시할 다른 디바이스의 포즈(예컨대, 위치 및 배향)를 추적하는 것에 기초하여 결정된다. 예를 들어, HMD는 내부 센서들을 포함하거나, 시간 경과에 따라 공간에서의 HMD의 현재 위치 및 배향을 추적하는 외부 센서들과 함께 사용될 수 있다. 추적은 컴퓨터 시각, VIO(visual inertial odometry), SLAM(simultaneous localization and mapping), 또는 임의의 다른 적절한 기법을 수반할 수 있다. 일부 구현예들에서, 시점은 실제 디바이스의 실제 포즈와 연관된다. 일부 구현예들에서, 시점은 가상 카메라의 가상 포즈와 연관된다.
블록(1320)에서, 방법(1300)은 시점으로부터의 CGR 환경의 뷰를 제공할 이미지의 일부분에 대한 렌더링 해상도를 결정한다. 일부 구현예들에서, 이미지의 상이한 구역들은 상이한 렌더링 해상도들을 갖는다. 일부 구현예들에서, 이미지의 일부분은 이미지의 전부이고, 따라서 이미지는 단일 구역 및 단일 렌더링 해상도를 갖는다.
블록(1330)에서, 방법(1300)은 글리프의 부분이 이미지의 일부분에서 점유할 영역 및 이미지의 일부분에 대한 렌더링 해상도에 기초하여 글리프의 부분에 대한 렌더링 기법을 결정한다. 예를 들어, 이것은 (a) 글리프의 부분이 점유할 이미지의 영역을 결정하는 것, (b) 렌더링 해상도에 따라 영역의 렌더링 픽셀들의 수를 결정하는 것, 및 (c) 렌더링 픽셀들의 수에 기초하여 렌더링 기법을 선택하는 것을 수반할 수 있다. 예를 들어, 제1 상황에서, 글리프의 부분은 10 픽셀 × 10 픽셀(예컨대, 100개의 픽셀)의 영역을 점유할 것이고 렌더링 해상도는 실제 해상도이다. 따라서, 방법은 100개의 렌더링 픽셀이 있다고 결정하고 그에 따라 제1 렌더링 기법을 선택할 수 있다. 대조적으로, 제2 상황에서, 글리프의 부분은 10 픽셀 × 10 픽셀(예컨대, 100개의 픽셀)의 동일한 영역을 점유할 것이지만 렌더링 해상도는 실제 해상도의 ½일 수 있다. 따라서, 방법은 5 렌더링 픽셀 × 5 렌더링 픽셀(예컨대, 25개의 렌더링 픽셀)이 있다고 결정하고 그에 따라 제2 렌더링 기법을 선택할 수 있다.
일부 구현예들에서, 렌더링 기법은 글리프 당 픽셀 메트릭에 기초하여 결정된다. 도 14는 글리프당 픽셀 결정을 예시하는 블록도이다. 이 예에서, CGR 환경의 뷰는 글리프(1410)의 시점(1405)으로부터의 뷰를 포함한다. 각도 θ(1415)는 시점(1405)을 고려할 때 글리프(1410)에 의해 정해지는 각도이다. 또한, 20 픽셀/도의 디스플레이 해상도를 고려할 때,
Figure pct00001
=1°를 정하도록 글리프에 대해 소정 수의 픽셀들(예를 들어, 20이 도 14의 예에서 도시되어 있음)이 요구되어, 수평의, 좌측에서 우측으로의, 스크립트에 대해 수평 축에서 20 픽셀/글리프의 값을 제공한다. 적절한 텍스트 렌더링 기법을 결정하기 위해 글리프 부분당 픽셀들이 또한 결정되고 임계치와 비교될 수 있다.
일반적으로, 픽셀/글리프 메트릭 또는 픽셀/글리프 부분 메트릭이 임계 값을 초과할 때 제1 텍스트 렌더링 기법(예컨대, 상대적으로 더 진보된 알고리즘 또는 그렇지 않으면 더 높은 품질의 기법)이 사용될 수 있고, 픽셀/글리프 메트릭 또는 픽셀/글리프 부분 메트릭이 임계 값을 초과하지 않을 때 제2 텍스트 렌더링 기법(예컨대, 상대적으로 덜 진보된 알고리즘 또는 그렇지 않으면 더 낮은 품질의 기법)이 사용될 수 있다. 일부 구현예들에서, 2개 초과의 구역들/렌더링 기법 레벨들이 사용되고, 다수의 임계치들이 3개 이상의 렌더링 기법들 사이에서 선택하는 데 사용된다.
제1 렌더링 기법은 더 높은-품질의 외관을 제공할 수 있지만, 제2 렌더링 기법보다 계산 요건들, 실행 시간, 또는 전력 소비의 관점에서 더 고가일 수 있다.
텍스트 렌더링 알고리즘들은 런타임 GPU 부호 거리장 캐싱(runtime GPU signed distance field caching)을 갖는 벡터 텍스트를 사용하는 것을 포함할 수 있다. 예를 들어, 벡터 텍스트 셰이더는 런타임시 GPU 상의 변환된 글리프들의 분석 부호 거리장(signed distance field, SDF)들을 계산하는 데 사용될 수 있다. 텍스트 렌더링 알고리즘들은 상대적으로 더 느린 오프라인 이미지 기반 SDF 계산들을 수반할 수 있다. 텍스트 렌더링 알고리즘들은 다른 기법들에 비해 상대적으로 빠를 수 있는 SDF들을 사용하여 캐시로부터 렌더링하는 것을 수반할 수 있다. SDF들은 원근 교정(perspective correct)되고 1:1의 픽셀:텍셀(texel) 비들로 생성될 수 있다. 최소 수의 동작들/픽셀 또는 동작들/글리프를 갖는 원근법적으로-교정된 텍스트를 생성하기 위해 SDF 캐시가 사용될 수 있다.
일부 구현예들에서, 사용자 제어는 텍스처 해상도와 캐시 업데이트 레이트 사이의 트레이드오프를 가능하게 하는 임계치들의 선택을 허용할 수 있다.
블록(1340)에서, 방법(1300)은 시점으로부터의 CGR 환경의 뷰를 제공하는 이미지를 렌더링한다. 글리프의 부분은 선택된 렌더링 기법에 따라 렌더링된다. 더욱이, 동일한 글리프의 상이한 부분들 및 다른 글리프들의 부분들이, 각각의 부분의 상황들에 기초하여 선택된 렌더링 기법들에 따라 유사하게 렌더링될 수 있다. 이러한 방식으로, 이미지는, 상황들(예컨대, 글리프 크기, 글리프 속성들, 렌더링 해상도 등)에 의존하는 상이한 글리프 부분들에 대해 상이한 텍스트 렌더링 기법들을 선택적으로 사용함으로써 렌더링될 수 있다.
방법(1300)은 상이한 텍스트 스케일들 및 상황들에 대한 상이한 텍스트 렌더링 알고리즘들의 사용을 가능하게 한다. 상이한 렌더링 해상도들에 대해 상이한 품질/성능 트레이드오프가 이루어질 수 있다. 다시 말하면, 상이한 렌더링 해상도들에 대해 사용되는 상이한 임계치들 또는 크로스오버점들이 있을 수 있다.
일 구현예에서, 3개의 알고리즘 레벨이 사용된다. 제1 레벨은 예를 들어 베지어 메시(Bezier mesh)를 사용하여, 상대적으로 큰 텍스트, 예컨대, 매우 확대된 텍스트에 대해 사용될 수 있다. 이는 고해상도 텍스처들을 캐싱하는 것을 피할 수 있고, 필 레이트(fill rate)를 효율적으로 사용할 수 있다. 삼각측량 외부의 픽셀들에 대해서는 비용이 들지 않을 수 있고, 숨은 면 제거(hidden surface removal)를 위해 내부 삼각형들에 깊이 시험이 사용될 수 있다. 이는 벡터 그래픽을 갖는 통합된 해결책을 수반할 수 있다. 제2 또는 중간 레벨은 중간 텍스트에 사용될 수 있고 (SDF 캐싱과 함께) 벡터 텍스트를 수반할 수 있다. 이는 고품질 안티앨리어싱 및 픽셀당 낮은 기하학적 복잡성(예컨대, 글리프당 1 쿼드)을 제공할 수 있다. 이는 캐싱을 통해 조정가능한 성능/품질을 수반할 수 있다. 캐시는 디바이스 상에서 사용될 수 있다. 제3 레벨은 상대적으로 작은 텍스트에 사용될 수 있고, (예컨대, 미리-래스터화된 텍스트 아틀라스를 사용하여) 고도로 축소되는 텍스트 렌더링 기법을 수반할 수 있다. 곡선 밀도는 분석 방식들에 대해 너무 높을 수 있다. 단일 프래그먼트 셰이더 및 낮은 기하학적 복잡도를 사용하여 높은 성능이 제공될 수 있다. 슈퍼샘플링이 더 높은 품질을 위해 사용될 수 있다. 그러한 기법은 최소의 텍스처 메모리를 사용하여 저해상도 텍스트를 제공할 수 있다.
다수의 특정 세부사항들은 청구되는 주제 내용의 철저한 이해를 제공하기 위해 본 명세서에 기재된다. 그러나, 당업자들은 청구되는 주제 내용이 이들 특정 세부사항들 없이 실시될 수 있음을 이해할 것이다. 다른 예시들에서, 당업자에 의해 알려진 방법들, 장치들 또는 시스템들은 청구되는 주제 내용을 불명료하게 하지 않기 위해 상세히 설명되지 않았다.
구체적으로 달리 언급되지 않는다면, 본 명세서 전반에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정", 및 "식별" 등과 같은 용어들을 이용하는 논의들은, 메모리들, 레지스터들, 또는 컴퓨팅 플랫폼의 다른 정보 저장 디바이스들, 송신 디바이스들, 또는 디스플레이 디바이스들 내에서 물리적 전자 또는 자기 양들로서 표현되는 데이터를 조작 또는 변환하는, 하나 이상의 컴퓨터들 또는 유사한 전자 컴퓨팅 디바이스 또는 디바이스들과 같은 컴퓨팅 디바이스의 작동들 또는 프로세스들을 지칭한다는 것이 이해된다.
본 명세서에 논의된 시스템 또는 시스템들은 임의의 특정 하드웨어 아키텍처 또는 구성에 제한되지 않는다. 컴퓨팅 디바이스는 하나 이상의 입력들에 반응하는 결과를 제공하는 컴포넌트들의 임의의 적합한 배열을 포함할 수 있다. 적합한 컴퓨팅 디바이스들은 범용 컴퓨팅 장치로부터 본 주제 내용의 하나 이상의 구현예들을 구현하는 특수 컴퓨팅 장치까지 컴퓨팅 시스템을 프로그래밍 또는 구성하는, 저장된 소프트웨어에 액세스하는 다목적 마이크로프로세서-기반 컴퓨터 시스템들을 포함한다. 임의의 적합한 프로그래밍, 스크립팅, 또는 다른 유형의 언어 또는 언어들의 조합들은 본 명세서에 포함된 교시들을, 컴퓨팅 디바이스를 프로그래밍 또는 구성하는 데 사용될 소프트웨어로 구현하는 데 사용될 수 있다.
본 명세서에 개시된 방법들의 구현예들은 이러한 컴퓨팅 디바이스들의 동작에서 수행될 수 있다. 위의 예들에서 제시된 블록들의 순서는 달라질 수 있는데, 예를 들어 블록들이 재정렬되거나, 조합되거나, 그리고/또는 하위-블록들로 나뉠 수 있다. 소정의 블록들 또는 프로세스들은 병렬로 수행될 수 있다.
본 명세서에서 "~ 하도록 적응되는(adapted to)" 또는 "~ 하도록 구성되는(configured to)"의 사용은 부가적인 태스크들 또는 단계들을 수행하도록 적응되거나 또는 구성되는 디바이스들을 배제하지 않는 개방적이고 포괄적인 언어로서 의도된다. 부가적으로, "~에 기초하여"의 사용은, 하나 이상의 인용 조건들 또는 값들"에 기초한" 프로세스, 단계, 계산, 또는 다른 작동이, 실제로, 인용된 것들 이상으로 부가적인 조건들 또는 값에 기초할 수 있다는 점에서 개방적이고 포괄적인 것으로 의도된다. 본 명세서에 포함된 표제들, 목록들, 및 번호는 단지 설명의 용이함을 위한 것이며 제한적인 것으로 의도되지 않는다.
용어들 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이러한 용어들은 하나의 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 모든 "제1 노드"의 발생이 일관되게 재명명되고 모든 "제2 노드"의 발생이 일관되게 재명명되기만 한다면, 제1 노드는 제2 노드로 지칭될 수 있고, 유사하게, 제2 노드는 제1 노드로 지칭될 수 있으며, 이는 설명의 의미를 변경한다. 제1 노드 및 제2 노드는 둘 모두 노드들이지만, 그것들은 동일한 노드가 아니다.
본 명세서에서 사용되는 용어는 단지 특정 구현예들만을 설명하는 목적을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들도 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 용어 "및/또는"은 열거되는 연관된 항목들 중 하나 이상의 항목들의 임의의 및 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 "포함한다(comprise)" 및/또는 "포함하는(comprising)"이라는 용어들은 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, 맥락에 의존하여, 진술된 선행 조건이 사실"인 경우(if)"라는 용어는 그가 사실"일 때(when)", 그가 사실"일 시(upon)" 또는 그가 사실"이라고 결정하는 것에 응답하여(in response to determining)" 또는 그가 사실"이라는 결정에 따라(in accordance with a determination)" 또는 그가 사실"임을 검출하는 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[진술된 선행 조건이 사실이라고] 결정되는 경우" 또는 "[진술된 선행 조건이 사실]인 경우" 또는 "[진술된 선행 조건이 사실]일 때"는, 맥락에 의존하여, 진술된 선행 조건이 사실"이라고 결정할 시" 또는 그가 사실"이라고 결정하는 것에 응답하여" 또는 그가 사실"이라는 결정에 따라" 또는 그가 사실"임을 검출할 시" 또는 그가 사실"임을 검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다.
본 발명의 전술한 설명 및 발명의 내용은 모든 면에서 도시적이고 예시적이지만, 제한적이지 않은 것으로 이해될 것이며, 본 명세서에 개시된 발명의 범주는 예시적인 구현예들의 상세한 설명에만 의존하여 결정되지 않고, 특허법에서 허용되는 전체 범위에 따라 결정될 것이다. 본 명세서에 도시되고 기재된 구현예들은 단지 본 발명의 원리에 대한 예시일뿐이고, 다양한 변형예가 본 발명의 범주 및 사상을 벗어나지 않고 당업자들에 의해 구현될 수 있음이 이해될 것이다.

Claims (20)

  1. 방법으로서,
    프로세서를 갖는 전자 디바이스에서,
    컴퓨터 생성 현실(computer-generated reality, CGR) 환경의 시점을 결정하는 단계 - 상기 CGR 환경은 텍스트를 포함함 -;
    상기 CGR 환경에서의 상기 시점으로부터 상기 텍스트를 보는 것과 연관된 측정치를 결정하는 단계;
    상기 측정치에 기초하여 제1 구역의 크기를 결정하는 단계; 및
    제1 렌더링 기법에 따라 상기 제1 구역 내의 콘텐츠를 렌더링하고 제2 렌더링 기법에 따라 제2 구역 내의 콘텐츠를 렌더링함으로써 상기 시점으로부터의 상기 CGR 환경의 뷰를 제공하는 이미지를 렌더링하는 단계를 포함하며, 상기 제1 구역은 상기 제2 구역과 구별되고 상기 제1 렌더링 기법은 상기 제2 렌더링 기법과 상이한, 방법.
  2. 제1항에 있어서, 상기 측정치는 상기 텍스트의 개개의 글리프(glyph)에 의해 정해지는(subtended) 각도인, 방법.
  3. 제1항에 있어서, 상기 측정치는 상기 텍스트의 모든 개개의 글리프들에 의해 정해지는 최대 각도인, 방법.
  4. 제1항에 있어서, 상기 제1 구역의 상기 크기는 미리결정된 수의 글리프들에 기초하여 결정되는, 방법.
  5. 제1항에 있어서, 상기 제1 구역의 폭은 미리결정된 수의 글리프들에 기초하여 결정되는, 방법.
  6. 제1항에 있어서, 상기 CGR 환경에서 상기 텍스트를 보는 것과 연관된 추가 측정치들에 기초하여 상기 CGR 환경의 뷰들을 제공하는 추가 이미지들을 렌더링하기 위해 상기 제1 구역의 상기 크기를 동적으로 조정하는 단계를 추가로 포함하는, 방법.
  7. 제1항에 있어서, 상기 시점은 상기 렌더링이 디스플레이되는 디바이스의 포즈(pose)를 추적하는 것에 기초하여 결정되는, 방법.
  8. 제1항에 있어서, 상기 제1 렌더링 기법은 상기 제2 렌더링 기법보다 더 큰 샘플링 레이트를 사용하는, 방법.
  9. 제1항에 있어서, 상기 렌더링하는 단계는 제3 렌더링 기법에 따라 제3 구역 내의 콘텐츠를 렌더링하는 단계를 포함하고, 상기 제3 구역은 상기 제1 구역 및 상기 제2 구역과 구별되고 상기 제3 렌더링 기법은 상기 제1 렌더링 기법 및 상기 제2 렌더링 기법과 상이한, 방법.
  10. 제9항에 있어서, 상기 제2 구역 또는 상기 제3 구역의 크기는 상기 측정치에 기초하는, 방법.
  11. 제1항에 있어서, 상기 측정치는 상기 텍스트의 라인들 사이의 간격에 의해 정해지는 각도인, 방법.
  12. 제1항에 있어서, 상기 측정치는 현재 시선 위치와 상기 텍스트의 현재 라인의 끝에 의해 정해지는 각도인, 방법.
  13. 제1항에 있어서, 상기 방법은 사용자 속성을 식별하는 단계를 추가로 포함하며, 상기 제1 구역의 상기 크기는 상기 사용자 속성에 기초하는, 방법.
  14. 제1항에 있어서, 상기 제1 구역의 상기 크기는 시각적 현저성 추정치(visual saliency estimate)에 기초하는, 방법.
  15. 방법으로서,
    프로세서를 갖는 전자 디바이스에서,
    컴퓨터 생성 현실(CGR) 환경의 시점을 결정하는 단계 - 상기 CGR 환경은 텍스트를 포함함 -;
    이미지의 일부분에 대한 렌더링 해상도를 결정하는 단계 - 상기 이미지는 상기 시점으로부터의 상기 CGR 환경의 뷰를 제공함 -;
    글리프의 부분이 상기 이미지의 상기 일부분에서 점유할 영역 및 상기 이미지의 상기 일부분에 대한 상기 렌더링 해상도에 기초하여 상기 글리프의 상기 부분에 대한 렌더링 기법을 결정하는 단계; 및
    상기 시점으로부터의 상기 CGR 환경의 상기 뷰를 제공하는 상기 이미지를 렌더링하는 단계를 포함하며, 상기 글리프의 상기 부분은 상기 렌더링 기법에 따라 렌더링되는, 방법.
  16. 제15항에 있어서, 상이한 렌더링 해상도들이 상기 이미지의 상이한 구역들을 렌더링하는 데 사용되는, 방법.
  17. 제15항에 있어서, 상기 렌더링 기법을 결정하는 단계는,
    상기 글리프의 상기 부분이 점유할 상기 이미지의 영역을 결정하는 단계;
    상기 렌더링 해상도에 따라 상기 영역의 렌더링 픽셀들의 수를 결정하는 단계; 및
    상기 렌더링 픽셀들의 수에 기초하여 상기 렌더링 기법을 선택하는 단계를 포함하는, 방법.
  18. 제15항에 있어서, 상기 렌더링 기법을 결정하는 단계는 상기 렌더링 해상도가 임계치를 초과한다고 결정하는 것에 기초하여 제1 렌더링 기법을 선택하는 단계를 포함하는, 방법.
  19. 제15항에 있어서, 상기 렌더링 기법은 상기 글리프의 상기 부분이 상기 이미지의 상기 일부분에서 점유할 상기 영역 및 상기 이미지의 상기 일부분에 대한 상기 렌더링 해상도에 기초하여 복수의 상이한 렌더링 기법들로부터 렌더링 기법을 선택함으로써 결정되는, 방법.
  20. 디바이스로서,
    비일시적 컴퓨터 판독가능 저장 매체; 및
    상기 비일시적 컴퓨터 판독가능 저장 매체에 결합된 하나 이상의 프로세서들을 포함하며, 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 하나 이상의 프로세서들 상에서 실행될 때, 시스템으로 하여금 동작들을 수행하게 하는 프로그램 명령어들을 포함하고, 상기 동작들은,
    컴퓨터 생성 현실(CGR) 환경의 시점을 결정하는 것 - 상기 CGR 환경은 텍스트를 포함함 -;
    상기 CGR 환경에서의 상기 시점으로부터 상기 텍스트를 보는 것과 연관된 측정치를 결정하는 것;
    상기 측정치에 기초하여 제1 구역의 크기를 결정하는 것; 및
    제1 렌더링 기법에 따라 상기 제1 구역 내의 콘텐츠를 렌더링하고 제2 렌더링 기법에 따라 제2 구역 내의 콘텐츠를 렌더링함으로써 상기 시점으로부터의 상기 CGR 환경의 뷰를 제공하는 이미지를 렌더링하는 것을 포함하며, 상기 제1 구역은 상기 제2 구역과 구별되고 상기 제1 렌더링 기법은 상기 제2 렌더링 기법과 상이한, 디바이스.
KR1020217042086A 2019-09-23 2020-09-17 컴퓨터 생성 현실 텍스트의 렌더링 KR102705789B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962904073P 2019-09-23 2019-09-23
US62/904,073 2019-09-23
PCT/US2020/051151 WO2021061479A1 (en) 2019-09-23 2020-09-17 Rendering computer-generated reality text

Publications (2)

Publication Number Publication Date
KR20220013396A true KR20220013396A (ko) 2022-02-04
KR102705789B1 KR102705789B1 (ko) 2024-09-12

Family

ID=72659986

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217042086A KR102705789B1 (ko) 2019-09-23 2020-09-17 컴퓨터 생성 현실 텍스트의 렌더링

Country Status (4)

Country Link
US (1) US11308685B2 (ko)
KR (1) KR102705789B1 (ko)
CN (1) CN114026603B (ko)
WO (1) WO2021061479A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115842907A (zh) * 2018-03-27 2023-03-24 京东方科技集团股份有限公司 渲染方法、计算机产品及显示装置
US11656688B2 (en) * 2020-12-03 2023-05-23 Dell Products L.P. System and method for gesture enablement and information provisioning
CN115270032B (zh) * 2022-08-10 2023-04-25 上海图客科技有限公司 一种基于WebGL的动态高清文字显示方法及系统
CN115272535B (zh) * 2022-08-19 2024-07-05 上海新迪数字技术有限公司 Web下DWG图纸字体一致性绘制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046041A (ja) * 2013-08-28 2015-03-12 キヤノン株式会社 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム
US20170287446A1 (en) * 2016-03-31 2017-10-05 Sony Computer Entertainment Inc. Real-time user adaptive foveated rendering
US20170372457A1 (en) * 2016-06-28 2017-12-28 Roger Sebastian Kevin Sylvan Sharp text rendering with reprojection

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9197864B1 (en) 2012-01-06 2015-11-24 Google Inc. Zoom and image capture based on features of interest
US9514571B2 (en) * 2013-07-25 2016-12-06 Microsoft Technology Licensing, Llc Late stage reprojection
CN107710284B (zh) 2015-06-30 2021-11-23 奇跃公司 用于在虚拟图像生成系统中更有效地显示文本的技术
CA3069173C (en) 2016-01-12 2023-05-02 Esight Corp. Language element vision augmentation methods and devices
US10043238B2 (en) 2016-01-21 2018-08-07 International Business Machines Corporation Augmented reality overlays based on an optically zoomed input
US9940925B2 (en) 2016-03-29 2018-04-10 Authentix, Inc. Sight-to-speech product authentication
EP4411519A2 (en) * 2017-03-22 2024-08-07 Magic Leap, Inc. Depth based foveated rendering for display systems
US10984508B2 (en) 2017-10-31 2021-04-20 Eyedaptic, Inc. Demonstration devices and methods for enhancement for low vision users and systems improvements

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046041A (ja) * 2013-08-28 2015-03-12 キヤノン株式会社 画像表示装置、画像表示装置の制御方法およびコンピュータプログラム
US20170287446A1 (en) * 2016-03-31 2017-10-05 Sony Computer Entertainment Inc. Real-time user adaptive foveated rendering
US20170372457A1 (en) * 2016-06-28 2017-12-28 Roger Sebastian Kevin Sylvan Sharp text rendering with reprojection

Also Published As

Publication number Publication date
WO2021061479A1 (en) 2021-04-01
CN114026603B (zh) 2023-06-13
US20210090323A1 (en) 2021-03-25
KR102705789B1 (ko) 2024-09-12
US11308685B2 (en) 2022-04-19
CN114026603A (zh) 2022-02-08

Similar Documents

Publication Publication Date Title
CN110908503B (zh) 跟踪设备的位置的方法
KR102705789B1 (ko) 컴퓨터 생성 현실 텍스트의 렌더링
US10451875B2 (en) Smart transparency for virtual objects
CN110554770A (zh) 静态遮挡物
US11314396B2 (en) Selecting a text input field using eye gaze
US20210048680A1 (en) Small field of view display mitigation using transitional visuals
US9934583B2 (en) Expectation maximization to determine position of ambient glints
US11321926B2 (en) Method and device for content placement
US11543655B1 (en) Rendering for multi-focus display systems
US11237413B1 (en) Multi-focal display based on polarization switches and geometric phase lenses
US20230377249A1 (en) Method and Device for Multi-Camera Hole Filling
US11288873B1 (en) Blur prediction for head mounted devices
US11694379B1 (en) Animation modification for optical see-through displays
US12033240B2 (en) Method and device for resolving focal conflict
US20240112303A1 (en) Context-Based Selection of Perspective Correction Operations
US12002132B1 (en) Rendering using analytic signed distance fields
US20240377884A1 (en) Dynamic scale for vector graphic rendering
US12148090B2 (en) Method and device for visualizing sensory perception
US11823343B1 (en) Method and device for modifying content according to various simulation characteristics
US11763517B1 (en) Method and device for visualizing sensory perception
US11836872B1 (en) Method and device for masked late-stage shift
US20240202866A1 (en) Warped Perspective Correction
US11715220B1 (en) Method and device for depth sensor power savings
US11468627B1 (en) View dependent content updated rates
US20240312073A1 (en) Method and device for resolving focal conflict

Legal Events

Date Code Title Description
E902 Notification of reason for refusal