KR20200135496A - 3d 모델들의 다중-디바이스 편집 - Google Patents

3d 모델들의 다중-디바이스 편집 Download PDF

Info

Publication number
KR20200135496A
KR20200135496A KR1020207030620A KR20207030620A KR20200135496A KR 20200135496 A KR20200135496 A KR 20200135496A KR 1020207030620 A KR1020207030620 A KR 1020207030620A KR 20207030620 A KR20207030620 A KR 20207030620A KR 20200135496 A KR20200135496 A KR 20200135496A
Authority
KR
South Korea
Prior art keywords
model
view
viewpoint
providing
readable storage
Prior art date
Application number
KR1020207030620A
Other languages
English (en)
Inventor
노만 엔. 왕
벤자민 비. 로긴스
로스 알. 덱스터
타일러 엘. 카셀라
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20200135496A publication Critical patent/KR20200135496A/ko

Links

Images

Classifications

    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/024Multi-user, collaborative environment
    • 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/028Multiple view windows (top-side-front-sagittal-orthogonal)
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment

Abstract

본 명세서에 개시된 다양한 구현예들은 둘 이상의 디바이스들이 동일한 또는 상이한 세팅들/뷰잉 모드들로 (예컨대, 모노스코프 방식, 스테레오스코프 방식, SR 등으로) 동일한 3D 모델을 동시에 뷰잉 또는 편집할 수 있게 하는 디바이스들, 시스템들, 및 방법들을 포함한다. 일례에서, 하나 이상의 사용자들은 상이한 시점들로부터의 상이한 뷰들을 사용하여 동일한 3D 모델을 뷰잉 또는 편집하기 위해 동일한 세팅에서 상호작용하도록 상이한 디바이스들을 사용할 수 있다. 디바이스들은 동일한 3D 모델의 상이한 시점들로부터의 상이한 뷰들을 각각 디스플레이할 수 있고, 3D 모델에 대한 변경들이 이루어지더라도, 디바이스들 상의 뷰들의 일관성이 유지된다.

Description

3D 모델들의 다중-디바이스 편집
본 발명은 대체적으로 3차원(3D) 모델들, 특히 다수의 디바이스들을 사용하여 3D 모델들을 뷰잉(viewing), 생성, 및 편집하기 위한 시스템들, 방법들, 및 디바이스들에 관한 것이다.
컴퓨팅 디바이스들은 실세계(real-world) 또는 가상 3D 객체들 및 장면들의 표면들 또는 체적들을 표현하기 위해 3차원(3D) 모델들을 사용한다. 예를 들어, 3D 모델은 삼각형들, 선들, 또는 만곡된 표면들과 같은 다양한 기하학적 엔티티(entity)들에 의해 연결된, 3D 공간 내의 점들의 집합 및 모델 내의 표면 외관들을 한정하는 텍스처 맵핑들을 사용하여 객체를 표현할 수 있다. 일부 통합형 개발 세팅(integrated development setting, IDE)들을 포함하는 일부 소프트웨어 개발 세팅들은 3D 모델들을 포함하는 프로젝트들의 생성을 용이하게 한다. 그러나, 이들 소프트웨어 개발 세팅들은 3D 모델들을 시각화하기 위한 충분한 툴들을 제공하지 않는다. 소프트웨어 개발 세팅들은 전형적으로 3D 모델의 디폴트 시점(viewpoint) 또는 사용자 정의 시점으로부터의 단일 뷰(view)를 제시한다. 개발자는 전형적으로 이러한 시점으로부터 (예컨대, 단일의 평편한 모니터 상의 그 시점에 기초한 3D 모델의 2D 투사로서) 3D 모델을 뷰잉하는 것으로 제한된다. 예를 들어, 시점 값들(예컨대, 시점 포즈 좌표(viewpoint pose coordinate)들, 시점 뷰잉 각도 등)을 수동으로(manually) 변경함으로써, 개발자가 대안적인 시점들 사이에서 앞뒤로 전환하는 것은 대체적으로 시간 소모적이고 번거롭다. 부가적으로, 기존의 소프트웨어 개발 세팅들은 개발자가 다수의 상이한 방식들로, 예컨대, (예컨대, 3D 모델이 단일 모니터 디바이스를 사용하여 최종 사용자에게 보였을 것처럼) 모노스코프 방식으로(monoscopically), (예컨대, 3D 모델이 헤드 마운트 디바이스(head-mounted device, HMD)와 같은 이중 스크린 디바이스를 사용하여 최종 사용자에게 보였을 것처럼) 스테레오스코프 방식으로(stereoscopically), (예컨대, 가상 좌표계 내에서 또는 3D 모델이 물리적 세팅으로부터의 객체들과 조합될 때 보였을 것처럼) 시뮬레이션 현실(simulated reality, SR)로, 3D 모델을 뷰잉하기 위한 어떠한 방식도 제공하지 않는다.
본 명세서에 개시된 다양한 구현예들은 둘 이상의 디바이스들이 동일한 또는 상이한 세팅들/뷰잉 모드들로 (예컨대, 모노스코프 방식, 스테레오스코프 방식, SR 등으로) 동일한 3D 모델을 동시에 뷰잉 또는 편집할 수 있게 하는 디바이스들, 시스템들, 및 방법들을 포함한다. 일례에서, 하나 이상의 사용자들은 상이한 시점들로부터의 상이한 뷰들을 사용하여 동일한 3D 모델을 뷰잉 또는 편집하기 위해 동일한 세팅에서 상호작용하도록 상이한 디바이스들을 사용할 수 있다. 디바이스들은 동일한 3D 모델의 상이한 시점들로부터의 상이한 뷰들을 각각 디스플레이할 수 있고, 3D 모델에 대한 변경들이 이루어지더라도, 디바이스들 상의 뷰들의 일관성이 유지된다.
일부 구현예들에서, 방법은, 데스크톱, 랩톱, 태블릿 등의 디바이스와 같은, 하나 이상의 프로세서들 및 컴퓨터 판독가능 저장 매체를 갖는 제1 디바이스에서 수행된다. 본 방법은, 제1 디바이스 상에서, 통합형 개발 세팅(IDE)과 같은 소프트웨어 개발 세팅의 제1 사용자 인터페이스를 디스플레이하는 것을 수반한다. 제1 사용자 인터페이스는 제1 시점에 기초한 3D 모델의 제1 뷰를 포함한다. 예를 들어, 제1 디바이스는, 3D 모델의 중심에 중심을 둔 뷰를 제공하도록 선택된 디폴트 각도 및 선택된 시점 위치에 기초한 객체의 2D 투사를 포함하는 소프트웨어 개발 세팅 인터페이스에서 모노스코픽(즉, 단일 스크린) 뷰를 제공할 수 있다. 제2 디바이스 상의 제2 사용자 인터페이스는 제1 시점과 상이한 제2 시점에 기초한 3D 모델의 제2 뷰를 제공한다. 예를 들어, 제2 디바이스가 헤드 마운트 디바이스(HMD)인 경우, 제2 시점은 HMD의 위치 또는 배향에 기초할 수 있다. 제1 디바이스는, 제2 디바이스가 제2 뷰를 디스플레이할 수 있도록, 제2 디바이스에게 3D 모델에 대응하는 데이터 객체를 직접적으로 또는 간접적으로 전송할 수 있다. 일부 구현예들에서, 3D 모델은 제1 디바이스 및 제2 디바이스와 별개인 서버 상에 유지되고, 제1 및 제2 디바이스들 둘 모두는 서버로부터 3D 모델에 관한 데이터 객체들 및 다른 정보를 수신하고, 3D 객체에 대해 이루어진 변경들을 다시 서버로 통신한다. 일부 구현예들에서, 제1 디바이스 및 제2 디바이스 중 하나 또는 둘 모두는 헤드 마운트 디바이스(HMD)이다.
본 방법은, 제1 디바이스 상에서, 3D 객체에 대한 변경을 제공하는 입력을 추가로 수신하고, 입력에 응답하여, 변경에 대응하는 데이터를 제공한다. 이러한 데이터에 기초하여, 제2 디바이스 상의 3D 객체의 제2 뷰는 제1 뷰와 제2 뷰의 3D 객체 사이의 일관성을 유지하도록 업데이트된다. 예를 들어, 제1 사용자가 제1 디바이스 상에서 테이블의 3D 모델의 색상을 흰색으로 변경하면, 제1 디바이스는 이러한 변경에 대응하는 데이터를 제2 디바이스에 전송하고, 이는 제2 디바이스 상에 묘사된 3D 모델의 색상을 흰색으로 또한 변경하도록 제2 뷰를 업데이트한다.
따라서, 상기 예 및 본 명세서의 다른 곳에 예시된 바와 같이, 일부 구현예들은 다수의 디바이스들 상의 상이한 뷰들을 사용하여 3D 객체의 동시 뷰잉 또는 편집을 가능하게 한다. 이들 구현예들은 종래의 단일 뷰 소프트웨어 개발 세팅들의 단점들 중 많은 것을 극복한다. 구현예들은 개선된 사용자 뷰잉 편집 경험을 제공할 뿐만 아니라 통신 및 데이터 저장의 효율을 개선한다.
일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 기술된 방법들 중 임의의 방법을 수행하거나 또는 그의 수행을 야기하기 위한 명령어들을 포함한다. 일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는, 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 디바이스로 하여금, 본 명세서에 기술된 방법들 중 임의의 방법을 수행하게 하거나 그의 수행을 야기하게 하는 명령어들을 내부에 저장한다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 본 명세서에 기술된 방법들 중 임의의 방법을 수행하거나 그의 수행을 야기하기 위한 수단을 포함한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른, 2개의 디바이스들이 동일한 3D 모델을 동시에 뷰잉 또는 편집하도록 링크된 예시적인 시스템의 블록도이다.
도 2는 일부 구현예들에 따른, 제2 디바이스가 헤드 마운트 디바이스인, 도 1의 시스템의 블록도이다.
도 3은 일부 구현예들에 따른, 도 2의 제1 디바이스 상의 사용자 인터페이스를 사용하여 3D 모델에 대해 이루어진 변경의 블록도이다.
도 4는 일부 구현예들에 따른, 도 2의 제2 디바이스 상의 사용자 인터페이스 상에 디스플레이된 3D 모델에 대해 이루어진 변경의 블록도이다.
도 5는 일부 구현예들에 따른, 예시적인 제1 디바이스의 디바이스 컴포넌트들을 도시하는 블록도이다.
도 6은 일부 구현예들에 따른, 예시적인 제2 디바이스의 디바이스 컴포넌트들을 도시하는 블록도이다.
도 7은 상이한 시점들로부터의 상이한 뷰들을 사용하여 동일한 3D 모델을 뷰잉 또는 편집하기 위해 다수의 디바이스들이 상호작용할 수 있게 하는 방법의 흐름도이다.
도 8은 제2 디바이스를 검출하는 것에 기초하여 제1 디바이스와 제2 디바이스 사이에 링크를 확립하기 위한 방법의 흐름도이다.
일반적인 실시에 따라, 도면에 도시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수는 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 통상의 기술자는 다른 효과적인 양태들 또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 또한, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 철저히 상세하게 설명되지 않았다.
도 1을 참조하면, 2개의 디바이스들(10, 20)이 동일한 3D 모델을 동시에 뷰잉 또는 편집하기 위해 링크(50)를 통해 링크된 예시적인 시스템(5)의 블록도가 제시된다. 제1 디바이스(10)는, 범용 직렬 버스(Universal Serial Bus, USB) 케이블/인터페이스, USB-C 케이블/인터페이스, THUNDERBOLT v1, v2, 또는 v3 케이블/인터페이스, IEEE 1394 케이블/인터페이스(예컨대, FIREWIRE, i.LINK, LYNX), IEEE 802.3x 케이블/인터페이스(예컨대, 이더넷) 등을 이용하는 것과 같은 유선 통신, 및 IEEE 803.11 전송(예컨대, WiFi), IEEE 802.11 전송(예컨대, WLAN), IEEE 802.16x 전송(예컨대, WiMAX), 단파장 전송(예컨대, 블루투스), IEEE 802.15.4 전송(예컨대, ZIGBEE), GSM 전송, ECMA-340 및 ISO/IEC 18092(예컨대, 근거리 통신(NFC)) 등을 이용하는 것과 같은 무선 통신을 포함하지만, 이에 한정되는 유선 링크 또는 무선 링크를 통해, 제2 디바이스(20)에 링크된다. 링크(50)는 직접적일 수 있는데, 즉, 디바이스들(10, 20) 사이에 중간 디바이스 또는 네트워크 노드가 없을 수 있다. 예를 들어, 링크(50)는 각각의 디바이스에 플러그되는 단일 케이블을 통해 또는 디바이스(10)와 디바이스(20) 사이의 블루투스 통신을 통해 디바이스(10)를 디바이스(20)에 직접적으로 연결하는 것을 포함할 수 있다. 링크(50)는 간접적일 수 있는데, 즉, 하나 이상의 중간 디바이스들 또는 네트워크 노드들이 있을 수 있다. 예를 들어, 링크(50)는 인터넷을 통해 전송된 통신을 통해 디바이스(10)를 디바이스(20)에 연결할 수 있다.
제1 디바이스(10)는 통합형 개발 세팅(IDE) 툴바(105), 코드 블록들(120a 내지 120n)을 갖는 코드 편집기(110), 및 제1 뷰(115)를 포함하는 IDE의 사용자 인터페이스(100)를 제공하도록 구성된다. 대체적으로, IDE는 3D 모델을 포함하는 애플리케이션들 및 다른 콘텐츠를 개발하기 위한 통합 툴을 제공한다. IDE는, 개발자들이 3D 모델을 포함하는 애플리케이션 및 다른 전자 콘텐츠를 생성하기 위해 사용하는 코드 편집기(110)와 같은 소스 코드 편집기를 포함할 수 있다. IDE 없이, 개발자는 대체적으로, 텍스트 편집기에서 코드를 작성하고, 별개의 개발 툴들에 액세스하고, 예를 들어, 별개의 애플리케이션들 및/또는 단말기들 상에서 코드를 별개로 컴파일링, 렌더링(rendering), 또는 실행할 필요가 있을 것이다. IDE는 그러한 개발 특징부들을 단일 사용자 인터페이스에 통합할 수 있다. 전형적으로, 그러나 필수적이지는 않게, IDE 사용자 인터페이스는 코드(예컨대, 코드 편집기(110)) 또는 파라미터들을 생성하기 위한 툴 및 생성된 프로젝트의 최종 사용자들이 보게 될 것(예컨대, 특정 시점으로부터의 생성된 3D 모델(125)의 렌더링을 디스플레이하는 제1 뷰(115))을 뷰잉하기 위한 툴 둘 모두를 포함할 것이다.
IDE 툴바(105)는 전자 콘텐츠/3D 모델 프로젝트의 생성 및 편집을 용이하게 하는 다양한 툴들을 포함한다. 예를 들어, IDE는 다중 파일 프로젝트를 위한 디렉토리들 및 패키지들을 개시하기 위한 "New Project(새로운 프로젝트)" 메뉴 항목 또는 그와 유사한 것, 그러한 프로젝트에 대한 새로운 파일들을 생성하기 위한 "New File(새로운 파일)" 메뉴 항목들, 파일들 중 하나 이상에 대해 코드(예를 들어, Java, XML 등)를 생성하기 위한 편집기 창, 파라미터들을 입력하기 위한 파라미터 툴, 프로젝트를 컴파일링하기 위해 컴파일러를 시작하거나, 컴파일링된 애플리케이션을 실행하거나, 이와 달리 3D 모델(125)을 포함하는 콘텐츠를 렌더링하기 위한 빌드(build)/실행/렌더링 툴 또는 그와 유사한 것을 포함할 수 있다. IDE는 개발자가 편집하고 있는 것을 백그라운드(background)에서 컴파일링/렌더링하려고 시도하도록 구성될 수 있다. 개발자가 실수(예컨대, 세미콜론 생략, 타이핑 오류 등)를 하면, IDE는, 예를 들어, 코드, 파라미터 상에 또는 3D 모델(125) 상의 제1 뷰(115) 내에 경고 색들, 하이라이트들, 또는 아이콘들을 제시함으로써, 즉각적인 경고를 제시할 수 있다.
3D 모델 코드 또는 파라미터들은 3D 모델(125)의 외관을 한정하기 위해 사용자 인터페이스(100)에 (예컨대, 키보드, 텍스트 인식 등을 통해) 입력될 수 있다. 예를 들어, 그러한 코드 또는 파라미터들은 3D 모델(125) 또는 3D 모델(125)의 일부분의 외관이 특정 색상(예컨대, 흰색), (예컨대, 특정 파일에서 발견되는 텍스처를 사용하여) 특정 텍스처, 특정 반사율 특성, 특정 불투명성/투명성 특성 등을 가질 것을 특정할 수 있다. 유사하게, 그러한 코드 또는 파라미터들은 3D 모델(125) 또는 3D 모델(125)의 일부분의 위치, 형상, 크기, 회전, 및 다른 그러한 속성들을 특정할 수 있다. 예를 들어, 그러한 코드 또는 파라미터들은, 테이블의 3D 모델(125)의 중심이 x, y, z 좌표계 내의 위치(50, 50, 50)에 있음을 그리고 3D 모델(125)의 폭이 100 유닛임을 특정할 수 있다.
일부 IDE들은, 개발자들이 그들의 프로젝트들을 뷰잉하고 그래픽으로 수정할 수 있게 하는, 제1 뷰(115)가 제공되는 창과 같은 그래픽 편집 창들을 포함한다. 예를 들어, 개발자는 그래픽 편집 창 상의 3D 모델의 포인트들 또는 다른 특징부들 중 하나 이상을 드래그(drag)함으로써 그의 프로젝트 내의 3D 모델의 크기를 조정할 수 있다. IDE는 수신된 입력에 기초하여 3D 모델(125)에 대한 코드 블록들(120a 내지 120n) 또는 파라미터들에 대한 대응하는 변경 또는 변경들을 수행한다. 그래픽 편집 창은 최종 사용자가 보게 될 것을 제시하는 것과 동일한 창일 수 있다. 즉, 그래픽 편집 창은, 컴파일링된/렌더링된 3D 모델(125)을 제시하고 3D 모델(125)의 컴파일링된/렌더링된 디스플레이를 통해 (예컨대, 제1 뷰(115) 내에서의 상호작용들을 통해) 3D 모델(125)의 편집을 가능하게 하기 위해 사용될 수 있다.
다양한 구현예들은, 디바이스들(10, 20)과 같은 둘 이상의 디바이스들이 동일한 또는 상이한 세팅들/뷰잉 모드들로 (예컨대, 모노스코프 방식, 스테레오스코프 방식, SR 등으로) 3D 모델(125)을 동시에 뷰잉 또는 편집할 수 있게 한다. 제2 디바이스(20)가 3D 모델(125)을 동시에 뷰잉 또는 편집할 수 있게 하기 위해, 링크(50)는 디바이스들(10, 20) 사이에 확립된다.
일부 구현예들에서, 제1 디바이스(10)는 제2 디바이스(20)에 3D 모델(125)을 제공하여, 제2 디바이스(20)가 제1 뷰(115)와 상이한 3D 모델(125)의 제2 뷰(215)를 디스플레이할 수 있게 한다. 예를 들어, 제1 디바이스(10) 상의 제1 뷰(115)에 3D 모델(125)을 디스플레이하는 데 사용되는 시점은 제2 디바이스 상의 제2 뷰(215)에 3D 모델(125)을 디스플레이하는 데 사용되는 시점과 상이할 수 있다. 도 1의 예에서, 제1 뷰(115)의 시점은 제2 뷰(215)의 시점과 상이한 뷰잉 위치 및 뷰잉 각도에 기초한다. 일례에서, 제1 뷰(115)에 사용되는 시점은 실세계에서 제1 디바이스(10)의 위치 또는 배향에 의존하지 않는 디폴트 또는 사용자 특정 위치에 기초하는 한편, 제2 뷰(215)에 사용되는 시점은 실세계에서 제2 디바이스(20)의 위치 또는 배향에 의존한다. 이러한 방식으로, 하나 이상의 사용자들은 상이한 시점들로부터 3D 모델(125)을 동시에 뷰잉할 수 있다.
제1 뷰(115) 및 제2 뷰(215)는 동일한 또는 상이한 물리적 세팅들에서 디바이스들(10, 20) 상에 제공될 수 있다. "물리적 세팅"은 전자 시스템들의 보조 없이 사람들이 감지할 수 있거나 사람들과 상호작용할 수 있는 세계를 지칭한다. 물리적 세팅(예컨대, 물리적 숲)은 물리적 객체들(예컨대, 물리적 나무, 물리적 구조물, 및 물리적 동물)을 포함한다. 사람들은, 예컨대 촉각, 시각, 후각, 청각, 및 미각을 통해, 물리적 세팅과 직접 상호작용하거나 이를 감지할 수 있다.
제1 뷰(115) 및 제2 뷰(215) 중 하나 또는 둘 모두는 시뮬레이션 현실(SR) 경험을 수반할 수 있다. 제1 뷰(115)는 제1 SR 세팅을 사용할 수 있고, 제2 뷰(215)는 제1 SR 세팅과 동일하거나 상이한 제2 SR 세팅을 사용할 수 있다. 물리적 세팅과 대조적으로, SR 세팅은 전자 시스템을 통해 사람들이 감지할 수 있거나 사람들과 상호작용할 수 있는 전체적 또는 부분적 컴퓨터 생성 세팅을 지칭한다. SR에서, 사람의 이동들의 서브세트가 모니터링되고, 그것에 응답하여, SR 세팅에서의 하나 이상의 가상 객체들의 하나 이상의 속성들은 하나 이상의 물리 법칙을 지키는 방식으로 변경된다. 예를 들어, SR 시스템은 사람이 몇 걸음 앞으로 걷는 것을 검출하고, 이에 응답하여, 이러한 풍경 및 소리가 물리적 세팅에서 변할 것과 유사한 방식으로 사람에게 제시되는 그래픽 및 오디오를 조정할 수 있다. SR 세팅에서의 가상 객체(들)의 속성(들)에 대한 수정은 또한 이동의 표현들(예컨대, 오디오 명령어들)에 응답하여 이루어질 수 있다.
사람은 촉각, 후각, 시각, 미각, 및 청각을 포함하는 자신의 감각들 중 임의의 하나를 이용하여 SR 객체와 상호작용하거나 이를 감지할 수 있다. 예를 들어, 사람은 다차원(예컨대, 3차원) 또는 공간 청각적 세팅을 생성하거나, 청각적 투명성을 가능하게 하는 청각 객체들과 상호작용하거나 이를 감지할 수 있다. 다차원 또는 공간 청각적 세팅들은 사람에게 다차원 공간에서 개별적인 청각적 소스들에 대한 인식을 제공한다. 청각적 투명성은 컴퓨터 생성 오디오와 함께 또는 그것 없이, 물리적 세팅으로부터의 소리들을 선택적으로 포함한다. 일부 SR 세팅들에서, 사람은 오직 청각적 객체들과 상호작용하거나 이를 감지할 수 있다.
SR의 일례는 가상 현실(VR)이다. VR 세팅은 감각들 중 적어도 하나에 대한 컴퓨터 생성 감각 입력들만을 포함하도록 설계된 시뮬레이션 세팅을 지칭한다. VR 세팅은 사람과 상호작용하거나 사람이 감지할 수 있는 다수의 가상 객체들을 포함한다. 사람은 컴퓨터 생성 세팅 내의 사람의 행동들의 서브세트의 시뮬레이션을 통해, 또는 컴퓨터 생성 세팅 내의 사람 또는 그의 존재의 시뮬레이션을 통해 VR 세팅 내의 가상 객체들과 상호작용하거나 이를 감지할 수 있다.
SR의 다른 예는 혼합 현실(mixed reality, MR)이다. MR 세팅은 컴퓨터 생성 감각 입력들(예컨대, 가상 객체들)을 물리적 세팅, 또는 그것들의 표현으로부터의 감각 입력들과 통합하도록 설계된 시뮬레이션 세팅을 지칭한다. 현실 스펙트럼 상에서, 혼합 현실 세팅은 한편으로의 VR 세팅과, 다른 한편으로의 완전히 물리적 세팅 사이에 존재하며, 둘 모두를 포함하지는 않는다.
일부 MR 세팅들에서, 컴퓨터 생성 감각 입력들은 물리적 세팅으로부터의 감각 입력들의 변경들에 적응할 수 있다. 또한, MR 세팅들을 제시하기 위한 일부 전자 시스템들은 가상 객체들과 실제 객체들(이는 물리적 세팅 또는 이의 표현들로부터의 물리적 객체들임) 사이의 상호작용을 가능하게 하기 위하여 물리적 세팅에 대한 배향 또는 위치를 모니터링할 수 있다. 예를 들어, 시스템은 이동들을 모니터링하여 가상 식물이 물리적 빌딩에 대해 고정된 것처럼 보이도록 할 수 있다.
혼합 현실의 일례는 증강 현실(AR)이다. AR 세팅은 적어도 하나의 가상 객체가 물리적 세팅, 또는 그것들의 표현 위에 중첩되는 시뮬레이션 세팅을 지칭한다. 예를 들어, 전자 시스템은 불투명 디스플레이, 및 물리적 세팅의 표현들인, 물리적 세팅의 이미지들 또는 비디오를 캡처하기 위한 적어도 하나의 이미지 센서를 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 조합하고, 불투명 디스플레이 상에 그 조합을 디스플레이한다. 사람은, 시스템을 이용하여, 물리적 세팅의 이미지들 또는 비디오를 통해 간접적으로 물리적 세팅을 뷰잉하고, 물리적 세팅 위에 중첩된 가상 객체들을 관찰한다. 시스템이 이미지 센서(들)를 이용하여 물리적 세팅의 이미지들을 캡처하고, 이러한 이미지들을 이용하여 불투명 디스플레이 상에 AR 세팅을 제시할 때, 디스플레이되는 이미지들은 비디오 패스-스루(video pass-through)라고 불린다. 대안적으로, AR 세팅을 디스플레이하기 위한 전자 시스템은 사람이 물리적 세팅을 직접 뷰잉할 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 가상 객체들을 투명 또는 반투명 디스플레이 상에 디스플레이하여, 사람이 시스템을 이용하여, 물리적 세팅 상에 중첩된 가상 객체들을 관찰하게 할 수 있다. 다른 예에서, 시스템은 가상 객체들을 물리적 세팅 내로 투사하는 투사 시스템을 포함할 수 있다. 가상 객체들은, 예를 들어, 물리적 표면 상에 또는 홀로그래프로서 투사되어, 사람이 시스템을 이용하여, 물리적 세팅 상에 중첩된 가상 객체들을 관찰하게 할 수 있다.
증강 현실 세팅은 또한 물리적 세팅의 표현이 컴퓨터 생성 감각 정보에 의해 변경되는 시뮬레이션 세팅을 지칭할 수 있다. 예를 들어, 물리적 세팅의 표현의 일부는 그래픽으로 변경될(예컨대, 확대될) 수 있으며, 따라서 변경된 부분은 여전히 원래 캡처된 이미지(들)를 나타낼 수 있지만 원래 캡처된 이미지(들)의 충실하게 재현된 버전은 아닐 수 있다. 다른 예로서, 비디오 패스-스루를 제공함에 있어서, 시스템은 센서 이미지들 중 적어도 하나를 변경하여 이미지 센서(들)에 의해 캡처된 시점과 상이한 특정 시점을 부과할 수 있다. 추가적인 예로서, 물리적 세팅의 표현은 그의 일부들을 그래픽으로 모호하게 하거나 배제함으로써 변경될 수 있다.
혼합 현실의 다른 예는 증강 가상(augmented virtuality, AV)이다. AV 세팅은 컴퓨터 생성 또는 가상 세팅이 물리적 세팅으로부터의 적어도 하나의 감각 입력을 포함하는 시뮬레이션 세팅을 지칭한다. 물리적 세팅으로부터의 감각 입력(들)은 물리적 세팅의 적어도 하나의 특성의 표현들일 수 있다. 예를 들어, 가상 객체는 이미지 센서(들)에 의해 캡처된 물리적 객체의 색상을 취할 수 있다. 다른 예에서, 가상 객체는, 이미징, 날씨-관련 센서들, 또는 온라인 날씨 데이터를 통해 식별된 바와 같은, 물리적 세팅에서의 실제 날씨 조건들과 일치하는 특성들을 나타낼 수 있다. 또 다른 예에서, 증강 현실 숲은 가상 나무들 및 구조물들을 가질 수 있지만, 동물들은 물리적 동물들의 촬영된 이미지들로부터 정확하게 재현되는 특징부들을 가질 수 있다.
일부 구현예들에서, 디바이스들(10, 20) 각각은 사용자를 위한 시뮬레이션 현실(SR) 경험을 관리 및 조정하기 위한 소프트웨어, 펌웨어, 또는 하드웨어의 적합한 조합으로 구성된다. 많은 전자 시스템들은 사람이 다양한 SR 세팅들과 상호작용하거나 이를 감지할 수 있게 한다. 일례는 헤드 마운트 시스템들을 포함한다. 헤드 마운트 시스템은 불투명 디스플레이 및 스피커(들)를 가질 수 있다. 대안적으로, 헤드 마운트 시스템은 외부 디스플레이(예컨대, 스마트폰)를 수용하도록 설계될 수 있다. 헤드 마운트 시스템은 각각 이미지들/비디오를 촬영하거나 물리적 세팅의 오디오를 캡처하기 위한 이미징 센서(들) 또는 마이크로폰들을 가질 수 있다. 헤드 마운트 시스템은 또한 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 그를 통해 사람의 눈들로 지향되는 기판을 통합할 수 있다. 디스플레이는 LED, OLED, 디지털 광 프로젝터, 레이저 스캐닝 광원, 실리콘 액정표시장치, 또는 이 기술들의 임의의 조합을 포함할 수 있다. 광이 통과해서 전송될 수 있는 기판은 도광체, 광학 조합기, 광학 반사기, 홀로그래픽 기판, 또는 이 기판들의 임의의 조합일 수 있다. 일 구현예에서, 투명 또는 반투명 디스플레이는 불투명 상태와 투명 또는 반투명 상태를 선택적으로 전환할 수 있다. 다른 예에서, 전자 시스템은 투사-기반 시스템일 수 있다. 투사-기반 시스템은 이미지들을 개인의 망막 상으로 투사하기 위해 망막 투사를 사용할 수 있다. 대안적으로, 투사 시스템은 또한 가상 객체들을 물리적 세팅 안에(예를 들어, 물리적 표면 상에 또는 홀로그래프로서) 투사할 수 있다. SR 시스템들의 다른 예들은 헤드 업 디스플레이들, 그래픽들을 디스플레이하는 능력을 갖는 자동차 앞유리들, 그래픽들을 디스플레이하는 능력을 갖는 창들, 그래픽들을 디스플레이하는 능력을 갖는 렌즈들, 헤드폰들 또는 이어폰들, 스피커 배열들, 입력 메커니즘들(예를 들어, 햅틱 피드백을 갖거나 갖지 않는 제어기들), 태블릿들, 스마트폰들, 및 데스크톱 또는 랩톱 컴퓨터들을 포함한다.
일례에서, 제1 뷰(115)는 실세계 콘텐츠 없이 VR 좌표계 내에 3D 객체를 디스플레이하는 VR 뷰잉 모드를 제공하는 한편, 제2 뷰(215)는 실세계 콘텐츠와 함께 실세계 좌표계 내에 3D 객체를 디스플레이하는 MR 뷰잉 모드를 제공한다. 그러한 MR 뷰잉 모드는 3D 모델을 실세계 콘텐츠와 조합하는 시각적 콘텐츠를 포함한다. MR은 (예컨대, 실세계 콘텐츠가 카메라에 의해 캡처되고 3D 모델과 함께 디스플레이 상에 디스플레이되는) 비디오-시-스루(video-see-through) 또는 (예컨대, 실세계 콘텐츠가 직접적으로 또는 유리를 통해 뷰잉되고 디스플레이된 3D 모델로 보완되는) 광학-시-스루(optical-see-through)일 수 있다. 예를 들어, MR 시스템은, 렌더링된 3차원(3D) 그래픽을 온보드(onboard) 카메라에 의해 캡처된 라이브 비디오 스트림 내로 통합함으로써 소비자 셀폰의 디스플레이 상에서 비디오 시-스루 MR을 사용자에게 제공할 수 있다. 다른 예로서, MR 시스템은, 렌더링된 3D 그래픽을 웨어러블 시-스루 헤드 마운트 디스플레이("HMD") 내로 중첩시킴으로써 광학 시-스루 MR을 사용자에게 제공하여, 중첩된 3D 모델로 실세계의 사용자의 광학 뷰를 전자적으로 향상시킬 수 있다.
일부 구현예들에서, 디바이스들(10, 20) 둘 모두는 3D 객체(125)의 MR 뷰를 제공한다. 일례에서, 각각의 디바이스(10, 20)는 각자의 디바이스를 둘러싼 또는 그것에 의해 다른 방식으로 관찰되는 실세계 콘텐츠에 의존하여 상이한 실세계 콘텐츠를 포함하는 3D 객체(125)의 뷰를 디스플레이한다. 디바이스들(10, 20) 각각은 그 자신의 카메라 또는 다른 센서를 사용하여 검출된 이미지들 또는 다른 실세계 정보를 사용하도록 구성된다. 일부 구현예들에서, MR 뷰잉 모드를 제공하기 위하여, 디바이스들(10, 20)은 각자의 디바이스(10, 20) 상의 카메라에 의해 캡처된 하나 이상의 카메라 이미지들 중 적어도 일부분을 사용한다. 본 예에서, 각각의 디바이스(10, 20)는 그를 둘러싸는 실세계 정보를 사용하여 뷰를 제공한다. 이러한 이중 MR 뷰잉 모드 구현은 하나 이상의 사용자들이 다수의 그리고 잠재적으로 상이한 MR 시나리오들에서 3D 모델(125)을 용이하게 관찰할 수 있게 한다.
도 2는, 제2 디바이스(20)가 사용자(25)의 머리에 착용되도록 구성된 헤드 마운트 디바이스(HMD)인 도 1의 시스템(5)의 블록도이다. 이러한 예에서, 제2 사용자 인터페이스(200)는 제2 뷰 좌측 눈 부분(220a) 및 제2 뷰 우측 눈 부분(220b)을 갖는 스테레오스코픽 뷰잉 모드를 제공하는 제2 뷰(215)를 포함한다. 제2 뷰 좌측 눈 부분(220a)은 좌측 눈에 대한 3D 모델(125)의 뷰를 포함하고, 제2 뷰 우측 눈 부분(220b)은 우측 눈에 대한 3D 모델(125)의 뷰를 포함한다. 좌측 눈 및 우측 눈에 대한 3D 모델(125)을 렌더링하는 데 사용되는 시점들은 약간 상이할 수 있다. 예를 들어, 3D 모델(125)의 상대 위치들은, 3D 모델(125)을 투사하고 사용자의 눈들 사이의 예상된 또는 실제 거리에 기초하여 이들을 서로에 대해 오프셋시킴으로써 결정될 수 있다.
HMD 또는 다른 이동가능 디바이스를 수반하는 일부 구현예들에서, 제2 뷰(215)를 제공하는 데 사용되는 시점은 제2 디바이스(20)의 위치 또는 배향에 기초한다. 따라서, 사용자(25)가 그의 또는 그녀의 몸 또는 머리를 이동하여 제2 디바이스(20)의 위치 및 배향이 변경됨에 따라, 제2 뷰(215)에 3D 모델(125)을 디스플레이하는 데 사용되는 시점도 또한 변한다. 예를 들어, 사용자(25)가 주변을 걸어다니면, 3D 모델(125)을 그의 다른 측면들로부터, 더 가까이로부터 또는 더 멀리로부터, 하향식 관찰 위치 및 각도로부터, 상향식 관찰 위치 및 각도로부터 뷰잉하도록, 사용자(25)는 그의 또는 그녀의 시점을 변경할 수 있다.
일부 구현예들에서, 도 2에 도시된 바와 같이, 제2 뷰(215)는 사용자(25)가 착용하는 헤드 마운트 디바이스(HMD)에 의해 제공된다. 그러한 HMD는 사용자(25)의 시야를 둘러쌀 수 있다. HMD는 3D 모델을 디스플레이하도록 구성된 하나 이상의 스크린들 또는 다른 디스플레이들을 포함할 수 있다. 도 2의 예에서, HMD는 2개의 스크린들/디스플레이들을 포함하는데, 하나는 좌측 눈을 위한 것이고, 하나는 우측 눈을 위한 것이다. 일부 구현예들에서, HMD는 사용자의 시야에 있는 실세계 콘텐츠와 함께 3D 모델을 디스플레이하기 위한 하나 이상의 스크린들 또는 다른 디스플레이들을 포함한다. 일부 구현예들에서, HMD는, 하나 이상의 스크린들이 사용자(25)의 시야에서 실세계 콘텐츠와 함께 3D 모델을 디스플레이하도록 위치되는 방식으로 착용된다.
일부 구현예들에서, 제2 디바이스(20)는 3D 모델(125)을 제시하도록 구성된 핸드헬드 전자 디바이스(예컨대, 스마트폰 또는 태블릿)이다. 일부 구현예들에서, 제2 뷰(215)를 제공하는 제2 디바이스(20)는, 사용자(25)가 디바이스를 착용 또는 휴대하지 않는, 3D 모델(125)을 제시하도록 구성된 챔버(chamber), 인클로저(enclosure), 또는 실내이다.
일부 구현예들에서, 제1 디바이스(10)의 사용자 인터페이스(100) 또는 디바이스(200)의 사용자 인터페이스(200)를 통해 3D 모델에 대해 이루어진 변경들은 디바이스들(10, 20) 둘 모두 상에서 유지되거나 이와 달리 동기화된다. 예를 들어, 도 3 및 도 4는, 어떻게 제1 디바이스(10)의 사용자 인터페이스(100)를 통해 이루어진 변경이 검출되고 사용되어 디바이스(200)의 사용자 인터페이스(200)를 업데이트하는지를 도시한다.
도 3은 도 1의 제1 디바이스 상의 사용자 인터페이스(100)를 사용하여 3D 모델(125)에 대해 이루어진 변경을 도시하는 블록도이다. 사용자 인터페이스(100)는 그의 사용자가 시점을 변경하거나 이와 달리 3D 모델(125)을 수정하거나 그와 상호작용할 수 있게 한다. 일부 구현예들에서, 사용자 인터페이스(100)는 3D 모델(125)의 외관 또는 위치 특성들을 변경하는 사용자 입력을 수신하도록 구성된다. 본 예에서, 사용자는 3D 모델(125)의 다리(305)를 확장시키기 위해, 코드 블록들(120a 내지 120n) 중 하나 이상을 변경하였거나, 3D 모델(125)의 파라미터들을 변경하기 위한 IDE 툴바(105)의 툴들을 사용하였거나, 제1 뷰(115) 내에서 3D 모델(125)을 그래픽으로 편집하였다. 3D 모델(125)에 대한 변경을 제공하는 입력에 응답하여, 제1 디바이스(10)는 제2 뷰(215)를 위해, 예를 들어 링크(50)를 통해, 변경에 대응하는 데이터를 제2 디바이스에 제공한다. 3D 모델의 제2 뷰(215)는 제1 뷰(115)와 제2 뷰(215)의 3D 모델(125) 사이의 일관성을 유지하기 위해 데이터에 기초하여 업데이트된다.
도 4는 도 2의 제2 디바이스 상의 제2 뷰(215)에 디스플레이된 3D 모델(125)에 대해 이루어진 변경을 도시하는 블록도이다. 묘사된 3D 모델(125)의 다리(305)는 제1 뷰(115) 내의 3D 모델(125)의 다리(305)의 확장에 대응하도록 확장된다. 제1 뷰(115) 내의 묘사된 3D 모델(125)에 대해 이루어진 임의의 변경들은 제2 뷰(215) 내의 3D 모델(125)에 묘사된다. 역으로, 제2 뷰(215) 내의 3D 모델(125)에 대해 이루어진 임의의 변경들은 제1 뷰(115) 내의 3D 모델(125)에 묘사된다. 이러한 방식으로, 디바이스들(10, 20)과 같은 둘 이상의 디바이스들은 동일한 또는 상이한 세팅들/뷰잉 모드들로 (예컨대, 모노스코프 방식, 스테레오스코프 방식, VR, MR 등으로) 동일한 3D 모델(125)을 동시에 뷰잉 또는 편집할 수 있다.
3D 모델(125)에 의해 표현되는 객체들의 예들은 테이블, 바닥, 벽, 책상, 책, 물줄기, 산, 들, 차량, 카운터, 사람 얼굴, 사람 손, 사람 모발, 다른 사람 몸 일부, 사람 전신, 동물 또는 다른 생명체, 옷, 종이, 잡지, 책, 차량, 기계 또는 다른 인조 객체, 및 식별되고 표현될 수 있는 임의의 다른 3D 아이템 또는 아이템들의 그룹을 포함하지만, 이에 한정되지 않는다. 3D 모델(125)은 부가적으로 또는 대안적으로, 외계인들, 마법사들, 우주선들, 유니콘들, 및 컴퓨터 생성 그래픽 및 다른 이러한 아이템들을 포함하지만, 이에 한정되지 않는 실세계 콘텐츠에 대응하거나 또는 대응하지 않을 수 있는 생성된 콘텐츠를 포함할 수 있다.
도 5는 일부 구현예들에 따른, 제1 디바이스(10)의 디바이스 컴포넌트들을 도시하는 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 제1 디바이스(10)는 하나 이상의 프로세싱 유닛들(502)(예컨대, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(506), 하나 이상의 통신 인터페이스들(508)(예컨대, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, ZIGBEE, SPI, I2C, 또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예컨대, I/O) 인터페이스(510), 하나 이상의 디스플레이들(512), 하나 이상의 내부 또는 외부 대면 이미지 센서 시스템들(514), 메모리(520), 및 이러한 다양한 다른 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(504)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(504)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(506)은 터치 스크린, 소프트키, 키보드, 가상 키보드, 버튼, 노브(knob), 조이스틱, 스위치, 다이얼, 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자력계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예컨대, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예컨대, 구조화된 광, 빛의 비행시간 등) 등 중 적어도 하나를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(506)에 의해 검출되는 제1 디바이스(10)의 이동, 회전, 또는 위치는 제1 디바이스(10)에 입력을 제공한다.
일부 구현예들에서, 하나 이상의 디스플레이들(512)은 사용자 인터페이스(100)를 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 디스플레이들(512)은 홀로그래픽, 디지털 광 프로세싱(digital light processing, DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(liquid-crystal on silicon, LCoS), 유기 발광 전계 효과 트랜지스터(organic light-emitting field-effect transitory, OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(surface-conduction electron-emitter display, SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(quantum-dot light-emitting diode, QD-LED), 마이크로-전자-기계 시스템(micro-electro-mechanical system, MEMS), 등의 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(512)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 일례에서, 제1 디바이스(10)는 단일 디스플레이를 포함한다. 다른 예에서, 제1 디바이스(10)는 각각의 눈을 위한 디스플레이를 포함한다. 일부 구현예들에서, 하나 이상의 디스플레이들(512)은 MR 또는 VR 콘텐츠를 제시할 수 있다.
일부 구현예들에서, 하나 이상의 이미지 센서 시스템들(514)은 제1 디바이스(10)에 국한된 장면의 적어도 일부분에 대응하는 이미지 데이터를 획득하도록 구성된다. 하나 이상의 이미지 센서 시스템들(514)은 하나 이상의 RGB 카메라들(예컨대, 상보적 금속-산화물-반도체(CMOS) 이미지 센서 또는 전하-결합 디바이스(CCD) 이미지 센서를 구비), 흑백 카메라, IR 카메라, 이벤트-기반 카메라 등을 포함할 수 있다. 다양한 구현예들에서, 하나 이상의 이미지 센서 시스템들(514)은 플래시와 같은 광을 방출하는 조명원들을 추가로 포함한다.
메모리(520)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스(random-access solid-state memory device)들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(520)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(520)는 선택적으로, 하나 이상의 프로세싱 유닛들(502)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(520)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(520) 또는 메모리(520)의 비일시적 컴퓨터 판독가능 저장 매체는 선택적인 운영 체제(530) 및 하나 이상의 애플리케이션들(540)을 포함하는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 그들의 서브세트를 저장한다. 운영 체제(530)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다.
일부 구현예들에서, 하나 이상의 애플리케이션들(540) 각각은 상이한 뷰들을 사용하여 동일한 3D 모델을 뷰잉 또는 편집하기 위해 사용자가 상이한 디바이스들을 사용할 수 있게 하도록 구성된다. 이를 위해, 다양한 구현예들에서, 하나 이상의 애플리케이션들(540)은 IDE 및 연관된 사용자 인터페이스(100)를 제공하기 위한 통합형 개발 세팅(IDE) 유닛(542), 및 하나 이상의 다른 디바이스들 상에서의 뷰잉을 가능하게 하기 위해 IDE의 뷰잉/편집 세션을 확장하기 위한 세션 확장 유닛(544)을 포함한다. 일부 구현예들에서, 세션 확장 유닛(542)은 하나 이상의 다른 디바이스들에 대한 통신, 예를 들어 사용자 인터페이스(100) 또는 사용자 인터페이스(200)를 통해 3D 모델(125) 또는 3D 모델(125)에 대해 이루어진 변경들을 공유하는 통신을 전송 및 수신하도록 구성된다. 일부 구현예들에서, 세션 확장 유닛(542)은 3D 모델(125) 또는 3D 모델(125)에 대해 이루어진 변경들로, 제2 디바이스 상의 공유 저장 영역을 직접적으로 업데이트하기 위한 통신을 전송한다. 일부 구현예들에서, 세션 확장 유닛(542)은 제2 디바이스 상의 공유 저장 영역 내에서 3D 모델에 대해 이루어진 변경들을 수신하도록 통신을 전송하여 IDE 유닛(542)을 통한 3D 모델의 렌더링이 업데이트되거나 이와 달리 동기화될 수 있게 한다. 일부 구현예들에서, 세션 확장 유닛(542)은, 제2 디바이스에 변경들을 제공하는, 서버 또는 다른 중개 디바이스를 통한 통신을 전송한다.
도 5는 본 명세서에 설명된 구현예들의 구조적 개략도에 반대로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 5에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 6은 일부 구현예들에 따른, 제2 디바이스(20)의 디바이스 컴포넌트들을 도시하는 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비제한적인 예로서, 일부 구현예들에서, 제2 디바이스(20)는 하나 이상의 프로세싱 유닛들(602)(예컨대, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(606), 하나 이상의 통신 인터페이스들(608)(예컨대, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, ZIGBEE, SPI, I2C, 또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예컨대, I/O) 인터페이스(610), 하나 이상의 디스플레이들(612), 하나 이상의 내부 또는 외부 대면 이미지 센서 시스템들(614), 메모리(620), 및 이러한 다양한 다른 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(604)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(604)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(606)은 터치 스크린, 소프트키, 키보드, 가상 키보드, 버튼, 노브, 조이스틱, 스위치, 다이얼, 관성 측정 유닛(IMU), 가속도계, 자력계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예컨대, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예컨대, 구조화된 광, 빛의 비행시간 등) 등 중 적어도 하나를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(606)에 의해 검출되는 제2 디바이스(20)의 이동, 회전, 또는 위치는 제2 디바이스(20)에 입력을 제공한다.
일부 구현예들에서, 하나 이상의 MR 디스플레이들(612)은 다른 디바이스 상에서 뷰잉 또는 편집 중인 3D 모델의 뷰를 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 MR 디스플레이들(612)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계 효과 트랜지스터(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자-기계 시스템(MEMS), 등의 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(612)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 일례에서, 제2 디바이스(20)는 단일 디스플레이를 포함한다. 다른 예에서, 제2 디바이스(20)는 각각의 눈을 위한 디스플레이를 포함한다. 일부 구현예들에서, 하나 이상의 디스플레이들(612)은 MR 또는 VR 콘텐츠를 제시할 수 있다.
일부 구현예들에서, 하나 이상의 이미지 센서 시스템들(614)은 제2 디바이스(20)에 국한된 장면의 적어도 일부분에 대응하는 이미지 데이터를 획득하도록 구성된다. 하나 이상의 이미지 센서 시스템들(614)은 하나 이상의 RGB 카메라들(예컨대, 상보적 금속-산화물-반도체(CMOS) 이미지 센서 또는 전하-결합 디바이스(CCD) 이미지 센서를 구비), 흑백 카메라, IR 카메라, 이벤트-기반 카메라 등을 포함할 수 있다. 다양한 구현예들에서, 하나 이상의 이미지 센서 시스템들(614)은 플래시와 같은 광을 방출하는 조명원들을 추가로 포함한다.
메모리(620)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(620)는 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(620)는 선택적으로, 하나 이상의 프로세싱 유닛들(602)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(620)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(620) 또는 메모리(620)의 비일시적 컴퓨터 판독가능 저장 매체는 선택적인 운영 체제(630) 및 하나 이상의 애플리케이션들(640)을 포함하는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 그들의 서브세트를 저장한다. 운영 체제(630)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다.
일부 구현예들에서, 하나 이상의 애플리케이션들(640)은 제1 디바이스(10) 상에서 뷰잉 또는 편집 중인 3D 객체(125)의 제2 뷰(215)를 제공하는 사용자 인터페이스(200)를 제공하도록 구성된다. 이를 위해, 다양한 구현예들에서, 하나 이상의 애플리케이션들(640)은 3D 모델(125)의 뷰 또는 뷰를 갖는 편집기를 제공하기 위한 뷰어/편집기 유닛(642)을 포함한다. 일부 구현예들에서, 뷰어/편집기 유닛(642)은 공유 메모리 유닛(644) 내의 3D 모델(125)의 사본을 사용하도록 구성된다. 본 예에서, 뷰어/편집기 유닛(642)은 변경들, 예컨대, 제1 디바이스(10)로부터 수신된 통신에 기초하여 공유 메모리 유닛에 업데이트된 3D 모델(125)의 사본에 대해 이루어진 변경들을 위해 공유 메모리 유닛(644)을 모니터링한다. 공유 메모리 유닛(644) 내의 변경들을 검출하는 것에 기초하여, 뷰어/편집기 유닛(642)은 제2 디바이스(20) 상에 제공된 3D 모델의 제2 뷰(215)를 업데이트한다. 유사하게, 일부 구현예들에서, 제2 디바이스(20) 상에 제공된 3D 모델의 제2 뷰(215)를 통해 3D 모델에 대한 변경들이 이루어진다. 뷰어/편집기 유닛(642)은 이러한 변경들을 공유 메모리 유닛(644)에 저장하여, 변경들이 제1 디바이스(10)에 의해 인식되고 제1 디바이스(125) 상에서 3D 객체(125)의 대응하는/동기화된 버전을 유지하기 위해 사용될 수 있게 한다.
일부 구현예들에서, 제2 디바이스(20)는 헤드 마운트 디바이스(HMD)이다. 그러한 HMD는 다양한 컴포넌트들을 하우징(housing)하는 하우징(또는 인클로저)을 포함할 수 있다. 하우징은 하우징의 (사용자(25)에게) 가까운 단부에 배치되는 안구 패드를 포함할 수 있다(또는 이에 결합될 수 있다). 일부 구현예들에서, 안구 패드는 (예컨대, 사용자(25)의 눈을 둘러싼) 사용자(25)의 얼굴의 적절한 위치에 HMD를 편안하고 포근하게 유지하는 플라스틱 또는 고무 조각이다. 하우징은 이미지를 디스플레이하여, 사용자(25)의 한쪽 또는 양쪽 눈을 향해 광을 방출하는 디스플레이를 하우징할 수 있다.
도 6은 본 명세서에 설명된 구현예들의 구조적 개략도에 반대로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 6에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 7은 상이한 시점들로부터의 상이한 뷰들을 사용하여 동일한 3D 모델을 뷰잉 또는 편집하기 위해 다수의 디바이스들이 동일한 세팅에서 상호작용할 수 있게 하기 위한 방법(700)의 흐름도이다. 일부 구현예들에서, 방법(700)은 디바이스(예컨대, 도 1 내지 도 5의 제1 디바이스(10))에 의해 수행된다. 방법(700)은 모바일 디바이스, 데스크톱, 랩톱, 또는 서버 디바이스에서 수행될 수 있다. 일부 구현예들에서, 방법(700)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직(processing logic)에 의해 수행된다. 일부 구현예들에서, 방법(700)은 비일시적 컴퓨터 판독가능 매체(예컨대, 메모리)에 저장된 프로세서 실행 코드에 의해 수행된다.
블록(710)에서, 방법(700)은, 제1 디바이스 상에서, 제1 시점에 기초한 3D 모델의 제1 뷰를 포함하는 통합형 개발 세팅(IDE)의 제1 사용자 인터페이스를 디스플레이한다.
블록(720)에서, 방법(700)은 제1 시점과 상이한 제2 시점에 기초한 3D 모델의 제2 뷰를 포함하는 제2 사용자 인터페이스를 디스플레이한다. 일부 구현예들에서, 제1 디바이스는 3D 모델에 대응하는 데이터 객체를 어떠한 중간 디바이스들도 없이 제2 디바이스에 직접적으로 전송한다. 일부 구현예에서, 제1 디바이스는 3D 모델에 대응하는 데이터 객체를 하나 이상의 중간 디바이스들을 통해 제2 디바이스에 간접적으로 전송한다. 일부 구현예들에서, 3D 모델은 제1 디바이스 및 제2 디바이스와 별개인 서버 상에 유지되고, 제1 및 제2 디바이스들 둘 모두는 서버로부터 3D 모델에 관한 데이터 객체들 및 다른 정보를 수신하고, 3D 객체에 대해 이루어진 변경들을 다시 서버로 통신한다. 일부 구현예들에서, 제1 디바이스 및 제2 디바이스 중 하나 또는 둘 모두는 헤드 마운트 디바이스(HMD)들이다.
제2 시점은 제1 시점과 상이할 수 있다. 예를 들어, 제1 시점은 제2 시점과 상이한 뷰잉 위치 또는 뷰잉 각도에 기초할 수 있다. 일부 구현예들에서, 시점들 중 하나, 예컨대, 제1 뷰에 대해 사용되는 제1 시점은 사용자 입력에 기초하여 식별되고, 다른 시점, 예컨대, 제2 뷰에 대해 사용되는 제2 시점은 실세계 세팅에서 제2 디바이스의 위치 또는 배향에 기초하여 식별된다. 예를 들어, 제1 시점은 사용자가 제1 뷰에 대한 시점을 위해 3D 좌표 공간 내의 특정 좌표 위치를 선택하는 것에 기초할 수 있는 한편, 제2 시점은 실세계 좌표계 내의 HMD 제2 디바이스의 위치/방향/각도에 기초할 수 있다. 따라서, 이러한 예 및 다른 구현예들에서, 제1 시점은 디바이스 위치 및 배향에 독립적인 한편, 제2 시점은 디바이스 위치 및 배향에 의존적이다.
일부 구현예들에서, 제1 및 제2 뷰들은 둘 모두가 모노스코픽이거나, 둘 모두가 스테레오스코픽이거나, 또는 뷰들 중 하나가 모노스코픽이고 다른 하나는 스테레오스코픽이다. 일례에서, 디바이스 중 하나, 예컨대, 제1 디바이스는 3D 모델의 모노스코픽 뷰를 제공하는 단일 스크린을 포함하고, 다른 디바이스, 예컨대, 제2 디바이스는 3D 모델의 스테레오스코픽 뷰를 제공하기 위한 3D 모델의 약간 상이한 시점들/렌더링들을 갖는 이중 스크린들을 포함한다.
일부 구현예들에서, 제1 및 제2 뷰들은 둘 모두가 VR이거나, 둘 모두가 MR이거나, 또는 뷰들 중 하나가 VR이고 다른 하나는 MR이다. 일례에서, 제1 뷰는 3D 모델을 제1 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 MR 세팅에 기초하고, 제2 뷰는 3D 모델을 제2 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 MR 세팅에 기초한다. 다른 예에서, 디바이스들 중 하나에 의해, 예컨대, 제1 디바이스 또는 제2 디바이스에 의해 캡처된 실세계 콘텐츠는 둘 모두의 디바이스들 상에 MR 뷰잉 경험을 제공하기 위해 사용되는데, 예컨대, 둘 모두의 디바이스들은 디바이스들 중 하나에 의해 캡처된 공유되는 실세계 콘텐츠 및 3D 모델을 포함한다. 다른 예에서, 디바이스 중 하나, 예컨대, 제1 디바이스는 실세계 콘텐츠를 포함하지 않는 3D 모델의 VR 뷰를 제공하고, 다른 디바이스, 예컨대 제2 디바이스는 실세계 콘텐츠를 포함하는 3D 모델의 MR 뷰를 제공한다.
블록(730)에서, 방법(700)은, 제1 디바이스 상에서, 3D 모델에 대한 변경을 제공하는 입력을 수신한다. 예를 들어, 제1 디바이스의 사용자는 3D 모델의 속성 또는 특성을 변경하기 위한 IDE 툴들, 코드, 파라미터들, 또는 그래픽 편집기들 중 하나에 대한 키보드 입력, 마우스 입력, 터치 입력, 음성 입력, 또는 다른 입력을 제공할 수 있다. 예를 들어, 사용자는 3D 모델의 크기, 색상, 텍스처, 배향 등을 변경시키고, 3D 모델 또는 3D 모델의 일부를 부가하고, 3D 모델 또는 3D 모델의 일부를 삭제하는 등을 행할 수 있다.
블록(740)에서, 방법(700)은 제1 뷰와 제2 뷰의 3D 모델 사이의 일관성을 유지하도록 제2 뷰를 업데이트하기 위해 변경에 대응하는 데이터를 제공한다. 일부 구현예들에서, 제1 디바이스는 변경을 식별하는 직접 또는 간접 통신을 제2 디바이스에 전송한다. 일부 구현예들에서, 제1 디바이스는 변경에 기초하여 3D 모델의 사본을 저장하는 공유 메모리를 업데이트하는 직접 또는 간접 통신을 제2 디바이스에 전송하고, 제2 뷰는 그에 따라 업데이트된다. 일부 구현예들에서, 통신은 유선 연결 또는 무선 연결을 통해 제1 디바이스로부터 제2 디바이스로 직접적으로 전송된다. 일부 구현예들에서, 통신은, 예컨대, 서버 또는 다른 중개 디바이스를 통해 제2 디바이스로 간접적으로 전송된다. 그러한 서버는 3D 모델을 유지할 수 있고, 주어진 시간에 3D 모델에 액세스 중인 모든 디바이스들 상에서 일관성을 보장하기 위해 다른 디바이스들 상에서 3D 모델에 대해 이루어진 변경들을 다수의 다른 디바이스들 사이에서 공유할 수 있다.
일부 구현예들에서, 시스템의 효율을 개선하기 위해 변경들이 통합 또는 합체된다. 예를 들어, 이는 3D 모델의 초기 상태와 최종 상태 사이의 다수의 변경들을 검출하는 것 및 3D 모델의 초기 상태와 최종 상태 사이의 차이들에 대응하는 데이터를 제공하는 것을 수반할 수 있다. 3D 모델이 먼저 좌측으로 10 유닛만큼 이동되고 이어서 우측으로 5 유닛만큼 이동되면, 3D 모델을 좌측으로 5 유닛만큼 이동시키는 단일 통신이 전송될 수 있다. 일부 구현예들에서, 모든 변경들은 사전결정된 임계 시간 창 내에 (예컨대, 매 0.1초, 매 초 등마다) 수신되고, 디바이스들의 프로세싱 및 저장 능력들에게 과도한 부담을 주는 것을 피하기 위해 이러한 방식으로 통합된다.
일부 구현예들에서, 제1 디바이스 및 제2 디바이스 상의 3D 객체에 대한 변경들의 동시 디스플레이를 가능하게 하기 위해 제1 디바이스와 제2 디바이스 사이에 링크가 확립된다. 일부 구현예들에서, 링크는 운영 체제(OS)-레벨 서비스 호출을 통해 확립된다. 그러한 링크는 유선 또는 무선일 수 있다. 링크는 또한 제2 디바이스 상의 공유 메모리를 호출 또는 액세스할 수 있다. 데몬(daemon)은 이 공유 메모리를 그의 프로세스 공간으로 맵핑하여, 그가 공유 뷰잉/편집 경험을 제공하기 위해 제1 디바이스가 제2 디바이스에 끊김없이 링크하기 위한 전달자(conduit)가 되게 한다.
디바이스들 사이의 링크는 디바이스들 사이의 공유 뷰잉/편집 세션을 인에이블시키는 데 사용될 수 있다. 일부 구현예들에서, 그러한 세션의 생성 및/또는 그러한 세션 내에서의 3D 모델의 공유를 용이하게 함으로써 사용자 경험이 향상된다. 일부 구현예들에서, 제1 디바이스와 제2 디바이스 사이의 무선 또는 유선 연결 또는 다른 링크는 제1 디바이스에 의해 자동으로 검출된다. 무선 또는 유선 연결의 검출에 기초하여, 제1 디바이스는 공유 뷰잉/편집 세션을 개시한다. 일부 구현예들에서, 제1 디바이스는 제2 디바이스 상에서 제2 사용자 인터페이스를 자동으로 기동시키기 위한 통신을 제2 디바이스에 전송한다. 이는 디바이스 상에서 뷰어/편집기 애플리케이션을 기동시키는 것, 및 기동된 뷰어/편집기 애플리케이션에 의해 그리고 직접적으로 제1 디바이스로부터의 통신에 의해 액세스될 수 있는 공유 메모리를 제2 디바이스 상에 확립하는 것을 포함할 수 있다.
공유 뷰잉/편집 경험을 용이하게 하는 디바이스들 사이의 링크는 디바이스들 중 하나의 디바이스 상에서의 경험을, 다른 디바이스 상에서만 이용가능한 기능을 사용하여 향상시키는 데 부가적으로 사용될 수 있다. 예를 들어, 제1 디바이스는 인터넷 액세스를 가질 수 있고, 따라서 제2 디바이스가 이용하지 않은 에셋 스토어(asset store)에 액세스할 수 있다. 그러나, 사용자가 제2 디바이스 상에서 편집함에 따라, 그 또는 그녀는 링크를 통해 에셋 스토어 상에서 이용가능한 에셋들에 액세스할 수 있다. 사용자는, 제1 디바이스가, 링크를 통해, 향상된 사용자 경험을 제공하는 데 사용되고 있다는 것을 알 필요가 없다.
일부 구현예들에서, 도 8과 관련하여 설명된 바와 같이, 사용자 친화적 프로세스가 공유 뷰잉/편집 세션으로서 확립하기 위해 사용된다. 도 8은 제2 디바이스 및 사용자 입력을 검출하는 것에 기초하여 제1 디바이스와 제2 디바이스 사이에 링크를 확립하기 위한 방법(800)의 흐름도이다. 일부 구현예들에서, 방법(800)은 디바이스(예컨대, 도 1 내지 도 5의 제1 디바이스(10))에 의해 수행된다. 방법(800)은 모바일 디바이스, 데스크톱, 랩톱, 또는 서버 디바이스에서 수행될 수 있다. 일부 구현예들에서, 방법(800)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직(processing logic)에 의해 수행된다. 일부 구현예들에서, 방법(800)은 비일시적 컴퓨터 판독가능 매체(예컨대, 메모리)에 저장된 프로세서 실행 코드에 의해 수행된다.
블록(810)에서, 방법(800)은 링크를 확립하기 위해 액세스가능한 제2 디바이스를 검출한다. 일부 구현예들에서, 이는 다른 디바이스가 USB 또는 다른 케이블을 통해 연결되었음을 검출하는 것을 수반한다. 일부 구현예들에서, 이는 무선 통신 채널이 디바이스들 사이에 확립되었음을 검출하는 것을 수반한다. 일부 구현예들에서, 이는 추가적으로 또는 대안적으로 연결된 디바이스는 특정 디바이스, 유형의 디바이스, 또는 특정 사용자, 소유자, 또는 계정과 연관된 디바이스임을 인식하는 것을 포함한다.
블록(820)에서, 방법(800)은 제2 디바이스와의 링크를 확립하기 위한 옵션을 식별하는 메시지를 제공한다. 예를 들어, 사용자가 현재 뷰잉/편집 세션을 다른 검출된 디바이스로 확장시키고자 할지 여부를 묻는 텍스트, 그래픽, 또는 오디오 메시지가 제시된다.
블록(830)에서, 방법(800)은 링크를 확립하기 위한 입력을 수신하고, 블록(840)에서, 방법(800)은 공유 뷰잉/편집 세션을 인에이블시키기 위해 제1 디바이스와 제2 디바이스 사이에 링크를 확립한다. 일부 구현예들에서, 제1 디바이스는, 입력을 수신하는 것에 기초하여, 제2 디바이스 상에서 제2 사용자 인터페이스를 자동으로 기동시키고 제2 사용자 인터페이스를 현재 편집 세션에 연결하기 위한 통신을 제2 디바이스에 전송한다. 링크를 확립하는 것은 제2 디바이스 상에 공유 메모리를 개시하는 것 및 3D 모델을 공유 메모리에 복사하는 것을 수반할 수 있다. 링크를 확립하는 것은 제2 디바이스 상에서 뷰어/편집기를 기동시키는 것 및 제2 뷰 내의 디스플레이를 위해 공유 메모리 내의 3D 모델의 사본에 액세스하도록 제2 디바이스에 명령하는 것을 수반할 수 있다.
블록(850)에서, 방법(800)은 3D 모델의 동시 디스플레이를 유지하기 위해 3D 모델의 업데이트가 제1 디바이스 또는 제2 디바이스 상에서 검출되는 경우에 제2 디바이스 상의 공유 메모리를 업데이트한다. 제1 디바이스 및 제2 디바이스 둘 모두는 그들 자신의 사용자 인터페이스들 상의 3D 모델에 대한 변경들에 기초하여 공유 메모리를 업데이트하도록 그리고 다른 디바이스에 의해 이루어진 변경들에 대하여 공유 메모리를 주기적으로 검사하여 그들 디바이스들의 자신의 사용자 인터페이스들을 업데이트하는 데 사용되도록 구성될 수 있다.
다수의 특정 세부사항들은 청구되는 주제 내용의 철저한 이해를 제공하기 위해 본 명세서에 기재된다. 그러나, 당업자들은 청구되는 주제 내용이 이들 특정 세부사항들 없이 실시될 수 있음을 이해할 것이다. 다른 예시들에서, 당업자에 의해 알려진 방법들, 장치들 또는 시스템들은 청구되는 주제 내용을 불명료하게 하지 않기 위해 상세히 설명되지 않았다.
구체적으로 달리 언급되지 않는다면, 본 명세서 전반에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정", 및 "식별" 등과 같은 용어들을 이용하는 논의들은, 메모리들, 레지스터들, 또는 컴퓨팅 플랫폼의 다른 정보 저장 디바이스들, 송신 디바이스들, 또는 디스플레이 디바이스들 내에서 물리적 전자 또는 자기 양들로서 표현되는 데이터를 조작 또는 변환하는, 하나 이상의 컴퓨터들 또는 유사한 전자 컴퓨팅 디바이스 또는 디바이스들과 같은 컴퓨팅 디바이스의 작동들 또는 프로세스들을 지칭한다는 것이 이해된다.
본 명세서에 논의된 시스템 또는 시스템들은 임의의 특정 하드웨어 아키텍처 또는 구성에 제한되지 않는다. 컴퓨팅 디바이스는 하나 이상의 입력들에 반응하는 결과를 제공하는 컴포넌트들의 임의의 적합한 배열을 포함할 수 있다. 적합한 컴퓨팅 디바이스들은 범용 컴퓨팅 장치로부터 본 주제 내용의 하나 이상의 구현예들을 구현하는 특수 컴퓨팅 장치까지 컴퓨팅 시스템을 프로그래밍 또는 구성하는, 저장된 소프트웨어에 액세스하는 다목적 마이크로프로세서-기반 컴퓨터 시스템들을 포함한다. 임의의 적합한 프로그래밍, 스크립팅, 또는 다른 유형의 언어 또는 언어들의 조합들은 본 명세서에 포함된 교시들을, 컴퓨팅 디바이스를 프로그래밍 또는 구성하는 데 사용될 소프트웨어로 구현하는 데 사용될 수 있다.
본 명세서에 개시된 방법들의 구현예들은 이러한 컴퓨팅 디바이스들의 동작에서 수행될 수 있다. 위 예들에 제시된 블록들의 순서는 달라질 수 있는데, 예를 들어, 블록들이 재정렬되거나, 조합되거나, 또는 하위-블록들로 나뉠 수 있다. 소정의 블록들 또는 프로세스들은 병렬로 수행될 수 있다.
본 명세서에서 "~ 하도록 적응되는(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 (53)

  1. 방법으로서,
    하나 이상의 프로세서들 및 컴퓨터 판독가능 저장 매체를 갖는 제1 디바이스에서,
    상기 제1 디바이스 상에서, 소프트웨어 개발 세팅(software development setting)의 제1 사용자 인터페이스를 디스플레이하는 단계 - 상기 제1 사용자 인터페이스는 제1 시점(viewpoint)에 기초한 3D 모델의 제1 뷰(view)를 포함하고, 제2 디바이스 상의 제2 사용자 인터페이스는 제2 시점에 기초한 상기 3D 모델의 제2 뷰를 포함하고, 상기 제2 시점은 상기 제1 시점과 상이하고, 상기 제2 디바이스는 헤드 마운트 디바이스(head mounted device, HMD)임 -;
    상기 제1 디바이스 상에서, 상기 3D 모델에 대한 변경을 제공하는 입력을 수신하는 단계; 및
    상기 3D 모델에 대한 상기 변경을 제공하는 상기 입력에 응답하여, 상기 변경에 대응하는 데이터를 제공하는 단계 - 상기 3D 모델의 제2 뷰는 상기 제1 뷰 및 상기 제2 뷰의 3D 모델 사이의 일관성을 유지하기 위해 상기 데이터에 기초하여 업데이트됨 - 를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 단계; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 단계를 추가로 포함하는, 방법.
  3. 제1항에 있어서,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 단계; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 단계를 추가로 포함하는, 방법.
  4. 제1항에 있어서, 상기 3D 모델은 상기 제1 디바이스 및 제2 디바이스와 별개인 서버 상에 유지되고, 상기 3D 모델에 대응하는 데이터 객체 및 상기 변경에 대응하는 상기 데이터는 상기 서버에 의해 상기 제2 디바이스에 제공되는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제1 시점은 상기 제2 시점과 상이한 뷰잉(viewing) 위치에 기초하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제1 시점은 상기 제2 시점과 상이한 뷰잉 각도에 기초하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 제1 뷰는 모노스코픽(monoscopic)이고 상기 제2 뷰는 스테레오스코픽(stereoscopic)인, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 제1 시점은 사용자 입력에 기초하여 식별되고, 상기 제2 시점은 실세계 세팅에서 상기 제2 디바이스의 위치 또는 배향에 기초하여 식별되는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 제1 시점은 디바이스 위치 및 배향에 독립적이며, 상기 제2 시점은 디바이스 위치 및 배향에 의존적인, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 제1 뷰 또는 제2 뷰는 상기 3D 모델을 포함하는 가상 현실(virtual reality, VR) 세팅에 기초하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 제1 뷰는 상기 3D 모델을 상기 제1 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(mixed reality, MR) 세팅에 기초하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 제2 뷰는 상기 3D 모델을 상기 제2 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(MR) 세팅에 기초하는, 방법.
  13. 제1항, 제2항, 및 제5항 내지 제12항 중 어느 한 항에 있어서, 상기 제1 디바이스 및 제2 디바이스 상의 상기 3D 객체에 대한 변경들의 동기화된 디스플레이를 가능하게 하기 위해 상기 제1 디바이스와 상기 제2 디바이스 사이에 통신 링크를 확립하는 단계를 추가로 포함하는, 방법.
  14. 제13항에 있어서, 상기 링크는 운영 체제(OS)-레벨 서비스 호출을 통해 확립되는, 방법.
  15. 제13항 또는 제14항에 있어서, 상기 링크는 상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 연결을 포함하는, 방법.
  16. 제13항 또는 제14항에 있어서, 상기 링크는 상기 제1 디바이스와 상기 제2 디바이스 사이의 유선 연결을 포함하는, 방법.
  17. 제1항, 제2항, 및 제5항 내지 제16항 중 어느 한 항에 있어서, 상기 제2 디바이스 상의 공유 메모리는 상기 3D 모델의 사본을 포함하는, 방법.
  18. 제17항에 있어서, 상기 변경에 대응하는 상기 데이터를 제공하는 단계는 상기 데이터에 기초하여 상기 제2 디바이스 상의 상기 공유 메모리 내의 상기 3D 모델의 사본을 업데이트하는 단계를 포함하는, 방법.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서, 상기 제1 디바이스는 기계적 키들을 갖는 키보드를 포함하는, 방법.
  20. 제1항, 제2항, 및 제5항 내지 제16항 중 어느 한 항에 있어서,
    상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 또는 유선 연결을 검출하는 단계; 및
    상기 무선 또는 유선 연결의 검출에 기초하여, 상기 제2 디바이스 상에서 상기 제2 사용자 인터페이스를 자동으로 기동시키기 위한 통신을 상기 제2 디바이스에 전송하는 단계를 추가로 포함하는, 방법.
  21. 제1항, 제2항, 및 제5항 내지 제16항 중 어느 한 항에 있어서,
    상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 또는 유선 연결을 검출하는 단계;
    상기 무선 또는 유선 연결의 검출에 기초하여, 상기 제1 사용자 인터페이스 상에, 상기 제2 디바이스를 상기 사용자 인터페이스의 현재 편집 세션에 링크시키기 위한 옵션을 제공하는 단계;
    상기 옵션을 선택하는 입력을 수신하는 단계; 및
    상기 입력을 수신하는 것에 기초하여, 상기 제2 디바이스 상에서 상기 제2 사용자 인터페이스를 자동으로 기동시키고 상기 제2 사용자 인터페이스를 상기 현재 편집 세션에 연결하기 위한 통신을 상기 제2 디바이스에 전송하는 단계를 추가로 포함하는, 방법.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서, 상기 변경에 대응하는 데이터를 제공하는 단계는,
    상기 3D 모델의 초기 상태와 최종 상태 사이의 다수의 변경들을 검출하는 단계; 및
    상기 3D 모델의 상기 초기 상태와 상기 최종 상태 사이의 차이들에 대응하는 데이터를 제공하는 단계를 포함하는, 방법.
  23. 시스템으로서,
    비일시적 컴퓨터 판독가능 저장 매체; 및
    상기 비일시적 컴퓨터 판독가능 저장 매체에 결합된 하나 이상의 프로세서들을 포함하며, 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 하나 이상의 프로세서들 상에서 실행될 때, 시스템으로 하여금 동작들을 수행하게 하는 프로그램 명령어들을 포함하고, 상기 동작들은,
    제1 디바이스 상에서, 소프트웨어 개발 세팅의 제1 사용자 인터페이스를 디스플레이하는 것 - 상기 제1 사용자 인터페이스는 제1 시점에 기초한 3D 모델의 제1 뷰를 포함하고, 제2 디바이스 상의 제2 사용자 인터페이스는 제2 시점에 기초한 상기 3D 모델의 제2 뷰를 포함하고, 상기 제2 시점은 상기 제1 시점과 상이하고, 상기 제2 디바이스는 헤드 마운트 디바이스(HMD)임 -;
    상기 제1 디바이스 상에서, 상기 3D 모델에 대한 변경을 제공하는 입력을 수신하는 것; 및
    상기 3D 모델에 대한 상기 변경을 제공하는 상기 입력에 응답하여, 상기 변경에 대응하는 데이터를 제공하는 것 - 상기 3D 모델의 제2 뷰는 상기 제1 뷰 및 상기 제2 뷰의 3D 모델 사이의 일관성을 유지하기 위해 상기 데이터에 기초하여 업데이트됨 - 을 포함하는, 시스템.
  24. 제23항에 있어서, 상기 동작들은,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 것; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 것을 추가로 포함하는, 시스템.
  25. 제23항에 있어서, 상기 동작들은,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 것; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 것을 추가로 포함하는, 시스템.
  26. 제23항에 있어서, 상기 3D 모델은 상기 제1 디바이스 및 상기 제2 디바이스와 별개인 서버 상에 유지되고, 상기 서버는 상기 3D 모델에 대응하는 데이터 객체 및 상기 변경에 대응하는 상기 데이터를 상기 제2 디바이스에 제공하도록 구성되는, 시스템.
  27. 제23항 내지 제26항 중 어느 한 항에 있어서, 상기 제1 뷰는 모노스코픽이고 상기 제2 뷰는 스테레오스코픽인, 시스템.
  28. 제23항 내지 제27항 중 어느 한 항에 있어서, 상기 제1 시점은 디바이스 위치 및 배향에 독립적인, 시스템.
  29. 제23항 내지 제28항 중 어느 한 항에 있어서, 상기 제1 뷰 또는 제2 뷰는 상기 3D 모델을 포함하는 가상 현실(VR) 세팅에 기초하는, 시스템.
  30. 제23항 내지 제29항 중 어느 한 항에 있어서, 상기 제1 뷰는 상기 3D 모델을 상기 제1 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(MR) 세팅에 기초하는, 시스템.
  31. 제23항 내지 제30항 중 어느 한 항에 있어서, 상기 제2 뷰는 상기 3D 모델을 상기 제2 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(MR) 세팅에 기초하는, 시스템.
  32. 제23항, 제24항, 및 제27항 내지 제31항 중 어느 한 항에 있어서, 상기 제2 디바이스 상의 공유 메모리는 상기 3D 모델의 사본을 포함하는, 시스템.
  33. 제32항에 있어서, 상기 변경에 대응하는 상기 데이터를 제공하는 것은 상기 데이터에 기초하여 상기 제2 디바이스 상의 상기 공유 메모리 내의 상기 3D 모델의 사본을 업데이트하는 것을 포함하는, 시스템.
  34. 동작들을 수행하도록 컴퓨터 상에서 컴퓨터-실행가능한 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 동작들은,
    제1 디바이스 상에서, 소프트웨어 개발 세팅의 제1 사용자 인터페이스를 디스플레이하는 것 - 상기 제1 사용자 인터페이스는 제1 시점에 기초한 3D 모델의 제1 뷰를 포함하고, 제2 디바이스 상의 제2 사용자 인터페이스는 제2 시점에 기초한 상기 3D 모델의 제2 뷰를 포함하고, 상기 제2 시점은 상기 제1 시점과 상이하고, 상기 제2 디바이스는 헤드 마운트 디바이스(HMD)임 -;
    상기 제1 디바이스 상에서, 상기 3D 모델에 대한 변경을 제공하는 입력을 수신하는 것; 및
    상기 3D 모델에 대한 상기 변경을 제공하는 상기 입력에 응답하여, 상기 변경에 대응하는 데이터를 제공하는 것 - 상기 3D 모델의 제2 뷰는 상기 제1 뷰 및 상기 제2 뷰의 3D 모델 사이의 일관성을 유지하기 위해 상기 데이터에 기초하여 업데이트됨 - 을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  35. 제34항에 있어서, 상기 동작들은,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 것; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 직접적으로 제공하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  36. 제34항에 있어서, 상기 동작들은,
    상기 3D 모델에 대응하는 데이터 객체를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 것; 및
    상기 변경에 대응하는 상기 데이터를 상기 제1 디바이스로부터 상기 제2 디바이스로 간접적으로 제공하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  37. 제34항에 있어서, 상기 3D 모델은 상기 제1 디바이스 및 상기 제2 디바이스와 별개인 서버 상에 유지되고, 상기 서버는 상기 3D 모델에 대응하는 데이터 객체 및 상기 변경에 대응하는 상기 데이터를 상기 제2 디바이스에 제공하도록 구성되는, 비일시적 컴퓨터 판독가능 저장 매체.
  38. 제34항 내지 제37항 중 어느 한 항에 있어서, 상기 제1 시점은 상기 제2 시점과 상이한 뷰잉 위치 또는 뷰잉 각도에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
  39. 제34항 내지 제38항 중 어느 한 항에 있어서, 상기 제1 뷰는 모노스코픽이고 상기 제2 뷰는 스테레오스코픽인, 비일시적 컴퓨터 판독가능 저장 매체.
  40. 제34항 내지 제39항 중 어느 한 항에 있어서, 상기 제1 시점은 사용자 입력에 기초하여 식별되고, 상기 제2 시점은 실세계 세팅에서 상기 제2 디바이스의 위치 또는 배향에 기초하여 식별되는, 비일시적 컴퓨터 판독가능 저장 매체.
  41. 제34항 내지 제40항 중 어느 한 항에 있어서, 상기 제1 시점은 디바이스 위치 및 배향에 독립적이며, 상기 제2 시점은 디바이스 위치 및 배향에 의존적인, 비일시적 컴퓨터 판독가능 저장 매체.
  42. 제34항 내지 제41항 중 어느 한 항에 있어서, 상기 제1 뷰 또는 제2 뷰는 상기 3D 모델을 포함하는 가상 현실(VR) 세팅에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
  43. 제34항 내지 제42항 중 어느 한 항에 있어서, 상기 제1 뷰는 상기 3D 모델을 상기 제1 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(MR) 세팅에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
  44. 제34항 내지 제43항 중 어느 한 항에 있어서, 상기 제2 뷰는 상기 3D 모델을 상기 제2 디바이스 상의 카메라에 의해 캡처된 실세계 세팅으로부터의 콘텐츠와 조합한 혼합 현실(MR) 세팅에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
  45. 제34항, 제35항, 및 제38항 내지 제44항 중 어느 한 항에 있어서, 동작들은 상기 제1 디바이스 및 제2 디바이스 상의 상기 3D 객체에 대한 변경들의 동시 디스플레이를 가능하게 하기 위해 상기 제1 디바이스와 상기 제2 디바이스 사이에 통신 링크를 확립하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  46. 제45항에 있어서, 상기 링크는 운영 체제(OS)-레벨 서비스 호출을 통해 확립되는, 비일시적 컴퓨터 판독가능 저장 매체.
  47. 제45항 또는 제46항에 있어서, 상기 링크는 상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 연결을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  48. 제45항 또는 제46항에 있어서, 상기 링크는 상기 제1 디바이스와 상기 제2 디바이스 사이의 유선 연결을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  49. 제34항, 제35항, 및 제38항 내지 제48항 중 어느 한 항에 있어서, 상기 제2 디바이스 상의 공유 메모리는 상기 3D 모델의 사본을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  50. 제49항에 있어서, 상기 변경에 대응하는 상기 데이터를 제공하는 것은 상기 데이터에 기초하여 상기 제2 디바이스 상의 상기 공유 메모리 내의 상기 3D 모델의 사본을 업데이트하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  51. 제34항, 제35항, 및 제38항 내지 제50항 중 어느 한 항에 있어서, 상기 동작들은,
    상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 또는 유선 연결을 검출하는 것; 및
    상기 무선 또는 유선 연결의 검출에 기초하여, 상기 제2 디바이스 상에서 상기 제2 사용자 인터페이스를 자동으로 기동시키기 위한 통신을 상기 제2 디바이스에 전송하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  52. 제34항, 제35항, 및 제38항 내지 제50항 중 어느 한 항에 있어서, 상기 동작들은,
    상기 제1 디바이스와 상기 제2 디바이스 사이의 무선 또는 유선 연결을 검출하는 것;
    상기 무선 또는 유선 연결의 검출에 기초하여, 상기 제1 사용자 인터페이스 상에, 상기 제2 디바이스를 상기 사용자 인터페이스의 현재 편집 세션에 링크시키기 위한 옵션을 제공하는 것;
    상기 옵션을 선택하는 입력을 수신하는 것; 및
    상기 입력을 수신하는 것에 기초하여, 상기 제2 디바이스 상에서 상기 제2 사용자 인터페이스를 자동으로 기동시키고 상기 제2 사용자 인터페이스를 상기 현재 편집 세션에 연결하기 위한 통신을 상기 제2 디바이스에 전송하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  53. 제34항 내지 제52항 중 어느 한 항에 있어서, 상기 변경에 대응하는 데이터를 제공하는 것은,
    상기 3D 모델의 초기 상태와 최종 상태 사이의 다수의 변경들을 검출하는 것; 및
    상기 3D 모델의 상기 초기 상태와 상기 최종 상태 사이의 차이들에 대응하는 데이터를 제공하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020207030620A 2018-04-24 2019-04-18 3d 모델들의 다중-디바이스 편집 KR20200135496A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862661756P 2018-04-24 2018-04-24
US62/661,756 2018-04-24
PCT/US2019/028027 WO2019209608A1 (en) 2018-04-24 2019-04-18 Multi-device editing of 3d models

Publications (1)

Publication Number Publication Date
KR20200135496A true KR20200135496A (ko) 2020-12-02

Family

ID=66440145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030620A KR20200135496A (ko) 2018-04-24 2019-04-18 3d 모델들의 다중-디바이스 편집

Country Status (5)

Country Link
US (1) US20210034319A1 (ko)
EP (1) EP3785235A1 (ko)
KR (1) KR20200135496A (ko)
CN (1) CN112020731A (ko)
WO (1) WO2019209608A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334326B2 (en) * 2019-02-27 2022-05-17 Adrian Andres Rodriguez-Velasquez Systems, devices, and methods of developing or modifying software using physical blocks
US20230024958A1 (en) * 2021-01-13 2023-01-26 MediVis, Inc. Stereo video in augmented reality
US20220350937A1 (en) * 2021-04-30 2022-11-03 Dassault Systemes Solidworks Corporation Linking Views/States of 3D Models and Propagating Updates in Same
US20230341990A1 (en) * 2022-04-20 2023-10-26 Htc Corporation Visual content generating method, host, and computer readable storage medium

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0998702A1 (en) * 1997-08-01 2000-05-10 Muse Technologies, Inc. Shared multi-user interface for multi-dimensional synthetic environments
US9595127B2 (en) * 2010-12-22 2017-03-14 Zspace, Inc. Three-dimensional collaboration
US9298334B1 (en) * 2011-02-18 2016-03-29 Marvell International Ltd. Method and apparatus for providing a user interface having a guided task flow among a plurality of devices
JP6126076B2 (ja) * 2011-03-29 2017-05-10 クアルコム,インコーポレイテッド 各ユーザの視点に対する共有デジタルインターフェースのレンダリングのためのシステム
US9678617B2 (en) * 2013-01-14 2017-06-13 Patrick Soon-Shiong Shared real-time content editing activated by an image
US9858720B2 (en) * 2014-07-25 2018-01-02 Microsoft Technology Licensing, Llc Three-dimensional mixed-reality viewport
CA2997021A1 (en) * 2016-06-10 2017-12-14 Barrie A. Loberg Mixed-reality architectural design environment

Also Published As

Publication number Publication date
US20210034319A1 (en) 2021-02-04
CN112020731A (zh) 2020-12-01
WO2019209608A1 (en) 2019-10-31
EP3785235A1 (en) 2021-03-03

Similar Documents

Publication Publication Date Title
KR102218516B1 (ko) 2d/3d 혼합 콘텐츠의 검출 및 디스플레이
US10643394B2 (en) Augmented reality
US20210034319A1 (en) Multi-device editing of 3d models
KR102543993B1 (ko) 시뮬레이션된 현실(sr)에서의 디스플레이 디바이스 공유 및 상호작용성
KR102406878B1 (ko) 컴퓨터 생성 렌더링 환경을 위한 시각적 검색 세분화
US10984607B1 (en) Displaying 3D content shared from other devices
US11709541B2 (en) Techniques for switching between immersion levels
KR102632448B1 (ko) 계산 효율적인 모델 선택
US20230288701A1 (en) Sensor emulation
US20230262406A1 (en) Visual content presentation with viewer position-based audio
US20230419593A1 (en) Context-based object viewing within 3d environments

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X601 Decision of rejection after re-examination
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2023101002325; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20231030

Effective date: 20240206