KR20140136367A - 화면 상에 3d 장면 그래프를 디스플레이하는 방법 - Google Patents

화면 상에 3d 장면 그래프를 디스플레이하는 방법 Download PDF

Info

Publication number
KR20140136367A
KR20140136367A KR1020137033996A KR20137033996A KR20140136367A KR 20140136367 A KR20140136367 A KR 20140136367A KR 1020137033996 A KR1020137033996 A KR 1020137033996A KR 20137033996 A KR20137033996 A KR 20137033996A KR 20140136367 A KR20140136367 A KR 20140136367A
Authority
KR
South Korea
Prior art keywords
application
scene
display server
node
scene graph
Prior art date
Application number
KR1020137033996A
Other languages
English (en)
Other versions
KR101528215B1 (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 KR20140136367A publication Critical patent/KR20140136367A/ko
Application granted granted Critical
Publication of KR101528215B1 publication Critical patent/KR101528215B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • 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/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/61Scene description

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 화면 상에 3D 장면 그래프(3D scene graph)를 디스플레이하는 방법에 관한 것이며, 이 방법은, 3D 리소스를 어플리케이션 장면 노드의 세트에 부착하는 단계와, 컴퓨터 시스템의 오퍼레이팅 시스템 상의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 오퍼레이팅 시스템 상의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하는 단계로서, 이러한 분리가, 어플리케이션 장면 노드의 제1 서브-세트를 제1 프로세스에 연결하고, 어플리케이션 장면 노드의 제2 서브-세트를 제2 프로세스에 연결함으로써 이루어지는, 분리하는 단계와, 제1 프로세스 및 제2 프로세스를 컴퓨터 시스템의 3D 디스플레이 서버에 로딩하는 단계와, 제1 프로세스 및 제2 프로세스에 기초하여 3D 장면 그래프를 구축하는 단계와, 3D 장면 그래프를 화면 상에 디스플레이하는 단계를 포함한다.

Description

화면 상에 3D 장면 그래프를 디스플레이하는 방법{METHOD FOR DISPLAYING A 3D SCENE GRAPH ON A SCREEN}
본 발명은 화면 상에 3D 장면 그래프를 디스플레이하는 방법 및 3D 컴퓨터 시스템을 위한 오퍼레이팅 시스템에 관한 것으로, 보다 구체적으로는 이러한 오퍼레이팅 시스템에서의, 특히 어플리케이션 시각화(application visualization)를 위한 윈도우 관리 및 프로세스 분리 인터페이스의 영역에서의, 그래픽 스택(graphic stack)에 관한 것이다.
데스크탑 메타포(desktop metaphor)는 1970년에 Xerox PARC의 Alan Kay에 의해 최초로 도입되었다. 스태킹 데스크탑 메타포는 Xerox Star에 의해 최초로 이용되어 윈도우로 하여금 스택할 수 있도록 한다. Xerox Star는 다이알로그 박스에 대하여 중첩을 허용하였다. 데스크탑 환경을 형성하는 2가지 요소는 일반적으로 윈도우 관리자와, 어플리케이션 및 데스크탑 환경에 대해 통일된 보기 및 느낌(unified look and feel)을 제공하는 위젯 툴키트(widget toolkit)이다. 윈도우 관리는 최종 사용자에게 복수의 프로세스 시각화를 동시에 보여주는 것을 가능하게 한다. 현재의 윈도우 관리자에서, 윈도우 관리자와 어플리케이션 프로세스 간의 인터페이스는 일반적으로 직사각형 비트맵이다. 어플리케이션 프로세스와 윈도우 관리자 간에는 예컨대 드로우된 프레임 당의 전체 비트맵(whole bitmap per frame drawn)을 전송하거나, 어플리케이션 비트맵으로부터의 변경된 영역을 전송하거나, 단일 드로우 코맨드(single draw command)를 전송함으로써 다양한 방식으로 데이터 전송이 행해진다. 프로세스 분리는 오퍼레이팅 시스템 레벨 안정성 및 견고성을 증가시킨다. 프로세스는 잘 정의된 인터페이스(well-defined interface)에 의해 서로 전체적으로 격리된다. 디폴트로서, 프로세스는 다른 프로세스에 의해 소유된 리소스를 액세스할 수 없다.
몇몇 윈도우 관리자는 프로세스 분리된 2D 어플리케이션 표면을 3D 장면에 이식한다. 2D 어플리케이션 표면은 이들 데스크탑 환경에서 다양한 장소에, 즉 3D 큐브의 측면 또는 가상 세계에서의 벽 등에 위치될 수 있다. 지난 수년 동안 이루어진 이 분야에서의 연구 작업의 개요를 "Peuhkurinen A., Mikkonen T., Terho M.: Using RDF Data as Basis for 3D Window Manager in Mobile Devices, MobiWIS-2011, Niagara Falls, Canada, September 2011"에서 찾아볼 수 있다.
어플리케이션 프로세스가 2D 표면을 이용하는 대신 동일한 장면 그래프에 대해 3D 오브젝트를 직접 이용함으로써 그 자체를 시각화할 수 있는 3D 데스크탑 환경을 만들기 위해서는, 종래 기술의 윈도우 관리자 및 위젯 툴키트가 다시 설계되어야 한다. 그러므로, 디스플레이 서버, 즉 윈도우 관리자와 어플리케이션 프로세스 간의 새로운 시각화 인터페이스를 규정하는 것이 요망된다.
이에 부가하여, 디스플레이 서버는 3D 오브젝트를 이용함으로써 어플리케이션을 직접 디스플레이하기 위해서는 프로세스 분리된 및 그래픽 관련된 데이터를 신속한 방식으로 렌더링할 수 있어야 한다. 그러므로, 데이터의 변경을 핸들링하고 통신할 뿐만 아니라 디스플레이 서버와 어플리케이션 프로세스 간에 데이터를 로딩 및 언로딩하기 위한 최적의 해법을 찾는 것이 요망된다.
본 발명의 목적은 3D 비디오 시스템에서의 디스플레이 서버와 어플리케이션 간의 개선된 시각화 인터페이스를 제공하는 것이다.
본 발명의 이러한 목적은 독립 청구항의 특징부에 의해 달성된다. 다른 실시 형태는 종속 청구항, 상세한 설명 및 도면으로부터 명백하게 된다.
본 발명은, 3D 장면 그래프를 갖는 디스플레이 서버로 하여금 어플리케이션을 위한 프로세스 분리를 수행할 수 있도록 하는 새로운 컴포넌트를 그래픽 스택에 적용함으로써 3D 비디오 시스템에서의 디스플레이 서버와 어플리케이션 간의 향상된 시각화 인터페이스가 생성될 수 있다는 것을 기반으로 한다. 더욱이, 새로운 컴포넌트는 디스플레이 서버에서 흔히 사용되는 2D 표면 기반 어플리케이션 인터페이스 대신 3D 어플리케이션 인터페이스를 구현한다. 그러므로, 프로세스 분리된 어플리케이션 시각화가 흔히 사용되는 2D 표면 대신 3D에 의해 실현될 수 있다.
본 발명을 상세하게 설명하기 위해, 이하의 용어, 약어 및 표기법이 이용될 것이다:
3D : 3차원
2D : 2차원
그래픽 : 3D 컴퓨터 그래픽은 계산을 수행하고 이미지를 렌더링하기 위해 컴퓨터에 저장된 지오메트릭 데이터의 3차원 표현을 이용하는 그래픽이다. 이러한 이미지는 추후에 보기 위해 저장되거나 또는 실시간으로 디스플레이될 수 있다.
3D 렌더링 : 3D 와이어 프레임 모델(3D wire frame model), 즉 3차원의 또는 실체적인 오브젝트(physical object)의 시각적 표시를 컴퓨터 상에서의 3D 포토리얼리스틱 이펙트(photorealistic effect) 또는 논-포토리얼리스틱 렌더링(non-photorealistic rendering)으로 2D 이미지로 자동으로 변환하는 3D 컴퓨터 그래픽 프로세스.
3D 컴퓨터 그래픽 소프트웨어 : 3D 컴퓨터 생성 이미지를 만들기 위해 사용되는 프로그램을 지칭. 3D 모델링은 사용자로 하여금 자신의 3D 메시(3D mesh)를 통해 모델을 만들고 변경할 수 있도록 한다. 사용자는 메시를 자신의 요구에 따라 추가하거나, 빼거나, 늘리거나(stretch), 다른 방식으로 변경할 수 있다. 모델을 대개는 동시에 다양한 각도에서 볼 수 있다. 모델을 회전시킬 수 있고, 뷰를 줌인 및 줌아웃할 수 있다.
UI : 사용자 인터페이스. 사용자 인터페이스는 인간과 기기 간의 상호작용이 발생하는 공간이다. 상호작용의 목표는 사용자의 단(user's end)에서의 기기의 효율적인 조작 및 제어와 기기로부터의 피드백이며, 이러한 피드백은 조작자가 조작 결정을 행함에 있어서 도움을 준다.
EGL : EGL은 크로노스 렌더링 API(Khronos rendering API)(OpenGL ES 또는 OpenVG와 같은)와 하위 네이티브 플랫폼 윈도잉 시스템(underlying native platform windowing system) 간의 인터페이스이다. EGL은 그래픽 콘텍스트 관리, 표면/버퍼 바인딩, 렌더링 동기화를 핸들링하고, 다른 크로노스 API를 이용하여 "고성능의 가속된 혼합-모드 2D 및 3D 렌더링(high-performance, accelerated, mixed-mode 2D and 3D rendering)"을 가능하게 한다. 크로노스는 다양한 플랫폼 및 디바이스 상의 병렬 컴퓨팅, 그래픽, 다이나믹 미디어, 컴퓨터 비전 및 센서 프로세싱의 오쏘링(authoring) 및 가속을 위한 개방 표준을 만드는 산업 컨소시엄이다.
GLES : 임베디드 시스템용 OpenGL(OpenGL ES)은 이동 전화, PDA, 및 비디오 게임 콘솔과 같은 임베디드 시스템을 위해 설계된 OpenGL 3D 그래픽 어플리케이션 프로그래밍 인터페이스(API)의 서브세트이다.
API : 어플리케이션 프로그래밍 인터페이스; 어플리케이션 프로그래밍 인터페이스는 서로 통신하기 위해 소프트웨어 컴포넌트에 의해 인터페이스처럼 사용되도록 의도된 프로토콜이다. API는 루틴, 데이터 구조, 오브젝트 클래스, 및 변수를 위한 상세를 포함할 수 있는 라이브러리이다.
커널(kernel) : 컴퓨팅에서, 커널은 대부분의 컴퓨터 오퍼레이팅 시스템의 메인 컴포넌트이며, 어플리케이션과 하드웨어 레벨에서 행해진 실제 데이터 처리 간의 브리지이다. 커널의 책임은 시스템의 리소스를 관리하는 것(하드웨어와 소프트웨어 컴포넌트 간의 통신)을 포함한다. 일반적으로, 오퍼레이팅 시스템의 기본 컴포넌트로서, 커널은 어플리케이션 소프트웨어가 그 기능을 수행하도록 제어하여야 하는 리소스(특히, 프로세서 및 I/O 디바이스)에 대한 최하위 레벨의 업스트랙션 계층(abstraction layer)을 제공할 수 있다. 커널은 통상적으로 이들 설비(facility)를 인터-프로세스 통신 메카니즘 및 시스템 콜(system call)을 통해 어플리케이션 프로세스에 이용 가능하게 한다.
어플리케이션 : 소프트웨어 어플리케이션 또는 어플리케이션 소프트웨어는 사용자가 특정한 태스크를 수행하는데 도움을 주도록 설계된 컴퓨터 소프트웨어이며, 이동 전화, PDA 및 비디오 게임 콘솔과 같은 임베디드 시스템을 위해 설계될 수도 있다.
미들웨어 : 소프트웨어 어플리케이션에 서비스를 제공하는 컴퓨터 소프트웨어. 미들웨어는 이동 전화, PDA, 및 비디오 게임 콘솔 상에서 실행될 수 있다.
오퍼레이팅 시스템 커널 : 컴퓨터 하드웨어를 작동시키고 제어하며, 어플리케이션 소프트웨어를 실행하기 위한 플랫폼을 제공하도록 설계된 컴퓨터 소프트웨어. 오퍼레이팅 시스템은 이동 전화, PDA 및 비디오 게임 콘솔과 같은 임베디드 시스템 상에서 실시되도록 설계될 수도 있다.
프로세스 : 실행되고 있는 컴퓨터 프로그램의 인스턴스(instance). 프로세스는 이동 전화, PDA 및 비디오 게임 콘솔과 같은 임베디드 시스템 상에서 실행될 수 있다.
윈도우 관리자 : 윈도우 관리자는 그래픽 사용자 인터페이스에서의 윈도윙 시스템 내에서의 윈도우의 배치 및 외관(appearance)을 제어하는 시스템 소프트웨어이다. 대부분의 윈도우 관리자는 데스크탑 환경을 제공하는데 도움을 주도록 설계된다. 윈도우 관리자는 그래픽 하드웨어에 대해 요구된 기능-지원을 제공하는 하위 그래픽 시스템, 포인팅 디바이스, 및 키보드와 연대하여 작동하며, 위젯 툴키트를 이용하여 작성되고 생성되는 경우가 많다. 윈도우 관리자는 상이한 프로세스로부터 시각화를 함께 조합하고 입력 플로우를 제어하기 위해 이용된다. 그러므로, 윈도우 관리자는 사용자로 하여금 시각화 및 프로세스 모두를 단일 시스템으로서 경험할 수 있도록 한다.
디스플레이 서버 : 디스플레이 서버는 윈도우 관리자로도 지칭된다. 어플리케이션이 그래픽을 자신의 버퍼에 제공할 때, 윈도우 관리자는 디스플레이 서버가 되어, 어플리케이션 윈도우의 온-스크린 디스플레이를 형성하기 위해 이들 버퍼를 합성(compositing)한다. 디스플레이 서버는 어플리케이션 및 비디오 하드웨어와의 통신을 담당하고, 이들을 다른 라이브러리를 이용하여 입력 하드웨어와 통신하도록 프롬프트하는 것을 담당한다.
3D 위젯 툴키트 : 3D 위젯 툴키트는 사용자 인터페이스를 제작하기 위해 이용된다. 사용자 인터페이스 툴키트는 소프트웨어 오브젝트의 라이브러리를 생성하고 이들을 표준 프로그래밍 언어 내에서의 인스턴스화(instantiation) 및 전문화(specialization)를 통해 커스토마이즈(customize)함으로써 설계된다. 3D 위젯은 통상적으로 제약되는 지오메트릭 컴포넌트를 갖는 어플리케이션 오브젝트 및 위젯의 구축을 모델링하도록 조작된다. 원시 3D 위젯(primitive 3D widget)은 링킹(linking)으로 지칭되는 프로세스를 이용하여 다른 원시 3D 위젯과 조합되어, 이들 간에 하나 이상의 제약 관계(constraint relation)를 구축할 수 있다.
제1 특징에 따라, 본 발명은 화면 상에 3D 장면 그래프(3D scene graph)를 디스플레이하는 방법에 관한 것이며, 이 방법은, 3D 리소스를 어플리케이션 장면 노드의 세트에 부착하는 단계와, 컴퓨터 시스템의 오퍼레이팅 시스템 상의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 상기 오퍼레이팅 시스템 상의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하는 단계로서, 이러한 분리가, 상기 어플리케이션 장면 노드의 제1 서브-세트를 상기 제1 프로세스에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트를 상기 제2 프로세스에 연결함으로써 이루어지는, 분리하는 단계와, 상기 제1 프로세스 및 상기 제2 프로세스를 상기 컴퓨터 시스템의 3D 디스플레이 서버에 로딩하는 단계와, 상기 제1 프로세스 및 상기 제2 프로세스에 기초하여 3D 장면 그래프를 구축하는 단계와, 상기 3D 장면 그래프를 화면 상에 디스플레이하는 단계를 포함한다.
본 방법은 프로세스 분리를 가지면서, 즉 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하면서, 동일한 장면에서의 3D 오브젝트 기반 어플리케이션 시각화의 실행을 가능하게 한다. 이로써, 전체 시스템에서 보안 및 안정성이 향상될 수 있다. 3D 프로세스 분리는 몇몇 자연스럽게 보이는 제3자 어플리케이션(natural looking 3rd party application)을 증강 현실 어플리케이션(augmented reality application)과 같은 안전하고 안정된 방식으로 구축될 3D 어플리케이션 내로 임베드하는 것을 가능하게 한다.
본 발명의 제1 특징에 따른 방법의 제1 구현 형태에서, 상기 3D 리소스는 기본적인 3D 오브젝트, 구체적으로는 텍스처(texture), 음영(shade) 및 메시(mesh)를 표현한다.
그러므로, 복잡한 장면 그래프가 기본적인 오브젝트로 분해되어 장면 그래프를 구현하기 위한 유연성을 허용할 수 있다.
제1 특징 또는 제1 특징의 제1 구현 형태에 따른 본 방법의 제2 구현 형태에서, 상기 방법의 상기 제1 프로세스 및 상기 제2 프로세스를 로딩하는 단계는, 프로세스 분리 인터페이스를 이용함으로써 상기 제1 프로세스와 상기 제2 프로세스를 별도로 로딩하는 단계를 포함한다.
상기 프로세스 분리 인터페이스는 상이한 프로세스들의 격리를 허용하며, 그러므로 프로세스 분리를 이용하지 않는 종래의 방법에 비해 본 방법의 안정성 및 견고성을 증가시킨다.
제1 특징의 제2 구현 형태에 기초한 본 방법의 제3 구현 형태에서, 상기 방법은, 상기 제1 프로세스와 상기 제2 프로세스의 동일한 어플리케이션 장면 노드에의 액세스의 충돌을 방지하기 위해 상기 제1 프로세스와 상기 제2 프로세스를 별도로 처리하는 단계를 더 포함한다.
제1 프로세스와 제2 프로세스의 동일한 어플리케이션 장면 노드에의 액세스의 충돌을 방지함으로써, 전체적인 시스템 안정성이 향상된다.
제1 특징의 제2 또는 제3 구현 형태에 기초한 본 방법의 제4 구현 형태에서, 상기 방법은, 상기 제1 프로세스와 상기 제2 프로세스에 의한 상기 어플리케이션 장면 노드의 공유를 제어하는 단계를 더 포함한다.
제1 프로세스 및 제2 프로세스에 의한 어플리케이션 장면 노드의 공유를 제어된 방식으로 관리함으로써, 프로세스는 다른 프로세스에 의해 소유된 자원을 액세스할 수 없다. 프로세스는 전체 시스템의 안정성을 위태롭게 하지 않는다.
3D UI 요소는 프로세스 분리를 약화시키지 않고서도 장면 내의 어플리케이션 UI 요소의 각각의 요소를 별도로 취급하는 가능성을 인에이블시킨다. UI 요소로서의 3D 오브젝트는 요소에 대한 자연스럽게 보이게 하는 물리학(natural looking physics)의 이용을 가능하게 한다.
제1 특징의 제2 내지 제4 실시 형태 중의 어느 하나에 따른 본 방법의 제5 실시 형태에서, 상기 방법은, 3D 어플리케이션 콘텍스트에서 실행되는 상기 제1 프로세스 및 2D 어플리케이션 콘텍스트에서 실행되는 상기 제2 프로세스를 상기 3D 디스플레이 서버에 로딩하는 단계를 더 포함한다.
상이한 어플리케이션 콘텍스트에서 실행되는 프로세스를 3D 디스플레이 서버에 로딩함으로써, 상이한 프로세스가 공통의 3D 디스플레이 서버에 의해 디스플레이될 수 있다.
제1 특징의 제2 내지 제5 실시 형태 중의 어느 하나에 따른 본 방법의 제6 실시 형태에서, 상기 방법은, 상기 3D 디스플레이 서버를 동시에 복수의 어플리케이션 연결부에 연결하는 단계를 더 포함한다.
제1 특징 또는 제1 특징의 전술한 실시 형태 중의 어느 하나에 따른 본 방법의 제7 실시 형태에서, 상기 방법은, 프로세스 연결이 변경되지 않은 프로세스를 상기 3D 디스플레이 서버에 로딩하지 않고, 프로세스 연결이 변경된 프로세스를 상기 3D 디스플레이 서버에 로딩하는 단계를 더 포함한다.
변경이 이루어진 프로세스만을 3D 디스플레이 서버에 로딩함으로써, 변경되지 않은 프로세스 연결이 처리될 필요가 없음에 따라, 디스플레이의 속도가 증가될 수 있고, 본 방법의 컴퓨터 처리 복잡도가 감소된다.
제1 특징 또는 제1 특징의 전술한 실시 형태 중의 어느 하나에 따른 본 방법의 제8 실시 형태에서, 상기 어플리케이션 장면 노드의 제1 서브-세트를 상기 제1 프로세스에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트를 상기 제2 프로세스에 연결하는 것은, 상기 어플리케이션 장면 노드의 상기 제1 서브-세트 또는 상기 제2 서브-세트의 요소에 추가의 어플리케이션 장면 노드를 자식 노드(child node)로서 연결하는 단계를 포함하며, 상기 요소는 부모 노드(parent node)를 표현한다.
자식 노드를 부모 노드에 연결함으로써, 본 방법은 기존 노드에의 연결에 영향을 주지 않고서도 새로운 노드를 그래프에 유연하게 연결하는 것을 가능하게 하며, 이에 의해 안정성 및 유연성이 향상된다.
제1 특징의 제8 실시 형태에 따른 본 방법의 제9 실시 형태에서, 상기 추가의 어플리케이션 장면 노드는 이들의 부모 노드에 대한 위치 및 회전 차이 정보를 포함한다.
추가의 어플리케이션 장면 노드는 기존 노드에 대한 이들의 관계에 의해 정해질 수 있다. 완전한 그래프의 정보가 아닌 차이 정보만이 처리되어야 한다.
제1 특징의 제9 실시 형태에 따른 본 방법의 제10 실시 형태에서, 상기 위치 및 회전 차이 정보는 행렬, 구체적으로는 4×4 행렬의 행렬을 포함한다.
행렬을 이용함으로써, 기본적인 행렬 연산이 새로운 노드를 처리하는데 적용될 수 있다.
제1 특징 또는 제1 특징의 전술한 실시 형태 중의 어느 하나에 따른 본 방법의 제11 실시 형태에서, 상기 3D 장면 그래프를 구축하는 단계는, 서로에 대한 3D 리소스의 중첩, 반사, 굴절, 새도잉(shadowing), 및/또는 음영(shading)을 컴퓨팅하는 단계를 포함한다.
3D 어플리케이션은 동일한 3D 장면에서 렌더링될 수 있기 때문에 서로에 대한 반사 및 굴절을 용이하게 가질 수 있다. 3D 어플리케이션은 어플리케이션이 동일한 3D 장면에서 렌더링되고 광원을 공유할 수 있기 때문에 현실감 있게 보이는 새도우 및 음영을 가질 수 있다. 그러므로, 3D 장면 그래프를 보는 감동이 향상된다.
제1 특징 또는 제1 특징의 전술한 실시 형태 중의 어느 하나에 따른 본 방법의 제12 실시 형태에서, 3D 디스플레이 서버는 어플리케이션 프로세스 내부에 배치된다.
제1 특징의 제2 내지 제11 실시 형태 중의 어느 하나에 따른 본 방법의 제13 실시 형태에서, 3D 디스플레이 서버는 제3 어플리케이션 프로세스 내부에 배치되고, 추가의 어플리케이션 프로세스가 프로세스 분리 인터페이스를 통해 3D 디스플레이 서버에 연결된다.
제1 특징의 제13 실시 형태에 따른 본 방법의 제14 실시 형태에서, 상기 방법은, 전체 3D 장면 그래프에서 루트(root)에서부터 리프(leaf)까지의 노드 체인이 복수의 프로세스 분리 인터페이스를 포함하는 트리 구조를 형성하는 단계를 더 포함한다.
제2 특징에 따라, 본 발명은 3D 컴퓨터 시스템용 오퍼레이팅 시스템에 관련되며, 상기 오퍼레이팅 시스템은, 3D 리소스를 어플리케이션 장면 노드의 세트에 부착하기 위해 구성되며, 어플리케이션 소프트웨어의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 상기 어플리케이션 소프트웨어의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하기 위해 구성되며, 이러한 분리가, 상기 어플리케이션 장면 노드의 제1 서브-세트를 상기 제1 프로세스에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트를 상기 제2 프로세스에 연결함으로써 이루어지는, 어플리케이션 소프트웨어와; 상기 어플리케이션 장면 노드의 상기 3D 리소스에 기초하여 3D 장면 그래프를 구축하고, 상기 3D 장면 그래프를 화면 상에 디스플레이하기 위해 구성된 3D 디스플레이 서버와; 상기 제1 프로세스 및 상기 제2 프로세스를 상기 3D 디스플레이 서버에 별도로 로딩하기 위해 구성되는, 상기 어플리케이션 소프트웨어와 상기 3D 디스플레이 서버 사이의 프로세스 분리 인터페이스를 포함한다.
3D 리소스를 어플리케이션 장면 노드에 부착함으로써, 3D 어플리케이션은, 여전히 전체적으로 자연스럽게 보이고, 프로세스 분리를 가지면서, 즉 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하면서, 2D 표면에 비하여 새로운 방식으로, 즉 서로 그 주위에 결부되는 것과 같이 서로 중첩할 수 있으며, 이것은 안정성 및 보안을 제공한다.
제2 특징에 따른 오퍼레이팅 시스템의 제1 실시 형태에서, 상기 프로세스 분리 인터페이스는 상기 3D 디스플레이 서버에 상이한 어플리케이션, 구체적으로는 3D 어플리케이션 및 2D 어플리케이션을 연결하도록 구성된다.
3D 프로세스 분리는 자연스럽게 보이는 제3자 어플리케이션을 증강 현실 어플리케이션과 같은 3D 어플리케이션에 안전하고 안정된 방식으로 임베드하는 것을 가능하게 한다. 오퍼레이팅 시스템은 기존의 2D 어플리케이션 및 새로운 3D 어플리케이션과 상호 정보 교환이 가능하다(interoperable).
제2 특징 또는 제2 특징의 제1 실시 형태 중의 하나에 따른 오퍼레이팅 시스템의 제2 실시 형태에서, 상기 오퍼레이팅 시스템은, 3D 어플리케이션 제작을 위한 사용자 인터페이스 컴포넌트를 제공하고, 상기 3D 리소스를 상기 어플리케이션 소프트웨어에 제공하는 3D 위젯 툴키트 소프트웨어와; 상기 오퍼레이팅 시스템이 실행되고 있는 컴퓨터 하드웨어를 제어하기 위해 구성된, 상기 3D 디스플레이 서버와 상기 오퍼레이팅 시스템의 커널 사이의 플랫폼 그래픽 인터페이스를 더 포함한다.
3D 어플리케이션은 3D 애셋(3D asset)을 갖거나 또는 커스텀 UI 요소를 만들고 텍스처 및 이들을 위한 메시와 같은 그래픽 애셋을 제공함으로써 버튼, 텍스트 박스, 메뉴, 레이아웃 등과 같은 공통의 사용자 인터페이스 요소를 갖는 기성의(ready-made) 위젯 툴키트로 만들어질 수 있다.
제2 특징 또는 제2 특징의 전술한 실시 형태 중의 하나에 따른 오퍼레이팅 시스템의 제3 실시 형태에서, 3D 디스플레이 서버는 어플리케이션 서버 내부에 배치된다.
어플리케이션 프로세스는 어플리케이션 소프트웨어의 어플리케이션 콘텍스트에서 실행되는 프로세스를 지칭한다.
제2 특징 또는 제2 특징의 전술한 실시 형태 중의 하나에 따른 오퍼레이팅 시스템의 제4 실시 형태에서, 3D 디스플레이 서버는 제3 어플리케이션 프로세스 내부에 배치되고, 추가의 어플리케이션 프로세스가 프로세스 분리 인터페이스를 통해 3D 디스플레이 서버에 연결된다.
제2 특징 또는 제2 특징의 제4 실시 형태 중의 하나에 따른 오퍼레이팅 시스템의 제5 실시 형태에서, 상기 3D 디스플레이 서버는 전체 3D 장면 그래프에서 루트(root)에서부터 리프(leaf)까지의 노드 체인이 복수의 프로세스 분리 인터페이스를 포함하는 트리 구조를 형성하도록 구성된다.
제3 특징에 따라, 본 발명은 단일 3D 장면 그래프에서 프로세스 분리를 획득하기 위한 방법 및 구조에 관련된다.
제4 특징에 따라, 본 발명은 디스플레이 서버를 위한 3D 어플리케이션 인터페이스를 제공하는 방법 및 구조에 관련된다. 디스플레이 서버는 또한 윈도우 관리자로도 알려져 있다.
제5 특징에 따라, 본 발명은 동일한 3D 장면에서 프로세스 분리된 3D 어플리케이션 시각화를 만들기 위한 방법 및 구조에 관련된다.
제6 특징에 따라, 본 발명은 디스플레이 서버와 어플리케이션 프로세스 간에 장면 그래프 변경 및 3D 리소스의 전송 및 통신을 가능하게 하는 방법 및 구조에 관련된다.
본 명세서에서 설명된 방법, 시스템 및 디바이스는 디지털 신호 처리기(DSP), 마이크로-컨트롤러, 또는 임의의 다른 사이드-프로세서 내의 소프트웨어로서 구현되거나, 또는 ASIC(application specific integrated circuit) 내의 하드웨어 회로로서 구현될 수 있다.
본 발명은 디지털 전자 회로로 구현되거나, 컴퓨터 하드웨어, 펌웨어, 소프트웨어로 구현되거나, 또는 본 이들의 조합으로 구현될 수 있으며, 예컨대 종래의 이동 장치의 이용 가능한 하드웨어로 구현되거나, 또는 본 명세서에 설명된 방법을 처리하기 위한 전용의 새로운 하드웨어로 구현될 수 있다.
본 발명의 추가의 실시예를 이하 도면에 대하여 설명될 것이다;
도 1은 일 실시 형태에 따른 화면 상에 3D 장면 그래프를 디스플레이하는 방법(100)을 도시하는 개략도이다.
도 2는 일 실시 형태에 따른 3D 디스플레이 서버의 컨텐츠를 표현하는 디바이스 화면(200)의 개략도이다.
도 3은 일 실시 형태에 따른 프로세스 분리(300)의 구조를 도시하는 개략도이다.
도 4는 일 실시 형태에 따른 일례의 장면 그래프(400)를 도시하는 개략도이다.
도 5는 일 실시 형태에 따른 도 4에 도시된 장면 그래프(400)의 렌더링 결과(500)를 도시하는 개략도이다.
도 6은 일 실시 형태에 따른 3D 컴퓨터 시스템을 위한 오퍼레이팅 시스템(600)의 레벨 아키텍처를 도시하는 개략도이다.
도 1은 일 실시 형태에 따른 화면 상에 3D 장면 그래프를 디스플레이하는 방법(100)을 도시하는 개략도이다.
이 방법(100)은 3D 리소스를 어플리케이션 장면 노드의 세트에 부착하는 단계(101)를 포함한다.
이 방법(100)은 어플리케이션 장면 노드의 제1 서브-세트를 제1 프로세스에 연결하고 어플리케이션 장면 노드의 제2 서브-세트를 제2 프로세스에 연결함으로써 컴퓨터 시스템의 오퍼레이팅 시스템 상의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 오퍼레이팅 시스템 상의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하는 단계(103)를 포함한다. 이 방법(100)은 제1 프로세스 및 제2 프로세스를 컴퓨터 시스템의 3D 디스플레이 서버에 로딩하는 단계(105)를 포함하며, 3D 디스플레이 서버는 어플리케이션 장면 노드의 3D 리소스에 기초하여 3D 장면 그래프를 구축하고 3D 장면 그래프를 화면 상에 디스플레이하도록 구성된다.
이 방법(100)의 일 실시 형태에서, 3D 리소스는 기본적인 3D 오브젝트(elementary 3D object), 구체적으로는 텍스처(texture), 음영, 및 메시를 표현한다. 이로써, 복잡한 장면 그래프는 기본적인 오브젝트로 분해(resolve)되어 장면 그래프를 구현하기 위한 유연성을 허용할 수 있다.
이 방법(100)의 일 실시 형태에서, 제1 프로세스 및 제2 프로세스를 로딩하는 단계는, 프로세스 분리 인터페이스를 이용함으로써 제1 프로세스와 제2 프로세스를 별도로 로딩하는 단계를 포함한다. 이 방법(100)의 일 실시 형태에서, 프로세스 분리 인터페이스는 제1 프로세스와 제2 프로세스의 동일한 어플리케이션 장면 노드에의 액세스의 충돌을 방지하도록 구성된다. 이 방법(100)의 일 실시 형태에서, 프로세스 분리 인터페이스는 제1 프로세스 및 제2 프로세스에 의한 어플리케이션 장면 노드의 공유를 제어된 방식으로 관리하도록 구성된다.
프로세스 분리 인터페이스는 상이한 프로세스들의 격리를 허용하며, 그러므로 프로세스 분리를 이용하지 않는 종래의 방법에 비하여 본 방법의 안정성 및 견고성을 증가시킨다. 제1 프로세스와 제2 프로세스의 동일한 어플리케이션 장면 노드에의 액세스의 충돌을 방지함으로써, 전체적인 시스템 안정성이 향상된다. 제1 프로세스와 제2 프로세스에 의한 어플리케이션 장면 노드의 공유를 제어된 방식으로 관리함으로써, 프로세스가 다른 리소스에 의해 소유된 리소스를 액세스할 수 없게 된다. 프로세스는 전체 시스템의 안정성을 위태롭게 하지 않는다. 3D UI 요소는 프로세스 분리를 약화시키지 않고서도 장면 내의 어플리케이션 UI 요소의 각각의 요소를 별도로 취급하는 가능성을 인에이블시킨다. UI 요소로서의 3D 오브젝트는 요소에 대한 자연스럽게 보이게 하는 물리학(natural looking physics)의 이용을 가능하게 한다.
이 방법(100)의 일 실시 형태에서, 프로세스 분리 인터페이스는 상이한 어플리케이션 콘텍스트에서 실행되는 프로세스를 3D 디스플레이 서버에 로딩하도록 구성된다. 이 방법(100)의 일 실시 형태에서, 프로세스 분리 인터페이스는 3D 디스플레이 서버를 동시에 복수의 어플리케이션 연결부에 연결하도록 구성된다. 일 실시 형태에서, 이 방법(100)은, 프로세스 연결이 변경되지 않은 프로세스를 3D 디스플레이 서버에 로딩하지 않고, 프로세스 연결이 변경된 프로세스를 3D 디스플레이 서버에 로딩하는 단계를 포함한다. 이 방법(100)의 일 실시 형태에서, 제1 프로세스에 어플리케이션 장면 노드의 제1 서브-세트를 연결하고, 제2 프로세스에 어플리케이션 장면 노드의 제2 서브-세트를 연결하는 것은, 어플리케이션 장면 노드의 제1 서브-세트 또는 제2 서브-세트의 요소에 추가의 어플리케이션 장면 노드를 자식 노드(child node)로서 연결하는 단계를 포함하며, 상기 요소는 부모 노드(parent node)를 표현한다. 이 방법(100)의 일 실시 형태에서, 추가의 어플리케이션 장면 노드는 이들의 부모 노드에 대한 위치 및 회전 차이 정보(location and rotation difference information)를 포함한다. 이 방법(100)의 일 실시 형태에서, 위치 및 회전 차이 정보는 행렬을 포함한다. 이 방법(100)의 일 실시 형태에서, 위치 및 회전 차이 정보는 4×4 행렬을 포함한다. 이 방법(100)의 일 실시 형태에서, 3D 장면 그래프를 구축하는 단계는, 서로에 대한 3D 리소스의 중첩, 반사, 굴절, 새도잉(shadowing), 및/또는 음영(shading)을 컴퓨팅하는 단계를 포함한다.
도 2는 일 실시 형태에 따른 3D 디스플레이 서버의 컨텐츠를 표현하는 디바이스 화면(200)의 개략도이다. 디바이스 화면(6)은 3D 디스플레이 서버의 컨텐츠를 디스플레이한다. 제1 3D 어플리케이션(1) 및 제2 3D 어플리케이션(2)의 2개의 간략한 3D 어플리케이션이 보여질 수 있으며, 둘 모두가 사용자 인터페이스(UI) 요소로서 3D 메시와 같은 하나의 큐브(cube)를 갖는다. 도 1에 대하여 위에 설명한 바와 같은 방법(100)을 적용함으로써, 별도의 프로세스의 시각화가 새로운 방식으로 중첩할 수 있다. 예컨대, 시각화가 서로 그 주위에 결부될 수 있다.
이 방법(100)은 3D 리소스, 즉 제1 3D 큐브(1) 및 제2 3D 큐브를 부착하는 단계를 포함한다. 이 방법(100)은 제1 3D 큐브(1)를 처리하는 제1 프로세스를 제2 3D 큐브(2)를 처리하는 제2 프로세스와 분리하는 단계를 더 포함한다. 이 방법(100)은 제1 3D 큐브(1)를 처리하는 제1 프로세스 및 제2 3D 큐브(2)를 처리하는 제2 프로세스를 디스플레이 서버에 로딩하는 단계를 포함한다. 디스플레이 서버는 도 2에서 알 수 있는 바와 같이 큐브(1, 2) 둘 모두를 제2 3D 어플리케이션(2)의 반사물(5)을 포함하여 디스플레이 화면 상에 디스플레이한다.
디스플레이 서버의 장면 그래프의 구축은 다음과 같이 설명될 수 있다: 먼저, 디스플레이 서버 프로세스가 어플리케이션 프로세스를 위한 서비스를 제공하기 위해 기동되어야 한다. 디스플레이 서버는 대개는 그 아래의 오퍼레이팅 시스템이 물리적 화면 상에 가능한 어플리케이션 프로세스 시각화를 행하도록 실행되고 있을 때에 실행된다. 디스플레이 서버가 실행되는 동안, 어플리케이션 프로세스는 자신을 디스플레이 서버에 등록할 수 있다. 디스플레이 서버는 새로운 어플리케이션 프로세스의 등록을 받아들이고, 이들 프로세스에게 인터-프로세스 연결을 제공한다. 이에 부가하여, 디스플레이 서버는 프로세스 시각화의 합성(composition)을 용이하게 하기 위해서는 디스플레이 서버를 이용하는 어플리케이션 프로세스의 전체 작동 시간 동안 이용 가능하게 되어야 한다. 이 연결은 어플리케이션 프로세스가 자신의 장면 그래프 및 그 안에서의 변경을 디스플레이 서버에 보내는 것을 가능하게 한다. 변경은 예컨대 위치, 회전, 그래픽 노드에 대한 스케일링 정보, 및 리소스 식별자를 포함할 수 있다. 어플리케이션은 또한 자신의 내부 장면 그래프에 대해 데이터를 변경하거나, 추가하거나 또는 제거함으로써 자신의 내부 모습(internal look)을 변경할 수 있다. 어플리케이션이 자신의 장면 그래프에 대해 행하고 있는 변경은 디스플레이 서버에 전송되며, 디스플레이 서버가 전체적인 장면 그래프를 합성할 수 있다. 리소스의 로딩은 메모리, CPU 및 GPU와 같은 하드웨어 리소스의 사용을 제어하기 위해 디스플레이 서버에 의해 제어된다. 디스플레이 서버는 또한 시스템 레벨 변경, 사용자 인터페이스 입력 및 바운딩 볼륨 변경(bounding volume change)을 어플리케이션 프로세스에 제공한다.
별도의 프로세스 시각화 간의 중첩 영역(4)을 도 2에서 볼 수 있다. 새도우, 음영, 굴절 및 반사와 같은 이펙트는 UI 요소에서의 3D 표면의 본질(nature) 때문에 보다 자연스럽게 보이게 된다. 도 2는 어플리케이션 둘 모두가 동일한 광원에 기초한 음영을 갖고 있다는 것을 보여준다. 또한, 화면(6)의 영역 하단(3)은 시각화된 3D 어플리케이션의 제2 어플리케이션(2)을 반사하고 있다. 제2 3D 어플리케이션(2)의 반사물(5)을 볼 수 있다. 도 2에 도시된 것과 같은 물리적 디스플레이에 나타나게 될 최종 이미지는 디스플레이 서버 프로세스 내부에서 제작된다. 디스플레이 서버 프로세스는 어플리케이션 프로세스 장면 그래프로부터 원래 조합된 전체적인 장면 그래프를 렌더링한다.
프로세스 분리 인터페이스는 내부 오퍼레이팅 시스템 커널 레벨 또는 탑-오브 오퍼레이팅 시스템 커널 레벨(top-of operating system kernel level) 중의 하나로 구현될 수 있다. 구현예에서의 제1 옵션은 더욱 제어된 하드웨어 관리 때문에 시스템에 성능 부스트(performance boost)를 제공할 수 있다. 그 다음의 옵션은 이식성(portability)을 생각하여 더 많은 가요성을 제공한다. 디스플레이 서버 데이터 구조는 병렬 변경(parallel change)이 디스플레이 서버의 장면 그래프 데이터를 붕괴할 수 없도록 뮤텍스(mutex)에 의해 보호된다. 어플리케이션 프로세스에 대해, 디스플레이 서버의 서비스는 비동기식 API를 제공하며, 이 비동기식 API에서는 어플리케이션 프로세스가 전체적인 장면 그래프를 유효한 것으로 유지하기 위해 록킹(locking) 등에 관심을 가질 필요가 없다.
도 3은 일 실시 형태에 따른 프로세스 분리(300)의 구조를 도시하는 개략도이다. 프로세스 분리는 도 1에 대하여 전술한 바와 같이 제1 프로세스를 제2 프로세스와 분리(103)할 것이다.
도 3은 프로세스 분리의 구조를 도시하고 있다. 디스플레이 서버(21)는 어플리케이션 인터페이스를 포함한다. 그 어플리케이션 인터페이스를 사용함으로써, 어플리케이션(23)은 프로세스 분리(22)를 통해 디스플레이 서버(21)에 연결할 수 있다. 3D 리소스 및 어플리케이션(23) 장면 및 데이터 변경이, 즉 핸들 또는 데이터 자체가, 프로세스 분리(22)를 통해 전달된다. 디스플레이 서버(21)는 복수의 어플리케이션(23)의 동시 연결을 포함할 수 있다.
도 4는 일 실시 형태에 따른 일례의 장면 그래프(400)를 도시하는 개략도이다. 장면 그래프(400)는 디스플레이 서버(11)에 연결된 프로세스 분리(12, 13)를 적용한다. 장면 그래프 노드 연결은 점선으로 도시되어 있다. 2개의 프로세스(P1, P2)는 도 3에 대하여 전술한 바와 같이 프로세스 분리(22)에 대응하는 프로세스 분리 인터페이스(19)에 의해 디스플레이 서버(11)에 부착된다. 디스플레이 서버(11)는 도 3에 대하여 전술한 디스플레이 서버(21)에 대응할 수 있다.
자동차(14)를 표현하는 3D 오브젝트가 제1 프로세스(P1)에 연결된다. 나무(18)를 표현하는 3D 오브젝트가 제2 프로세스(P2)에 연결된다. 지하실(basement)(15) 및 지붕(16)으로 구성되는 주택(15, 16)을 표현하는 또 다른 3D 오브젝트가 제2 프로세스(P2)에 연결된다. 지붕(16)은 프로세스(P2)에 연결된 부모 노드인 지하실(15)에 자식 노드로서 적용된다.
일 실시 형태에서, 디스플레이 서버는 어플리케이션 프로세스 내부에 임베드되거나 그 안에서 기능하며, 다른 어플리케이션은 프로세스 분리를 통해 디스플레이 서버에 링크된다. 그러므로, 전체 장면 그래프에서 루트(root)에서부터 리프(leaf)까지의 노드 체인이 하나보다 많은 프로세스 분리를 가질 수 있는 트리 구조가 형성될 수 있다.
도 5는 일 실시 형태에 따른 도 4에 도시된 장면 그래프(400)의 렌더링 결과(500)를 도시하는 개략도이다. 장면 그래프(400)는 도 4에 도시된 노드, 즉 지하실(15)과 지붕(16)을 갖는 주택, 자동차(14) 및 나무(18)를 포함한다.
도 4에 도시된 프로세스 분리된 장면 그래프는 렌더 결과(render result)(500)로 조합된다. 도 5에서, 제1 프로세스(P1)(13)는 자동차(14)를 그래픽으로 표현하는 노드인 단지 하나의 연결 노드만을 포함하고 있다. 제2 프로세스(P2)(12)는 나무(18)를 그래픽으로 표현하는 노드 및 주택의 지하실(15)을 그래픽으로 표현하는 노드인 2개의 서브 노드를 포함하고 있다. 프로세스 P2(12)는 또한 주택의 지붕(16)을 그래픽으로 표현하는 노드인 서브-서브 노드를 포함하고 있다. 즉, 제1 프로세스(13)는 자동차(14)를 그래픽으로 표현하고, 제2 프로세스(12)는 나무(18) 및 주택(15, 16)을 그래픽으로 표현한다. 주택은 2개의 노드(15, 16)의 내부 구조를 갖는다.
도 5에 도시된 바와 같은 장면 노드는 텍스처, 셰이더(shader) 및 메시와 같은 3D 리소스를 가질 수 있다. 이들 3D 리소스는 3D 위젯 툴키트로부터 유래할 수 있거나, 또는 고객에 의해 만들어질 수 있다. 장면 노드의 각각은 노드의 부모 노드에 관련된 위치 및 회전 차이 정보를 4×4 행렬의 형태로 포함한다. 어플리케이션이 충돌하는 것을 제한하기 위해, 즉 서로의 "안쪽으로" 가는 것을 제한하기 위해, 어플리케이션은 바운딩 볼륨(bounding volume)을 가지며, 이 바운딩 볼륨은 직사각 상자 및 구(sphere)와 같이 간략한 것으로 되거나 또는 커스텀 3D 메시(custom 3D mesh)와 같은 약간 더 복잡한 볼륨이 될 수 있다.
3D 리소스가 어플리케이션 장면 노드에 부착될 때, 이 3D 리소스는 디스플레이 서버 프로세스에 의해 중앙 집중적 방식(centralized manner)으로 로딩된다. 이것은 동일한 3D 리소스가 별도의 프로세스들 간에 재사용될 수 있기 때문에 프로세스 분리를 통한 통신을 감소시킨다. 어플리케이션 서브 그래프 내부의 변경만이 디스플레이 서버(11)에 변형될 필요가 있다. 이러한 최소화된 데이터 전송은 동일한 시각적 3D 장면에서의 프로세스 분리로 다수의 복잡한 3D 어플리케이션을 실행할 가능성을 인에이블시킨다.
도 6은 일 실시 형태에 따른 3D 컴퓨터 시스템을 위한 오퍼레이팅 시스템(600)의 레벨 아키텍처를 도시하는 개략도이다.
어플리케이션(601), 미들웨어(603) 및 오퍼레이팅 시스템 커널 레벨(605)은 각각의 자신의 행(row)으로 분리된다. 본 명세서에 설명된 3D 시스템을 위해 새로이 구축된 컴포넌트는 점선으로 경계가 표시되어 있다. 이들 새로이 설계된 컴포넌트는 3D 엔진 라이브러리(619), 3D 디스플레이 서버(617), 3D 위젯 툴키트(615), 및 3D 어플리케이션(607)이다. 3D 엔진 라이브러리(619)는 3D 엔진 및 기본적인 코어 기능을 포함한다. 3D 디스플레이 서버(617)는 기존의 "윈도우 관리자"를 교체하는 3D 어플리케이션 인터페이스(611)를 인에이블시킨다. 일 실시 형태에서, 플랫폼 그래픽 인터페이스(621, 623)는 GLES/EGL을 이용한다. 일 실시 형태에서, 플랫폼 그래픽 인터페이스(621, 623)는 DirectX API를 이용한다. 3D 디스플레이 서버(617)는 또한 어플리케이션으로부터 물리적 화면까지의 최종 결과를 생성하는 렌더러(renderer)를 포함한다. 3D 위젯 툴키트(615)는 3D 어플리케이션 생성을 위한 기성의(ready-made) UI 컴포넌트를 제공한다. 3D 어플리케이션(607)은 새로운 3D 위젯 툴키트 기반 어플리케이션이다. 2D 서피스 어플리케이션(2D surface application)(609)은 여전히 오퍼레이팅 시스템(600)에 의해 지원된다. 풀스크린 모드에서, 근본적으로 플랫폼 그래픽 인터페이스(621, 623)는 더 높은 성능을 얻기 위해 더욱 직선화(more straight)되게 이용될 수 있다.
이전에 설계된 오퍼레이팅 시스템은 오퍼레이팅 시스템(600)의 그래픽 스택의 토대로서 기능할 수 있다. 새로운 오퍼레이팅 시스템(600)은 증강 현실 어플리케이션(augmented reality application)에서 3D 데이터에 맵핑된 제3자 3D 광고와 같은 어플리케이션 콘텍스트 내에서 프로세스 분리를 적용한다.
이상으로부터, 다양한 방법, 시스템, 기록 매체 상의 컴퓨터 프로그램 등이 제공된다는 것이 당업자에게 명백할 것이다.
본 개시 내용은 또한 실행될 때에 적어도 하나의 컴퓨터로 하여금 본 명세서에 설명된 수행 및 컴퓨팅 단계를 실행하도록 하는 컴퓨터 실행 가능 코드 또는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨터 프로그램 제품을 지원한다.
상기한 교시를 고려하여 다수의 대안, 수정 및 변형이 당업자에게 명백할 것이다. 당업자는 본 명세서에서 설명된 것 이외의 본 발명의 다수의 응용예가 있다는 것을 용이하게 인지할 것이라는 점은 자명하다. 본 발명을 하나 이상의 특정 실시예를 참조하여 설명하였지만, 당업자는 본 발명의 범위에서 벗어나지 않고서도 이들 실시예에 대해 다수의 변경이 이루어질 수 있음을 인지할 것이다. 따라서, 첨부된 청구항 및 이들의 등가 구성의 범위 내에서 본 발명을 본 명세서에 구체적으로 설명한 것과는 다르게 실시할 수도 있다는 것을 이해할 것이다.

Claims (15)

  1. 화면(200) 상에 3D 장면 그래프(3D scene graph)(500)를 디스플레이하는 방법(100)에 있어서,
    3D 리소스를 어플리케이션 장면 노드의 세트에 부착하는 단계(101);
    컴퓨터 시스템의 오퍼레이팅 시스템 상의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스(13)를 상기 오퍼레이팅 시스템 상의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스(12)와 분리하는 단계로서, 이러한 분리가, 상기 어플리케이션 장면 노드의 제1 서브-세트(14)를 상기 제1 프로세스(13)에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트(18, 15, 16)를 상기 제2 프로세스(12)에 연결함으로써 이루어지는, 분리하는 단계(103);
    상기 제1 프로세스(13) 및 상기 제2 프로세스(12)를 상기 컴퓨터 시스템의 3D 디스플레이 서버(11)에 로딩하는 단계(105);
    상기 제1 프로세스(13) 및 상기 제2 프로세스(12)에 기초하여 3D 장면 그래프(500)를 구축하는 단계; 및
    상기 3D 장면 그래프를 화면(200) 상에 디스플레이하는 단계
    를 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  2. 제1항에 있어서,
    상기 3D 리소스는 기본적인 3D 오브젝트, 구체적으로는 텍스처(texture), 음영(shade) 및 메시(mesh)를 표현하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 프로세스(13) 및 상기 제2 프로세스(12)를 로딩하는 단계는, 프로세스 분리 인터페이스(19, 22)를 이용함으로써 상기 제1 프로세스(13)와 상기 제2 프로세스(12)를 별도로 로딩하는 단계를 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  4. 제3항에 있어서,
    상기 제1 프로세스(13)와 상기 제2 프로세스(12)의 동일한 어플리케이션 장면 노드에의 액세스의 충돌을 방지하기 위해 상기 제1 프로세스(13)와 상기 제2 프로세스(12)를 별도로 처리하는 단계를 더 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  5. 제3항 또는 제4항에 있어서,
    상기 제1 프로세스(13)와 상기 제2 프로세스(12)에 의한 상기 어플리케이션 장면 노드의 공유를 제어하는 단계를 더 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    3D 어플리케이션 콘텍스트에서 실행되는 상기 제1 프로세스(13) 및 2D 어플리케이션 콘텍스트에서 실행되는 상기 제2 프로세스(12)를 상기 3D 디스플레이 서버(11)에 로딩하는 단계를 더 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 3D 디스플레이 서버(11)를 동시에 복수의 어플리케이션 연결부에 연결하는 단계를 더 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    프로세스 연결이 변경되지 않은 상기 프로세스(13, 12)를 상기 3D 디스플레이 서버(11)에 로딩하지 않고, 프로세스 연결이 변경된 상기 프로세스(13, 12)를 상기 3D 디스플레이 서버(11)에 로딩하는 단계를 더 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 어플리케이션 장면 노드의 제1 서브-세트를 상기 제1 프로세스(13)에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트를 상기 제2 프로세스(12)에 연결하는 것은,
    상기 어플리케이션 장면 노드의 상기 제1 서브-세트 또는 상기 제2 서브-세트의 요소에 추가의 어플리케이션 장면 노드를 자식 노드(child node)(16)로서 연결하는 단계를 포함하며, 상기 요소는 부모 노드(parent node)(15)를 표현하는,
    화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  10. 제9항에 있어서,
    상기 추가의 어플리케이션 장면 노드(16)는 이들의 부모 노드(15)에 대한 위치 및 회전 차이 정보를 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  11. 제10항에 있어서,
    상기 위치 및 회전 차이 정보는 행렬, 구체적으로는 4×4 행렬의 행렬을 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 3D 장면 그래프(500)를 구축하는 단계는, 서로에 대한 3D 리소스의 중첩, 반사, 굴절, 새도잉(shadowing), 및/또는 음영(shading)을 컴퓨팅하는 단계를 포함하는, 화면 상에 3D 장면 그래프를 디스플레이하는 방법.
  13. 3D 컴퓨터 시스템용 오퍼레이팅 시스템(600)에 있어서,
    3D 리소스를 어플리케이션 장면 노드의 세트에 부착하기 위해 구성되며, 어플리케이션 소프트웨어의 제1 어플리케이션 콘텍스트에서 실행되는 제1 프로세스를 상기 어플리케이션 소프트웨어(601)의 제2 어플리케이션 콘텍스트에서 실행되는 제2 프로세스와 분리하기 위해 구성되며, 이러한 분리가, 상기 어플리케이션 장면 노드의 제1 서브-세트를 상기 제1 프로세스에 연결하고, 상기 어플리케이션 장면 노드의 제2 서브-세트를 상기 제2 프로세스에 연결함으로써 이루어지는, 어플리케이션 소프트웨어(601);
    상기 어플리케이션 장면 노드의 상기 3D 리소스에 기초하여 3D 장면 그래프를 구축하고, 상기 3D 장면 그래프를 화면 상에 디스플레이하기 위해 구성된 3D 디스플레이 서버(617); 및
    상기 제1 프로세스 및 상기 제2 프로세스를 상기 3D 디스플레이 서버(617)에 별도로 로딩하기 위해 구성되는, 상기 어플리케이션 소프트웨어(601)와 상기 3D 디스플레이 서버(617) 사이의 프로세스 분리 인터페이스(611, 613)
    를 포함하는, 3D 컴퓨터 시스템용 오퍼레이팅 시스템.
  14. 제13항에 있어서,
    상기 프로세스 분리 인터페이스(611, 613)는 상기 3D 디스플레이 서버(617)에 상이한 어플리케이션, 구체적으로는 3D 어플리케이션(607) 및 2D 어플리케이션(609)을 연결하도록 구성되는, 3D 컴퓨터 시스템용 오퍼레이팅 시스템.
  15. 제13항 또는 제14항에 있어서,
    3D 어플리케이션 제작을 위한 사용자 인터페이스 컴포넌트를 제공하고, 상기 3D 리소스를 상기 어플리케이션 소프트웨어(601)에 제공하는 3D 위젯 툴키트 소프트웨어(615); 및
    상기 오퍼레이팅 시스템(600)이 실행되고 있는 컴퓨터 하드웨어를 제어하기 위해 구성된, 상기 3D 디스플레이 서버(617)와 상기 오퍼레이팅 시스템(600)의 커널(605) 사이의 플랫폼 그래픽 인터페이스(621, 623)
    를 더 포함하는, 3D 컴퓨터 시스템용 오퍼레이팅 시스템.
KR1020137033996A 2013-04-19 2013-09-27 화면 상에 3d 장면 그래프를 디스플레이하는 방법 KR101528215B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13164409.8 2013-04-19
EP13164409.8A EP2793127B1 (en) 2013-04-19 2013-04-19 Method for displaying a 3D scene graph on a screen
PCT/CN2013/084439 WO2014169580A1 (en) 2013-04-19 2013-09-27 Method for displaying a 3d scene graph on a screen

Publications (2)

Publication Number Publication Date
KR20140136367A true KR20140136367A (ko) 2014-11-28
KR101528215B1 KR101528215B1 (ko) 2015-06-11

Family

ID=48128194

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033996A KR101528215B1 (ko) 2013-04-19 2013-09-27 화면 상에 3d 장면 그래프를 디스플레이하는 방법

Country Status (7)

Country Link
US (1) US11113876B2 (ko)
EP (2) EP2793127B1 (ko)
JP (2) JP5959729B2 (ko)
KR (1) KR101528215B1 (ko)
CN (2) CN105637563B (ko)
TW (1) TWI603286B (ko)
WO (1) WO2014169580A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190134694A (ko) * 2017-03-30 2019-12-04 매직 립, 인코포레이티드 중앙화된 렌더링
KR102658404B1 (ko) * 2023-12-21 2024-04-17 주식회사 직스테크놀로지 고속 처리를 위한 도면 관리 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254409A (zh) * 2015-11-20 2016-12-21 深圳超多维科技有限公司 应用于移动终端的立体应用启动方法、装置及系统
CN106408642A (zh) * 2016-09-23 2017-02-15 江西洪都航空工业集团有限责任公司 一种实现服务机器人三维仿真的方法
WO2018137304A1 (zh) * 2017-01-26 2018-08-02 华为技术有限公司 一种2d应用在vr设备中的显示方法及终端
US10977858B2 (en) 2017-03-30 2021-04-13 Magic Leap, Inc. Centralized rendering
CN115167677A (zh) 2017-09-29 2022-10-11 苹果公司 计算机生成的现实平台
US11049312B2 (en) * 2018-05-25 2021-06-29 Google Llc Multi-process compositor
JP6423566B1 (ja) * 2018-06-21 2018-11-14 株式会社 ディー・エヌ・エー 画像処理装置、画像処理プログラム、及び、画像処理方法
US11733824B2 (en) * 2018-06-22 2023-08-22 Apple Inc. User interaction interpreter
US11157739B1 (en) 2018-08-31 2021-10-26 Apple Inc. Multi-user computer generated reality platform
US11546721B2 (en) 2019-06-18 2023-01-03 The Calany Holding S.À.R.L. Location-based application activation
CN112102498A (zh) 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 用于将应用虚拟地附接到动态对象并实现与动态对象的交互的系统和方法
CN112102497A (zh) 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 用于将应用和交互附接到静态对象的系统和方法
US11516296B2 (en) 2019-06-18 2022-11-29 THE CALANY Holding S.ÀR.L Location-based application stream activation
US11341727B2 (en) 2019-06-18 2022-05-24 The Calany Holding S. À R.L. Location-based platform for multiple 3D engines for delivering location-based 3D content to a user
CN113262469A (zh) * 2021-06-08 2021-08-17 网易(杭州)网络有限公司 一种资源模板的生成、游戏中场景元素的渲染方法及装置

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779574A4 (en) * 1995-06-16 1999-02-17 Sony Corp INFORMATION PROCESSOR AND INFORMATION VIEWING METHOD
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
WO1998033146A1 (fr) * 1997-01-24 1998-07-30 Sony Corporation Generateur de donnees de formes, procede de generation de donnees de formes et moyens associes
GB9711001D0 (en) * 1997-05-29 1997-07-23 Philips Electronics Nv Virtual environment data browser
US6684255B1 (en) * 1999-10-26 2004-01-27 International Business Machines Corporation Methods and apparatus for transmission and rendering of complex 3D models over networks using mixed representations
JP2001273520A (ja) * 2000-03-23 2001-10-05 Famotik Ltd マルチメディアドキュメント統合表示システム
AU2001288811A1 (en) * 2000-09-07 2002-03-22 Neochi Llc Method and system for simultaneously creating and using multiple virtual realityprograms
US6731304B2 (en) * 2000-12-06 2004-05-04 Sun Microsystems, Inc. Using ancillary geometry for visibility determination
JP4688316B2 (ja) * 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
US6980935B2 (en) * 2001-07-31 2005-12-27 Schlumberger Technology Corp. Method, apparatus and system for constructing and maintaining scenegraphs for interactive feature-based geoscience geometric modeling
US7619633B2 (en) 2002-06-27 2009-11-17 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7064766B2 (en) 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
KR100503789B1 (ko) * 2002-03-11 2005-07-26 삼성전자주식회사 렌더링시스템, 렌더링방법 및 그 기록매체
JP4144864B2 (ja) * 2003-02-28 2008-09-03 キヤノン株式会社 情報処理方法及び装置
GB2400287A (en) * 2003-04-02 2004-10-06 Autodesk Canada Inc Three-Dimensional Image Compositing
US7432925B2 (en) * 2003-11-21 2008-10-07 International Business Machines Corporation Techniques for representing 3D scenes using fixed point data
US7290216B1 (en) * 2004-01-22 2007-10-30 Sun Microsystems, Inc. Method and apparatus for implementing a scene-graph-aware user interface manager
US7583269B2 (en) * 2004-02-17 2009-09-01 Sun Microsystems, Inc. Window system 2D graphics redirection using direct texture rendering
US7487463B2 (en) * 2004-02-17 2009-02-03 Sun Microsystems, Inc. Multiprocess input redirection in a 3D window system
US7800614B2 (en) * 2004-02-17 2010-09-21 Oracle America, Inc. Efficient communication in a client-server scene graph system
US7145562B2 (en) * 2004-05-03 2006-12-05 Microsoft Corporation Integration of three dimensional scene hierarchy into two dimensional compositing system
US7734119B2 (en) * 2004-09-21 2010-06-08 General Electric Company Method and system for progressive multi-resolution three-dimensional image reconstruction using region of interest information
US8035636B1 (en) * 2005-09-08 2011-10-11 Oracle America, Inc. Software system for efficient data transport across a distributed system for interactive viewing
CA2631639C (en) * 2005-12-08 2015-02-03 Agency 9 Ab A method to render a root-less scene graph with a user controlled order of rendering
US7703045B1 (en) * 2006-09-05 2010-04-20 Oracle America, Inc. Method and apparatus for interacting with objects in a user interface
US8207972B2 (en) 2006-12-22 2012-06-26 Qualcomm Incorporated Quick pixel rendering processing
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
CN100583141C (zh) * 2008-08-04 2010-01-20 北京理工大学 一种多通道的分布式绘制系统与方法
US20110178854A1 (en) * 2008-09-04 2011-07-21 Somertech Ltd. Method and system for enhancing and/or monitoring visual content and method and/or system for adding a dynamic layer to visual content
US8441496B1 (en) * 2008-09-30 2013-05-14 Adobe Systems Incorporated Method and system for modifying and rendering scenes via display lists
US20100289804A1 (en) * 2009-05-13 2010-11-18 International Business Machines Corporation System, mechanism, and apparatus for a customizable and extensible distributed rendering api
US20110205229A1 (en) * 2010-02-23 2011-08-25 Google Inc. Portable Globe Creation for a Geographical Information System
CN102169598B (zh) * 2010-02-26 2015-06-17 新奥特(北京)视频技术有限公司 一种应用多线程创建三维云图的方法和装置
US8914259B2 (en) * 2010-10-12 2014-12-16 Autodesk, Inc. Passive associativity in three-dimensional (3D) modeling
FR2974474B1 (fr) * 2011-04-19 2017-11-17 Prologue Procedes et appareils de production et de traitement de representations de scenes multimedias
CN102736947A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的多线程实现方法
US9317961B2 (en) * 2011-09-14 2016-04-19 Google Inc. Prioritizing node requests based on tile distance to reduce perceptual scene time
US9105116B2 (en) * 2011-09-22 2015-08-11 Xerox Corporation System and method employing variable size binding elements in virtual rendering of a print production piece
CN102508989B (zh) * 2011-09-27 2015-04-29 福建省电力有限公司 一种基于虚拟现实的电网全景动态展示系统
EP2584464B1 (en) * 2011-10-18 2020-02-19 BlackBerry Limited Method of rendering a user interface
US9195362B2 (en) * 2011-12-16 2015-11-24 Blackberry Limited Method of rendering a user interface
US20130219303A1 (en) * 2012-02-21 2013-08-22 Research In Motion Tat Ab Method, apparatus, and system for providing a shared user interface
US20140258968A1 (en) * 2013-03-05 2014-09-11 Research In Motion Limited Visual Representation Of Edits For Collaborative Application Development
US9219922B2 (en) * 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190134694A (ko) * 2017-03-30 2019-12-04 매직 립, 인코포레이티드 중앙화된 렌더링
KR102658404B1 (ko) * 2023-12-21 2024-04-17 주식회사 직스테크놀로지 고속 처리를 위한 도면 관리 방법

Also Published As

Publication number Publication date
JP2015519661A (ja) 2015-07-09
JP6229017B2 (ja) 2017-11-08
EP3995952A1 (en) 2022-05-11
EP2793127B1 (en) 2021-11-17
CN105637563B (zh) 2019-01-08
CN109887069A (zh) 2019-06-14
CN105637563A (zh) 2016-06-01
US20140313197A1 (en) 2014-10-23
EP2793127A1 (en) 2014-10-22
TWI603286B (zh) 2017-10-21
US11113876B2 (en) 2021-09-07
TW201441970A (zh) 2014-11-01
JP5959729B2 (ja) 2016-08-02
CN109887069B (zh) 2023-07-07
KR101528215B1 (ko) 2015-06-11
WO2014169580A1 (en) 2014-10-23
JP2016189211A (ja) 2016-11-04

Similar Documents

Publication Publication Date Title
KR101528215B1 (ko) 화면 상에 3d 장면 그래프를 디스플레이하는 방법
CN105283900B (zh) 用于压缩顶点着色器输出参数的方案
JP3522275B2 (ja) ディスプレイ・コンポジティング・システム
KR100995157B1 (ko) 그래픽 서브시스템의 컴포넌트, 컴퓨터 판독가능 기록매체, 및 타겟 메모리 버퍼들을 제공하는 방법
EP2245598B1 (en) Multi-buffer support for off-screen surfaces in a graphics processing system
US20100289804A1 (en) System, mechanism, and apparatus for a customizable and extensible distributed rendering api
MXPA06012368A (es) Integracion de jerarquia de escena tridimensional en sistema de composicion bidimensional.
JP2006190281A (ja) グラフィックサブシステムを仮想化するシステムおよび方法
CA2798979A1 (en) Method of rendering a user interface
KR20060044935A (ko) 향상된 그래픽 파이프라인을 제공하는 시스템 및 방법
IL161243A (en) A system for displaying a 3D image on the Internet
CN113168312A (zh) 用于生成c/c++库与解释语言之间的绑定的方法,并且执行所述方法以转换三维(3d)模型
US9052924B2 (en) Light-weight managed composite control hosting
US9508108B1 (en) Hardware-accelerated graphics for user interface elements in web applications
CN113192173B (zh) 三维场景的图像处理方法、装置及电子设备
CN115705668A (zh) 一种视图绘制的方法、装置及存储介质
US9189253B2 (en) Reentrant window manager
CN111813404B (zh) 基于混合图形显示的应用方法、介质及客户端
CN113822961B (zh) 对3d模型进行2d渲染的方法、装置、设备及介质
CN116912093A (zh) 画面的渲染方法、装置、电子设备和存储介质
GIRIER et al. A GUI GRAPHICS LIBRARY FOR EMBEDDED DEVICES
Junbing et al. Researching Three-Dimensional Modeling of Surface that Based on. NET Platform
Boreskov Developing and Debugging Cross-platform Shaders
WO2015058100A1 (en) Graphics acceleration for applications executing on mobile devices with multi-operating system environment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180517

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 5