KR20220016838A - 3차원 모델 최적화 - Google Patents

3차원 모델 최적화 Download PDF

Info

Publication number
KR20220016838A
KR20220016838A KR1020217038778A KR20217038778A KR20220016838A KR 20220016838 A KR20220016838 A KR 20220016838A KR 1020217038778 A KR1020217038778 A KR 1020217038778A KR 20217038778 A KR20217038778 A KR 20217038778A KR 20220016838 A KR20220016838 A KR 20220016838A
Authority
KR
South Korea
Prior art keywords
model
focus
potential
modeling system
zones
Prior art date
Application number
KR1020217038778A
Other languages
English (en)
Other versions
KR102641759B1 (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 KR20220016838A publication Critical patent/KR20220016838A/ko
Application granted granted Critical
Publication of KR102641759B1 publication Critical patent/KR102641759B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • 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/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3차원 모델들을 최적화하기 위한, 컴퓨터 저장 매체들 상에 인코딩된 컴퓨터 프로그램들을 포함하는, 방법들, 시스템들, 및 장치. 방법들 중 하나는, 최적화될 객체의 3차원 모델에 대해, 적어도 초점일 임계 가능성을 각각 갖는 객체 상의 복수의 포인트를 결정하는 단계 ― 3차원 모델은 2개 이상의 구역을 갖고, 2개 이상의 구역 각각은 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두를 포함함 ―; 2개 이상의 구역으로부터 각각 복수의 포인트 중 어느 것도 포함하지 않는 하나 이상의 비초점 구역을 식별하는 단계; 비초점 구역들을 사용하여, 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 객체에 대한 최적화된 3차원 모델을 생성하는 단계; 및 최적화된 3차원 모델을 비휘발성 메모리에 저장하는 단계를 포함한다.

Description

3차원 모델 최적화
관련 출원들에 대한 상호 참조
본 출원은, 2019년 4월 26일자로 출원된 발명의 명칭이 "THREE-DIMENSIONAL MODEL OPTIMIZATION"인 미국 특허 출원 제16/395,722호의 이익을 주장하는, 2019년 8월 28일자로 출원된 발명의 명칭이 "THREE-DIMENSIONAL MODEL OPTIMIZATION"인 미국 특허 출원 제16/553,925호의 우선권을 주장한다. 전술한 출원들의 개시내용은 모든 목적들을 위해 그 전체가 본원에 참조로 포함된다.
시스템들은 객체들을 표현하기 위해 3차원("3D") 모델들을 사용할 수 있다. 예컨대, 증강 현실("AR") 시스템, 가상 현실("VR") 시스템, 또는 웹 브라우저는 대응하는 환경 내의 객체들을 표현하기 위해 3D 모델들을 사용할 수 있다. 모델들은 시야 외부에 있을 수 있고, 예컨대, 의자에서 튀고 있는 공과 같이, 시야 내부의 객체들의 표시에 영향을 미칠 수 있다.
본 명세서는 3D 모델들의 생성, 렌더링, 또는 이들 둘 모두를 최적화하기 위한 기법들, 방법들, 시스템들, 및 다른 접근법들을 설명한다. 예컨대, 3D 모델은 웹 브라우저 또는 전용 애플리케이션과 같은 애플리케이션을 통해 디스플레이되는 제품의 모델일 수 있다. 모바일 디바이스, AR 디바이스, VR 디바이스, 또는 다른 타입의 컴퓨터와 같은 컴퓨팅 디바이스는 모바일 디바이스 스크린, 컴퓨터 스크린, AR 고글, 또는 VR 고글과 같은 스크린 상에 3D 모델을 디스플레이할 수 있다. 모델링 시스템은 3D 모델 이미지들에 대한 뷰잉(viewing) 데이터를 수집하고, 수집된 데이터를 분석하고, 수집된 데이터의 분석에 기초하여 3D 모델들을 최적화할 수 있다.
3D 모델을 볼 때, 뷰어(viewer)는 모델의 다양한 양태들을 보는 능력을 가질 수 있다. 뷰어는, 예컨대, 컴퓨터 마우스, 손가락, 또는 스타일러스를 사용하여 모델의 양태들과 상호작용함으로써 모델의 양태를 조정하거나, 또는 다른 입력 모드를 사용하여 모델의 표시를 조정할 수 있다. 뷰어는 모델을 클릭하고 드래그하거나 또는 키보드 화살표 키들을 눌러서 모델을 회전시키는 것이 가능할 수 있다. AR 또는 VR 디바이스를 사용할 때, 뷰어는, 예컨대, 자신의 머리를 돌려서 모델의 다양한 양태들을 바라봄으로써 모델의 양태를 조정할 수 있다.
예컨대, 백팩의 3D 모델을 바라보는 뷰어는 처음에 백팩의 측면 뷰를 표시받을 수 있다. 뷰어는 백팩을 클릭하고 입력 디바이스, 예컨대 컴퓨터 마우스를 수직 방향으로 드래그하여 백팩의 저면을 볼 수 있다. 뷰어는 백팩의 측면들을 보기 위해 클릭하고 좌측 또는 우측으로 드래그할 수 있다. 뷰어는 백팩의 상면을 보기 위해 클릭하고 다른 수직 방향으로 드래그할 수 있다.
3D 모델을 볼 때, 뷰어는 모델 상에서 줌인 또는 줌아웃하는 능력을 가질 수 있다. 뷰어는, 예컨대, 컴퓨터 마우스를 사용하여 모델의 양태들을 클릭 또는 더블 클릭하여 모델 상에서 줌인할 수 있거나, 또는 임의의 다른 적절한 방법을 사용하여 모델 또는 모델의 일부 상에서 줌인할 수 있다. 뷰어는 마우스 휠을 스크롤하거나 또는 확대경과 같은 아이콘을 클릭하여 줌인 또는 줌아웃하는 것이 가능할 수 있다. 예컨대, 백팩의 3D 모델을 바라보는 뷰어는 백팩의 텍스처를 보기 위해, 또는 백팩의 피처들, 예컨대 지퍼들 또는 버튼들과 같은 인클로저 디바이스들을 보기 위해 줌인할 수 있다.
3D 모델의 상이한 뷰어들은 3D 모델을 바라볼 때 상이한 뷰잉 패턴들을 가질 수 있다. 예컨대, 하나의 뷰어는 3D 백팩 모델을 좌측면 뷰로 회전시킨 후에, 좌측면 뷰 상에서 줌인할 수 있다. 다른 뷰어는, 예컨대, 3D 백팩 모델과의 다른 상호작용들을 수행하기 전에, 3D 백팩 모델을 상면 뷰로 회전시키고, 상면 뷰 상에서 줌인할 수 있다.
모델링 시스템은, 예컨대, 뷰어가 3D 모델과 뷰어의 상호작용들에 대한 데이터를 모델링 시스템에 제공하기로 선택할 때, 3D 모델과 뷰어들의 상호작용들에 대한 데이터를 수신할 수 있다. 예컨대, 모델링 시스템은 3D 모델과 뷰어의 상호작용들에 관한 데이터를 수신할 수 있다. 데이터는 뷰어의 관점으로부터의 3D 모델의 시점, 디스플레이 상에서 뷰어에게 표시되는 모델의 부분들, 모델의 부분들이 디스플레이 상에 표시된 순서, 또는 이들 중 2개 이상의 조합을 표현할 수 있다.
데이터를 수신한 후에, 모델링 시스템은, 예컨대, 뷰어가 3D 모델과 상호작용한 세션이 끝날 때, 뷰잉 데이터를 분석할 수 있다. 데이터는, 예컨대, 뷰어가 백팩의 정면 뷰를 바라보면서 10초를 소비한 후에, 백팩의 좌측면 뷰를 바라보면서 20초를 소비하고, 10초 동안 물병 포켓을 포함하는 좌측면 뷰 상에서 줌인한 후에, 백팩의 스트랩들을 포함하는 배면 뷰를 바라보면서 30초를 소비한 것을 나타낼 수 있다.
모델링 시스템은 3D 모델의 모든 각각의 뷰어 또는 3D 모델의 뷰어들의 서브세트에 대한 데이터를 수신하거나, 집성하거나, 또는 이들 둘 모두를 행할 수 있다. 모델링 시스템은 3D 모델을 최적화하기 위해 데이터를 사용할 수 있다. 예컨대, 모델링 시스템은 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역들을 식별하기 위해, 집성된 데이터를 사용할 수 있다. 구역들의 일부 예들은 3D 모델의 메시(mesh)들, 텍스처들, 사분면(quadrant)들, 다른 구성요소들, 또는 이들 중 2개 이상의 조합을 포함한다.
구역은, 예컨대, 3D 모델의 투시 뷰(perspective view), 이를테면, 좌측면 뷰 또는 우측면 뷰일 수 있다. 예컨대, 투시 뷰가 구역일 때, 투시 뷰는, 뷰어들이 3D 모델의 다른 텍스처들, 메시들, 또는 이들 둘 모두보다 더 초점을 맞추었을 가능성이 있는, 특정 투시 뷰에서 디스플레이되는 3D 모델의 텍스처들, 메시들, 또는 이들 둘 모두를 포함할 수 있다. 각각의 구역은 하나 이상의 투시 뷰에 포함될 수 있다. 각각의 투시 뷰는, 예컨대, 다른 투시 뷰들에 포함될 수 있는 하나 이상의 구역을 포함할 수 있다.
백팩의 예시적인 3D 모델의 경우, 예컨대 뷰어에게 표시되는 3D 모델의 이미지는 물병 포켓을 포함하는 좌측면 뷰를 묘사할 수 있다. 이미지는 또한, 스트랩들 및 지퍼 인클로저의 텍스처들 및 메시들을 묘사할 수 있다. 이미지는 3D 모델의 우측에 있는 우산 포켓, 백팩의 좌측에 있는 로고, 또는 이들 둘 모두의 임의의 텍스처들 및 메시들을 묘사하지 않을 수 있다. 예컨대, 로고가 물병 포켓 뒤에 있기 때문에 로고는 좌측면 뷰에 표시되지 않을 수 있고, 로고에 대한 실제 텍스처들 및 메시들은 3D 모델에 로딩될 수 있거나 또는 로딩되지 않을 수 있거나, 또는 이들 둘 모두일 수 있다. 이 예에서, 예컨대 구역으로서의 투시 뷰는 물병 포켓의 적어도 일부, 스트랩들의 적어도 일부, 및 지퍼 인클로저의 적어도 일부를 포함할 수 있고, 우산 포켓, 로고, 또는 이들 둘 모두를 포함하지 않을 수 있다.
일부 예들에서, 투시 뷰가 구역일 때, 투시 뷰는 3D 모델의 비연속적인 부분들을 포함할 수 있다. 예컨대, 투시 뷰는, 예컨대 투시 뷰에 디스플레이되지 않은 3D 모델의 다른 영역들에 의해 물병 포켓과 지퍼 인클로저가 분리되어 있더라도, 물병 포켓 및 지퍼 인클로저를 포함할 수 있다.
뷰어들이 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역들을 식별하기 위해, 모델링 시스템은 뷰어 상호작용들로부터의 데이터에 대해 클러스터 분석을 수행할 수 있다. 클러스터 분석은 집성된 데이터에 대해 이루어질 수 있거나, 집성된 데이터를 생성할 수 있거나, 또는 이들 둘 모두를 행할 수 있다. 예컨대, 모델링 시스템은 3D 모델의 히트 맵(heat map)을 생성함으로써 클러스터 분석을 수행할 수 있다. 히트 맵은, 뷰어들이 다른 구역들보다 더 초점을 맞추었던 구역들을 구별하기 위해, 3D 모델의 구역들을 다양한 패턴들, 음영, 컬러들, 또는 이들 모두로 표현할 수 있다.
모델링 시스템은 3D 모델을 최적화하기 위해 히트 맵을 사용할 수 있다. 예컨대, 모델링 시스템, 예컨대 모델 최적화 디바이스는, 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 식별된 구역들을 사용하여, 3D 모델의 하나 이상의 구역을 최적화할 수 있다. 뷰어들이 다른 구역들보다 덜 초점을 맞추었던 3D 모델의 구역들에 대해, 모델링 시스템은 더 높은 해상도의 이미지들로부터 더 낮은 해상도의 이미지들을 생성할 수 있다.
일부 구현들에서, 모델링 시스템은 3D 모델의 2개 이상의 버전을 생성할 수 있다. 3D 모델의 각각의 버전은, 예컨대 메가바이트, 해상도, 또는 이들 둘 모두에서 상이한 데이터 크기일 수 있다. 더 작은 크기의 모델은, 예컨대 히트 맵에 의해 결정되는 바와 같은, 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역들을 고 해상도로 포함할 수 있다. 더 작은 크기의 모델은 뷰어들이 3D 모델의 다른 구역들보다 덜 초점을 맞추었던 3D 모델의 구역들을 저 해상도로 포함할 수 있다. 더 큰 크기의 모델은 뷰어들이 3D 모델의 다른 구역들보다 덜 초점을 맞추었던 3D 모델의 구역들, 및 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역들에 대해, 예컨대 3D 모델의 모든 구역들에 대해 고 해상도 데이터를 포함할 수 있다.
3D 모델들을 최적화함으로써, 모델링 시스템은 3D 모델들의 표시를 최적화할 수 있다. 예컨대, 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 특정 백팩의 3D 모델의 구역이 물병 홀더를 나타내는 좌측면 뷰일 때, 모델링 시스템은, 좌측면 뷰가 3D 모델의 다른 구역들보다 더 높은 해상도를 갖거나, 3D 모델의 표시 동안 먼저 로딩되거나, 또는 이들 둘 모두가 되도록, 3D 모델을 최적화할 수 있다. 3D 모델의 이러한 최적화는, 예컨대 디스플레이 상에 3D 모델을 표시하는 디바이스가 최적화된 3D 모델을 비최적화된 3D 모델과 비교하여 더 신속하게 표시하게 할 수 있다. 모델링 시스템은 뷰어들이 3D 모델의 다른 구역들보다 덜 초점을 맞추었던 3D 모델의 구역들의 고 해상도 이미지들이 초기 버전이 로딩된 후에 로딩되게 프로그래밍할 수 있다.
일부 구현들에서, 시스템은 3D 모델의 시작 배향에 기초하여 3D 모델의 상이한 품질의 구역들을 렌더링할 수 있다. 예컨대, 시스템은, 처음에 디스플레이 상에 표시될 콘텐츠를 참조하여, 3D 모델의 시작 배향에 기초하여, 제1의 더 높은 품질, 예컨대 충실도의 구역을 로딩할 수 있다. 시스템은, 예컨대 시작 배향에 기초하여, 처음에 표시되지 않을 제2의 더 낮은 품질의 구역을 로딩할 수 있다. 예컨대, 페이지가 로딩될 때 카메라의 3D 모델의 정면 구역을 처음에 묘사하는 카메라의 웹페이지의 경우, 시스템, 예컨대 렌더링 시스템은 3D 모델의 정면 구역을 더 높은 해상도로 로딩하면서 보이지 않는 배면 구역을 더 낮은 해상도로 로딩하기로 결정할 수 있다.
일부 구현들에서, 모델링 시스템은 3D 모델의 카테고리들, 예컨대 제품 카테고리들을 최적화할 수 있다. 예컨대, 뷰잉 데이터는, 특정 하이킹 신발 모델의 임계량의 뷰어들에 대해, 신발의 밑창이 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역이라는 것을 나타낼 수 있다. 모델링 시스템은 제품 카테고리들에 대한 3D 모델을 최적화하기 위해 이러한 데이터를 사용할 수 있다. 예컨대, 모델링 시스템은 특정 제조자에 의한 모든 하이킹 신발, 모든 하이킹 신발, 및/또는 모든 신발과 같은 제품 카테고리들에 대한 3D 모델들을 최적화하기 위해 특정 하이킹 신발 모델로부터의 데이터를 사용할 수 있다. 모델링 시스템은, 밑창들이 3D 모델들의 나머지 부분보다 더 높은 해상도를 갖거나, 3D 모델들의 표시 동안 먼저 로딩되거나, 또는 이들 둘 모두가 되도록, 신발의 3D 모델들을 최적화할 수 있다.
일부 예들에서, 데이터는 칼라 셔츠의 적어도 임계량의 뷰어들이 셔츠의 칼라 상에서 줌인한다는 것을 나타낼 수 있다. 모델링 시스템은 제품 카테고리들에 대한 3D 모델들, 예컨대, 다수의 칼라 셔츠, 예컨대, 모든 칼라 셔츠, 또는 잠재적으로 모든 일반적인 의류 상의들에 대한 3D 모델들을 최적화하기 위해 데이터를 사용할 수 있다.
일부 구현들에서, 모델링 시스템은 뷰어들의 카테고리들에 기초하여 3D 모델들의 카테고리들을 최적화할 수 있다. 뷰어들의 카테고리는 단일 사용자, 예컨대 존, 또는 다수의 뷰어를 포함할 수 있다. 예컨대, 베개의 3D 모델의 뷰잉 데이터는, 특정 인구통계학적 피처, 예컨대 물리적 지리적 위치를 갖는 임계량의 뷰어들에 대해, 베개의 배면이 뷰어들이 3D 모델의 다른 구역들보다 더 초점을 맞추었던 3D 모델의 구역이라는 것을 나타낼 수 있다. 모델링 시스템은, 예컨대, 뷰어들이 물리적 지리적 위치와 같은 카테고리 정보를 공유하기로 선택할 때, 뷰어 카테고리들에 대한 3D 모델들을 최적화하기 위해 이러한 데이터를 사용할 수 있다. 예컨대, 모델링 시스템은 특정 물리적 지리적 위치에 있는 모든 뷰어들과 같은 뷰어 카테고리들에 대한 3D 모델들을 최적화하기 위해 베개 모델로부터의 데이터를 사용할 수 있다. 모델링 시스템은, 베개의 배면이 3D 모델의 나머지 부분보다 더 높은 해상도를 갖거나, 3D 모델들의 표시 동안 먼저 로딩되거나, 또는 이들 둘 모두가 되도록, 베개의 3D 모델들을 최적화할 수 있다.
모델링 시스템은 상이한 뷰어 카테고리들, 예컨대 물리적 지리적 위치들에 대한 베개의 상이한 3D 모델들을 생성하고, 뷰어 카테고리에 관한 데이터를 사용하여 상이한 3D 모델들 중 하나를 디바이스에 제공할 수 있다. 예컨대, 모델링 시스템이 제1 물리적 위치로부터 베개의 3D 모델에 대한 요청을 수신할 때, 모델링 시스템은 제1 3D 모델을 제공할 수 있다. 모델링 시스템이 상이한 제2 물리적 위치로부터 베개의 3D 모델에 대한 요청을 수신할 때, 모델링 시스템은 상이한 제2 3D 모델을 제공할 수 있다.
일반적으로, 본 명세서에서 설명되는 발명 대상의 하나의 혁신적인 양태는 방법들로 구현될 수 있고, 방법들은, 최적화될 객체의 3차원 모델에 대해, 적어도 초점일 임계 가능성을 각각 갖는 객체 상의 복수의 포인트를 결정하는 액션 ― 3차원 모델은 2개 이상의 구역을 갖고, 2개 이상의 구역 각각은 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두를 포함함 ―; 2개 이상의 구역으로부터 하나 이상의 비초점 구역을 식별하는 액션 ― 하나 이상의 비초점 구역은 i) 각각 복수의 포인트 중 어느 것도 포함하지 않고, ii) 2개 이상의 구역의 적절한 서브세트임 ―; 하나 이상의 비초점 구역을 사용하여, 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 객체에 대한 최적화된 3차원 모델을 생성하는 액션; 및 최적화된 3차원 모델을 비휘발성 메모리에 저장하는 액션을 포함한다. 이 양태의 다른 실시예들은 대응하는 컴퓨터 시스템들, 장치, 컴퓨터 프로그램 제품들, 및 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램들을 포함하고, 이들 각각은 방법들의 액션들을 수행하도록 구성된다. 하나 이상의 컴퓨터의 시스템은 시스템 상에 설치된 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합에 의해 특정 동작들 또는 액션들을 수행하도록 구성될 수 있고, 그 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합은 동작 시에 시스템으로 하여금 액션들을 수행하게 한다. 하나 이상의 컴퓨터 프로그램은 명령어들을 포함하는 것에 의해 특정 동작들 또는 액션들을 수행하도록 구성될 수 있고, 그 명령어들은, 데이터 프로세싱 장치에 의해 실행될 때, 장치로 하여금 액션들을 수행하게 한다.
일반적으로, 본 명세서에서 설명되는 발명 대상의 하나의 혁신적인 양태는 방법들로 구현될 수 있고, 방법들은, 최적화될 객체의 3차원 모델에 대해, 적어도 초점일 임계 가능성을 각각 갖는 3차원 모델 상의 복수의 포인트를 결정하는 액션 ― 3차원 모델은 2개 이상의 구역을 갖고, 2개 이상의 구역 각각은 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두를 포함함 ―; 2개 이상의 구역으로부터 하나 이상의 초점 구역을 식별하는 액션 ― 하나 이상의 초점 구역은 i) 각각 복수의 포인트 중 적어도 하나를 포함하고, ii) 2개 이상의 구역의 적절한 서브세트임 ―; 하나 이상의 초점 구역을 사용하여, 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 객체에 대한 최적화된 3차원 모델을 생성하는 액션; 및 최적화된 3차원 모델을 비휘발성 메모리에 저장하는 액션을 포함한다. 이 양태의 다른 실시예들은 대응하는 컴퓨터 시스템들, 장치, 컴퓨터 프로그램 제품들, 및 하나 이상의 컴퓨터 저장 디바이스 상에 기록된 컴퓨터 프로그램들을 포함하고, 이들 각각은 방법들의 액션들을 수행하도록 구성된다. 하나 이상의 컴퓨터의 시스템은 시스템 상에 설치된 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합에 의해 특정 동작들 또는 액션들을 수행하도록 구성될 수 있고, 그 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합은 동작 시에 시스템으로 하여금 액션들을 수행하게 한다. 하나 이상의 컴퓨터 프로그램은 명령어들을 포함하는 것에 의해 특정 동작들 또는 액션들을 수행하도록 구성될 수 있고, 그 명령어들은, 데이터 프로세싱 장치에 의해 실행될 때, 장치로 하여금 액션들을 수행하게 한다.
전술한 및 다른 실시예들은 각각, 다음의 피처들 중 하나 이상을 단독으로 또는 조합하여 임의로 포함할 수 있다. 방법은, 네트워크를 통해 객체의 모델에 대한 요청을 수신하는 단계; 및 객체의 모델에 대한 요청을 수신하는 것에 응답하여, 네트워크를 사용하여 객체에 대한 최적화된 3차원 모델을 디바이스로 송신하는 단계를 포함할 수 있다. 방법은, 더 작은 크기를 갖는 최적화된 3차원 모델을 디바이스로 전송한 후에, 더 큰 크기를 갖는 3차원 모델을 디바이스로 전송하기로 결정하는 단계; 및 더 큰 크기를 갖는 3차원 모델을 디바이스로 전송하기로 결정하는 것에 응답하여, 3차원 모델을 디바이스로 전송하는 단계를 포함할 수 있다.
일부 구현들에서, 더 큰 크기를 갖는 3차원 모델을 디바이스로 전송하기로 결정하는 단계는, 네트워크를 통한 시스템과 디바이스 사이의 네트워크 연결이 임계 사용량 미만의 사용량을 갖는다고 결정하는 단계를 포함할 수 있다. 3차원 모델을 디바이스로 전송하는 단계는, 네트워크를 통한 시스템과 디바이스 사이의 네트워크 연결이 임계 사용량 미만의 사용량을 갖는다고 결정하는 것에 응답할 수 있다. 더 큰 크기를 갖는 3차원 모델을 디바이스로 전송하기로 결정하는 단계는, 더 큰 크기를 갖는 3차원 모델에 대한 요청을 수신하는 단계를 포함할 수 있다. 3차원 모델을 디바이스로 전송하는 단계는, 더 큰 크기를 갖는 3차원 모델에 대한 요청을 수신하는 것에 응답할 수 있다.
일부 구현들에서, 최적화된 3차원 모델을 생성하는 단계는, 하나 이상의 비초점 구역 각각에 대해, 각각의 비초점 구역에 포함된 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질을 3차원 모델 내의 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질로부터 감소시키는 단계를 포함할 수 있다. 하나 이상의 비초점 구역 각각에 대해, 각각의 비초점 구역에 포함된 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질을 3차원 모델 내의 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질로부터 감소시키는 단계는, 하나 이상의 비초점 구역 각각에 대해, 각각의 비초점 구역에 포함된 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두 각각의 해상도를 3차원 모델 내의 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 더 높은 해상도로부터 감소시키는 단계를 포함할 수 있다.
일부 구현들에서, 2개 이상의 구역으로부터 하나 이상의 비초점 구역을 식별하는 단계는, 하나 이상의 텍스처, 하나 이상의 메시, 또는 하나 이상의 사분면을 하나 이상의 비초점 구역으로서 식별하는 단계를 포함할 수 있고, 최적화된 3차원 모델을 생성하는 단계는, 식별된 하나 이상의 텍스처 또는 식별된 하나 이상의 메시 또는 식별된 하나 이상의 사분면을 사용하여, 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 객체에 대한 최적화된 3차원 모델을 생성하는 단계를 포함할 수 있다.
일부 구현들에서, 적어도 초점일 임계 가능성을 각각 갖는 객체 상의 복수의 포인트를 결정하는 단계는, 메모리로부터, 뷰어에게 표시하기 위해 디스플레이 상에 생성되었던 객체의 뷰의 적어도 일부를 각각 묘사하는 객체의 복수의 이미지에 대한 데이터를 검색하는 단계; 복수의 이미지로부터의 각각의 이미지에 대해, 하나 이상의 잠재적 초점을 결정하는 단계; 및 복수의 이미지에 대한 하나 이상의 잠재적 초점으로부터 복수의 포인트로서 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계를 포함할 수 있다.
일부 구현들에서, 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는, i) 복수의 이미지로부터의 제1 이미지에 묘사된 다수의 잠재적 초점으로부터 ii) 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들의 제1 서브세트를 선택하는 단계; 및 a) 복수의 이미지로부터의 제1 이미지에 묘사된 다수의 잠재적 초점으로부터 b) 적어도 초점일 임계 가능성을 각각 갖지 않는 잠재적 초점들의 제2 서브세트의 선택을 스킵하기로 결정하는 단계를 포함할 수 있다.
일부 구현들에서, 잠재적 초점들 각각은, 디스플레이 상의 객체의 표시를 보는 뷰어의 초점이 맞추어졌을 가능성이 있는, 복수의 이미지로부터의 대응하는 이미지 내의 추정된 포인트를 포함할 수 있다. 복수의 이미지에 대한 하나 이상의 잠재적 초점으로부터 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는, 대응하는 이미지의 중심으로부터의 잠재적 초점의 거리를 사용하여 하나 이상의 잠재적 초점 중 적어도 하나를 가중화하는 단계를 포함할 수 있다. 대응하는 이미지의 중심에 더 가까이 있는 제1 잠재적 초점은 대응하는 이미지의 중심으로부터 더 멀리 있는 제2 잠재적 초점보다 더 높은 가중치를 갖는다.
일부 구현들에서, 방법은, 디스플레이 상에 객체의 모델을 표시한 디바이스로부터 네트워크를 통해 복수의 이미지 중 하나 이상에 대한 데이터를 수신하는 단계; 및 복수의 이미지 중 하나 이상에 대한 데이터를 메모리에 저장하는 단계를 포함할 수 있다.
일부 구현들에서, 복수의 이미지로부터의 각각의 이미지에 대해, 하나 이상의 잠재적 초점을 결정하는 단계는, 복수의 이미지로부터의 각각의 이미지에 대해, 각각의 이미지를 생성했을 카메라에 의해 표현되는 방향으로부터 객체 상으로 하나 이상의 광선을 투사하는 단계; 및 하나 이상의 광선 각각에 대해, 광선이 객체와 교차하는 포인트를 대응하는 초점으로서 선택하는 단계를 포함할 수 있다. 복수의 이미지로부터의 각각의 이미지에 대해, 각각의 이미지를 생성했을 카메라에 의해 표현되는 방향으로부터 객체 상으로 하나 이상의 광선을 투사하는 단계는, 복수의 이미지로부터의 각각의 이미지에 대해, 광선을 생성하기 위한 하나 이상의 구역을 결정하는 단계; 및 하나 이상의 구역 각각에 대해, 객체 상으로 투사되는 광선을 랜덤으로 생성하는 단계를 포함할 수 있다.
일부 구현들에서, 복수의 이미지로부터의 각각의 이미지에 대해, 광선을 생성하기 위한 하나 이상의 구역을 결정하는 단계는, 하나 이상의 구역 각각에 대해, 광선을 생성하기 위한 기준 포인트로부터의 각도 편차 범위를 결정하는 단계를 포함할 수 있다. 하나 이상의 구역 각각에 대해, 객체 상으로 투사되는 광선을 랜덤으로 생성하는 단계는, 하나 이상의 구역 각각에 대해, 각도 편차 범위 내의 각도 편차를 랜덤으로 선택하는 단계; 및 랜덤으로 선택된 각도 편차로 광선을 생성하는 단계를 포함할 수 있다. 기준 포인트는 각각의 이미지를 생성했을 카메라의 위치를 포함할 수 있다. 하나 이상의 구역 각각에 대해, 각도 편차 범위를 결정하는 단계는, 하나 이상의 구역의 각각의 구역에 대해, 대응하는 이미지의 중심으로부터의 구역의 거리를 사용하여 각도 편차 범위들의 크기를 결정하는 단계를 포함할 수 있다.
일부 구현들에서, 복수의 이미지에 대한 하나 이상의 잠재적 초점으로부터 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는, 객체 상의 하나 이상의 포인트에 대해, 포인트가 대응하는 이미지에 대한 잠재적 초점인 횟수를 결정하는 단계; 및 대응하는 횟수가 임계량을 만족시키는 잠재적 초점들을 복수의 포인트로서 선택하는 단계를 포함할 수 있다. 대응하는 횟수가 임계량을 만족시키는 잠재적 초점들을 복수의 포인트로서 선택하는 단계는, 객체 상의 하나 이상의 포인트에 대해, 객체 상의 포인트가 잠재적 초점이었던 최고 횟수를 사용하여, 정규화된 횟수를 결정하는 단계; 및 대응하는 정규화된 횟수가 임계값을 만족시키는 잠재적 초점들을 복수의 포인트로서 선택하는 단계를 포함할 수 있다. 적어도 초점일 임계 가능성을 각각 갖는 객체 상의 복수의 포인트를 결정하는 단계는, 임계 가중치를 만족시키는 가중치를 각각 갖는 객체 상의 복수의 포인트를 결정하는 단계를 포함할 수 있다.
일부 구현들에서, 제1 구역 및 제2 구역은 각각 제1 텍스처를 가질 수 있고; 2개 이상의 구역으로부터의 제3 구역은 제1 텍스처와 상이한 제2 텍스처를 갖고; 2개 이상의 구역으로부터 하나 이상의 초점 구역을 식별하는 단계는, 적어도 초점일 임계 가능성을 갖는 복수의 포인트로부터의 포인트를 포함하는 초점 구역으로서 제1 구역을 식별하는 단계를 포함할 수 있다. 제2 구역은 적어도 초점일 임계 가능성을 각각 갖는 복수의 포인트로부터의 임의의 포인트들을 포함하지 않을 수 있다. 하나 이상의 초점 구역을 사용하여 객체에 대한 최적화된 3차원 모델을 생성하는 단계는, 하나 이상의 초점 구역을 사용하여, 제3 구역에 대한 더 낮은 품질보다 더 높은 제1 구역 및 제2 구역에 대한 더 높은 품질을 갖는, 객체에 대한 최적화된 3차원 모델을 생성하는 단계를 포함할 수 있다.
일부 구현들에서, 방법은, 제2 구역이 적어도 초점일 임계 가능성을 각각 갖는 복수의 포인트로부터의 임의의 포인트들을 포함하지 않는다고 결정하는 단계를 포함할 수 있다. 2개 이상의 구역으로부터 하나 이상의 초점 구역을 식별하는 단계는, 하나 이상의 텍스처, 하나 이상의 메시, 또는 하나 이상의 사분면을 하나 이상의 초점 구역으로서 식별하는 단계를 포함할 수 있고, 최적화된 3차원 모델을 생성하는 단계는, 식별된 하나 이상의 텍스처 또는 식별된 하나 이상의 메시 또는 식별된 하나 이상의 사분면을 사용하여, 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 객체에 대한 최적화된 3차원 모델을 생성하는 단계를 포함할 수 있다.
본 명세서에서 설명되는 발명 대상은 다양한 실시예들에서 구현될 수 있고, 다음의 이점들 중 하나 이상을 발생시킬 수 있다. 일부 구현들에서, 더 작은 크기의 최적화된 3D 모델들의 생성은 모델링 시스템이 3D 모델에 대한 저장 요건들을 감소시키는 것, 예컨대 3D 모델을 다른 디바이스 또는 시스템으로 송신할 때 네트워크 사용을 감소시키는 것, 또는 이들 둘 모두를 행하는 것을 가능하게 할 수 있다. 3D 모델들을 최적화함으로써, 디바이스의 스크린 상에 3D 모델이 로딩되는 시간이 감소될 수 있다. 디바이스는 비최적화된 구역들만을 위한 더 높은 해상도 데이터 및 최적화된 구역들에 대한 더 낮은 해상도 데이터를 포함하는 더 작은 최적화된 3D 모델을 먼저 로딩할 수 있다. 이어서, 예컨대, 디바이스가 모델링 시스템으로부터 더 높은 품질의 3D 모델을 추후에 수신할 때, 디바이스는 3D 모델에 대한 더 높은 해상도 데이터를 임의로 로딩할 수 있다. 이는 로드 시간들을 개선하거나, 예컨대, 더 낮은 해상도 콘텐츠만을 포함하는 3D 모델을 사용하는 것이 아니라 더 초점이 맞추어지는 특정 영역들을 더 높은 해상도로 유지함으로써 3D 모델 품질을 개선하거나, 예컨대 모델링 시스템으로부터 디바이스로 3D 모델 데이터를 송신하는 데 요구되는 대역폭을 감소시키거나, 또는 이들 중 2개 이상의 조합을 행할 수 있다. 일부 구현들에서, 모델링 시스템은, 3D 모델에 액세스하는 디바이스 상에서 네트워크 품질이 더 낮은 것으로 검출될 때, 더 작은 크기의 3D 모델을 사용하기로 결정할 수 있다. 예컨대, 모델링 시스템은, Wi-Fi 연결을 통해 웹페이지에 액세스하는 디바이스와 비교하여, 3G 네트워크를 통해 웹페이지에 액세스하는 디바이스에 더 낮은 품질의 3D 모델을 서빙하기로 결정할 수 있다.
일부 구현들에서, 모델링 시스템은 더 낮은 품질의 3D 데이터와 더 높은 품질의 3D 데이터의 조합을 사용하기로 결정할 수 있다. 예컨대, 모델링 시스템은, 이전의 데이터 수집에 기초하여, 뷰잉 세션의 시작 전에, 더 낮은 품질의 3D 데이터와 더 높은 품질의 3D 데이터의 조합을 선택적으로 로딩할 수 있다. 모델링 시스템은, 예컨대, 뷰어 상호작용들에 기초하여, 뷰잉 세션 동안 더 낮은 품질의 3D 데이터와 더 높은 품질의 3D 데이터의 조합을 선택적으로 로딩 및/또는 업데이트할 수 있다. 이러한 기법은, 예컨대, 더 낮은 품질의 네트워크를 통해 웹페이지에 액세스하는 디바이스에 대해 로드 시간들을 개선할 수 있다.
본 명세서에서 설명되는 발명 대상의 하나 이상의 구현의 세부사항들은 첨부 도면들 및 아래의 설명에서 제시된다. 본 발명 대상의 다른 피처들, 양태들, 및 이점들은 상세한 설명, 도면들, 및 청구항들로부터 명백하게 될 것이다.
도 1은 최적화된 3D 모델을 생성하기 위한 환경의 예이다.
도 2는 최적화된 3D 모델을 생성하기 위한 프로세스의 흐름도이다.
도 3은 이미지로부터 투사된 2개의 광선을 갖는 3D 모델을 포함하는 예시적인 환경의 예시이다.
도 4는 프로세싱된 3D 모델에 대한 집성된 뷰잉 데이터를 묘사하는 히트 맵의 예시적인 예시이다.
도 5는 더 높은 해상도 구역 및 더 낮은 해상도 구역을 갖는 최적화된 3D 모델의 예시적인 예시이다.
도 6은 본 문서에서 설명되는 컴퓨터에 의해 구현되는 방법들과 관련하여 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
다양한 도면들에서 유사한 참조 번호들 및 지정들은 유사한 요소들을 나타낸다.
도 1은 최적화된 3D 모델을 생성하기 위한 환경(100)의 예이다. 3D 모델은 3D 공간 내의 객체의 3차원 표현이다. 환경(100)은 2개의 구성요소: 모델링 시스템(105) 및 디바이스(115)를 갖는다. 모델링 시스템(105)은 3D 모델들을 생성하거나, 3D 모델들을 최적화하거나, 또는 둘 모두를 행할 수 있다. 디바이스(115)는 3D 모델들, 최적화된 3D 모델들, 또는 이들 둘 모두의 조합을 상이한 시간들에 디스플레이(120) 상에 디스플레이할 수 있다. 환경(100)은 모델링 시스템(105)과 디바이스(115) 사이에서 3D 모델들을 송신할 수 있는 네트워크(110)를 포함할 수 있다.
도 1의 예에서, 모델링 시스템(105)은 네트워크(110)를 통해 디바이스(115)로부터 모델 요청(125)을 수신할 수 있다. 모델 요청(125)은 디바이스(115)가 디스플레이(120) 상에 3D 모델(130)을 디스플레이할 수 있게 하기 위해 모델링 시스템(105)이 3D 모델(130)을 디바이스(115)로 전송하라는 요청이다. 이 예에서, 모델링 시스템(105)은 카메라의 3D 모델(130)을 디바이스(115)로 전송하라는 모델 요청(125)을 수신한다.
모델링 시스템(105)은 데이터베이스, 예컨대 임의의 적절한 타입의 데이터베이스에 3D 모델들을 저장할 수 있다. 3D 모델들은 3D 모델들(135), 예컨대 비최적화된 3D 모델들, 최적화된 3D 모델들(140), 또는 이들 둘 모두일 수 있다. 최적화된 3D 모델(140)의 일 예는 카메라의 3D 모델(130)이다. 3D 모델들(135), 최적화된 3D 모델들(140), 또는 이들 둘 모두는 구역들을 포함할 수 있다.
3D 모델의 구역은, 몇몇 예를 들면, 3D 모델의 하나 이상의 텍스처, 하나 이상의 메시, 사분면, 또는 다른 구성요소들일 수 있다. 구역은, 예컨대, 3D 모델의 투시 뷰, 이를테면, 좌측면 뷰 또는 우측면 뷰일 수 있다. 예컨대, 투시 뷰가 구역일 때, 투시 뷰는, 뷰어들이 3D 모델의 다른 텍스처들 및 메시들보다 더 초점을 맞추었을 가능성이 있는, 특정 투시 뷰에서 디스플레이되는 3D 모델의 텍스처들 및 메시들을 포함할 수 있다. 카메라의 3D 모델(130)의 경우, 구역들은, 예컨대, 카메라의 정면 뷰, 우측면 뷰, 좌측면 뷰, 상면 뷰, 저면 뷰, 및 배면 뷰일 수 있다.
일부 예들에서, 투시 뷰는 하나 이상의 구역을 포함할 수 있다. 각각의 구역은 하나 이상의 투시 뷰에 포함될 수 있다. 각각의 투시 뷰는, 예컨대, 다른 투시 뷰들에 포함될 수 있는 하나 이상의 구역을 포함할 수 있다.
카메라의 예시적인 3D 모델의 경우, 예컨대 뷰어에게 표시되는 3D 모델의 이미지는 셔터 릴리즈 버튼을 포함하는 좌측면 뷰를 묘사할 수 있다. 이미지는 또한 렌즈의 텍스처들을 포함할 수 있다. 이미지는, 예컨대, 3D 모델의 우측에 있는 줌 오퍼레이터의 텍스처들이 렌즈와 같은 3D 모델의 다른 구역들 뒤에 있는 경우, 그러한 텍스처들을 포함하지 않을 수 있다. 이 예에서, 예컨대 구역으로서의 투시 뷰는 셔터 릴리즈 버튼 및 렌즈를 포함할 수 있지만 줌 오퍼레이터를 포함하지 않을 수 있는데, 그 이유는 이미지에 줌 오퍼레이터가 묘사되지 않기 때문이다.
3D 모델의 각각의 구역은 하나 이상의 텍스처를 포함할 수 있다. 3D 모델(130, 135)은, 예컨대, 3D 모델(130, 135)의 생성 동안 결정된 임의의 적절한 수의 텍스처를 포함할 수 있다. 텍스처는 3D 모델(135) 내의 폴리곤에 적용되는 시각적 세부사항을 포함하는 이미지 파일일 수 있다. 예컨대, 카메라의 3D 모델(130)의 정면 구역 상의 텍스처는 카메라의 렌즈의 이미지일 수 있다. 카메라의 3D 모델(130)의 상면 구역 상의 텍스처는 카메라의 플래시 마운트의 이미지일 수 있다.
3D 모델(130, 135)의 각각의 구역은 하나 이상의 메시를 포함할 수 있다. 메시는 3D 축들에 의해 정의된 3D 공간 내의 포인트들의 집합들에 의해 정의된 삼각형과 같은 폴리곤일 수 있다. 하나 이상의 텍스처가 각각의 메시에 적용, 즉 래핑될 수 있다. 더 많은 수의 메시는 이미지 해상도를 증가시킬 수 있다.
모델링 시스템(105)은 초점 디바이스(145)를 포함할 수 있다. 초점 디바이스(145)는, 아래에서 더 상세히 논의되는 바와 같이, 3D 모델(135)에 대한 초점들을 결정할 수 있다. 초점은, 예컨대 뷰어에게 디스플레이되는 이미지에 기초한, 3D 모델을 보는 하나 이상의 뷰어의 초점이 맞추어졌을 가능성이 있는 3D 모델 상의 추정된 포인트일 수 있다. 예컨대, 뷰파인더를 포함하는 카메라의 상면 구역, 그리고 개별적으로, 배터리 격실을 포함하는 카메라의 저면 구역이 카메라의 3D 모델(130)의 뷰어에게 보여질 때, 모델링 시스템(105)은 3D 모델이, 예컨대 이 뷰어에 대해, 2개의 초점을 갖는다고 결정할 수 있다. 제1 초점은 뷰파인더 상에 있을 수 있는 한편, 제2 초점은 배터리 격실 상에 있을 수 있다. 모델링 시스템(105)은 초점을 결정하기 위해, 예컨대 디스플레이 상에 표시되는 이미지의 중심점을 사용할 수 있다. 일부 구현들에서, 뷰어의 시선 추적이 전혀 없을 수 있다.
모델링 시스템(105), 예컨대 초점 디바이스(145)는 초점 데이터베이스(150)에 식별된 초점들을 저장할 수 있다. 초점들 각각은 3D 모델(135)의 구역에 대응하는데, 예컨대 그에 포함된다. 초점 데이터베이스(150)는, 식별된 초점들 각각에 대해, 초점이 대응하는 3D 모델(135)의 구역을 나타내는 매핑을 포함할 수 있다. 초점 데이터베이스(150)는, 예컨대, 모델링 시스템(105)이 일부 잠재적 초점들만이 뷰어에 대한 초점들이었을 가능성이 있다고 결정할 때, 3D 모델(135)의 각각의 잠재적 초점 또는 3D 모델(135)의 잠재적 초점들의 적절한 서브세트에 대한 데이터를 포함할 수 있다.
모델링 시스템(105)은 구역에 대응하는 초점들에 기초하여 3D 모델(135)의 구역들을 카테고리화할 수 있는데, 예컨대, 구역들이 초점 구역들(155)인지 또는 비초점 구역들(160)인지를 나타내는 데이터를 초점 데이터베이스(150)에 저장할 수 있다. 데이터베이스(150)는 초점 구역들(155)에 대해서만, 비초점 구역들(160)에 대해서만, 또는 이들 둘 모두에 대해 데이터를 포함할 수 있다.
모델링 시스템(105)은 초점 구역들(155), 비초점 구역들(160), 또는 이들 둘 모두를 결정하기 위해 임의의 적절한 방법을 사용할 수 있다. 일부 구현들에서, 모델링 시스템(105)은, 아래에서 더 상세히 논의되는 바와 같이, 각각의 초점에 대해 가중치들을 결정하고, 구역 내의 초점들에 대한 가중치들을 사용하여 구역을 카테고리화할 수 있다. 일부 예들에서, 모델링 시스템(105), 예컨대 초점 디바이스(145) 또는 모델 최적화 디바이스(165)는 임계 초점 수 초과의 초점을 포함하는 3D 모델(135)의 구역들을 초점 구역들(155)로서 카테고리화할 수 있다. 모델링 시스템(105), 예컨대 초점 디바이스(145) 또는 모델 최적화 디바이스(165)는 임계 초점 수 미만의 초점을 포함하는 3D 모델(135)의 구역들을 비초점 구역들(160)로서 카테고리화할 수 있다. 예컨대, 카메라의 3D 모델(130)의 초점 구역(155)은 렌즈 및 줌 링에 대한 가능성 있는 초점들을 포함하는 카메라의 정면일 수 있다. 렌즈 및 줌 링 각각은, 예컨대, 렌즈 및 줌 링 각각의 크기, 텍스처의 수, 또는 이들 둘 모두에 기초하여, 다수의 가능성 있는 초점을 가질 수 있다. 카메라의 3D 모델(130)의 비초점 구역(160)은, 카메라의 저면이 임계 초점 수 미만의 초점을 포함하는 경우, 카메라의 저면일 수 있다.
임계 초점 수는 임의의 적절한 임계치일 수 있다. 예컨대, 모델링 시스템(105)은, 예컨대 바이트 단위 또는 치수들에서의 3D 모델의 크기, 3D 모델 내의 텍스처의 수, 메시의 수 또는 이들 둘 모두, 또는 이들 중 2개 이상의 조합을 사용하여, 임계 초점 수를 결정할 수 있다. 임계 초점 수는 3D 모델에 대한 초점의 총 수의 함수로서 결정될 수 있다. 예컨대, 더 많은 초점을 갖는 3D 모델은 더 적은 초점을 갖는 3D 모델과 비교하여 더 높은 임계 초점 수를 가질 것이다. 함수는 선형 또는 비선형일 수 있다. 초점 분석에 관한 추가적인 세부사항들은 아래에서 설명된다.
일부 구현들에서, 모델링 시스템(105)은 잠재적 초점들을 결정할 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 모델링 시스템(105)은 구역이 초점 구역(155)으로서 카테고리화되어야 하는지 또는 비초점 구역(160)으로서 카테고리화되어야 하는지를 결정하기 위해 잠재적 초점들을 사용할 수 있다. 예컨대, 비초점 구역(160)은 잠재적 초점들의 임계 최소 값 미만 또는 이하의 값을 가질 수 있다. 초점 구역(155)은 잠재적 초점들의 임계 최소 값 이상 또는 초과의 값을 가질 수 있다.
모델 최적화 디바이스(165)는 3D 모델(135)과 비교하여 더 작은 크기를 갖는 최적화된 3D 모델(140)을 생성하기 위해, 초점 데이터베이스(150) 내의 초점들, 초점들이 대응하는 구역들, 또는 이들 둘 모두를 사용한다. 최적화된 3D 모델(140)은, 예컨대 메가바이트, 해상도, 또는 이들 둘 모두에서의 데이터 크기에 의해 측정될 때, 3D 모델(135)보다 더 작을 수 있다.
최적화된 3D 모델(140)을 생성하기 위해, 모델 최적화 디바이스(165)는 비초점 구역들(160) 내의 텍스처들의 품질을 감소시킬 수 있다. 비초점 구역들(160) 내의 텍스처들의 품질을 감소시키기 위해, 모델 최적화 디바이스(165)는 비초점 구역(160) 내의 텍스처들 각각의 해상도를 3D 모델(135) 내의 대응하는 텍스처의 더 높은 해상도로부터 감소시킬 수 있다. 모델 최적화 디바이스(165)는 텍스처들의 해상도를 감소시키기 위해 임의의 적절한 방법을 사용할 수 있다. 비초점 구역들(160) 내의 텍스처들의 품질을 감소시킴으로써, 모델 최적화 디바이스(165)는 최적화된 구역들(170)을 생성한다.
모델 최적화 디바이스(165)는 초점 구역들(155)에 대한 데이터를 프로세싱할 수 있거나, 또는 3D 모델(135)의 초점 구역들(155)에 대한 데이터를 프로세싱하는 것을 스킵하기로 결정할 수 있다. 예컨대, 모델 최적화 디바이스(165)는 초점 구역들(155) 내의 텍스처들의 품질을 감소시키지 않을 수 있는데, 예컨대, 모델 최적화 디바이스(165)는 초점 구역들(155)에 대한 텍스처들을 프로세싱하지 않기로 결정할 수 있다. 일부 예들에서, 모델 최적화 디바이스(165)는 모델 최적화 디바이스(165)가 비초점 구역들(160)에 대한 텍스처들의 품질을 감소시키는 양 미만의 양만큼 초점 구역들(155)에 대한 텍스처들의 품질을 감소시킬 수 있다. 이는 초점 구역들(155)에 대한 텍스처들이 비초점 구역들(160)에 대한 텍스처들보다 더 높은 품질을 가질 가능성이 있는 것을 보장한다. 초점 구역들(155)은 최적화된 3D 모델(140) 내의 비최적화된 구역들(175)이 된다.
최적화된 3D 모델(140)은 최적화된 구역들(170)과 비최적화된 구역들(175) 둘 모두를 포함한다. 모델 최적화 디바이스(165)는 모델링 시스템(105) 내의 비휘발성 메모리에 최적화된 3D 모델(140)을 저장한다. 최적화된 3D 모델(140)은 감소된 품질, 예컨대 해상도를 갖는 최적화된 구역들(170) 내의 텍스처들로 인해 3D 모델(135)보다 더 작다.
모델링 시스템(105)은 임의의 적절한 시간에 3D 모델(135)로부터 최적화된 3D 모델(140)을 생성할 수 있다. 예컨대, 모델링 시스템(105)은, 예컨대 초점들을 결정하는 데 사용되는 뷰어 데이터의 수신 시에 최적화된 3D 모델(140)을 생성할 수 있다. 일부 예들에서, 모델링 시스템(105)은 모델 요청(125)의 수신 시에 최적화된 3D 모델(140)을 생성할 수 있다.
모델 요청(125)을 수신하는 것에 응답하여, 모델링 시스템(105)은 최적화된 3D 모델(140)을 예컨대 3D 모델(130)로서 네트워크(110)를 사용하여 디바이스(115)로 송신할 수 있다. 이어서, 디바이스(115)는 디스플레이(120) 상에 3D 모델(130)을 디스플레이할 수 있다. 디스플레이(120) 상의 3D 모델(130)의 표시는 비최적화된 구역들(175) 내의 더 높은 해상도의 텍스처들 및 최적화된 구역들(170) 내의 더 낮은 해상도의 텍스처들을 갖는 카메라의 3D 모델(130)을 나타낸다. 예컨대, 카메라의 정면 뷰는 비최적화된 구역(175)에 대응하고 더 높은 해상도를 가질 수 있는 한편, 카메라의 저면 뷰는 최적화된 구역(170)에 대응하고 더 낮은 해상도를 가질 수 있다.
일부 구현들에서, 디스플레이(120) 상의 표시 동안, 비최적화된 구역들(175)이 최적화된 구역들(170) 전에 로딩될 수 있다. 예컨대, 최적화된 3D 모델(140)로서의 3D 모델(130)은 표시 디바이스가 표시를 위해 3D 모델(130)의 구역들을 로딩해야 하는 순서를 나타내는 로드 데이터를 포함할 수 있다. 로드 데이터는 표시 디바이스, 예컨대 디바이스(115)가 비최적화된 구역들(175), 예컨대 카메라의 정면을 로딩하는 것으로 시작한 후에 최적화된 구역들(170), 예컨대 카메라의 저면을 로딩해야 한다는 것을 나타낼 수 있다.
최적화된 3D 모델(140)을 디바이스(115)로 전송한 후에, 모델링 시스템(105)은 더 높은 품질의 3D 모델(135)을 디바이스(115)로 전송할지 여부를 결정할 수 있다. 3D 모델(135)을 디바이스(115)로 전송하기 위한 결정은 3D 모델(135)의 크기, 모델링 시스템(105)과 디바이스(115) 사이의 네트워크(110)의 사용, 예컨대 네트워크(110) 대역폭, 또는 이들 둘 모두에 기초할 수 있다. 네트워크(110)가 임계 사용량 미만의 사용량을 갖고 이용가능 대역폭을 갖는 경우, 모델링 시스템(105)은 더 큰 3D 모델(135)을 디바이스(115)로 전송할 수 있다.
3D 모델들을 최적화함으로써, 디바이스(115)의 디스플레이(120) 상에 3D 모델이 로딩되는 시간이 감소될 수 있다. 디바이스(115)는 비최적화된 구역들(175)만을 위한 고 해상도 데이터 및 최적화된 구역들(170)에 대한 저 해상도 데이터를 포함하는 더 작은 최적화된 3D 모델(140)을 먼저 로딩할 수 있다. 이어서, 예컨대, 디바이스(115)가 모델링 시스템(105)으로부터 더 높은 품질의 3D 모델(135)을 추후에 수신할 때, 디바이스(115)는 3D 모델(135)에 대한 고 해상도 데이터를 임의로 로딩할 수 있다. 이는 로드 시간들을 개선하거나, 예컨대, 더 낮은 해상도 콘텐츠만을 포함하는 3D 모델을 사용하는 것이 아니라 더 초점이 맞추어지는 특정 영역들을 더 높은 해상도로 유지함으로써 3D 모델 품질을 개선하거나, 예컨대 모델링 시스템(105)으로부터 디바이스(115)로 3D 모델 데이터를 송신하는 데 요구되는 대역폭을 감소시키거나, 또는 이들 중 2개 이상의 조합을 행할 수 있다.
일부 구현들에서, 3D 모델(130)의 구역들은 고 해상도 데이터와 저 해상도 데이터의 조합들을 포함할 수 있다. 예컨대, 3D 모델(130)은 구역들 중 일부에 대해 고 해상도 데이터와 저 해상도 데이터의 조합을 포함할 수 있다. 일부 예들에서, 3D 모델(130)은 구역들 각각에 대해 고 해상도 데이터와 저 해상도 데이터의 조합을 포함할 수 있다.
고 해상도 데이터는 구역에 대한 더 많은 및/또는 더 작은 메시들을 포함할 수 있는 한편, 저 해상도 데이터는 구역에 대한 더 적은 및/또는 더 큰 메시들을 포함할 수 있다. 뷰어 상호작용들, 이용가능 네트워크 대역폭, 및 이용가능 프로세싱 리소스들, 또는 이들 중 2개 이상의 조합에 기초하여, 시스템, 예컨대 디바이스(115) 상의 렌더링 시스템은 3D 모델(130)의 다양한 구역들에 대해 고 해상도 데이터 또는 저 해상도 데이터를 선택 및 사용할 수 있다. 시스템은, 예컨대, 뷰잉 세션 전에 또는 뷰잉 세션 동안, 고 해상도 데이터 또는 저 해상도 데이터를 사용하는 것에 기초하여, 구역의 품질을 동적으로 변경할 수 있다.
일부 구현들에서, 모델링 시스템(105)은 일부 구역들에 대해 저 해상도 데이터와 고 해상도 데이터를 동시에 전송할 수 있거나, 일부 구역들에 대해 저 해상도 및 고 해상도 데이터를 필요할 때 전송할 수 있거나, 일부 구역들에 대해 일부 저 해상도 데이터를 전송한 후에 일부 고 해상도 데이터를 전송할 수 있거나, 또는 이들 중 2개 이상의 조합을 행할 수 있다. 후속 고 해상도 데이터는 모두 한 번에 또는 별개의 메시지들로 전송될 수 있다. 예컨대, 3D 모델(130)은 처음에 특정 구역이 저 해상도인 상태로 로딩될 수 있다. 디바이스(115)가 3D 모델(130)을 표시할 때, 디바이스(115)는, 예컨대, 디스플레이(120) 상에 표시되는 콘텐츠의 품질을 개선하기 위해, 저 해상도 데이터를 고 해상도 데이터로 대체할 수 있다. 이러한 방식으로, 디바이스(115)는 표시 동안 3D 모델(130)을 동적으로 업데이트할 수 있다.
일부 구현들에서, 모델링 시스템(105)은, 예컨대 뷰어 세션에 대해, 뷰어 데이터, 세션 브라우징 거동, 또는 이들 둘 모두를 사용하여 초점 가중치들을 결정할 수 있다. 뷰어 세션에 특정적인 초점 가중치들의 결정은 모델링 시스템(105)이 그 뷰어 세션, 예컨대, 디바이스(115)의 기능, 요청 디바이스(115)와의 네트워크 연결, 요청 디바이스(115)에 의해 표시되는 특정 콘텐츠, 또는 이들 중 2개 이상의 조합에 특정적인 3D 모델(130)의 구역들을 동적으로 구성하는 것을 가능하게 할 수 있다. 예컨대, 모델링 시스템은, 초점 가중치들에 기초하여, 일부 구역들에 대해, 저 해상도 데이터, 중간 해상도 데이터, 고 해상도 데이터, 또는 이들 중 2개 이상의 조합을 동적으로 결정할 수 있다. 일부 구현들에서, 모델링 시스템은 초점 가중치들에 기초하여 3D 모델(130)의 사전 맞춤화된 버전들을 생성 및 캐싱하고, 개별 뷰어들 및/또는 개별 뷰잉 세션들에 대해 3D 모델(130)의 사전 맞춤화된 버전들 중 하나를 선택할 수 있다.
예컨대, 디바이스(115)가 브라우징 세션 동안 셔츠와 같은 특정 카테고리 내의 다수의 상이한 3D 모델을 표시하는 경우, 모델링 시스템(105)은 브라우징 세션 동안 표시되는 콘텐츠, 예컨대, 브라우징 세션 동안 표시되는 다수의 상이한 3D 모델의 특정 뷰잉 각도들에 기초하여, 셔츠의 3D 모델(130)의 구역들을 동적으로 구성할 수 있다. 모델링 시스템(105)은 세션에 대해 낮은 가중치의 초점들을 포함하는 셔츠의 구역들에 대해 저 해상도 데이터를 전송할 수 있다. 모델링 시스템은 세션에 대해 높은 가중치의 초점들을 포함하는 셔츠의 구역들에 대해 고 해상도 데이터를 전송할 수 있다.
일부 구현들에서, 3D 모델(130)은 동일한 텍스처 또는 텍스처들을 갖는 다수의 구역을 포함할 수 있다. 예컨대, 카메라의 3D 모델(130)이 렌즈를 포함할 때, 3D 모델(130)은 특정 텍스처를 갖는 렌즈의 상면 상의 제1 구역 및 특정 텍스처를 갖는 렌즈의 저면 상의 제2 구역을 포함할 수 있다. 모델링 시스템(105)은 특정 개별 구역들, 예컨대 렌즈의 저면 또는 반복 텍스처를 포함하는 모든 구역들 내의 반복 텍스처, 예컨대 특정 텍스처를 최적화하기로 결정할 수 있다. 일부 예들에서, 모델링 시스템(105)은, 반복 텍스처가 초점 구역(155)에 포함되지 않을 때에만 그 반복 텍스처을 최적화할 수 있다. 일부 구현들에서, 모델링 시스템(105)은, 반복 텍스처, 예컨대 특정 텍스처가 하나 이상의 초점 구역(155), 예컨대 렌즈의 상면에 위치된 경우, 그 반복 텍스처를 최적화하지 않기로 결정할 수 있다.
모델링 시스템(105)은 본 문서에서 설명되는 시스템들, 구성요소들, 및 기법들이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상에 컴퓨터 프로그램들로서 구현되는 시스템의 예이다. 디바이스들(115)은 개인용 컴퓨터들, 모바일 통신 디바이스들, 증강 현실("AR") 고글들, 가상 현실("VR") 고글들, 및 네트워크(110)를 통해 데이터를 송신 및 수신할 수 있는 다른 디바이스들을 포함할 수 있다. 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 또는 이들의 조합과 같은 네트워크(110)는 디바이스들(115)과 모델링 시스템(105)을 연결한다.
모델링 시스템(105)은 단일 서버 컴퓨터를 사용할 수 있거나, 또는 예컨대 클라우드 컴퓨팅 서비스로서 배치된 원격 컴퓨터들의 세트를 포함하는, 서로 연계하여 동작하는 다수의 서버 컴퓨터를 사용할 수 있다. 모델링 시스템(105)은 초점 디바이스(145) 및 모델 최적화 디바이스(165)를 포함하는 여러 개의 상이한 기능 구성요소를 포함할 수 있다. 모델링 시스템(105)의 다양한 기능 구성요소들은 별개의 기능 구성요소들로서 또는 동일한 기능 구성요소의 상이한 모듈들로서 하나 이상의 컴퓨터 상에 설치될 수 있다. 예컨대, 모델링 시스템(105)의 초점 디바이스(145) 및 모델 최적화 디바이스(165)는 네트워크를 통해 각각 커플링된 하나 이상의 위치에 있는 하나 이상의 컴퓨터 상에 설치된 컴퓨터 프로그램들로서 구현될 수 있다. 예컨대, 클라우드 기반 시스템들에서, 이러한 구성요소들은 분산 컴퓨팅 시스템의 개별 컴퓨팅 노드들에 의해 구현될 수 있다.
도 2는 최적화된 3D 모델을 생성하기 위한 프로세스(200)의 흐름도이다. 예컨대, 프로세스(200)는 환경(100)으로부터의 모델링 시스템(105)에 의해 사용될 수 있다. 일부 예들에서, 프로세스(200)의 단계들 중 일부는 모델링 시스템(105)에서 초점 디바이스(145), 모델 최적화 디바이스(165), 또는 이들 둘 모두에 의해 수행될 수 있다.
모델링 시스템은, 메모리로부터, 뷰어에게 표시하기 위해 디스플레이 상에 생성되었던 객체의 뷰의 적어도 일부를 각각 묘사하는 객체의 이미지들에 대한 데이터를 검색한다(202). 이미지들에 대한 데이터는, 예컨대, 가상 카메라의 위치, 배향, 초점 거리, 또는 이들 중 2개 이상의 조합일 수 있다. 일부 예들에서, 이미지들에 대한 데이터는 예컨대 가상 카메라에 대한 객체의 위치 및 배향일 수 있다.
객체는 2개 이상의 구역을 가질 수 있고, 이들 각각은 하나 이상의 텍스처를 포함할 수 있다. 객체의 이미지들은 뷰어에게 디스플레이되었던 객체의 뷰들의 다양한 부분들, 다수의 뷰어에게 디스플레이되었던 객체의 뷰들의 부분들, 또는 이들 둘 모두를 묘사할 수 있다. 예컨대, 모델링 시스템 또는 다른 시스템은 객체의 3D 모델을 디바이스에 제공할 수 있다. 디바이스는 3D 모델을 사용하여 객체의 하나 이상의 뷰를 표시할 수 있다. 디바이스는 이러한 뷰들을 표현하는 데이터를 예컨대 이미지들로서 캡처할 수 있다.
카메라의 3D 모델의 경우, 구역들은, 예컨대, 카메라의 정면 구역, 우측면 구역, 좌측면 구역, 상면 구역, 저면 구역, 및 배면 구역일 수 있다. 카메라의 3D 모델의 상면 구역 상의 예시적인 텍스처는 카메라의 플래시 마운트의 이미지일 수 있는 한편, 카메라의 3D 모델의 저면 구역 상의 예시적인 텍스처는 배터리 격실의 이미지일 수 있다.
예시적인 뷰어 상호작용들 동안, 제1 뷰어는 플래시 마운트 텍스처를 포함하는 상면 구역 및 배터리 격실 텍스처를 포함하는 저면 구역을 볼 수 있다. 제2 뷰어는 제1 뷰어와 비교하여 상이한 각도로부터 플래시 마운트 텍스처를 포함하는 상면 구역만을 볼 수 있다. 모델링 시스템은 제1 뷰어 상호작용으로부터 상면 및 저면 뷰들에 대한 제1 데이터를 검색할 수 있고, 제2 뷰어 상호작용으로부터 상면 뷰에 대한 제2 데이터를 검색할 수 있다.
일부 예들에서, 이미지들은 다수의 뷰어 세션으로부터 유래할 수 있다. 예컨대, 제1 뷰어는 제1 세션 동안 카메라의 3D 모델을 볼 수 있다. 제2 뷰어 또는 제1 뷰어는 제1 세션과 상이한 세션인 제2 세션 동안 카메라의 3D 모델을 볼 수 있다.
일부 구현들에서, 이미지들에 대한 데이터는 물리적 VR 스튜디오와 같은 스튜디오 내의 뷰어 세션들로부터 유래할 수 있다. 예컨대, 뷰어는, 예컨대 소매점에서, 제품들의 3D 모델들을 바라보고 이들과 상호작용하는 VR 경험에 참여할 수 있다.
일부 구현들에서, 시스템은 메시들과 텍스처들의 다양한 조합들, 예컨대, 잠재적으로 최적화된 메시들, 텍스처들, 또는 이들 둘 모두를 랜덤으로 생성할 수 있다. 시스템은 뷰어들에게 조합들을 디스플레이하고, 피드백 데이터를 수신할 수 있다. 일부 예들에서, 시스템은 메시들과 텍스처들의 조합들 중 일부에 대한 로드 시간 데이터를 수집할 수 있다. 모델링 시스템은 최적화할 메시들과 텍스처들의 조합들을 결정하기 위해 데이터를 사용할 수 있다.
모델링 시스템은 각각의 이미지에 대해 하나 이상의 잠재적 초점을 결정한다(204). 잠재적 초점들 각각은, 디스플레이 상의 객체의 표시를 보는 뷰어의 초점이 맞추어졌을 가능성이 있는, 이미지들로부터의 대응하는 이미지 내의 추정된 포인트일 수 있다. 추정된 포인트는 이미지 내의 포인트, 3D 모델 상의 포인트, 또는 이들 둘 모두일 수 있다. 모델링 시스템은, 예컨대, 환경(100)으로부터의 초점 디바이스(145)를 사용하여 잠재적 초점들을 식별할 수 있다.
잠재적 초점들을 식별하기 위해, 모델링 시스템은 객체의 3D 모델의 이미지들로부터 3D 모델 상으로 하나 이상의 광선을 투사할 수 있다. 모델링 시스템은 가상 카메라의 위치, 배향, 초점 거리, 또는 이들 중 2개 이상의 조합을 사용하여 광선들을 투사할 수 있다. 모델링 시스템은 가상 카메라의 위치, 배향 및/또는 초점 거리; 3D 모델의 위치 및/또는 배향; 또는 이들 둘 모두를 사용하여 잠재적 초점들을 결정할 수 있다. 객체의 3D 모델의 이미지들은 3D 모델, 예컨대 3D 모델의 일부의 시야를 묘사할 수 있다. 모델링 시스템은, 예컨대, 예컨대 각각의 이미지의 시야에 대한 뷰어에 대해 각각의 이미지를 생성했을, 3D 모델을 포함하는 가상 세계 내의 가상 카메라에 의해 표현되는 방향으로부터 이미지로부터 광선들을 투사한다.
도 3은 이미지(305)로부터 투사된 2개의 광선(304)을 갖는 3D 모델(302)을 포함하는 예시적인 환경(300)의 예시이다. 모델링 시스템은 잠재적 초점들을 결정하기 위해 이미지들(305) 중 하나 이상에 대해 환경(300)을 사용할 수 있다.
예컨대, 각각의 이미지에 대해, 모델링 시스템은 광선(304) 또는 다수의 광선을 생성하기 위한 하나 이상의 구역(306, 308)을 결정할 수 있다. 광선(304)을 생성하기 위한 구역들(306, 308)을 결정하기 위해, 모델링 시스템은 각각의 구역을 정의하기 위한 하나 이상의 기준 포인트, 기준 포인트로부터의 거리, 또는 이들 둘 모두를 식별할 수 있다. 모델링 시스템은 기준 포인트로서 이미지(305)의 중심을 사용할 수 있다. 일부 예들에서, 모델링 시스템은 이미지(305)의 좌측 1/3 내의 포인트, 예컨대, 이미지의 좌측 1/3의 중앙에 놓인 포인트를 기준 포인트로서 사용할 수 있다. 일부 예들에서, 모델링 시스템은 기준 포인트를 결정하기 위해, 이미지(305)를 생성하는 데 사용되었을 수 있는 가상 카메라의 위치를 사용할 수 있다. 예컨대, 모델링 시스템은 기준 포인트를 결정하기 위해, 이미지(305), 3D 모델(302), 또는 이들 둘 모두에 대한 가상 카메라의 위치를 사용할 수 있다.
모델링 시스템은 임의의 적절한 수의 구역을 결정할 수 있다. 예컨대, 제1 구역(306)은 원형이고 이미지(305)의 중앙에 놓일 수 있다. 제2 구역(308)은 원형이고 이미지(305)의 중앙에 놓일 수 있는데, 예컨대, 제1 구역(306)과 동일한 중심(310)을 가질 수 있다. 제2 구역(308)은 제1 구역(306)과 중첩되지 않을 수 있는데, 예컨대, 제2 구역(308)은 제1 구역(306)에 의해 정의된 홀을 갖는 토로이드(toroid)일 수 있다.
모델링 시스템은 이미지(305)로부터 카메라의 모델(302)을 향해 임의의 적절한 각도로 광선들을 투사할 수 있다. 예컨대, 모델링 시스템은 광선(304)이 투사되는 구역들(306, 308)에 기초하여, 광선(304)을 생성하기 위한 각도 편차 범위를 결정할 수 있다. 모델링 시스템은 이미지(305)의 중심(310)으로부터의 구역의 거리를 사용하여 각도 편차 범위들의 크기를 결정할 수 있다. 일부 예들에서, 중심(310)에 더 가까이 있는 구역들은 중심(310)으로부터 더 멀리 있는 구역들보다 더 작은 각도 편차 범위를 가질 수 있다. 모델링 시스템은 각도 편차 범위 내에 있는 각도 편차(312)를 랜덤으로 선택하고, 랜덤으로 선택된 각도 편차(312)로 광선(304)을 생성할 수 있다. 모델링 시스템은, 각각의 광선(304)에 대해, 광선이 3D 모델(302)과 교차하는 포인트를 대응하는 잠재적 초점(314)으로서 선택할 수 있다.
잠재적 초점(314)은 임의의 적절한 크기일 수 있다. 모델링 시스템은 3D 모델(302)의 해상도, 3D 모델의 크기, 또는 임의의 다른 적절한 데이터에 기초하여 잠재적 초점들의 크기를 선택할 수 있다. 예컨대, 잠재적 초점은 도 3에 묘사된 잠재적 초점(314)보다 더 작거나 또는 더 클 수 있다.
도 2를 다시 참조하면, 모델링 시스템은, 잠재적 초점들 각각에 대해, 잠재적 초점이 적어도 초점일 임계 가능성을 갖는지 여부를 결정한다(206). 모델링 시스템은 적어도 초점일 임계 가능성을 갖는 잠재적 초점을 초점으로서 카테고리화할 수 있다. 예컨대, 모델링 시스템은 잠재적 초점을 초점으로서 카테고리화하는 데이터를 메모리, 예컨대 메모리 상에 구현된 데이터베이스에 저장할 수 있다.
적어도 초점일 임계 가능성을 갖는 잠재적 초점들(314)을 선택하기 위해, 모델링 시스템은 이미지(305)의 중심(310)으로부터 투사된 광선, 예컨대 어떠한 각도 편차도 갖지 않는 광선으로부터의 잠재적 초점(314)의 거리(316), 또는 이미지(305)의 중심(310)으로부터의 잠재적 초점(314)을 결정하는 데 사용된 광선(304)의 거리(316)를 사용하여, 잠재적 초점들(314)을 가중화할 수 있다. 예컨대, 대응하는 이미지의 중심(310)에 더 가까이 있는 잠재적 초점(314)은 이미지(305)의 중심(310)으로부터 더 멀리 있는 잠재적 초점(314)과 비교하여 더 높은 가중치를 가질 수 있다.
예컨대, 뷰어가 카메라의 3D 모델과 상호작용할 때, 시스템은 스크린 상에 디스플레이된 이미지(305)의 중심(310)에 뷰어의 초점이 맞추어질 것이라고 예측할 수 있다. 시스템은 스크린의 에지 쪽에 디스플레이된 포인트에 뷰어의 초점이 또한 맞추어질 것이라고 예측할 수 있다. 시스템은 대응하는 이미지의 중심(310)에 더 가까이 있는 제1 포인트가, 이미지의 중심(310)으로부터 더 멀리 있는 제2 포인트와 비교하여, 뷰어의 초점이 맞추어졌을 포인트일 가능성이 더 높다고 결정할 수 있다. 이로 인해, 시스템은 제1 포인트에 제2 포인트보다 더 높은 가중치를 할당할 수 있다.
포인트가 초점일 가능성은 뷰어 상호작용들 동안의 포인트가 잠재적 초점(314)인 이미지의 수, 뷰어 상호작용들 동안의 잠재적 초점(314)과 이미지들의 중심(310) 사이의 거리(316), 잠재적 초점(314)에 대한 가중치, 또는 이들 중 2개 이상의 조합에 기초할 수 있다.
예컨대, 제1 포인트는 뷰어 상호작용들 동안 10개의 이미지의 중심(310)에 디스플레이될 수 있다. 10개의 이미지의 중심(310)으로부터 거리(316)에 위치된 제2 포인트는 제1 포인트와 비교하여 초점일 가능성이 더 낮을 수 있다. 마찬가지로, 단지 5개의 이미지의 중심(310)인 제3 포인트는 제1 포인트와 비교하여 초점일 가능성이 더 낮을 수 있다. 대안적으로, 20개의 이미지의 중심(310)에 있는 제4 포인트는 제1 포인트와 비교하여 초점일 가능성이 더 높을 수 있다.
일부 구현들에서, 모델링 시스템은 잠재적 초점들에 대해 가중치들을 생성할 수 있다. 예컨대, 모델링 시스템은 가중 초점 그래프, 가중 구역 그래프, 또는 이들 둘 모두를 생성할 수 있다. 모델링 시스템은, 예컨대 위에서 설명된 바와 같이, 가중치들을 생성하고, 가중치들을 포함하는 그래프를 생성할 수 있다. 그래프는 3D 모델을 표현할 수 있고, 3D 모델 내의 각각의 잠재적 초점에 대한 가중치를 포함할 수 있다. 예컨대, 그래프는 메시, 정점, 에지, 또는 이들 중 2개 이상의 조합에 대한 가중치를 포함할 수 있다.
모델링 시스템은 잠재적 초점, 잠재적 초점을 포함하는 구역, 또는 이들 둘 모두가 초점 또는 초점 구역일 가능성을 결정하기 위해 가중치 임계치를 사용할 수 있다. 모델링 시스템이 0 내지 1(0 및 1 포함)의 가중치들을 사용할 때, 가중치 임계치는 0.25일 수 있다. 가중치가 임계 가중치 이상일 때 또는 가중치가 임계 가중치 초과일 때, 가중치는 임계 가중치를 만족시킬 수 있다. 일부 예들에서, 예컨대, 더 낮은 값들이 더 높은 초점일 가능성을 표현하는 경우, 가중치가 임계 가중치 이하일 때 또는 가중치가 임계 가중치 미만일 때, 가중치는 임계 가중치를 만족시킬 수 있다.
예컨대, 잠재적 초점에 대한 가중치가 가중치 임계치를 만족시킬 때, 모델링 시스템은 잠재적 초점이 초점이라고 결정할 수 있다. 구역에 포함된 잠재적 초점에 대한 가중치가 가중치 임계치를 만족시킬 때, 모델링 시스템은 구역이 초점 구역이라고 결정할 수 있다. 일부 예들에서, 구역이 다수의 잠재적 초점을 포함할 때, 모델링 시스템은 다수의 잠재적 초점의 가중치들의 조합을 가중치 임계치와 비교할 수 있다. 예컨대, 모델링 시스템은 가중치들의 합 또는 평균 가중치를 가중치 임계치와 비교할 수 있다. 모델링 시스템은 가중치 임계치들 각각에 대해 상이한 최적화 레벨들을 적용할 때 다수의 가중치 임계치를 사용할 수 있다.
일부 구현들에서, 모델링 시스템은 초점을 결정하기 위해 평균 가중치들을 클러스터링할 수 있다. 예컨대, 모델링 시스템은, 가중치 임계치를 각각 만족시키고 서로 또는 그룹 내의 다른 포인트들로부터 임계 거리 내에 있는 가중치들의 그룹을 결정할 수 있다. 모델링 시스템은 가중치들의 그룹의 중심, 예컨대, 중심에 가장 가까이 있는 포인트를 결정하고, 중심을 초점으로서 카테고리화할 수 있다. 모델링 시스템은 초점을 초점 구역으로서 사용하거나, 초점을 둘러싸는 더 큰 구역을 초점 구역으로서 카테고리화하거나, 또는 이들 둘 모두를 행할 수 있다.
일부 구현들에서, 모델링 시스템은 네트워크 대역폭, 디바이스 특정 능력들, 또는 이들 둘 모두를 사용하여, 가중치들을 생성하거나, 가중치 임계치를 결정하거나, 또는 이들 둘 모두를 행할 수 있다. 예컨대, 모델링 시스템은, 3D 모델을 요청하는 디바이스에 대한 이용가능 네트워크 대역폭이 더 높은 이용가능 네트워크 대역폭과 비교하여 더 낮을 때, 초점들 및 초점 구역들을 결정하기 위해 더 높은 가중치 임계치를 선택할 수 있다. 유사하게, 모델링 시스템은 더 높은 프로세싱 능력을 갖는 디바이스보다 더 낮은 프로세싱 능력을 갖는 디바이스에 대해 더 높은 가중치 임계치를 선택할 수 있다. 이는 더 적은 초점들 및 더 많은 최적화된 구역들을 발생시킬 것이다.
일부 구현들에서, 모델링 시스템은 포인트가 초점이 되는 임계치를 만족시키는지 여부를 결정하기 위해 잠재적 초점들을 클러스터링할 수 있다. 예컨대, 모델링 시스템은 잠재적 초점들을 사용하여, 집성된 뷰잉 데이터를 생성할 수 있다. 모델링 시스템은 잠재적 초점이 적어도 초점일 임계 가능성을 갖는지 여부를 결정하기 위해, 집성된 뷰잉 데이터를 사용할 수 있다. 예컨대, 모델링 시스템은 3D 모델의 히트 맵을 생성함으로써 클러스터 분석을 수행할 수 있다. 히트 맵은, 뷰어들이 다른 구역들보다 더 초점을 맞추었던 구역들을 구별하기 위해, 3D 모델의 구역들을 다양한 패턴들, 음영, 컬러들, 또는 이들 모두로 표현할 수 있다.
일부 구현들에서, 모델링 시스템은 3D 모델 상의 또는 그 주위의 3D 좌표 경로들의 클러스터링을 수행할 수 있다. 3D 좌표 경로는 3D 축들, 예컨대 x, y 및 z 축들에 의해 정의되는 3D 공간 내의 하나 이상의 포인트 사이의 경로이다. 모델링 시스템은 디스플레이 상에 표시되는 이미지들에 기초하여 하나 이상의 좌표 경로를 결정할 수 있다. 예컨대, 이미지들에 대한 데이터는 디바이스가 좌표 포인트(p1 = (x1, y1, z1)), 포인트(p2 = (x2, y2, z2)), 그리고 이어서 포인트(p3 = (x3, y3, z3))에 중심이 놓인 이미지들을 표시했다는 것을 나타낼 수 있다. 이러한 데이터를 사용하여, 모델링 시스템은 포인트(p1), 포인트(p2), 그리고 이어서 포인트(p3)를 포함하는 좌표 경로를 결정할 수 있다. 모델링 시스템은 상이한 뷰어 세션들에 대해 다수의 좌표 경로를 결정할 수 있다.
모델링 시스템은 좌표 경로들을 사용하여 3D 모델의 구역들을 카테고리화할 수 있다. 예컨대, 모델링 시스템은 더 적은 좌표 경로 클러스터들을 갖는 3D 모델의 구역들을 비초점 구역들로서 식별할 수 있다. 모델링 시스템은 더 많은 좌표 경로 클러스터들을 갖는 3D 모델의 구역들을 초점 구역들로서 식별할 수 있다.
모델링 시스템은 3D 초점 밀도 원뿔(3D focal density cone)을 위한 경로를 생성하기 위해, 예컨대 다수의 뷰어 또는 다수의 뷰잉 세션으로부터의 다수의 좌표 경로를 집성할 수 있다. 3D 초점 밀도 원뿔은 3D 모델의 이미지의 표시를 위한 최적의 뷰잉 각도를 표현할 수 있다. 경로는 3D 모델의 상이한 부분들에 대한 최적의 뷰잉 각도를 각각 표현하는 다수의 3D 초점 밀도 원뿔을 포함할 수 있다. 모델링 시스템은 3D 초점 밀도 원뿔에 포함된 구역들을 결정할 수 있다. 모델링 시스템은 3D 초점 밀도 원뿔에 포함된 구역들을 초점 구역들로서 카테고리화하거나, 이러한 초점 구역들의 최적화를 스킵하기로 결정하거나, 또는 이들 둘 모두를 행할 수 있다. 모델링 시스템은 3D 초점 밀도 원뿔에 포함되지 않은 구역들을 비초점 구역들로서 카테고리화하거나, 이러한 비초점 구역들을 최적화하거나, 또는 이들 둘 모두를 행할 수 있다.
도 4는 프로세싱된 3D 모델에 대한 집성된 뷰잉 데이터를 묘사하는 히트 맵(400)의 예시적인 예시이다. 히트 맵(400)은 3D 모델 내의 각각의 포인트가 잠재적 초점인 횟수, 잠재적 초점에 대한 가중치, 또는 이들 둘 모두를 표현할 수 있다. 예컨대, 가장 어두운 음영 구역(402) 내의 3D 모델 내의 각각의 포인트는 적어도 잠재적 초점에 대한 제1 임계 가능성을 만족시킬 수 있다. 임계 가능성은, 몇몇 예를 들면, 양(예컨대, 다수의 이미지가 포인트를 잠재적 초점으로서 갖는 것), 또는 퍼센트(예컨대, 이미지들의 10.25 퍼센트가 포인트를 잠재적 초점으로서 갖는 것)일 수 있다. 중간 어두운 음영 구역(404) 내의 3D 모델 내의 각각의 포인트는 제1 임계 가능성을 만족시키지 않지만, 잠재적 초점에 대한 제2 임계 가능성을 만족시킨다. 예컨대, 중간 어두운 음영 구역(404) 내의 각각의 포인트는 하위 임계 퍼센트 초과 상위 임계 퍼센트 미만의 퍼센트를 가질 수 있는데, 예컨대, 이미지들의 15 퍼센트 초과 25 퍼센트 미만에서 잠재적 초점일 수 있다. 가장 밝은 음영 구역(406) 내의 3D 모델 내의 각각의 포인트는 제2 임계 가능성 또는 제1 임계 가능성을 만족시키지 않는다. 일부 예들에서, 히트 맵(400)은 하나의 임계 가능성만을 포함하거나 또는 2개 초과의 임계 가능성을 포함할 수 있다.
모델링 시스템은 가장 밝은 음영 구역(406)을 비초점 구역으로서 카테고리화할 수 있는데, 그 이유는 가장 밝은 음영 구역(406) 내의 포인트들이 잠재적 초점에 대한 제2 임계 가능성을 만족시키지 않기 때문이다. 모델링 시스템은 가장 어두운 음영 구역(402) 및 중간 어두운 음영 구역(404)을 초점 구역들로서 카테고리화할 수 있는데, 그 이유는 구역들(402 및 404)이 제1 임계 가능성 또는 제2 임계 가능성 중 하나 또는 둘 모두를 만족시키기 때문이다.
모델링 시스템이 다수의 임계 가능성을 가질 때, 모델링 시스템은 다수의 "초점 구역" 카테고리화를 포함할 수 있다. 예컨대, 모델링 시스템은 중간 어두운 음영 구역(404)에 대한 중간 초점 구역 카테고리화 및 가장 어두운 음영 구역(402)에 대한 높은 초점 구역 카테고리화를 사용할 수 있다.
모델링 시스템은 구역들, 포인트들, 또는 이들 둘 모두를 카테고리화할 수 있다. 예컨대, 모델링 시스템은, 예컨대, 가장 밝은 음영 구역(406)을 비초점 구역으로서 카테고리화하는 것에 추가하여 또는 이와 함께, 가장 밝은 음영 구역(406) 내의 포인트들을 비초점 포인트들로서 카테고리화할 수 있다. 모델링 시스템은, 예컨대, 가장 어두운 음영 구역(402)을 초점 구역으로서 카테고리화하는 것에 추가하여 또는 이와 함께, 가장 어두운 음영 구역(402) 내의 포인트들을 초점 포인트들로서 카테고리화할 수 있다.
모델링 시스템은 3D 모델 내의 포인트들 각각에 대한 값들을 정규화할 수 있다. 예컨대, 모델링 시스템은 3D 이미지 내의 포인트들에 대한 최고 값, 예컨대, 포인트가 잠재적 초점인 최고 횟수를 결정할 수 있다. 모델링 시스템은 3D 모델 내의 포인트들 각각에 대한 값들을 정규화하기 위해 최고 횟수를 사용할 수 있다. 예컨대, 3D 모델 내의 제1 포인트가 100개의 이미지에서 잠재적 초점이고, 3D 모델 내의 제2 포인트가 63개의 이미지에서 잠재적 초점일 때, 모델링 시스템은 제1 포인트에 1.0의 정규화된 값을 할당하고, 제2 포인트에 0.63의 정규화된 값을 할당할 수 있다. 모델링 시스템은 히트 맵을 생성하기 위해, 정규화된 값들을 사용할 수 있다.
일부 예들에서, 다수의 잠재적 초점으로부터, 모델링 시스템은 적어도 정규화된 초점일 임계 가능성을 각각 갖는 잠재적 초점들의 제1 서브세트를 선택할 수 있거나, 또는 이의 선택을 스킵하기로 결정할 수 있다. 잠재적 초점들의 제1 서브세트는 가장 어두운 음영 구역(402) 내의 포인트들을 포함할 수 있다. 모델링 시스템은 적어도 초점일 임계 가능성을 각각 갖지 않는 잠재적 초점들(314)의 제2 서브세트를 선택할 수 있거나, 또는 이의 선택을 스킵하기로 결정할 수 있다. 잠재적 초점들의 제2 서브세트는 가장 밝은 음영 구역(406) 내의 포인트들을 포함할 수 있다. 모델링 시스템은 선택된 초점들을, 예컨대, 환경(100)의 초점 데이터베이스(150)에 저장할 수 있다.
도 2로 돌아가면, 잠재적 초점이 적어도 초점일 임계 가능성을 갖지 않는다고 결정하는 것에 응답하여, 모델링 시스템은 잠재적 초점을 초점이 아닌 것으로서 카테고리화한다(208). 예컨대, 도 4를 참조하면, 모델링 시스템은, 가장 밝은 음영 구역(406) 내의 포인트들 각각에 대해, 포인트가 초점이 아니라고 결정한다. 잠재적 초점을 초점이 아닌 것으로서 카테고리화하기 위해, 모델링 시스템은 잠재적 초점을 선택할 수 있거나, 또는 이의 선택을 스킵하기로 결정할 수 있다. 잠재적 초점을 선택할 때, 모델링 시스템은 각각 초점들이 아닌 잠재적 포인트들의 그룹을 선택할 수 있다.
모델링 시스템은, 비초점 구역들에 포함된 텍스처들의 해상도를 감소시킴으로써, 초점들이 아닌 포인트들을 포함하는 비초점 구역들을 최적화하기로 결정한다(210). 모델링 시스템은, 예컨대, 환경(100)의 모델 최적화 디바이스(165)를 사용하여 비초점 구역들을 최적화할 수 있다. 모델링 시스템은 비초점 구역들에 포함된 텍스처들의 해상도를 감소시킴으로써 비초점 구역들을 최적화하기로 결정할 수 있다. 예컨대, 도 4에서, 모델링 시스템은 구역(406)에 포함된 텍스처들의 해상도들을 감소시킴으로써 구역(406)을 최적화할 수 있다. 구역(406)에 포함된 텍스처들의 해상도들을 감소시킴으로써, 모델링 시스템은, 구역(406) 내의 포인트들에 대해, 요구 저장 공간, 데이터를 전송하는 데 요구되는 대역폭, 또는 이들 둘 모두를 감소시킬 수 있다.
잠재적 초점이 적어도 초점일 임계 가능성을 갖는다고 결정하는 것에 응답하여, 모델링 시스템은 잠재적 초점을 초점으로서 카테고리화한다(212). 예컨대, 도 4를 참조하면, 모델링 시스템은, 가장 어두운 음영 구역(402) 내의 포인트들 중 하나 이상에 대해, 포인트가 초점이라고 결정한다. 잠재적 초점을 초점으로서 카테고리화하기 위해, 모델링 시스템은 잠재적 초점을 초점으로서 선택할 수 있거나, 또는 잠재적 초점의 선택을 스킵하기로 결정할 수 있고, 예컨대, 초점들이 아닌 포인트들만을 선택할 수 있다. 잠재적 초점을 선택할 때, 모델링 시스템은 각각 초점들인 잠재적 초점들의 그룹을 선택할 수 있다.
모델링 시스템은 초점들인 포인트들을 포함하는 초점 구역들의 최적화를 스킵하기로 결정한다(214). 예컨대, 도 4에서, 모델링 시스템은 구역들(402 및 404)의 최적화를 스킵하기로 결정할 수 있는데, 그 이유는 구역들(402 및 404)이 초점들인 포인트들을 포함하는 초점 구역들이기 때문이다. 구역들(402 및 404)의 최적화를 스킵함으로써, 모델링 시스템은 구역들(402 및 404) 내의 텍스처들의 고 해상도를 유지한다. 구역들(402, 404, 또는 이들 둘 모두) 내의 콘텐츠의 고 해상도를 유지하는 것은 구역들(402, 404, 또는 이들 둘 모두) 내의 콘텐츠의 시각적 표시를 개선할 수 있다.
일부 구현들에서, 모델링 시스템은 3D 모델의 구역들을 최적화하기 위해 차등 접근법을 사용할 수 있다. 예컨대, 구역(404)은 구역(402)보다 더 적은 초점들을 갖지만 적어도 하나의 초점을 포함한다. 모델링 시스템은 구역(404) 내의 텍스처들의 해상도를 구역(402) 내의 텍스처들의 해상도보다 더 낮지만 구역(406) 내의 텍스처들의 해상도보다 더 높은 해상도로 감소시킬 수 있다.
일부 구현들에서, 모델링 시스템은 모든 구역들 내의 텍스처들의 해상도를 다양한 정도들로 감소시킬 수 있다. 예컨대, 이용가능 저장 공간, 네트워크 대역폭, 또는 이들 둘 모두가 제한되는 경우, 모델링 시스템은 초점 구역들과 비초점 구역들 둘 모두를 최적화하거나 또는 부분적으로 최적화하기로 결정할 수 있다. 예컨대, 구역(406) 내의 텍스처들의 해상도는 원래의 3D 모델 해상도보다 더 낮지만 구역들(404 및 406)의 최적화된 해상도들보다 더 높은 해상도로 감소될 수 있다.
단계(206)에서의 위의 결정의 어느 하나의 분기에 대해, 모델링 시스템은 초점 및 비초점 구역들을 사용하여, 최적화된 3D 모델을 생성할 수 있다(216). 예컨대, 모델링 시스템은 초점 구역들에 대한 더 높은 해상도 텍스처들, 및 비초점 구역들에 대한 더 낮은 해상도 텍스처들, 예컨대 감소된 해상도 텍스처들을 갖는 3D 모델을 생성할 수 있다. 모델링 시스템은 초점 구역들에 대한 데이터, 비초점 구역들에 대한 데이터, 또는 이들 둘 모두를 사용하여 3D 모델을 생성할 수 있다. 조합된 초점 및 비초점 구역들은 원래의 3D 모델보다 더 작은 크기를 갖는 최적화된 3D 모델을 형성한다. 일부 예들에서, 최적화된 3D 모델을 생성하는 것에 추가하여 또는 그 대신에, 모델링 시스템은 초점 구역들 및 비초점 구역들에 대한 데이터를 메모리에 저장할 수 있다.
도 5는 더 높은 해상도 구역 및 더 낮은 해상도 구역을 갖는 최적화된 3D 모델(500)의 예시적인 예시이다. 구역(502)은 예컨대 초점 구역에 대응하는 더 높은 해상도 구역이다. 일부 예들에서, 모델링 시스템은 최적화된 구역(502)을 갖지 않거나, 또는 더 낮은 해상도 구역보다 더 적은 정도로 최적화된 구역(502)을 갖는다. 따라서, 구역(502)은 최고 해상도의 텍스처들을 갖는 구역일 수 있거나, 또는 잠재적으로 최고 해상도의 텍스처들을 갖는 다수의 구역 중 하나일 수 있다. 구역(504)은, 구역(504)에 묘사된 콘텐츠의 부분적인 최적화로 인해, 구역(502)보다 더 낮은 해상도의 텍스처들을 갖는 구역이다. 구역(504)은 구역(502)만큼 높은 해상도를 갖지 않는 초점 구역에 대응할 수 있다. 구역(506)은 예컨대 비초점 구역에 대응하는 최저 해상도 구역이다. 모델링 시스템은 3D 모델(500)에 대한 최저 해상도의 텍스처들을 갖도록 최적화된 구역(506)을 갖는다. 감소된 해상도를 갖는 구역들에서, 하나 이상의 텍스처 또는 다른 콘텐츠의 품질은 원래의 3D 모델 내의 대응하는 텍스처들 또는 다른 콘텐츠의 품질과 비교하여 감소된다. 결과적인 최적화된 3D 모델(500)은 원래의 3D 모델보다 더 작은 크기를 갖는다.
3D 모델은 각각의 타입의 구역 중 하나 이상을 가질 수 있다. 예컨대, 3D 모델은 2개의 초점 구역 및 3개의 비초점 구역을 가질 수 있다. 2개의 초점 구역은 비연속적일 수 있는데, 예컨대, 비초점 구역들 중 하나 이상에 의해 분리될 수 있다. 3개의 비초점 구역 중 일부 또는 모두는 비연속적일 수 있는데, 예컨대, 2개의 초점 구역 중 하나 이상에 의해 분리될 수 있다.
모델링 시스템은 최적화된 3D 모델을 비휘발성 메모리에 저장한다(218). 더 낮은 품질의 최적화된 3D 모델들의 생성은 모델링 시스템이 3D 모델에 대한 저장 요건들을 감소시키는 것, 예컨대 3D 모델을 다른 디바이스 또는 시스템으로 송신할 때 네트워크 사용을 감소시키는 것, 또는 이들 둘 모두를 행하는 것을 가능하게 할 수 있다.
위에서 설명된 프로세스(200)에서의 단계들의 순서는 단지 예시적인 것일 뿐이고, 3D 모델 최적화는 상이한 순서들로 수행될 수 있다. 예컨대, 모델링 시스템이 최적화된 3D 모델을 비휘발성 메모리에 저장할 때(218), 모델링 시스템은, 예컨대, 3D 모델을 요청한 디바이스에 대한 이용가능 네트워크 대역폭에 기초하여, 최적화된 3D 모델의 크기가 디바이스로 송신하기에 여전히 너무 크다고 결정할 수 있다. 이어서, 모델링 시스템은 구역들에 포함된 텍스처들의 해상도들을 감소시킴으로써 3D 모델의 추가적인 구역들을 최적화하기로 결정할 수 있다(210). 이어서, 모델링 시스템은 초점 및 비초점 구역들을 포함하는 최적화된 3D 모델을 재생성할 수 있다(216). 이 예에서, 모델링 시스템은, 최적화된 3D 모델에 대한 최대 크기에 기초하여, 다수의 임계치, 최적화 정도, 또는 이들 둘 모두를 선택할 수 있다.
일부 구현들에서, 프로세스(200)는 추가적인 단계들을 포함할 수 있거나, 더 적은 단계들을 포함할 수 있거나, 또는 단계들 중 일부가 다수의 단계로 분할될 수 있다. 예컨대, 모델링 시스템은 프로세스(200)에서의 다른 단계들을 수행하지 않으면서 단계들(204, 208, 212, 216, 및 218)을 수행할 수 있다. 일부 예들에서, 모델링 시스템은 프로세스(200)에서의 다른 단계들을 수행하지 않으면서 단계들(204, 208, 및 216)을 수행할 수 있다.
일부 구현들에서, 모델링 시스템은, 하나의 뷰어 상호작용, 여러 개의 뷰어 상호작용, 또는 다수의 뷰어 상호작용 후에, 뷰어에게 표시하기 위해 디스플레이 상에 생성되었던 객체의 적어도 하나의 뷰를 묘사하는 객체의 이미지들을 검색할 수 있다(202). 일부 구현들에서, 모델링 시스템은 지정된 시간 간격들로 객체의 이미지들을 검색할 수 있다. 일부 구현들에서, 모델링 시스템은 이벤트에 의해 트리거링될 때 객체의 이미지들을 검색할 수 있다. 예컨대, 모델링 시스템은 모델 요청, 예컨대, 환경(100)으로부터의 모델 요청(125)의 수신 시에 객체의 이미지들을 검색할 수 있다.
일부 구현들에서, 초점 구역들의 최적화를 스킵하기 위한 결정(214)은 하나 이상의 초점 구역을 다양한 정도들로 최적화하기 위한 결정을 포함할 수 있다. 예컨대, 모델링 시스템은 적은 수의 초점을 포함하는 초점 구역을 부분적으로 최적화하기로 결정할 수 있다. 모델링 시스템은 초점 구역 내의 텍스처들의 해상도를 더 많은 초점들을 갖는 초점 구역들 내의 텍스처들의 해상도보다 더 낮지만 비초점 구역들 내의 텍스처들의 해상도보다 더 높은 해상도로 감소시킬 수 있다.
모델링 시스템은, 예컨대, 이미지에 추가하여 또는 그 대신에, 뷰어에게 표시하기 위해 디스플레이 상에 생성되었던 객체의 뷰의 일부를 나타내는 임의의 적절한 데이터를 사용할 수 있다. 일부 구현들에서, 디바이스는 뷰어에게 표시되었던 모델의 뷰를 나타내는 3D 모델의 좌표들을 캡처할 수 있다. 모델링 시스템은 디바이스로부터 좌표들에 대한 데이터, 예컨대 x-y-z 좌표들에 대한 데이터를 수신할 수 있다. 모델링 시스템은 프로세스(200)를 위해 좌표들에 대한 데이터를 사용할 수 있다.
일부 구현들에서, 모델링 시스템은 최적화할 콘텐츠를 결정하기 위해, 가중 초점 그래프, 가중 구역 그래프, 또는 이들 둘 모두와 함께 가중치 임계치를 사용할 수 있다. 예컨대, 모델링 시스템은 3D 모델의 구역들 내의 메시들, 텍스처들, 또는 이들 둘 모두의 계층구조를 결정하기 위해, 초점 가중치들, 구역들, 또는 이들 둘 모두를 3D 모델 상에 오버레이할 수 있다. 모델링 시스템은 3D 모델 구역들의 메시들 및 텍스처들을 최적화하기로 결정하기 위해, 메시들, 텍스처들, 또는 이들 둘 모두의 계층구조를 사용할 수 있다. 예컨대, 3D 모델 상의 오버레이가 구역이 임계 가중치를 만족시키는 임의의 초점 가중치들을 포함하지 않는다는 것을 나타낼 때, 모델링 시스템은, 예컨대, 단계들(208 및 210)과 관련된 비초점 구역으로서 그 구역을 카테고리화할 수 있다. 구역이 임계 가중치를 만족시키는 초점 가중치를 포함할 때, 모델링 시스템은, 예컨대, 단계들(212 및 214)과 관련된 초점 구역으로서 그 구역을 카테고리화할 수 있다.
3D 모델 상에 구역을 오버레이할 때, 모델링 시스템은 구역이 초점 구역인지 또는 비초점 구역인지를 먼저 결정할 수 있다. 이어서, 모델링 시스템은, 최적화를 위해, 예컨대, 단계들(208 및 210)과 관련된 비초점 구역들에 포함된 메시들, 텍스처들, 또는 이들 둘 모두를 오버레이된 3D 모델로부터 선택할 수 있다. 모델링 시스템은, 예컨대, 단계들(212 및 214)과 관련된 초점 구역들에 포함된, 오버레이된 3D 모델로부터의 메시들, 텍스처들, 또는 이들 둘 모두에 대한 선택을 스킵하거나, 또는 이들에 대한 다른 적절한 프로세스를 수행하기로 결정할 수 있다.
일부 구현들에서, 모델링 시스템은 3D 모델을 표시하는 디바이스의 일부일 수 있다. 예컨대, 디바이스 상의 애플리케이션, 예컨대 모델링 시스템은 3D 모델의 최적화된 또는 비최적화된 구역들을 동적으로 렌더링할 수 있다. 애플리케이션은 모델링 시스템과 렌더링 시스템 둘 모두를 포함할 수 있다. 일부 예들에서, 애플리케이션이 웹 브라우저일 때, 애플리케이션은 자바스크립트를 사용할 수 있다. 모델링 시스템은, 3D 모델의 구역들에 대한 데이터를 지능적으로 사전 캐싱하거나, 3D 모델의 구역들에 대한 데이터를 렌더링하거나, 또는 이들 둘 모두를 행하기 위해, 가중 초점들, 예컨대 가중 초점 그래프를 사용할 수 있다.
예컨대, 모델링 시스템은 서버로부터 3D 모델을 검색할 수 있다. 3D 모델은 디스플레이 상에 처음에 표시될 초점 구역들에 대한 더 높은 품질의 데이터를 포함할 수 있다. 3D 모델은 디스플레이 상에 처음에 표시되지 않을 비초점 구역들에 대한 더 낮은 품질의 데이터를 포함할 수 있다. 모델은 비초점 구역들에 대한 고 품질 데이터를 포함할 수 있다. 일부 예들에서, 모델링 시스템은, 예컨대, 요청 시에 또는 모델의 수신 후에, 비초점 구역들에 대한 고 품질 데이터를 모델과 별개로 수신할 수 있다.
디바이스가 3D 모델을 먼저 렌더링할 때, 디바이스는 디스플레이를 위한 이미지를 생성하는 데 사용되는 더 높은 품질의 데이터 및 처음에 표시되지 않는 3D 모델의 부분들을 생성하는 데 사용되는 더 낮은 품질의 데이터를 갖는 최적화된 3D 모델을 사용할 수 있다. 이러한 더 낮은 품질의 데이터는 어떠한 텍스처들도 없이 메시들만을 포함할 수 있다. 디바이스가 사용자 입력을 수신할 때, 디바이스는 어느 구역들이 적어도 디스플레이될 임계 가능성을 갖는지를 동적으로 결정할 수 있고, 그러한 구역들에 대해 더 높은 품질의 데이터를 렌더링할 수 있다. 디바이스는 캐시로부터 이러한 구역들에 대한 더 높은 품질의 데이터를 검색하거나, 서버로부터 더 높은 품질의 데이터를 동적으로 요청하거나, 또는 이들 둘 모두를 행할 수 있다.
본 명세서에서 설명되는 발명 대상 및 기능 동작들의 실시예들은, 본 명세서에서 개시되는 구조들 및 이들의 구조적 등가물들을 포함하는, 디지털 전자 회로부, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합들로 구현될 수 있다. 본 명세서에서 설명되는 발명 대상의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 유형의 비일시적 프로그램 캐리어 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 대안적으로 또는 추가하여, 프로그램 명령어들은 데이터 프로세싱 장치에 의한 실행을 위해 적합한 수신기 장치로 송신하기 위한 정보를 인코딩하도록 생성되는 인공적으로 생성되는 전파 신호, 예컨대, 머신에 의해 생성되는 전기, 광학, 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터 프로세싱 하드웨어를 지칭하고, 예컨대, 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들, 및 머신들을 포함한다. 장치는 또한, 특수 목적 로직 회로부, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)일 수 있거나 또는 이를 더 포함할 수 있다. 장치는, 하드웨어 이외에, 컴퓨터 프로그램들에 대한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 임의로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트, 또는 코드로 또한 지칭되거나 또는 설명될 수 있는 컴퓨터 프로그램은 컴파일형 또는 해석형 언어들, 또는 선언형 또는 절차형 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기입될 수 있고, 독립형 프로그램 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서 사용하는 데 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만 이는 필수적인 것은 아니다. 프로그램은, 다른 프로그램들 또는 데이터, 예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 보유하는 파일의 일부, 해당 프로그램에 전용되는 단일 파일, 또는 다수의 협력 파일, 예컨대, 하나 이상의 모듈, 하위 프로그램들, 또는 코드의 부분들을 저장하는 파일들로 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 위치에 위치되거나 또는 다수의 위치에 걸쳐 분산되어 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은, 입력 데이터에 대해 동작하여 출력을 생성함으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램가능 컴퓨터들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로부, 예컨대, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)에 의해 수행될 수 있고, 장치는 또한, 특수 목적 로직 회로부, 예컨대, FPGA 또는 ASIC로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은, 예로서, 범용 또는 특수 목적 마이크로프로세서들 또는 이들 둘 모두, 또는 임의의 다른 종류의 중앙 프로세싱 유닛을 포함한다. 일반적으로, 중앙 프로세싱 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들을 수행 또는 실행하기 위한 중앙 프로세싱 유닛, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예컨대 자기, 광자기 디스크들 또는 광 디스크들을 포함할 것이거나, 또는 이들로부터 데이터를 수신하도록 또는 이들로 데이터를 전송하도록, 또는 이들 둘 모두를 행하도록 동작가능하게 커플링될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예컨대, 몇몇 예를 들면, 모바일 전화, 스마트폰, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 디바이스, 예컨대 USB(universal serial bus) 플래시 드라이브에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하는 데 적합한 컴퓨터 판독가능 매체들은, 예로서, 반도체 메모리 디바이스들, 예컨대 EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 또는 착탈식 디스크들; 광자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 로직 회로부에 의해 보완되거나 또는 이에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명되는 발명 대상의 실시예들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예컨대, LCD(liquid crystal display), OLED(organic light emitting diode) 또는 다른 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예컨대, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류들의 디바이스들이 또한 사용될 수 있는데; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가하여, 컴퓨터는, 예컨대, 웹 브라우저로부터 수신된 요청들에 응답하여 웹 페이지들을 사용자의 디바이스 상의 웹 브라우저로 전송함으로써, 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 그로부터 문서들을 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서에서 설명되는 발명 대상의 실시예들은, 예컨대 데이터 서버로서 백엔드 구성요소를 포함하거나, 미들웨어 구성요소, 예컨대 애플리케이션 서버를 포함하거나, 또는 프론트엔드 구성요소, 예컨대 사용자가 본 명세서에서 설명되는 발명 대상의 구현과 상호작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하거나, 또는 하나 이상의 그러한 백엔드, 미들웨어 또는 프론트엔드 구성요소의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성요소들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예컨대 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예들은 LAN(local area network) 및 WAN(wide area network), 예컨대 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원거리에 있고, 전형적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 실시예들에서, 서버는, 예컨대, 클라이언트로서 작용하는 사용자 디바이스와 상호작용하는 사용자에게 데이터를 디스플레이하고 그로부터 사용자 입력을 수신하기 위해, 데이터, 예컨대 HTML(HyperText Markup Language) 페이지를 사용자 디바이스로 송신한다. 사용자 디바이스에서 생성된 데이터, 예컨대, 사용자 상호작용의 결과는 사용자 디바이스로부터 서버에서 수신될 수 있다.
도 6은 클라이언트 또는 서버 또는 복수의 서버로서, 본 문서에서 설명되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 컴퓨팅 디바이스들(600, 650)의 블록도이다. 컴퓨팅 디바이스(600)는, 랩톱들, 데스크톱들, 워크스테이션들, 개인용 디지털 어시스턴트들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 표현하도록 의도된다. 컴퓨팅 디바이스(650)는 개인용 디지털 어시스턴트들, 셀룰러 전화들, 스마트폰들, 스마트워치들, 머리 착용 디바이스들, 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태들의 모바일 디바이스들을 표현하도록 의도된다. 여기에 도시된 구성요소들, 이들의 연결들 및 관계들, 및 이들의 기능들은 단지 예시적인 것으로 의도되고, 본 문서에서 설명 및/또는 청구되는 구현들을 제한하는 것으로 의도되지 않는다.
컴퓨팅 디바이스(600)는 프로세서(602), 메모리(604), 저장 디바이스(606), 메모리(604) 및 고속 확장 포트들(610)에 연결된 고속 인터페이스(608), 및 저속 버스(614) 및 저장 디바이스(606)에 연결된 저속 인터페이스(612)를 포함한다. 구성요소들(602, 604, 606, 608, 610 및 612) 각각은 다양한 버스들을 사용하여 상호연결되고, 공통 마더보드 상에 또는 적절한 다른 방식들로 장착될 수 있다. 프로세서(602)는 컴퓨팅 디바이스(600) 내의 실행을 위해 명령어들을 프로세싱할 수 있고, 그 명령어들은 고속 인터페이스(608)에 커플링된 디스플레이(616)와 같은 외부 입력/출력 디바이스 상에 GUI에 대한 그래픽 정보를 디스플레이하기 위해 메모리(604) 또는 저장 디바이스(606)에 저장된 명령어들을 포함한다. 다른 구현들에서, 다수의 프로세서 및/또는 다수의 버스가 다수의 메모리 및 다수의 타입의 메모리와 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스(600)가 연결될 수 있고, 각각의 디바이스는 (예컨대, 서버 뱅크, 블레이드 서버들의 그룹, 또는 다중-프로세서 시스템으로서) 필요한 동작들의 부분들을 제공한다.
메모리(604)는 컴퓨팅 디바이스(600) 내의 정보를 저장한다. 일 구현에서, 메모리(604)는 컴퓨터 판독가능 매체이다. 일 구현에서, 메모리(604)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에서, 메모리(604)는 비휘발성 메모리 유닛 또는 유닛들이다.
저장 디바이스(606)는 컴퓨팅 디바이스(600)에 대용량 저장소를 제공할 수 있다. 일 구현에서, 저장 디바이스(606)는 컴퓨터 판독가능 매체이다. 다양한 상이한 구현들에서, 저장 디바이스(606)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들의 디바이스들을 포함하는 디바이스들의 어레이일 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형으로 구현된다. 컴퓨터 프로그램 제품은, 실행될 때, 위에서 설명된 것들과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는, 메모리(604), 저장 디바이스(606), 또는 프로세서(602) 상의 메모리와 같은 컴퓨터 또는 머신 판독가능 매체이다.
고속 제어기(608)는 컴퓨팅 디바이스(600)에 대한 대역폭 집약적 동작들을 관리하는 한편, 저속 제어기(612)는 더 낮은 대역폭 집약적 동작들을 관리한다. 듀티들의 그러한 할당은 단지 예시적인 것일 뿐이다. 일 구현에서, 고속 제어기(608)는 메모리(604), (예컨대, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(616), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(610)에 커플링된다. 구현에서, 저속 제어기(612)는 저장 디바이스(606) 및 저속 확장 포트(614)에 커플링된다. 다양한 통신 포트들(예컨대, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는, 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스에 커플링될 수 있거나, 또는 예컨대 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 커플링될 수 있다.
컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예컨대, 이는 표준 서버(620)로서 구현될 수 있거나, 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 이는 또한 랙 서버 시스템(624)의 일부로서 구현될 수 있다. 추가하여, 이는 랩톱 컴퓨터(622)와 같은 개인용 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(600)로부터의 구성요소들은 디바이스(650)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 구성요소들과 조합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(600, 650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스(600, 650)로 구성될 수 있다.
컴퓨팅 디바이스(650)는, 다른 구성요소들 중에서도 특히, 프로세서(652), 메모리(664), 디스플레이(654)와 같은 입력/출력 디바이스, 통신 인터페이스(666), 및 송수신기(668)를 포함한다. 디바이스(650)는 또한, 추가적인 저장을 제공하기 위해 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스를 제공받을 수 있다. 구성요소들(650, 652, 664, 654, 666, 및 668) 각각은 다양한 버스들을 사용하여 상호연결되고, 구성요소들 중 몇몇은 공통 마더보드 상에 또는 적절한 다른 방식들로 장착될 수 있다.
프로세서(652)는 컴퓨팅 디바이스(650) 내의 실행을 위해 명령어들을 프로세싱할 수 있고, 그 명령어들은 메모리(664)에 저장된 명령어들을 포함한다. 프로세서는 또한 별개의 아날로그 및 디지털 프로세서들을 포함할 수 있다. 프로세서는, 예컨대, 사용자 인터페이스들, 디바이스(650)에 의해 실행되는 애플리케이션들, 및 디바이스(650)에 의한 무선 통신의 제어와 같은, 디바이스(650)의 다른 구성요소들의 조정을 제공할 수 있다.
프로세서(652)는 디스플레이(654)에 커플링된 디스플레이 인터페이스(656) 및 제어 인터페이스(658)를 통해 사용자와 통신할 수 있다. 디스플레이(654)는, 예컨대, TFT LCD 디스플레이 또는 OLED 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(656)는 그래픽 및 다른 정보를 사용자에게 표시하도록 디스플레이(654)를 구동하기 위한 적절한 회로부를 포함할 수 있다. 제어 인터페이스(658)는 사용자로부터 커맨드들을 수신하고, 프로세서(652)로의 제출을 위해 이들을 변환할 수 있다. 추가하여, 디바이스(650)와 다른 디바이스들의 근거리 통신을 가능하게 하기 위해 프로세서(652)와 통신하는 외부 인터페이스(662)가 제공될 수 있다. 외부 인터페이스(662)는, 예컨대, (예컨대, 도킹 절차를 통해) 유선 통신 또는 (예컨대, 블루투스 또는 다른 그러한 기술들을 통해) 무선 통신을 제공할 수 있다.
메모리(664)는 컴퓨팅 디바이스(650) 내의 정보를 저장한다. 일 구현에서, 메모리(664)는 컴퓨터 판독가능 매체이다. 일 구현에서, 메모리(664)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에서, 메모리(664)는 비휘발성 메모리 유닛 또는 유닛들이다. 확장 메모리(674)는 또한, 예컨대, SIMM 카드 인터페이스를 포함할 수 있는 확장 인터페이스(672)를 통해 디바이스(650)에 제공 및 연결될 수 있다. 이러한 확장 메모리(674)는 디바이스(650)에 대한 여분의 저장 공간을 제공할 수 있거나, 또는 디바이스(650)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(674)는 위에서 설명된 프로세스들을 수행 또는 보완하기 위한 명령어들을 포함할 수 있고, 보안 정보도 또한 포함할 수 있다. 따라서, 예컨대, 확장 메모리(674)는 디바이스(650)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(650)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 추가하여, 해킹 불가능 방식으로 SIMM 카드 상에 식별 정보를 배치하는 것과 같이, 추가적인 정보와 함께, SIMM 카드들을 통해 보안 애플리케이션들이 제공될 수 있다.
메모리는, 예컨대, 아래에서 논의되는 바와 같이, 플래시 메모리 및/또는 MRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형으로 구현된다. 컴퓨터 프로그램 제품은, 실행될 때, 위에서 설명된 것들과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는, 메모리(664), 확장 메모리(674), 또는 프로세서(652) 상의 메모리와 같은 컴퓨터 또는 머신 판독가능 매체이다.
디바이스(650)는, 필요한 경우, 디지털 신호 프로세싱 회로부를 포함할 수 있는 통신 인터페이스(666)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(666)는, 다른 것들 중에서도 특히, GSM 음성 통화들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서 통신을 제공할 수 있다. 이러한 통신은, 예컨대, 무선 주파수 송수신기(668)를 통해 발생할 수 있다. 추가하여, 이를테면, 블루투스, WiFi, 또는 다른 그러한 송수신기(도시되지 않음)를 사용하여 단거리 통신이 발생할 수 있다. 추가하여, GPS 수신기 모듈(670)은 디바이스(650) 상에서 실행되는 애플리케이션들에 의해 적절하게 사용될 수 있는 추가적인 무선 데이터를 디바이스(650)에 제공할 수 있다.
디바이스(650)는 또한, 오디오 코덱(660)을 사용하여 청각적으로 통신할 수 있고, 오디오 코덱(660)은 사용자로부터 음성 정보를 수신하고, 이를 사용가능 디지털 정보로 변환할 수 있다. 마찬가지로, 오디오 코덱(660)은, 예컨대 디바이스(650)의 핸드셋 내의 스피커를 통해, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 통화들로부터의 사운드를 포함할 수 있고, 레코딩된 사운드(예컨대, 음성 메시지들, 음악 파일들 등)를 포함할 수 있고, 디바이스(650) 상에서 동작하는 애플리케이션들에 의해 생성되는 사운드를 또한 포함할 수 있다.
컴퓨팅 디바이스(650)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예컨대, 이는 셀룰러 전화(680)로서 구현될 수 있다. 이는 또한, 스마트폰(682), 개인용 디지털 어시스턴트, 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
본원에서 설명되는 시스템들 및 기법들의 다양한 구현들은 디지털 전자 회로부, 집적 회로부, 특별히 설계된 ASIC(application specific integrated circuit)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들로 실현될 수 있다. 이러한 다양한 구현들은, 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 이들로 데이터 및 명령어들을 송신하도록 커플링된, 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템 상에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램으로의 구현을 포함할 수 있다.
이러한 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들, 또는 코드로 또한 알려짐)은 프로그램가능 프로세서에 대한 머신 명령어들을 포함하고, 고 레벨 절차 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/머신 언어로 구현될 수 있다. 본원에서 사용되는 바와 같이, "머신 판독가능 매체", "컴퓨터 판독가능 매체"라는 용어들은, 머신 명령어들을 머신 판독가능 신호로서 수신하는 머신 판독가능 매체를 포함하는, 머신 명령어들 및/또는 데이터를 프로그램가능 프로세서에 제공하는 데 사용되는 임의의 컴퓨터 프로그램 제품, 장치, 및/또는 디바이스(예컨대, 자기 디스크들, 광 디스크들, 메모리, PLD(Programmable Logic Device)들)를 지칭한다. "머신 판독가능 신호"라는 용어는 프로그램가능 프로세서에 머신 명령어들 및/또는 데이터를 제공하는 데 사용되는 임의의 신호를 지칭한다.
본 명세서가 다수의 특정 구현 세부사항을 포함하지만, 이들은 청구될 수 있는 것의 범위에 대한 제한들로 해석되지 않아야 하고, 오히려, 특정 실시예들에 특정적일 수 있는 피처들의 설명들로 해석되어야 한다. 별개의 실시예들의 맥락에서 본 명세서에 설명된 특정 피처들은 또한, 단일 실시예로 조합하여 구현될 수 있다. 대조적으로, 단일 실시예의 맥락에서 설명된 다양한 피처들은 또한, 개별적으로 다수의 실시예로 또는 임의의 적절한 서브조합으로 구현될 수 있다. 더욱이, 피처들이 특정 조합들로 동작하는 것으로 위에서 설명될 수 있고 심지어 그와 같이 처음에 청구될 수 있지만, 청구되는 조합으로부터의 하나 이상의 피처는 일부 경우들에서 조합으로부터 제거될 수 있고, 청구되는 조합은 서브조합 또는 서브조합의 변형과 관련될 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 묘사되지만, 이는, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되는 것을 요구하거나, 또는 모든 예시된 동작들이 수행되는 것을 요구하는 것으로 이해되지 않아야 한다. 특정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 위에서 설명된 실시예들에서의 다양한 시스템 모듈들 및 구성요소들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로 이해되지 않아야 하고, 설명된 프로그램 구성요소들 및 시스템들이 일반적으로, 단일 소프트웨어 제품에 함께 통합되거나 또는 다수의 소프트웨어 제품에 패키징될 수 있다는 것이 이해되어야 한다.
발명 대상의 특정 실시예들이 설명되었다. 다른 실시예들이 다음의 청구항들의 범위 내에 있다. 예컨대, 청구항들에 열거된 액션들은 상이한 순서로 수행될 수 있고, 그럼에도 불구하고 바람직한 결과들을 달성할 수 있다. 일 예로서, 첨부 도면들에 묘사된 프로세스들은, 바람직한 결과들을 달성하기 위해, 반드시 도시된 특정 순서 또는 순차적 순서를 요구하는 것은 아니다. 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.

Claims (22)

  1. 컴퓨터에 의해 구현되는 방법으로서,
    최적화될 객체의 3차원 모델에 대해, 적어도 초점일 임계 가능성을 각각 갖는 상기 객체 상의 복수의 포인트를 결정하는 단계 ― 상기 3차원 모델은 2개 이상의 구역을 갖고, 상기 2개 이상의 구역 각각은 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두를 포함함 ―;
    상기 2개 이상의 구역으로부터 하나 이상의 비초점 구역을 식별하는 단계 ― 상기 하나 이상의 비초점 구역은 i) 각각 상기 복수의 포인트 중 어느 것도 포함하지 않고, ii) 상기 2개 이상의 구역의 적절한 서브세트임 ―;
    상기 하나 이상의 비초점 구역을 사용하여, 상기 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 상기 객체에 대한 최적화된 3차원 모델을 생성하는 단계; 및
    상기 최적화된 3차원 모델을 비휘발성 메모리에 저장하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    시스템에 의해 네트워크를 통해 상기 객체의 모델에 대한 요청을 수신하는 단계; 및
    상기 객체의 모델에 대한 요청을 수신하는 것에 응답하여, 상기 네트워크를 사용하여 상기 객체에 대한 상기 최적화된 3차원 모델을 디바이스로 송신하는 단계
    를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 더 작은 크기를 갖는 상기 최적화된 3차원 모델을 상기 디바이스로 전송한 후에, 상기 더 큰 크기를 갖는 상기 3차원 모델을 상기 디바이스로 전송하기로 결정하는 단계; 및
    상기 더 큰 크기를 갖는 상기 3차원 모델을 상기 디바이스로 전송하기로 결정하는 것에 응답하여, 상기 3차원 모델을 상기 디바이스로 전송하는 단계
    를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 더 큰 크기를 갖는 상기 3차원 모델을 상기 디바이스로 전송하기로 결정하는 단계는, 상기 네트워크를 통한 상기 시스템과 상기 디바이스 사이의 네트워크 연결이 임계 사용량 미만의 사용량을 갖는다고 결정하는 단계를 포함하고,
    상기 3차원 모델을 상기 디바이스로 전송하는 단계는, 상기 네트워크를 통한 상기 시스템과 상기 디바이스 사이의 상기 네트워크 연결이 상기 임계 사용량 미만의 사용량을 갖는다고 결정하는 것에 응답하는, 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 더 큰 크기를 갖는 상기 3차원 모델을 상기 디바이스로 전송하기로 결정하는 단계는, 상기 더 큰 크기를 갖는 상기 3차원 모델에 대한 요청을 수신하는 단계를 포함하고,
    상기 3차원 모델을 상기 디바이스로 전송하는 단계는, 상기 더 큰 크기를 갖는 상기 3차원 모델에 대한 요청을 수신하는 것에 응답하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 최적화된 3차원 모델을 생성하는 단계는, 상기 하나 이상의 비초점 구역 각각에 대해, 각각의 비초점 구역에 포함된 상기 하나 이상의 텍스처, 상기 하나 이상의 메시, 또는 이들 둘 모두의 품질을 상기 3차원 모델 내의 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질로부터 감소시키는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 하나 이상의 비초점 구역 각각에 대해, 각각의 비초점 구역에 포함된 상기 하나 이상의 텍스처, 상기 하나 이상의 메시, 또는 이들 둘 모두의 품질을 상기 3차원 모델 내의 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 품질로부터 감소시키는 단계는,
    상기 하나 이상의 비초점 구역 각각에 대해, 상기 각각의 비초점 구역에 포함된 상기 하나 이상의 텍스처, 상기 하나 이상의 메시, 또는 이들 둘 모두 각각의 해상도를 상기 3차원 모델 내의 상기 대응하는 하나 이상의 텍스처, 하나 이상의 메시, 또는 이들 둘 모두의 더 높은 해상도로부터 감소시키는 단계를 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 2개 이상의 구역으로부터 하나 이상의 비초점 구역을 식별하는 단계는, 하나 이상의 텍스처, 하나 이상의 메시, 또는 하나 이상의 사분면(quadrant)을 상기 하나 이상의 비초점 구역으로서 식별하는 단계를 포함하고,
    상기 최적화된 3차원 모델을 생성하는 단계는, 식별된 하나 이상의 텍스처 또는 식별된 하나 이상의 메시 또는 식별된 하나 이상의 사분면을 사용하여, 상기 3차원 모델의 더 큰 크기 미만의 더 작은 크기를 갖는 상기 객체에 대한 상기 최적화된 3차원 모델을 생성하는 단계를 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    적어도 초점일 임계 가능성을 각각 갖는 상기 객체 상의 복수의 포인트를 결정하는 단계는,
    메모리로부터, 뷰어(viewer)에게 표시하기 위해 디스플레이 상에 생성되었던 상기 객체의 뷰(view)의 적어도 일부를 각각 묘사하는 상기 객체의 복수의 이미지에 대한 데이터를 검색하는 단계;
    상기 복수의 이미지로부터의 각각의 이미지에 대해, 하나 이상의 잠재적 초점을 결정하는 단계; 및
    상기 복수의 이미지에 대한 상기 하나 이상의 잠재적 초점으로부터 상기 복수의 포인트로서 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계
    를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는,
    i) 상기 복수의 이미지로부터의 제1 이미지에 묘사된 상기 하나 이상의 잠재적 초점으로부터 ii) 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들의 제1 서브세트를 선택하는 단계; 및
    a) 상기 복수의 이미지로부터의 상기 제1 이미지에 묘사된 상기 하나 이상의 잠재적 초점으로부터 b) 적어도 초점일 임계 가능성을 각각 갖지 않는 잠재적 초점들의 제2 서브세트의 선택을 스킵하기로 결정하는 단계
    를 포함하는, 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 잠재적 초점들 각각은, 상기 디스플레이 상의 상기 객체의 표시를 보는 뷰어의 초점이 맞추어졌을 가능성이 있는, 상기 복수의 이미지로부터의 대응하는 이미지 내의 추정된 포인트를 포함하는, 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 복수의 이미지에 대한 상기 하나 이상의 잠재적 초점으로부터 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는,
    상기 대응하는 이미지의 중심으로부터의 상기 잠재적 초점의 거리를 사용하여 상기 하나 이상의 잠재적 초점 중 적어도 하나를 가중화하는 단계
    를 포함하고,
    상기 대응하는 이미지의 중심에 더 가까이 있는 제1 잠재적 초점은 상기 대응하는 이미지의 중심으로부터 더 멀리 있는 제2 잠재적 초점보다 더 높은 가중치를 갖는, 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 디스플레이 상에 상기 객체의 모델을 표시한 디바이스로부터 네트워크를 통해 상기 복수의 이미지 중 하나 이상에 대한 데이터를 수신하는 단계; 및
    상기 복수의 이미지 중 하나 이상에 대한 데이터를 상기 메모리에 저장하는 단계
    를 포함하는, 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 복수의 이미지로부터의 각각의 이미지에 대해, 하나 이상의 잠재적 초점을 결정하는 단계는,
    상기 복수의 이미지로부터의 각각의 이미지에 대해, 각각의 이미지를 생성했을 카메라에 의해 표현되는 방향으로부터 상기 객체 상으로 하나 이상의 광선을 투사하는 단계; 및
    상기 하나 이상의 광선 각각에 대해, 상기 광선이 상기 객체와 교차하는 포인트를 대응하는 초점으로서 선택하는 단계
    를 포함하는, 방법.
  15. 제14항에 있어서,
    상기 복수의 이미지로부터의 각각의 이미지에 대해, 각각의 이미지를 생성했을 카메라에 의해 표현되는 방향으로부터 상기 객체 상으로 하나 이상의 광선을 투사하는 단계는,
    상기 복수의 이미지로부터의 각각의 이미지에 대해,
    광선을 생성하기 위한 하나 이상의 구역을 결정하는 단계; 및
    상기 하나 이상의 구역 각각에 대해, 상기 객체 상으로 투사되는 광선을 랜덤으로 생성하는 단계
    를 포함하는, 방법.
  16. 제15항에 있어서,
    상기 복수의 이미지로부터의 각각의 이미지에 대해,
    상기 광선을 생성하기 위한 하나 이상의 구역을 결정하는 단계는, 상기 하나 이상의 구역 각각에 대해, 광선을 생성하기 위한 기준 포인트로부터의 각도 편차 범위를 결정하는 단계를 포함하고,
    상기 하나 이상의 구역 각각에 대해, 상기 객체 상으로 투사되는 광선을 랜덤으로 생성하는 단계는, 상기 하나 이상의 구역 각각에 대해,
    상기 각도 편차 범위 내의 각도 편차를 랜덤으로 선택하는 단계; 및
    랜덤으로 선택된 각도 편차로 광선을 생성하는 단계
    를 포함하는, 방법.
  17. 제16항에 있어서,
    상기 기준 포인트는 상기 각각의 이미지를 생성했을 상기 카메라의 위치를 포함하는, 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 하나 이상의 구역 각각에 대해, 각도 편차 범위를 결정하는 단계는,
    상기 하나 이상의 구역의 각각의 구역에 대해, 상기 대응하는 이미지의 중심으로부터의 상기 구역의 거리를 사용하여 상기 각도 편차 범위들의 크기를 결정하는 단계를 포함하는, 방법.
  19. 제9항 내지 제18항 중 어느 한 항에 있어서,
    상기 복수의 이미지에 대한 상기 하나 이상의 잠재적 초점으로부터 적어도 초점일 임계 가능성을 각각 갖는 잠재적 초점들을 선택하는 단계는,
    상기 객체 상의 하나 이상의 포인트에 대해, 상기 포인트가 대응하는 이미지에 대한 잠재적 초점인 횟수를 결정하는 단계; 및
    대응하는 횟수가 임계량을 만족시키는 잠재적 초점들을 상기 복수의 포인트로서 선택하는 단계
    를 포함하는, 방법.
  20. 제19항에 있어서,
    상기 대응하는 횟수가 임계량을 만족시키는 잠재적 초점들을 상기 복수의 포인트로서 선택하는 단계는,
    상기 객체 상의 상기 하나 이상의 포인트에 대해, 상기 객체 상의 포인트가 잠재적 초점이었던 최고 횟수를 사용하여, 정규화된 횟수를 결정하는 단계; 및
    대응하는 정규화된 횟수가 임계값을 만족시키는 잠재적 초점들을 상기 복수의 포인트로서 선택하는 단계
    를 포함하는, 방법.
  21. 명령어들로 인코딩된 비일시적 컴퓨터 저장 매체로서,
    상기 명령어들은, 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제20항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 컴퓨터 저장 매체.
  22. 시스템으로서,
    하나 이상의 컴퓨터 및 명령어들을 저장하는 하나 이상의 저장 디바이스를 포함하고,
    상기 명령어들은, 상기 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제20항 중 어느 한 항의 방법을 수행하게 하도록 동작가능한, 시스템.
KR1020217038778A 2019-04-26 2019-09-20 3차원 모델 최적화 KR102641759B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16/395,722 2019-04-26
US16/395,722 US10460516B1 (en) 2019-04-26 2019-04-26 Three-dimensional model optimization
US16/553,925 US10943393B2 (en) 2019-04-26 2019-08-28 Three-dimensional model optimization
US16/553,925 2019-08-28
PCT/US2019/052142 WO2020219093A1 (en) 2019-04-26 2019-09-20 Three-dimensional model optimization

Publications (2)

Publication Number Publication Date
KR20220016838A true KR20220016838A (ko) 2022-02-10
KR102641759B1 KR102641759B1 (ko) 2024-03-08

Family

ID=68315029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038778A KR102641759B1 (ko) 2019-04-26 2019-09-20 3차원 모델 최적화

Country Status (5)

Country Link
US (2) US10460516B1 (ko)
EP (1) EP3959690A4 (ko)
KR (1) KR102641759B1 (ko)
CN (1) CN114008677A (ko)
WO (1) WO2020219093A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7079287B2 (ja) * 2019-11-07 2022-06-01 株式会社スクウェア・エニックス 鑑賞システム、モデル構成装置、制御方法、プログラム及び記録媒体
US11983810B1 (en) * 2021-04-23 2024-05-14 Apple Inc. Projection based hair rendering
US11694400B2 (en) * 2021-06-03 2023-07-04 Shopify Inc. Systems and methods for supplementing digital media with three-dimensional (3D) models
US11949527B2 (en) 2022-04-25 2024-04-02 Snap Inc. Shared augmented reality experience in video chat
CN116306811B (zh) * 2023-02-28 2023-10-27 苏州亿铸智能科技有限公司 一种针对ReRAM部署神经网络的权重分配方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150034804A (ko) * 2012-09-28 2015-04-03 인텔 코포레이션 눈 추적으로부터의 뷰어 초점 영역에 기초하여 렌더링을 수정하는 디바이스 및 방법
KR20190010322A (ko) * 2017-07-21 2019-01-30 삼성전자주식회사 전자 장치 및 전자 장치의 이미지 압축 방법
KR20190037842A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 외부 전자 장치에서 생성된 정보를 이용하여 이미지 데이터를 처리하는 방법 및 전자 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6208347B1 (en) 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US20020033819A1 (en) 2000-09-20 2002-03-21 Bewley Wilbur C. Apparatus and method for three-dimensional scanning of a subject, fabrication of a model therefrom, and the model produced thereby
US8396329B2 (en) 2004-12-23 2013-03-12 General Electric Company System and method for object measurement
TWI319166B (en) 2006-03-06 2010-01-01 Via Tech Inc Method and related apparatus for graphic processing
KR100918392B1 (ko) 2006-12-05 2009-09-24 한국전자통신연구원 3d 컨텐츠 저작을 위한 개인형 멀티미디어 스튜디오플랫폼 장치 및 방법
US9098926B2 (en) 2009-02-06 2015-08-04 The Hong Kong University Of Science And Technology Generating three-dimensional façade models from images
CN107103639B (zh) * 2010-06-30 2021-05-18 巴里·林恩·詹金斯 确定网格多边形或网格多边形的分段的集合的方法和系统
JP4764523B1 (ja) * 2010-11-08 2011-09-07 楽天株式会社 電子書籍広告システム、電子書籍広告方法、クライアント装置、広告提供装置、プログラム及び情報記録媒体
FR2976107B1 (fr) 2011-05-30 2014-01-03 Commissariat Energie Atomique Procede de localisation d'une camera et de reconstruction 3d dans un environnement partiellement connu
US10649613B2 (en) 2012-06-07 2020-05-12 Wormhole Labs, Inc. Remote experience interfaces, systems and methods
US10055876B2 (en) * 2014-06-06 2018-08-21 Matterport, Inc. Optimal texture memory allocation
US20160353146A1 (en) * 2015-05-27 2016-12-01 Google Inc. Method and apparatus to reduce spherical video bandwidth to user headset
US9858669B2 (en) 2015-10-23 2018-01-02 The Boeing Company Optimized camera pose estimation system
US9721393B1 (en) * 2016-04-29 2017-08-01 Immersive Enterprises, LLC Method for processing and delivering virtual reality content to a user
CN110249291A (zh) 2017-02-01 2019-09-17 Pcms控股公司 用于在预捕获环境中的增强现实内容递送的系统和方法
US10685430B2 (en) * 2017-05-10 2020-06-16 Babylon VR Inc. System and methods for generating an optimized 3D model
US10297074B2 (en) * 2017-07-18 2019-05-21 Fuscoe Engineering, Inc. Three-dimensional modeling from optical capture
US10726634B2 (en) 2018-05-04 2020-07-28 Microsoft Technology Licensing, Llc Generating and providing platform agnostic scene files in an intermediate format
US10665037B1 (en) 2018-11-28 2020-05-26 Seek Llc Systems and methods for generating and intelligently distributing forms of extended reality content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150034804A (ko) * 2012-09-28 2015-04-03 인텔 코포레이션 눈 추적으로부터의 뷰어 초점 영역에 기초하여 렌더링을 수정하는 디바이스 및 방법
KR20190010322A (ko) * 2017-07-21 2019-01-30 삼성전자주식회사 전자 장치 및 전자 장치의 이미지 압축 방법
KR20190037842A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 외부 전자 장치에서 생성된 정보를 이용하여 이미지 데이터를 처리하는 방법 및 전자 장치

Also Published As

Publication number Publication date
EP3959690A1 (en) 2022-03-02
WO2020219093A1 (en) 2020-10-29
EP3959690A4 (en) 2023-01-18
KR102641759B1 (ko) 2024-03-08
US10943393B2 (en) 2021-03-09
US10460516B1 (en) 2019-10-29
US20200342665A1 (en) 2020-10-29
CN114008677A (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
KR102641759B1 (ko) 3차원 모델 최적화
CN110199245B (zh) 三维交互系统
US10664140B2 (en) Object tracking in zoomed video
CN113853570B (zh) 为头戴式显示器生成动态障碍物碰撞警告的系统和方法
US9218685B2 (en) System and method for highlighting a feature in a 3D map while preserving depth
US9972134B2 (en) Adaptive smoothing based on user focus on a target object
US11770599B2 (en) Techniques to set focus in camera in a mixed-reality environment with hand gesture interaction
US20210294583A1 (en) Mini program production method and apparatus, terminal, and storage medium
KR20230122642A (ko) 안경류 디바이스 상의 3d 페인팅
KR20230116938A (ko) 안경류 디바이스 상의 미디어 콘텐츠 플레이어
US11922904B2 (en) Information processing apparatus and information processing method to control display of a content image
US9350918B1 (en) Gesture control for managing an image view display
CN116917842A (zh) 用于在人工现实中生成真实环境的稳定图像的系统和方法
US11582392B2 (en) Augmented-reality-based video record and pause zone creation
CN116670632A (zh) 眼镜设备上的媒体内容播放器
CN118295537A (en) Techniques to set focus in a camera in a mixed reality environment with hand gesture interactions
KR20210017597A (ko) 실패 비용 방지를 위한 vr 비젼 서비스 시스템 및 이를 이용한 서비스 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right