KR102040991B1 - 3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할 - Google Patents

3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할 Download PDF

Info

Publication number
KR102040991B1
KR102040991B1 KR1020130160506A KR20130160506A KR102040991B1 KR 102040991 B1 KR102040991 B1 KR 102040991B1 KR 1020130160506 A KR1020130160506 A KR 1020130160506A KR 20130160506 A KR20130160506 A KR 20130160506A KR 102040991 B1 KR102040991 B1 KR 102040991B1
Authority
KR
South Korea
Prior art keywords
computing
objects
dimensional scene
scene
location
Prior art date
Application number
KR1020130160506A
Other languages
English (en)
Other versions
KR20140081739A (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 KR20140081739A publication Critical patent/KR20140081739A/ko
Application granted granted Critical
Publication of KR102040991B1 publication Critical patent/KR102040991B1/ko

Links

Images

Classifications

    • A63F13/12
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/531Server assignment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Landscapes

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

Abstract

본 발명은 3차원 장면을 각각의 구역이 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로 분할하는 컴퓨터 구현 방법에 관한 것이다. 본 방법은,
- 하나 이상의 오브젝트들을 포함하는 3차원 장면을 제공하는 단계로서, 각각의 오브젝트는 컴퓨팅 리소스 비용을 발생시키는, 상기 3차원 장면을 제공하는 단계;
- 3차원 장면에서 로케이션들의 세트를 결정하는 단계;
- 각각의 로케이션을, 가장 비싼 컴퓨팅 비용에 이르는, 로케이션의 오브젝트들의 최대 점유율로 채우는 단계;
- 3차원 장면의 각각의 로케이션에 대해, 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계; 및
- 인접한 로케이션들을 하나 이상의 구역들로 그룹화하는 단계로서, 각각의 구역은 구역의 실시간 성능을 보증하는 최종 컴퓨팅 비용 밀도를 갖는, 상기 그룹화하는 단계를 포함한다.

Description

3D 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할{PARTITION OF A 3D SCENE INTO A PLURALITY OF ZONES PROCESSED BY A COMPUTING RESOURCE}
본 발명은 컴퓨터 프로그램들 및 시스템들의 분야에 관한 것으로, 더욱 구체적으로는, 3차원 장면을, 각각의 구역이 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로 분할하는 방법, 시스템 및 프로그램에 관한 것이다.
MMO 들 (Massively Multi-user On line applications) 은 다수의 사용자들이 실세계 현상들 시뮬레이터, 몰입형 애플리케이션들 (immersive applications) 등과 같은 애플리케이션을 동시에 사용하게 한다. 이와 유사하게, MMOG (Massively Multi-user On line Games) 는 다수의 게이머들이 비디오 게임을 동시에 플레이하게 한다.
MMO 들 및 MMOG 들은 특히 사용자들 또는 게이머들이 애플리케이션들 또는 비디오 게임들에 접속가능하도록 하기 위해서, 컴퓨터 네트워크들, 예컨대 인터넷에 의존한다. 본 명세서 전체에 걸쳐서 단어 "애플리케이션" 및 "비디오 게임들" 은 동의어인 것으로 이해될 것이며, 용어들 MMO 및 MMOG 는 구별없이 (indifferently) 사용될 것이다.
MMO 들은 사용자들 또는 게임 플레이어들에게 더욱 현실적인 경험을 제공하기 위해, 가능한 더 상세히, 가능한 실시간에 가깝게, 렌더링되기를 원하는 복잡하고 대형의 가상 환경들을 수반한다. MMO 들은 특히 3D 장면들의 표현 및 조작을 위해 설계되며, 최종-사용자의 컴퓨터 상에서 상호작용적이고 순차적인 실시간 3D 장면 생성을 필요로 하는 애플리케이션들에 대해 통상적으로 사용된다. 사용자가 3D 장면과 상호작용함에 따라, 컴퓨터는 사용자가 참가하고 있는 연속적이고 진행중인 현실의 감지를 사용자에게 전달하기에 충분할 정도로 빠르게 3D 표현을 변경한다. 장면은 3D 장면과 상호작용할 때 사용자에 의해 조작될 수 있는 많은 별개의 오브젝트들로 이루어진다. 따라서, MMO 들은 대량의 데이터 량들을 수반하며, 공간적으로 복잡하고 매우 상세한 가상 환경에서 실시간으로 참가하고 있는 상당수의 사용자들을 관리하기 위해 높은 데이터 레이트들 및 높은 데이터 복잡도가 통상적으로 요구된다.
통상적으로, MMO 들은 컴퓨터 모델들 내에서 실세계 현상들을 시뮬레이션하는데 사용된다; 예를 들어, 다물체 강체 역학 (Multi-Body Rigid Dynamics), 휴먼 시뮬레이션, 의류 시뮬레이션, 입자 시뮬레이션. 시뮬레이션들은, 제조 프로세스의 시뮬레이션 및 사용시의 제품의 시뮬레이션을 생성하기 위해 이 제조 프로세스 및 제품에 사용되는 재료들의 물리적 특성들 (세기, 탄성 등) 과 같은 실세계 현상을 기술하는 정확한 데이터 및 알고리즘들을 필요로 한다. 3D CAD/CAM (Computer Aided Design, Computer Aided Manufacturing) 툴들은 제품 또는 컴포넌트 부분들의 3D 표현들을 생성하게 한다.
MMO 들 및 MMOG 들의 주요한 임계적인 요건은, 플레이어들의 수에 관계없이, 그리고 애플리케이션의 해석 및 렌더링을 위해 야기된 컴퓨테이션 (computation) 비용들에 관계없이, 연결된 플레이어들에게 언제라도 실시간 응답을 제공하는 것이다. 그렇지 않으면, 플레이 경험의 품질이 열악하게 되어, 애플리케이션에 대한 플레이어의 관심을 감소시키고, 협력적이고 분산된 설계 리뷰를 수행할 때의 상호작용을 제한한다.
MMO 들은, MMOG 들과 마찬가지로, 영구히 변하는 워크로드 (work-load) 에 동적으로 적응하여 실시간 성능을 유지하도록 스케일링가능해야 한다. 스케일러빌리티 (scalability) 는 특히, 애플리케이션을 동시에 사용할 수 있는 다수의 유저들, 시뮬레이션들을 컴퓨팅하기 위한 다수의 컴퓨팅 리소스들, 애플리케이션에 의해 허용된 3D 장면의 오브젝트들 간의 다수의 동시적 상호작용들 등을 포함한다. MMOG 들에 있어, 사용자들의 수 뿐만 아니라, 모든 포함된 동적 오브젝트들의 위치적인 및 그래픽적 속성들은 현저하게 변할 수도 있다. 그럼에도 불구하고, 게임이 시작되기 전에, 주변 배경 (scenery) 이 단 한번만 설정되며 동적 오브젝트들 및 지원되는 거동 클래스들의 유형 (typology) 이 미리 정의된다. 달리 말하면, MMOG 들에서의 3D 장면들은 컴퓨팅 리소스들의 요구들을 강하게 제한하는 다수의 미리 결정되는 특성들을 포함하며; 그에 따라서 스케일러빌리티를 향상시킨다.
이에 반하여, 진보된 MMO 들에 있어, 특히 애플리케이션이 동작하고 있는 동안 3D 장면의 배경 및 개체군 (population) 유형이 진화하여 풍부해진다. 실제로, MMO 들은 실세계 현상들을 목표로 하며, 여기서 오브젝트들의 거동은 동적이며 미리 정의된 거동 클래스들을 배제시킨다. 그 결과, MMO 들에서의 3D 배경은 MMOG 들에 대해 미리 정의된 특성들을 사용할 수 없다.
스케일러빌리티의 이슈는 MMOG 에 의해 해결된다. 이러한 솔루션들 및 기법들은 샤딩 (Sharding) 및 조닝 (Zoning) 을 포함한다. 샤딩은 가능한 한 샤드들 간의 상호작용 없이, 워크로드 상승에 대처하기 위해 그 세계를 (부분적으로 또는 전체적으로) 복제하고 새로 로깅한 사용자들을 호스팅하는 것으로 이루어진다. 따라서 본래, 샤딩은 가상 세계 공간 및 개체군의 제한 없는 확장을 지원할 수 없으며: 샤드들 (shards) 은 그들의 할당되는 프로세싱 리소스들의 성능에 의해 좌우되는 물리적인 용량 최대 한계를 확실히 갖는다.
조닝은 소위 구역들에서의 가상 세계 공간의 파티션에 의존하며, 구역들 각각은 컴퓨팅 리소스의 책임 하에 있다. 오브젝트들/사용자들은 구역으로부터 구역으로 네비게이션할 수 있다. 연관되는 컴퓨팅 리소스들은 그때 그들의 컴퓨팅 모델들에서 이들 이동하는 오브젝트들을 통합하기 위해, 네트워크 상에서 전용 메시지들을 통신한다.
그러나, MMOG 들에 있어, 구역들은 서로 매우 독립적으로 진화하며: 동적 오브젝트들은 구역 "A" 의 소수의 미리 정의된 통로 로케이션들 중 하나로부터 소수의 구역 "B" 의 또 다른 하나로 간단히 "텔레포트된다". 최적의 부하 밸런싱의 이슈는 장애물들 또는 고체 벽들로 구역들을 울타리침으로써, 인터-구역 통로 로케이션들의 수를 제한함으로써, 각각의 구역 내 오브젝트들의 개체군을 언제라도 제한함으로써, 그리고 그 구역들을 적응된 정적 잠식물로 채움으로써, 해결된다. 어떤 면에서는, 가상 환경의 상이한 면적들은 실시간 요구사항들을 맞추도록 커스트마이즈된다.
진보된 MMO 들에 있어, 이 단순화는 허용되지 않는다. 실제로, 가상 환경은, 특히 실세계 현상들이 시뮬레이션될 때, 시뮬레이션되는 실세계의 커스터마이제이션들의 가능성들을 제한하는 배경의 인공적인 울타리치기를 지원할 수 없다. 반대로, 실세계에서, 구역들은 개방되어 있으며, 잠재적으로 임의의 오브젝트가 통과할 수 있는 그들의 이웃 구역들과 공통의 연속적인 경계들을 공유한다. 따라서, 그 성질 상, 조닝은 진보된 MMO 들에서 요구되는 바와 같이 가상 세계의 잠재적으로 무한한 증강을 관리할 수 있다. 그러나, MMOG 들에서 수행되는 바와 같은 조닝 (zoning) 은 가상 환경의 ad-hoc 커스터마이제이션, 시뮬레이션되는 실세계, 및 그의 특성들에 대한 제한 사항들을 필요로 하기 때문에, MMO 들의 상황에 적응되지 않는다.
이러한 맥락 내에서, 실세계 시뮬레이션 애플리케이션들에서 스케일링가능한, 끊김없는, 그리고 효과적인 3D 장면의 실시간 시뮬레이션을 제공하는 개선된 방법, 컴퓨터 프로그램, 및 시스템에 대한 필요성이 여전히 존재한다.
일 양태에 따르면, 본 발명은 따라서 3차원 장면을, 각각의 구역이 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로 분할하는 컴퓨터 구현 방법을 제공한다. 본 방법은 다음 단계들을 포함한다:
- 하나 이상의 오브젝트들을 포함하는 3차원 장면을 제공하는 단계로서, 각각의 오브젝트는 컴퓨팅 리소스 비용을 발생시키는, 상기 3차원 장면을 제공하는 단계;
- 3차원 장면에서 로케이션들의 세트를 결정하는 단계;
- 각각의 로케이션을 가장 비싼 컴퓨팅 비용에 이르는, 로케이션의 오브젝트들의 최대 점유율 (occupancy) 로 채우는 단계;
- 3차원 장면의 각각의 로케이션에 대해, 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계; 및
- 인접한 로케이션들을 하나 이상의 구역들로 그룹화하는 단계로서, 각각의 구역은 구역의 실시간 성능을 보증하는 최종 컴퓨팅 비용 밀도를 갖는, 상기 그룹화하는 단계.
이 방법은 다음 중 하나 이상을 포함할 수도 있다:
- 3차원 장면의 로케이션들에 대해 컴퓨팅된 최대 컴퓨팅 비용 밀도들을 집합시키고, 그리고 그 집합된 최대 컴퓨팅 비용 밀도들로부터 3차원 장면의 비용 밀도의 맵을 구축하는 단계;
- 각각의 로케이션을 그 오브젝트들의 최대 점유율로 채우는 단계가 동적 오브젝트들에 대해 수행되는 단계로서, 동적 오브젝트는 3차원 장면에서 잠재적으로 이동할 수 있는 오브젝트인, 상기 동적 오브젝트들에 대해 수행되는 단계;
- 3차원 장면의 각각의 로케이션에 대해, 상기 각각의 로케이션 상에 위치된 정적 오브젝트들을 추출하고, 그 추출된 정적 오브젝트들로부터 3차원 장면의 제약들 (constraints) 의 맵을 구축하는 단계로서, 정적 오브젝트는 3차원 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 오브젝트인, 상기 3차원 장면의 맵을 구축하는 단계;
- 정적 오브젝트들을 추출하는 단계는 3차원 장면의 각각의 로케이션에 대해, 3차원 장면의 상기 각각의 로케이션 상의 정적 오브젝트들의 프린트를 추출하는 단계를 더 포함하며;
- 3차원 장면의 비용 밀도 및 3차원 장면의 제약들의 맵들을 집합시키는 단계;
- 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계는 비 P/A 를 컴퓨팅하는 단계를 포함하며, 여기서 P 는 로케이션을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이며 A 는 3차원 장면에서의 로케이션의 면적이며;
- 그룹화하는 단계에서, 각각의 구역의 최종 컴퓨팅 비용 밀도는, 구역을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이 미리 정의된 임계치 아래 정도이며;
- 그룹화하는 단계에서, 2개 이상의 구역들 간의 최종 컴퓨팅 비용 밀도는 지각할 수 있게 동일하며;
- 그룹화하는 단계는 각각의 구역에 의해 과거에 이루어진 컴퓨팅 리소스의 사용을 고려하여 추가로 수행된다.
본 발명은 컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램을 추가로 제안하며, 그 명령들은 본 발명의 방법의 단계들을 수행하기 위해 적응된다.
본 발명은 그 상에 컴퓨터 프로그램을 기록하고 있는 컴퓨터 판독가능 저장 매체를 추가로 제안한다.
본 발명은 다음을 포함하는 컴퓨터화된 시스템을 추가로 제안한다:
- 하나 이상의 오브젝트들을 포함하는 3차원 장면을 저장하는 저장 시스템; 및
- 3차원 장면을 분할하는 복수의 구역들을 프로세싱하는 프로세싱 유닛으로서, 각각의 구역은 프로세싱 유닛의 컴퓨팅 리소스에 의해 프로세싱되며, 프로세싱 유닛은 본 발명의 방법에 따라서 3차원 장면을 복수의 구역들로 분할하도록 적응된, 상기 프로세싱 유닛.
본 발명의 실시형태들은 이하 비한정적인 예로서, 그리고 첨부 도면들을 참조하여 설명된다:
도 1 은 본 방법의 일 예의 플로우차트를 나타낸다.
도 2 는 쇼핑몰의 가상 세계의 일 예의 평면도를 나타낸다.
도 3 은 로케이션의 최대 비용 밀도의 분석의 일 예를 나타낸다.
도 4 는 로케이션의 최대 비용 밀도의 정량화의 일 예를 나타낸다.
도 5 는 비용 밀도의 맵의 일 예를 나타낸다.
도 6 은 제약들의 맵의 일 예를 나타낸다.
도 7 은 도 5 및 도 6 의 비용 밀도 및 제약들의 맵들의 집합들의 일 예를 나타낸다.
도 8 은 컴퓨터화된 시스템의 일 예를 나타낸다.
도 1 의 플로우차트를 참조하면, 3차원 장면을, 각각의 구역이 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로 분할하는 컴퓨터 구현 방법이 제안된다. 이 프로세스는 3차원의 (3D) 장면을 제공하는 것을 포함한다. 3D 장면은 실세계 환경을 시뮬레이션할 수도 있다. 3D 장면은 하나 이상의 오브젝트들, 예컨대 3D 모델링된 오브젝트들을 포함한다. 각각의 오브젝트는 컴퓨팅 리소스 비용을 발생시킨다, 즉, 각각의 오브젝트는 3D 장면에서 실행되기 위해 컴퓨팅 리소스의 시간을 필요로 한다. 본 방법은 3D 장면에서 로케이션들의 세트의 결정을 추가로 포함한다. 3D 장면에서의 로케이션은 3D 장면의 오브젝트에 액세스가능한 면적일 수도 있다. 3D 장면에서의 로케이션은 3D 장면의 오브젝트가 포함될 수도 있는 체적일 수도 있다. 본 방법은 각각의 로케이션을 가장 비싼 컴퓨팅 비용에 이르는 그 오브젝트들의 최대 점유율로 채우는 단계를 더 포함한다. 본 방법은 3D 장면의 각각의 로케이션에 대해, 최대 컴퓨팅 비용 밀도 (maximum cost density) 를 컴퓨팅하는 단계를 더 포함한다. 최대 컴퓨팅 비용 밀도는 단위 면적 당 또는 단위 체적 당 컴퓨팅 비용을 지칭할 수도 있다. 이 방법은 또한 인접한 로케이션들을 하나 이상의 구역들로 그룹화하는 단계를 포함한다. 각각의 구역은 구역의 실시간 성능을 보증하는 최종 컴퓨팅 비용 밀도를 갖는다. 구역의 최종 컴퓨팅 비용 밀도는 그의 면적 또는 체적으로 곱한, 각각의 로케이션의 최대 비용 밀도의 총합이다.
이러한 방법은 3D 장면의 ad-hoc 커스터마이제이션 또는 그의 특성들에 대한 제한 사항들을 제기함이 없이, 보증 실시간 성능이 제공되는 3D 장면의 조닝을 향상시킨다. 또한, 본 방법은 3D 장면의 확장들, 오브젝트 유형의 확장들, 및 그의 거동 클래스들의 확장들을 추가로 지원한다. 실제로, 그룹화는 각각의 로케이션을 가장 비싼 컴퓨팅 비용에 이르는 로케이션의 오브젝트들의 최대 점유율로 채우는 것에 의해 수행되는 3D 장면의 각각의 로케이션의 포화의 결과에 의존한다. 흥미롭게도, 오브젝트들의 최대 점유율은 3D 장면의 실제적인 조건들을 반영한다. 달리 말하면, 그룹화는 각각의 로케이션 상에서의 오브젝트들의 개체군이 최대한인 시나리오의 결과이며, 이 시나리오는 시뮬레이션되는 실세계에 대해 현실적이다.
본 방법은 컴퓨터 구현된다. 이것은 본 방법의 단계들 (또는, 실질적으로 모든 단계들) 이 적어도 하나의 컴퓨터 또는 컴퓨터화된 시스템에 의해 실행된다는 것을 의미한다. 예들에서, 본 방법의 단계들 중 적어도 일부의 트리거링은 사용자-컴퓨터 상호작용을 통해서 수행될 수도 있다. 필요한 사용자-컴퓨터 상호작용의 레벨은 사용자의 소망들을 구현할 필요성을 예견하고 균형을 잡는 자동성 (automatism) 의 레벨에 의존할 수도 있다. 예들에서, 이 레벨은 사용자-정의되고/되거나 사전-정의될 수도 있다.
예를 들어, 하나 이상의 오브젝트들을 포함하는 3D 장면을 제공하는 단계는 예컨대, 장면의 사용자 선택 시 수행될 수도 있다. 사용자는 키보드, 마우스, 스타일러스 등과 같은 햅틱 디바이스를 통해서 선택을 실행할 수도 있다. 예를 들어, 2-버튼 마우스에서, 좌측 버튼은 장면들의 리스트에서 장면을 선택하는데 사용될 수 있다. 시스템은 또한 장면을 디폴트로, 즉, 사용자 선택을 필요로 하지 않고 식별할 수도 있다.
본 방법의 컴퓨터 구현예의 통상적인 예는 메모리 및 프로세서를 포함하는 시스템으로 본 방법을 수행하는 것이다. 데이터베이스를 저장하는 메모리는 이러한 저장에 적합한 단지 임의의 하드웨어이다. 프로세서는 또한 컴퓨팅 유닛으로서 지칭될 수도 있다. 이러한 시스템은 실세계 시뮬레이션 애플리케이션들의 상황에서 스케일링가능한, 끊김없는, 그리고 효과적인 3D 장면의 실시간 시뮬레이션을 제공한다. 시스템은 3D 장면 및 3D 장면 내 오브젝트들을 디스플레이하는데 적합한 그래픽 사용자 인터페이스 (GUI) 를 더 포함할 수도 있다. GUI 는 메모리 및 프로세서와 커플링된다.
"데이터베이스" 에 의해, 이것은 탐색 및 취출을 위해 조직된 데이터 (즉, 정보) 의 임의의 컬렉션으로 의미된다. 메모리 상에 저장될 때, 데이터베이스는 컴퓨터에 의한 빠른 탐색 및 취출을 가능하게 한다. 데이터베이스들은 사실은 여러 데이터-프로세싱 동작들과 함께, 데이터의 저장, 취출, 변경, 및 삭제를 용이하게 하도록 구조화된다. 데이터베이스는 레코드들로 분할될 수 있는 파일 또는 파일들의 세트로 이루어질 수도 있으며, 레코드들의 각각은 하나 이상의 필드들로 이루어진다. 필드들은 데이터 저장의 기본적인 단위들이다. 사용자들은 데이터를 주로 쿼리들을 통해서 취출할 수도 있다. 키워드들을 사용하고 커맨드들을 정렬함으로써, 사용자들은 사용중인 데이터베이스 관리 시스템의 규칙들에 따라서 데이터의 특정의 집합물 (aggregates) 에 관한 보고서들을 취출하거나 또는 생성하기 위해, 많은 레코드들에서의 필드를 빨리 탐색하고, 재배열하고, 그룹화하고, 그리고 선택할 수 있다.
본 방법의 경우에, 데이터베이스는 하나 이상의 오브젝트들을 포함하는 3차원 장면을 포함한다. 하나 이상의 오브젝트들은 데이터베이스 상에 저장되며, 그 장면과 독립적으로 저장될 수도 있다. 데이터베이스는 시스템에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램을 더 포함할 수도 있다. 명령들은 본 방법의 단계들을 수행하도록 적응된다.
본 방법은 통상적으로 오브젝트들을 조작한다. 오브젝트는 데이터베이스에 저장된 데이터에 의해 정의되는 임의의 오브젝트이다. 더 나아가, 어구 "오브젝트" 는 데이터 자체를 나타낸다. 시스템의 유형에 따라서, 오브젝트들은 상이한 종류들의 데이터에 의해 정의될 수도 있다. 시스템은 CAD 시스템, CAE 시스템, CAM 시스템, 및/또는 PLM 시스템의 임의의 조합일 수도 있다. 그들 상이한 시스템들에서, 모델링된 오브젝트들은 대응하는 데이터에 의해 정의된다. 사람들은 따라서 CAD 오브젝트, PLM 오브젝트, CAE 오브젝트, CAM 오브젝트, CAD 데이터, PLM 데이터, CAM 데이터, CAE 데이터에 대해 말할 수도 있다. 그러나, 이들 시스템들은 오브젝트가 이들 시스템들의 임의의 조합에 대응하는 데이터에 의해 정의될 수도 있기 때문에, 그 나머지 중 하나를 배제하지 않는다. 시스템은 따라서 아래에 제공되는 이러한 시스템들의 정의들로부터 명백히 알 수 있는 바와 같이, 아마 CAD 및 PLM 시스템 양자일 수도 있다. 시스템은 또한 오브젝트들이 사용자 액션 시에 조작되는 MMO 또는 MMOG 시스템일 수도 있다.
CAD 시스템에 의해, 이것은 CATIA 와 같은 모델링된 오브젝트의 그래픽 표현에 기초하여, 모델링된 오브젝트를 설계하는데 적어도 적합한 임의의 시스템으로 의미된다. 이 경우, 모델링된 오브젝트를 정의하는 데이터는 모델링된 오브젝트의 표현을 가능하게 하는 데이터를 포함한다. CAD 시스템은 예를 들어, 페이스들 또는 표면들을 가진 어떤 경우에, 에지들 또는 라인들을 사용하여 CAD 모델링된 오브젝트들의 표현을 제공할 수도 있다. 라인들, 에지들, 또는 표면들은 여러 방법들, 예컨대 NURBS (non-uniform rational B-splines) 으로 표현될 수도 있다. 구체적으로 설명하면, CAD 파일은 사양들을 포함하며, 이로부터 기하학적 구조가 생성될 수도 있으며, 그에 따라 표현이 생성되도록 할 수도 있다. 모델링된 오브젝트의 사양들은 단일 CAD 파일 또는 다수의 CAD 파일들에 저장될 수도 있다. CAD 시스템에서 모델링된 오브젝트를 나타내는 파일의 통상적인 사이즈는 부분 (part) 당 1 메가바이트의 범위이다. 그리고, 모델링된 오브젝트는 통상적으로 무수한 부분들의 어셈블리일 수도 있다.
CAD 의 상황에서, 모델링된 오브젝트는 통상적으로 예컨대, 부분 또는 부분들의 어셈블리, 또는 아마도 제품들의 어셈블리와 같은 제품을 나타내는 3D 모델링된 오브젝트일 수도 있다. "3D 모델링된 오브젝트" 에 의해, 이것은 그의 3D 표현을 가능하게 하는 데이터에 의해 모델링된 임의의 오브젝트로 의미된다. 3D 표현은 모든 각도들로부터 부분의 뷰잉을 가능하게 한다. 예를 들어, 3D 모델링된 오브젝트는, 3D 표현될 때, 그의 축들의 임의의 축 둘레로, 또는 그 표현이 디스플레이되는 스크린에서의 임의의 축 둘레로 처리되고 회전될 수도 있다. 이것은 특히 3D 모델링되지 않는 2D 아이콘들을 제외한다. 3D 표현의 디스플레이는 설계를 용이하게 한다 (즉, 설계자들이 그들의 작업을 통계적으로 달성하는 속도를 증가시킨다). 이것은 제품들의 설계가 제조 프로세스의 일부이기 때문에, 산업에서 제조 프로세스의 속도를 증대시킨다.
CAD 시스템은 이력-기반일 수도 있다. 이 경우, 모델링된 오브젝트는 기하학적인 특성들의 이력을 포함하는 데이터에 의해 추가로 정의된다. 모델링된 오브젝트는 사실은 표준 모델링 특성들 (예컨대, 압출, 밖으로 말기 (revolute), 절단, 및/또는 만곡 (round) 등) 및/또는 표준 표면작업 (surfacing) 특성들 (예컨대, 쓸기 (sweep), 혼합하기, 로프트 (loft), 채우기, 변형, 평탄화 등) 을 사용하여 물리적인 사람 (즉 설계자/사용자) 에 의해 설계될 수도 있다. 이러한 모델링 기능들을 지원하는 많은 CAD 시스템들이 이력-기반의 시스템이다. 이것은 설계 특성들의 생성 이력이 상기 기하학적인 특성들을 함께 입력 및 출력 링크들을 통해서 링크하는 비순환적인 데이터 흐름을 통해서 통상적으로 저장된다는 것을 의미한다. 이력 기반의 모델링 패러다임은 80 대 초 이후 널리 알려져 있다. 모델링된 오브젝트는 2개의 지속적인 데이터 표현들: 이력 및 B-rep (즉, 경계 표현) 에 의해 기술된다. B-rep 는 그 이력에 정의된 컴퓨팅들의 결과이다. 모델링된 오브젝트가 표현될 때 컴퓨터의 스크린 상에 디스플레이된 부분의 형태는 B-rep (의 테셀레이션 (tessellation)) 이다. 그 부분의 이력은 설계 의도이다. 기본적으로, 이력은 그 모델링된 오브젝트가 경험한 동작들에 관한 정보를 수집한다. B-rep 는 복잡한 부분들을 디스플레이하는 것을 더 쉽게 하기 위해, 그 이력과 함께 저장될 수도 있다. 이력은 설계 의도에 따라서 부분의 설계 변화들이 가능하도록 하기 위해 B-rep 와 함께 저장될 수도 있다.
PLM 시스템에 의해, 이것은 물리적으로 제조된 제품을 나타내는 모델링된 오브젝트의 관리에 적합한 임의의 시스템으로 의미된다. PLM 시스템에서, 모델링된 오브젝트는 따라서 물리적인 오브젝트의 제조에 적합한 데이터에 의해 정의된다. 이들은 통상적으로 치수들 값들 및/또는 허용오차 값들일 수도 있다. 오브젝트의 정확한 제조를 위해, 이러한 값들을 갖는 것이 실제로 더 좋다.
CAE 시스템에 의해, 이것은 모델링된 오브젝트의 물리적인 거동의 분석에 적합한 임의의 시스템으로 의미된다. CAE 시스템에서, 모델링된 오브젝트는 따라서 이러한 거동의 분석에 적합한 데이터에 의해 정의된다. 이것은 통상적으로 작용하고 있는 (behaving) 특성들의 세트일 수도 있다. 예를 들어, 문에 대응하는 모델링된 오브젝트는 그 문이 축 둘레로 회전한다는 것을 나타내는 데이터에 의해 정의될 수도 있다.
도 8 은 클라이언트 컴퓨터 시스템, 예컨대 사용자의 워크스테이션의 일 예를 나타낸다.
클라이언트 컴퓨터는 내부 통신 버스 (1000) 에 접속된 중앙 처리 장치 (CPU) (1010), 버스에 또한 접속된 랜덤 액세스 메모리 (RAM) (1070) 를 포함한다. 클라이언트 컴퓨터에는 버스에 접속된 비디오 랜덤 액세스 메모리 (1100) 와 연관되는 그래픽 프로세싱 유닛 (GPU) (1110) 이 추가로 제공된다. 비디오 RAM (1100) 은 또한 프레임 버퍼로서 당업계에 알려져 있다. 대용량 저장 디바이스 제어기 (1020) 는 대용량 메모리 디바이스, 예컨대 하드 드라이브 (1030) 에의 액세스들을 관리한다. 컴퓨터 프로그램 명령들 및 데이터를 유형적으로 구현하는데 적합한 대용량 메모리 디바이스들은 일 예로서, EPROM, EEPROM, 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 내부 하드 디스크들 및 착탈식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 디스크들 (1040) 을 포함한, 모든 형태들의 비휘발성 메모리를 포함한다. 전술한 것들 중 임의의 것이 특별히 설계된 ASIC 들 (주문형 집적 회로들) 에 의해 보충되거나 또는 그 안에 통합될 수도 있다. 네트워크 어댑터 (1050) 는 네트워크 (1060) 에의 액세스들을 관리한다. 클라이언트 컴퓨터는 또한 커서 제어 디바이스, 키보드 등과 같은 햅틱 디바이스 (1090) 를 포함할 수도 있다. 커서 제어 디바이스가 사용자로 하여금 디스플레이 (1080) 상의 임의의 원하는 로케이션에 커서를 선택적으로 위치시킬 수 있도록 하기 위해서, 클라이언트 컴퓨터에 사용된다. 또한, 커서 제어 디바이스는 사용자로 하여금 여러 커맨드들, 및 입력 제어 신호들을 선택할 수 있게 한다. 커서 제어 디바이스는 시스템에의 제어 신호들의 입력을 위한 다수의 신호 생성 디바이스들을 포함한다. 통상적으로, 커서 제어 디바이스는 마우스일 수도 있으며, 이 마우스의 버튼은 신호들을 생성하도록 사용된다.
컴퓨터 프로그램은 컴퓨터에 의한 명령들을 포함할 수도 있으며, 이 명령들은 상기 시스템이 상기 방법을 수행하도록 하는 수단을 포함한다. 본 발명은 예를 들어, 디지털 전자 회로로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 이들의 조합들로 구현될 수도 있다. 본 발명의 장치는 프로그래밍가능 프로세서에 의한 실행을 위해 머신-판독가능 저장 디바이스에 유형으로 구현되는 컴퓨터 프로그램 제품으로 구현될 수도 있으며; 본 발명의 방법 단계들은 입력 데이터에 관해 동작하여 출력을 발생함으로써 본 발명의 기능들을 수행하는 명령들의 프로그램을 실행하는 프로그래밍가능 프로세서에 의해 수행될 수도 있다.
본 발명은 유리하게는, 데이터 및 명령들을 데이터 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 수신하고, 데이터 및 명령들을 그들로 송신하도록 커플링된 적어도 하나의 프로그래밍가능 프로세서를 포함하는 프로그래밍가능 시스템 상에서 실행가능한 하나 이상의 컴퓨터 프로그램들로 구현될 수도 있다. 애플리케이션 프로그램은 고급 절차 또는 객체 지향 프로그래밍 언어로, 또는 원하는 경우 어셈블리 또는 기계어로 구현될 수도 있으며; 임의의 경우, 언어는 컴파일 또는 해석 언어일 수도 있다.
도 1 의 플로우차트를 참조하면, 3차원 장면을 복수의 구역들로 분할하는 본 방법의 일 예가 이하 설명된다.
단계 (100) 에서, 하나 이상의 오브젝트들을 포함하는 3차원 (3D) 장면이 제공된다. 3D 장면을 제공하는 것은 3D 장면 및 하나 이상의 오브젝트들을 디스플레이, 예를 들어 도 2 를 참조하여 언급한 디스플레이 (1080) 상에 디스플레이하는 것을 포함할 수도 있다. 3D 장면은 오브젝트들 간의 공간 관계들이 기술되는 공간이다. 장면은 적어도 2개의 오브젝트들로 이루어지며, 오브젝트들은 모델링된 오브젝트들 또는 3D 모델링된 오브젝트들일 수도 있지만, 이에 한정되지 않는다. 3D 모델링된 오브젝트는 3D 공간에서의 오브젝트의 기술 (description) 이다. 3D 장면은 좌표들에 의해서 3D 공간에서의 모든 점들을 기술하는 기하학적 구조에 의해 수학적으로 표현될 수도 있는 물리적인 세계의 모델이다. 3D 장면은 통상적으로 오브젝트들 간의 현실적인 상호작용들이 시뮬레이션되는 실세계이다. 현실적인 상호작용들이라는 표현은 시뮬레이션되는 상호작용들이 실세계의 상호작용들, 예컨대 힘들/작동력과 같은 물리적인 법칙들 (중력, 자력, 접촉), 정보 흐름, 제어 이벤트들 등과 같은 제어 법칙들을 반영한다는 것을 의미한다. 하나 이상의 오브젝트들은 3D 장면에서 진화하며 시뮬레이션되는 실세계의 법칙들을 겪는다, 예컨대 2개의 오브젝트들은 서로 교차할 수 없다. 3D 장면은 특정의 시나리오들의 목적을 위해 변경될 수 있는 레이아웃을 포함한다. 시나리오는 3D 장면에서의 하나 이상의 오브젝트들의 적어도 예측가능한 상호작용들을 기술한다. 시나리오는 따라서 3D 장면이 고객들의 흐름 관리에 관해, 또는 화재 소개의 경우에 안전에 관해 스토어에서의 새로운 섹션의 영향을 분석하는 것과 같은, 활동의 상황에서 사용되거나 또는 사용될 것으로 예견되는 한 방법을 기술한다. 각각의 특정의 시나리오는 레이아웃 상에 시뮬레이션될 것이다. 시나리오는 사용자에 의해 정의될 수도 있는 것으로 이해되어야 한다. 실제로, 3D 장면의 레이아웃은 3D 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 정적 오브젝트들로 이루어진다.
도 2 는 쇼핑몰의 가상 세계를 시뮬레이션하는 3D 장면의 평면도의 일 예를 예시한다. 이 가상 몰은 벽들 (두꺼운 라인들로 표현됨) 에 의해 분리된, 여러 상점들 (200, 210, 220, 230), 통로들 (260, 270) 및 계단들 (240, 250) 로 이루어진다. 상점들은 선반들 (280), 금전 등록기들 (290) 및 다른 장비들을 포함한다. 도 2 에서, 3D 장면의 레이아웃은 통로들의 지면, 계단들, 벽들, 선반들과 같은 정적 오브젝트들로 이루어진다. 금전 등록기와 같은 3D 장면의 다른 오브젝트들은 이들 오브젝트들이 정적 오브젝트들이 아니기 때문에, 레이아웃의 일부분이 아니다: 실제로, 금전 등록기는 금전 등록기가 레이아웃의 일부분, 따라서 정적 오브젝트인 것으로 설계되지 않는 한, 이동될 수 있는 오브젝트이다.
다음으로, 도 1 에서의 단계 (110) 에서, 로케이션들의 세트는 3D 장면에서 결정되며, 이것은 2개 이상의 로케이션들이 3D 장면에서 식별된다고 말하는 것과 마찬가지이다. 이의 대안으로, 오직 하나의 로케이션이 결정될 수도 있다. 로케이션은 3D 장면의 오브젝트에 의해 도달가능한 3D 장면의 부분이다. 통상적으로, 3D 장면의 로케이션은 동적 오브젝트에 의해 도달가능하다. 동적 오브젝트는 3D 장면에서 잠재적으로 이동할 수 있는 오브젝트이다. 동적 오브젝트는 따라서 3D 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 정적 오브젝트에 반대된다. 용어 로케이션은 3D 장면의 오브젝트에 액세스가능한 3D 장면의 제한된 (delimitated) 면적을 나타낼 수도 있거나, 또는 또한 3D 장면의 오브젝트가 포함되는 3D 장면의 체적을 나타낼 수도 있다. 달리 말하면, 로케이션은 하나 이상의 오브젝트들에 의해 점유되거나 또는 점유에 사용 가능한 3D 장면에서의 장소 (site) 일 수도 있다.
도 2 에 나타낸 3D 장면으로 되돌아 가면, 고객들 (미도시) 은 오브젝트들에 의해 시뮬레이션된다. 고객들은 걸으면서, 브라우즈하고, 선반들 상에 디스플레이된 상품들을 집어서, 그것들을 그들의 쇼핑 카트들에 넣을 수 있다. 상품들 (미도시) 이 또한 오브젝트들인 것으로 이해되어야 한다. 이들 고객들 및 상품들은 동적 오브젝트들, 즉, 3D 장면에서 잠재적으로 이동할 수 있는 오브젝트들이다. 여기서, 동적 오브젝트들 및 가능한 액션들의 리스트는 광범위하지 않으며, 애플리케이션의 목적 및 3D 장면에 의해 지원되는 시나리오들의 성질에 의존한다. 도 2 상에 나타낸 3D 장면은 컴퓨팅 리소스들에 의해 영구적으로 실행되거나 프로세싱된다. 이것은 한편, 사용자들이 언제라도 로그 인/로그 아웃하고 새로운 상점들이 몰에 건설되고 비즈니스를 시작하는 것을 포함하며, 리프트와 같은 새로운 장비들이 추가될 수 있으며, 새로운 물품이 도입될 수 있다. 즉, 레이아웃은 변경될 수 있으며, 동적 오브젝트들은 또한 변경될 수도 있다; 예를 들어, 고객들은 억제되거나, 추가되거나, 또는 심지어 변경될 수도 있다.
3D 장면은 따라서 정적 오브젝트들의 레이아웃 및 상기 레이아웃에서 이동/진화하는 동적 오브젝트의 세트를 포함하는 것으로 생각될 수도 있다. 흥미롭게도, 로케이션들 및 정적 오브젝트들은 밀접하게 관련된다. 실제로, 레이아웃 내에서 동적 오브젝트들의 이동들은 동적 오브젝트들에 의해 횡단될 수 없는 3D 공간에서 표면들 또는 체적들을 정의하는 정적 오브젝트들에 의해 제한된다. 예를 들어, 도 3 에서, 고객 (34) 및 쇼핑 카트 (35) 를 나타내는 오브젝트들은 정적 오브젝트인 통로 (33) (도 2 에서 통로 (270, 280) 으로 지칭됨) 에서 이동하는 동적 오브젝트들이다. 통로 (33) 의 지면은 동적 오브젝트들에 의해 도달가능하며, 따라서 로케이션으로서 식별될 수 있다. 또 다른 예로서, 스택들 (32) 에서의 캔들을 나타내는 오브젝트들은 선반 (31) 중 하나로부터 잠재적으로 이동될 수 있는 동적 오브젝트들일 수도 있다 (예를 들어, 그것들은 고객에 의해 집어져서 쇼핑 카트에 넣어질 수 있다). 디스플레이 케이스 (30) 의 선반들 (31) 은 따라서 로케이션들인 것으로 결정될 수 있다.
도 1 을 다시 참조하면, 단계 (120) 에서, 이전에 결정된 각각의 로케이션이 가장 비싼 컴퓨팅 비용에 이르는 그 오브젝트들의 최대 점유율로 채워진다. 그 로케이션을 그 오브젝트들의 최대 점유율로 채우는 것은, 오브젝트들이 그 로케이션 상에 배치되며 그리고 이 로케이션에 배치된 오브젝트들의 개수가 그 로케이션 상에 허용된 오브젝트들의 최대 개수임을 의미한다. 오브젝트들의 이 최대 개수는 로케이션의 특성이며, 그 특성은 3D 장면 상에서 디스플레이되거나 또는 제공되는 시나리오에 의해 정의될 수도 있다. 시나리오는 시뮬레이션되는 실세계에 대해 현실적이며 3D 장면에서의 오브젝트들의 가능한 액션들을 제한한다.
3D 장면 상에서의 하나 이상의 오브젝트들은 당업계에 알려져 있는 바와 같이, 인스턴스화된 오브젝트들이다. 오브젝트는 3D 장면에서 인스턴스화될 때 컴퓨팅 비용을 발생시킨다. 인스턴스화된 오브젝트의 컴퓨팅 비용은 인스턴스화의 파라미터들의 함수이다. 이들 인스턴스화의 파라미터들은 오브젝트의 3D 메시의 선택된 복잡성, 텍스쳐들의 정밀도, 3D 장면에서의 오브젝트의 반사 및 음영, 접촉/충돌, 탄성, 열 전달 등과 같은 동력학적 거동과 연관되는 성질들 등일 수도 있지만, 이에 한정되지 않는다. 그 발생된 컴퓨팅 비용은 인스턴스화 파라미터들이 로케이션 상의 오브젝트들의 최대 개수에 있어 최대한일 때 (예컨대, 최대한의 사실성으로 인스턴스화) 최대인 것으로 이해되어야 한다.
도 2 를 참조하면, 상품들은 상점 (200) 에서 선반들 (280) 상에 배치될 수도 있다. 예를 들어, 상품들은 샴푸 병들일 수도 있으며, 선반은 로케이션일 수도 있다. 3D 장면이 실세계 시뮬레이션 시나리오를 플레이함에 따라, 선반은 이 선반에 대해 가장 비싼 컴퓨팅 비용이 획득되도록 최대한의 사실성으로 인스턴스화된 샴푸 병들의 최대 개수를 지원할 수도 있다. 이 상황은 도 3 에 도시된다. 디스플레이 케이스 (30) 는 6개의 선반들 (31) 을 포함한다. 디스플레이 케이스 (30) 는 가장 큰 허용된 선반들 (31) 을 갖는 그 최대 비용 상황에서 도시되고, 이 선반들 각각에는 스택들 (32) 로 그 최대 용량들의 캔들이 있고, 대부분의 CPU 비싼 캔들은 렌더링에 대해 복잡한 3D 메시들 및 풍부한 텍스쳐들을 갖는다.
여전히 도 2 를 참조하면, 또 다른 예로서, 오브젝트들이 통로 (270) 상에 배치될 수도 있다. 예를 들어, 오브젝트들은 장바구니를 운반하는 사용자들일 수도 있다. 또, 3D 장면이 실세계 시뮬레이션 시나리오를 플레이함에 따라, 그 통로는 선반에 대해 가장 비싼 컴퓨팅 비용을 발생시키는 장바구니를 운반하는 사용자들의 최대 수를 포함할 수도 있다. 이것은 로케이션, 여기서는, 각각의 고객 (34) 이 아이템들 (36) 로 채워진 쇼핑 카트 (35) 를 밀고 있을 때 각각의 고객 및 그의 카트는 "꼬리를 문 (bumper to bumper)" 상황이며; 즉, "꼬리를 문" 상황은 통로 (33) 가 최대 수의 고객들을 포함하는 최악의 상황인 최대 비용 상황에 있는 통로 (33) (도 2 에서 통로 (270, 280) 로서 지칭됨) 를 나타내어 도 3 에 예시된다. 오브젝트들 (사용자, 카트들, 및 아이템들) 은 컴퓨팅 리소스들의 최대 비용을 발생시키도록 선택되는 파라미터들 인스턴스화로 인스턴스화되며; 예를 들어, 렌더링 파라미터들은 오브젝트들의 가장 정확한 표현들을 획득하도록 선택되는 것으로 이해되어야 한다.
유리하게는, 단계 120 은 오직 동적 오브젝트들에 대해, 즉, 3D 장면에서 잠재적으로 이동할 수 있는 오브젝트들에 대해 수행될 수도 있다. 실제로, 동적 오브젝트들은 그들의 컴퓨팅 비용이 그들의 개수, 그들의 렌더링의 세부 사항들과 같은 인자들에 의존하기 때문에, 예측할 수 없는 컴퓨팅 비용을 가질 수도 있다. 반대로, 정적 오브젝트, 즉, 3D 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 오브젝트들은 컴퓨팅 리소스의 예측가능한 컴퓨팅 비용을 발생시키며, 또는 달리 말하면, 그들의 컴퓨팅 리소스 비용들이 미리 알려질 수 있다.
따라서, 단계 (120) 에서, 그 로케이션 상에서 허용가능한 오브젝트들의 최대 개수에 도달될 때 그리고 오브젝트들이 최대한의 사실성으로 적어도 인스턴스화될 때 주어진 로케이션에 대한 가장 비싼 컴퓨팅 비용에 이르게 된다. 그러므로, 최대 비용 상황 분석이 수행되며: 가상 세계의 각각의 로케이션이 그의 최대 CPU 비용 상황에서 분석된다.
다음으로, 단계 (130) 에서, 3D 장면의 각각의 로케이션의 최대 컴퓨팅 비용 밀도가 컴퓨팅된다. 이것은 유리하게는, 단계 (120) 에서 수행되는 모든 로케이션들에 대한 최악의 비용 상황들을 정량화하고 특징화하는 것이 가능하게 한다. 컴퓨팅하는 것은 단계 (120) 에서 채워진 각각의 로케이션에 대해 수행된다.
최대 컴퓨팅 비용 밀도는 로케이션의 유형 (면적, 체적) 에 따른, 단위 면적 당 또는 단위 체적 당 컴퓨팅 비용을 지칭할 수도 있다. 예를 들어, 그 로케이션이 면적이면, 최대 컴퓨팅 비용 밀도는 단위 면적 당 컴퓨팅 비용일 것이며; 또 다른 예로서, 그 로케이션이 체적이면, 최대 컴퓨팅 비용 밀도는 단위 체적 당 컴퓨팅 비용일 것이다. 최대 컴퓨팅 비용 밀도가 3D 오브젝트의 성질을 포함할 수도 있다는 것은 주목할 만하다. 이것은 최대 컴퓨팅 비용 밀도가 상기 단위 면적 또는 체적 상에서의 3D 오브젝트의 성질에 따라서 컴퓨팅될 수도 있다고 말하는 것과 마찬가지이다. 예를 들어, 동일한 면적에 있어, 최대 컴퓨팅 비용 밀도는 입방체들, 구들 등과 같은 기본적인 3D 오브젝트들, 또는 표면들, 메시들 등과 같은 복잡한 3D 오브젝트들이 시뮬레이션되는지 여부에 의존할 수도 있다.
실제로, 컴퓨팅하는 단계 (130) 는 비 P/A 를 컴퓨팅하는 것을 포함하며, 여기서, P 는 단계 (120) 를 참조하여 설명한 바와 같이, 그의 가장 비싼 컴퓨팅 비용에 이르는 로케이션을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이며, A 는 3차원 장면에서의 로케이션의 면적이다. 이의 대안으로, A 는 3차원 장면에서 로케이션의 체적일 수도 있다. P 는 통상적으로 본 방법을 구현하는 시스템의 프로세서, 또는 구역을 프로세싱하는 컴퓨팅 리소스의 컴퓨팅 리소스 비용이다.
다음으로, 도 4 를 참조하면, 도 2 를 참조하여 도시된 바와 같은 쇼핑몰에서의 선반들의 최대 컴퓨팅 비용 밀도의 컴퓨팅이 예시된다. 도 4 에서, 결정된 로케이션 (40) 은 동적 오브젝트들 (상품들) 이 배치되는 디스플레이 케이스 (30) 의 3개의 선반들 (31) 을 포함하는 체적이다. 비 P/A 의 컴퓨팅의 결과는 단위 체적 당 최대 컴퓨팅 비용, 예컨대 입방 미터 당 최대 컴퓨팅 비용이다.
이의 대안으로, 그리고 여전히 도 4 를 참조하면, 로케이션 (40) 의 비 P/A 의 컴퓨팅의 결과는 단위 면적 당, 예컨대 제곱 미터 당 최대 컴퓨팅 비용일 수도 있다. 로케이션 (40) 이 체적이기 때문에, 이 로케이션의 체적을 나타내는 면적이 컴퓨팅된다. 이 목표를 위해서, 프린트 (41) 가 체적 (40) 으로부터 추출된다: 이것은 체적 (40) 의 투영이 한 방향을 따르는 투영 평면 (예컨대, 몰의 지면 (42)) 상에서 수행된다, 즉, 투영이 3D 공간에서의 지점들을 2차원 투영 평면 상의 지점들에 선형적으로 맵핑함으로써 구성된다는 것을 의미한다. 프린트는 따라서 면적이다. 도 4 에서, 투영의 방향은 여기서 투영 평면 (42) 에 수직한 화살표 (43) 로 표현된다. 투영 평면은 이 예에서 통로 (33) 의 지면일 수도 있다. 프린트 (41) 는 따라서 투영 평면 (42) 상의 체적 (40) 의 투영의 결과이다.
통상적으로, 투영 평면은 각각의 로케이션이 이 평면 상에서 투영될 수 있도록 3D 장면을 가로질러서 연장하는 평면일 수도 있다. 이러한 투영 평면은 면적과 체적 로케이션들의 혼합이 단계 (110) 에서 결정되었을 때 최대 컴퓨팅 비용 밀도를 컴퓨팅하게 한다. 실제는, 모든 로케이션들 (면적 또는 체적) 이 투영 평면 상에 투영된다. 도 4 의 예에서, 3D 장면은 쇼핑몰이며, 여기서 쇼핑몰의 지면은 평면이다. 이 경우, 지면은 로케이션을 결정하기 위한 평면으로서 작용한다: 몰의 통로들과 같은 면적 로케이션들은 쇼핑몰의 지면 상에서 바로 식별되며, 선반들과 같은 체적 로케이션들의 프린트들은 쇼핑몰의 지면 상에서 컴퓨팅된다.
컴퓨팅하는 단계 (130) 는 최대 컴퓨터 리소스 비용 상황들에서 통상적인 로케이션들의 선택의 작고 균일한 면적들의 컴퓨팅 리소스 성능을 측정하기 위해 시뮬레이션을 만족시키는 기본적이지만 중요한 시나리오들의 여러 묶음들 (batches) 을 실시간으로 실행함으로써 수행될 수도 있다.
그 후, 도 1 의 단계 (132) 에서, 3D 장면의 각각의 로케이션의 컴퓨팅된 최대 컴퓨팅 비용 밀도를 집합시키는 단계가 수행된다. 집합시키는 것은 각각의 로케이션의 컴퓨팅된 최대 컴퓨팅 비용 밀도의 결과들이 함께 결합되는 (또는, 수집되는) 것을 의미한다.
다음으로, 도 1 의 단계 (134) 에서, 3D 장면의 비용 밀도의 맵이 그 집합된 최대 컴퓨팅 비용 밀도들로부터 구축된다. 용어 비용 밀도의 맵은 컴퓨팅된 최대 컴퓨팅 비용 밀도들의 표현을 나타낸다. 이 표현은 3D 장면과 중첩될 수도 있는 2D 평면, 예를 들어 3D 장면의 평면도에 대해 통상적으로 행해진다. 다른 용어들에서, 비용 밀도의 맵은 3D 장면에 대응하는 최대 컴퓨팅 비용 밀도들의 표현이다.
흥미롭게도, 비용 밀도의 맵은 로케이션들이 투영될 수도 있는 하나의 투영 평면과 동일한 평면 상에 구축될 수도 있다. 이 방법에 의해, 로케이션들과 컴퓨팅된 최대 컴퓨팅 비용 밀도들 간의 대응이 더욱 용이하게 유지된다. 더욱이, 이것은 유리하게는, 3D 장면의 맵이 투영 평면 상에의 로케이션들의 투영들의 결과로서 사전 구축되기 때문에, 집합시키는 단계 및 구축하는 단계 (132, 134) 를 더 용이하게 한다.
일단 비용 밀도의 맵이 구축되었으면, 사용자가 얼마의 3D 장면의 면적이 얼마만큼의 컴퓨팅 리소스의 양을 필요로 하는지를 볼 수 있도록, 디스플레이될 수도 있다. 이 목표를 위해, 맵은 3D 장면의 로케이션의 컴퓨팅된 최대 컴퓨팅 비용 밀도들을 나타내는 그래픽 정보를 제공할 수도 있다. 예를 들어, 칼라 스케일이 최대 비용 밀도를 나타내는데 사용될 수도 있다.
다음으로, 도 5 를 참조하면, 도 2 상에 나타낸 3D 장면 (쇼핑몰) 의 비용 밀도의 맵의 일 예가 도시된다. 이 비용 밀도의 맵은 컴퓨팅하는 단계, 집합시키는 단계, 및 구축하는 단계 (130, 132, 및 134) 의 결과로서 획득된다. 도 5 에 나타낸 비용 밀도 맵은 3D 장면, 예컨대 도 2 의 3D 장면과 중첩될 수 있는 평면이다. 도 5 에서, 비용 밀도 맵은 비용 밀도 Ki 다각형들 (i 는 자연수임) 의 집합으로 이루어지며, 각각의 다각형 Ki 는 비용 밀도가 컴퓨팅된 로케이션을 나타낸다. 예를 들어, 다각형들 K8 은 동적 오브젝트들 (선반들 상에 배치된 상품들) 의 로케이션들에 거의 대응한다. 또 다른 예로서, 다각형들 K1 은 고객들 및 그들의 카트들이 이동할 수 있는 몰의 면적들에 대응한다.
흥미롭게도, 그 집합된 최대 컴퓨팅 비용 밀도들로부터 형성된 맵은 3D 장면을 가로질러서 연장하는 평면일 수도 있으며, 그 결과 3D 에서의 각각의 로케이션이 이 평면 상에 투영된다. 이러한 단일 투영 평면은 면적들과 체적들 로케이션들의 혼합이 단계 (110) 에서 결정되었을 때 최대 컴퓨팅 비용 밀도를 컴퓨팅하게 한다.
도 1 에 도시된 프로세스의 이 단계에서, 3D 장면의 비용 밀도의 맵은 단계들 (120 내지 134) 의 결과로서 구축되었다. 이하 단계들 (140-142) 에서, 3D 장면의 제약들의 맵으로 지칭되는 제 2 맵이 컴퓨팅된다. 비용 밀도의 맵 및 제약들의 맵의 구축은 순차적으로 수행되거나, 또는 병렬로 수행될 수도 있다. 맵들 양자에 있어, 하나 이상의 오브젝트들을 포함하는 3D 장면을 제공하는 것 (단계 100) 그리고 3D 장면에서 로케이션들의 세트를 결정하는 것 (단계 110) 만이 요구된다. 옵션적으로, 3D 장면 상에서 플레이되는 시나리오가 제공될 수도 있다. 시나리오는 3D 장면과 유사한 방법으로 제공될 수도 있다.
단계 (140) 에서, 3D 장면의 각각의 로케이션에 대해, 상기 각각의 로케이션 상에 위치된 정적 오브젝트들이 추출된다. 앞에서 알 수 있는 바와 같이, 정적 오브젝트는 3D 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 오브젝트이다. 용어, 추출은 3D 장면의 정적 오브젝트들을 식별하기 위해 3D 장면 상에서 컴퓨팅이 수행된다는 것을 의미한다. 따라서, 정적 오브젝트들의 추출은 정적 오브젝트들의 식별과 마찬가지이다. 정적 오브젝트의 식별은 설계될 때 가상 세계의 지식으로부터 발생할 수도 있다.
다음으로, 단계 (142) 에서, 3D 장면의 제약들의 맵이 단계 (140) 에서의 추출된 정적 오브젝트들로부터 구축된다. 용어, 제약들의 맵은 정적 오브젝트들의 표현을 나타낸다. 이 표현은 3D 장면과 중첩될 수도 있는 2D 평면, 예를 들어 3D 장면의 평면도로 통상적으로 행해진다.
제약들의 맵의 목적은 단계 (160) 에서 그룹화될 구역들에 대해 실제적인 규칙들의 그래픽 변환을 제공하는 것이다. 이들 실제적인 규칙들은 규칙들에 의존하는 잘 형상화된 (well shaped) 구역들을 제공하도록 의도된다. 예를 들어, 규칙들의 범위는 그 환경의 기하학적 구조에 관련될 수도 있지만 이에 한정되지 않는다: 실제로, 앞에서 볼 수 있는 바와 같이, 3D 장면은 특정의 시나리오들의 목적을 위해 변경될 수 있는 레이아웃을 포함하는 것으로 고려될 수도 있으며, 레이아웃은 3D 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 정적 오브젝트들로 이루어질 수도 있다. 또한, 다른 규칙들은 물리학, 엔지니어링 등에 대한, 환경의 기하학적 구조와는 다른 고려사항들을 관리할 수 있다.
비용 밀도의 맵에 대해 말하자면, 제약들의 맵은 통상적으로 3D 장면과 중첩될 수도 있는 2D 평면, 예컨대 도 2 의 3D 장면의 평면도이다. 정적 오브젝트들이 3D 오브젝트들이기 때문에, 추출하는 단계는 3D 장면의 각각의 로케이션 상에서의 각각의 정적 오브젝트의 프린트의 추출을 더 포함할 수도 있다. 도 4 를 참조하여 앞에서 설명한 바와 같이, 오브젝트의 프린트를 추출하는 것은 3D 공간에서의 지점들로부터 2차원 투영 평면 상의 지점들에 맵핑하는 것이 수행되도록 오브젝트의 투영이 투영 평면 상에서 투영의 방향을 따라서 수행된다고 말하는 것과 마찬가지이다.
제약들의 맵은 로케이션들이 투영될 수도 있는 하나의 투영 평면과 동일한 평면 상에서 구축될 수도 있다. 이 방법에 의해, 로케이션들과 추출된 정적 오브젝트들 간의 대응이 더 용이하게 유지된다. 일단 비용 밀도의 맵이 구축되었으면, 사용자가 3D 장면의 특정의 면적에 관한 제약들을 볼 수 있도록 디스플레이될 수도 있다.
다음으로, 도 6 을 참조하면, 도 2 상에 나타낸 3D 장면 (쇼핑몰) 의 제약들의 맵의 일 예가 도시된다. 이 제약들의 맵은 추출하는 단계 및 구축하는 단계 (140 및 142) 의 결과로서 획득된다. 여러 정적 오브젝트들은 예를 들어 도 4 상에 예시된 바와 같이, 그것들의 프린트들을 추출함으로써, 3D 장면으로부터 추출되었다. 예를 들어, 디스플레이 케이스들 (30) 의 여러 지지물들 (66) 이 추출되었다. 각각의 지지물 (66) 는 임의의 다른 오브젝트들에 의해 횡단될 수 없는 정적 오브젝트이다. 3D 장면으로부터 추출된 정적 오브젝트들의 또 다른 예로서, 쇼핑몰의 지붕을 지지하는 파일들 (piles; 62), 몰의 상점들을 분리하는 파티션 벽 (64) 이 있다.
흥미롭게도, 지지물들 (66) 에 부착된 선반들 (31) 은 또한 정적 오브젝트들이다; 이들은 3D 장면에서 이동할 수 없고 임의의 다른 오브젝트들에 의해 횡단될 수 없다. 그러나, 이들은 제약들의 맵을 구축할 때 추출되지 않는다. 실제로, 하나 이상의 동적 오브젝트들은 도 3 또는 도 4 상에 나타낸 바와 같이, 선반들 상에 잠재적으로 로케이트될 수도 있으며, 그리고 선반들의 프린트들이 추출될 때, 즉, 선반들 (36) 의 투영이 투영 평면 (여기서는, 지면 (42)) 상에 행해질 때, 선반들에 대해서 유사하게 수행되는 잠재적인 하나 이상의 동적 오브젝트들의 투영이 적어도 부분적으로, 선반들의 프린트를 리커버 (recover) 할 수도 있다. 그리고, 하나 이상의 동적 오브젝트들의 프린트가 적어도 부분적으로 정적 오브젝트의 프린트를 리커버할 가능성이 있기 때문에, 선반들은 제약들의 맵을 구축할 때 유지되지 않는다. 이에 반해, 어떤 동적 오브젝트도 위에 배치되지 않는 지지물들 (66) 의 프린트들은 유지된다.
제약들의 맵은 3D 장면을 가로질러 확장하는 평면일 수도 있으며, 그 결과 3D 장면에서의 각각의 로케이션이 이 평면 상에 투영될 수도 있다. 이러한 단일 투영 면적들과 체적들 로케이션들 간의 혼합이 단계 (110) 에서 결정되었을 때 정적 오브젝트들을 추출가능하게 한다.
도 1 로 되돌아가서, 일단 비용 밀도 및 제약들의 맵들이 구축되었으면, 맵들 양자는 단계 (150) 에서 집합될 수도 있다. 맵들을 집합시키는 것은 맵들이 병합된다는 것을 의미한다. 2개의 맵들의 집합은 2개의 맵들을 중첩함으로써 실행될 수도 있다. 특히, 이 동작은 맵들의 양자가 동일한 스케일을 가질 때 더욱 용이하게 수행될 수도 있다. 용어 스케일은 3D 장면 상의 대응하는 거리에 대한 맵 상의 거리의 비를 지칭하는 것으로 이해되어야 한다.
다음으로, 단계 (160) 에서, 하나 이상의 구역들로의 인접한 로케이션들의 그룹화가 수행된다. 로케이션들은 인접한다, 즉, 각각의 로케이션은 구역의 또 다른 로케이션과의 적어도 하나의 공통 지점 또는 하나의 공통 경계를 갖는다. 이의 대안으로, 그룹화하는 단계는 인접한 로케이션들의 부분들이 하나 이상의 구역들로 그룹화되는 것을 수반할 수도 있다. 단계 (160) 은 따라서 가상 환경을 하나 이상의 구역들로 분할하는 것으로 이루어진다. 예를 들어, 도 5 를 참조하면, 각각의 다각형 K8 은 로케이션을 나타내며 적어도 하나의 에지를 또 다른 다각형 K1 과 공유한다. 점선들로 나타낸 구역 (52) 은 인접한 로케이션들의 부분을 포함한다.
각각의 구역은 구역의 실시간 성능을 보증하는 최종 컴퓨팅 최대 비용 밀도를 갖는다. 이것은 본 방법을 실행하는 컴퓨터화된 시스템의 프로세싱 유닛이 그 구역에 실시간 성능을 보증하는 컴퓨팅 리소스를 제공할 수 있다는 것을 의미한다. 용어 실시간 성능은 엄격한 시간 제약들 내에서 보증 응답이 제공된다는 것을 의미한다.
각각의 구역의 최종 컴퓨팅 비용 밀도는, 구역을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이 미리 정의된 임계치 아래 정도이도록 그룹화가 수행된다. 구역의 최종 컴퓨팅 비용 밀도는 그의 면적을 곱한 각각의 로케이션의 최대 비용 밀도의 총합이다. 달리 말하면, 각각의 로케이션의 최대 컴퓨팅 비용은 그의 면적을 그의 최대 비용 밀도로 곱함으로써 컴퓨팅되며, 각각의 로케이션에 대해 획득되는 결과들이 합산된다. 미리 정의된 임계치는 본 방법을 실행하는 컴퓨터화된 시스템의 프로세싱 유닛의 퍼센티지, 또는 구역의 컴퓨팅 리소스 비용일 수도 있다. 특히, 구역들은 최소의 구역으로 불리는 구역을 형성하도록 생성될 수도 있으며, 여기서, 최소의 구역은 3D 장면의 최대 비용 상황에서, 그의 CPU 비용이 그의 연관되는 프로세싱 리소스의 100% 와 지각할 수 있게 동일한 구역이다. 바람직하게는, 예를 들어, 제약들을 적응시키는 형태 조정 때문에, CPU 비용은 100% 미만이다.
또한, 하나 이상의 구역들에의 로케이션의 그룹화는 2개 이상의 구역들 간의 최종 컴퓨팅 비용 밀도가 지각할 수 있게 동일하도록 수행될 수도 있다. 이것은 유리하게는, 구역들 간의 CPU 의 프로세싱 리소스들의 공유를 더 용이하게 하는데 기여한다. 특히, 컴퓨터화된 시스템이 구역들의 컴퓨팅 리소스들을 제공하는 2개 이상의 CPU 들 를 포함할 때, CPU 들 사이의 부하가 더욱 용이하게 공유된다.
더욱이, 그룹화는 각각의 구역에 의해 과거에 이루어진 컴퓨팅 리소스의 사용을 고려함으로써 추가로 수행될 수도 있다. 실제로, 3D 장면은 컴퓨팅 리소스들에 의해 영구적으로 실행되거나 프로세싱되며, 그 결과, 새로운 동적 및 정적 오브젝트들이 연속적으로 추가되거나, 변경되거나, 또는 억제될 수도 있다. 따라서, 바람직하게는, 3D 장면을 분할하는 본 방법은 3D 장면의 변경들이 고려될 수도 있도록 규칙적으로 수행될 수도 있다. 예를 들어, 이 방법은 미리 결정된 시간 기간이 경과한 후 다시 수행될 수도 있다. 이의 대안으로, 3D 장면을 분할하는 본 방법은 그 3D 장면의 하나 이상의 변경들이 수행된 후 다시 수행될 수도 있다. 본 발명의 방법이 여러 번 수행되었기 때문에, 각각의 구역의 컴퓨팅 리소스들의 과거 사용들을 파악하고, 따라서 그 구역에 할당된 컴퓨팅 리소스의 단지 작은 부분을 사용하는 구역을 식별하는 것이 가능하다. 실제는, 구역을 구역의 최종 컴퓨팅 비용 밀도에 따라서 프로세싱하는데 할당된 컴퓨팅 리소스가 낮아진다. 이것은 미리 정의된 임계치를 낮춤으로써 수행될 수도 있다.
그룹화는 사용자 액션 시, 예컨대 3D 장면의 로케이션들이 상부에 나타내어지는 디스플레이와의 상호작용에 의해 수행될 수도 있다. 이 목표를 위해, 그래픽 편집 툴이 도 7 상에 나타낸 바와 같이, 디스플레이를 통해서 사용자에게 제공될 수도 있다; 디스플레이는 구역 파티션 에디터의 뷰를 제약들의 맵과, 그리고 비용 밀도의 맵과 중첩시킴으로써 생성된다. 구역 (46) 의 형태를 편집하고 도시할 때, 사용자는 구역의 최종 CPU 비용 (여기서는, 75%) 에 관한 업데이트를 연속적으로 수신한다. 구역의 도시는 구역 파티션 에디터 상에서의 면적의 선택을 수행하는 것과 마찬가지이며, 선택은 사용자에 의해 키보드, 마우스, 스타일러스와 같은 햅틱 디바이스를 통해서, 또는 예컨대 터치감지 스크린인 디스플레이로 직접 수행될 수도 있다. 예를 들어, 2-버튼 마우스에서, 좌측 버튼은 커서 (44) 를 움직여서 면적을 선택하는데 사용될 수도 있다.
또한, 사용자는 구역의 정의 지점들을 앵커하도록 지원받을 수도 있다: 사용자의 도시는 제약들의 맵으로부터 추출된 규칙들에 기초하여 조종되거나 또는 억제될 수 있다. 도 2 상에 나타낸 쇼핑몰 케이스에 있어, 이러한 지원은 구역 세그먼트들을 벽들과 일치시키거나, 또는 가장 가까운 선반에 수직하게 유지하도록 할 것이다.
사용자는 예를 들어, 다음의 구역들을 편집하는 하나 이상의 규칙들에 의해 추가로 지원을 받을 수도 있지만, 이에 한정되지 않는다:
. 구역은 컴퓨터화된 시스템의 프로세싱 유닛의 100% 이상을 필요로 하는 컴퓨팅 비용을 수반하는 최종 컴퓨팅 비용 밀도를 가질 수 없다;
. 구역은 덩어리질 수 없다;
. 구역은 크로스 가능한 경계들과의 이웃 구역들의 최소 가능한 개수를 갖는다;
. 구역은 이웃 구역들과의 크로스 가능한 경계들의 최소의 길이를 갖는다;
. 구역은 가능한 한 가장 컴팩트한 형태를 갖는다.
그룹화는 또한 본 방법을 실행하는 시스템에 의한 컴퓨팅 시에 자동적으로 수행될 수도 있다. 이것은 컴퓨팅 리소스의 CPU 전력의 가능한 한 100% 에 가까운 구역들로의 가상 환경의 가능한 파티션을 자동적으로 발생시킬 수 있는 최적화 프로그램을 사용하여 수행될 수도 있다.
본 발명의 바람직한 실시형태가 설명되었다. 여러 변경들이 본 발명의 정신 및 범위로부터 일탈함이 없이 이루어질 수도 있는 것으로 이해되어야 한다. 따라서, 다른 구현예들은 다음 청구항들의 범위 내이다.

Claims (13)

  1. 3차원 장면을, 각각의 구역이 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로 분할하는 컴퓨터 구현 방법으로서,
    - 하나 이상의 오브젝트들을 포함하는 3차원 장면을 제공하는 단계 (100) 로서, 각각의 오브젝트는 컴퓨팅 리소스 비용을 발생시키는, 상기 3차원 장면을 제공하는 단계;
    - 상기 3차원 장면에서 로케이션들의 세트를 결정하는 단계 (110);
    - 각각의 로케이션을, 가장 비싼 컴퓨팅 비용에 이르는, 로케이션의 오브젝트들의 최대 점유율로 채우는 단계 (120);
    - 상기 3차원 장면의 각각의 로케이션에 대해, 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계 (130) 로서, 상기 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계는 비 P/A 를 컴퓨팅하는 단계를 포함하며, 여기서, P 는 상기 3차원 장면의 상기 각각의 로케이션의 주어진 로케이션을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이며, A 는 상기 3차원 장면에서의 상기 주어진 로케이션의 면적 또는 체적인, 상기 최대 컴퓨팅 비용 밀도를 컴퓨팅하는 단계 (130); 및
    - 인접한 로케이션들을 하나 이상의 구역들로 그룹화하는 단계 (160) 로서, 각각의 구역은 상기 구역의 실시간 성능을 보증하는 최종 컴퓨팅 비용 밀도를 갖는, 상기 그룹화하는 단계를 포함하는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    - 상기 3차원 장면의 상기 로케이션들에 대해 컴퓨팅된 상기 최대 컴퓨팅 비용 밀도들을 집합시키는 단계 (132); 및
    - 집합된 상기 최대 컴퓨팅 비용 밀도들로부터 상기 3차원 장면의 비용 밀도의 맵을 구축하는 단계 (134) 를 더 포함하는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  3. 제 1 항에 있어서,
    상기 각각의 로케이션을 그 오브젝트들의 최대 점유율로 채우는 단계는 동적 오브젝트들에 대해 수행되며, 동적 오브젝트는 상기 3차원 장면에서 잠재적으로 이동할 수 있는 오브젝트인, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    - 상기 3차원 장면의 각각의 로케이션에 대해 상기 각각의 로케이션 상에 로케이트된 정적 오브젝트들을 추출하는 단계 (140) 로서, 정적 오브젝트는 상기 3차원 장면에서 이동할 수 없고 또 다른 오브젝트에 의해 횡단될 수 없는 오브젝트인, 상기 정적 오브젝트들을 추출하는 단계; 및
    - 추출된 상기 정적 오브젝트들로부터 상기 3차원 장면의 제약들의 맵을 구축하는 단계 (142) 를 더 포함하는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 정적 오브젝트들을 추출하는 단계는,
    - 상기 3차원 장면의 각각의 로케이션에 대해 상기 3차원 장면의 상기 각각의 로케이션 상에서 상기 정적 오브젝트들의 프린트를 추출하는 단계를 더 포함하는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  6. 제 4 항에 있어서,
    - 상기 3차원 장면의 비용 밀도 및 상기 3차원 장면의 제약들의 맵들을 집합시키는 단계 (150) 를 더 포함하는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 그룹화하는 단계에서, 각각의 구역의 상기 최종 컴퓨팅 비용 밀도는, 상기 구역을 프로세싱하는데 필요한 컴퓨팅 리소스 비용이 미리 정의된 임계치 미만이도록 하는 컴퓨팅 비용 밀도인, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  8. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 그룹화하는 단계에서, 2개 이상의 구역들 간의 상기 최종 컴퓨팅 비용 밀도는 지각할 수 있게 동일한, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  9. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 그룹화하는 단계는 각각의 구역에 의해 과거에 이루어진 상기 컴퓨팅 리소스의 사용을 고려하여 추가로 수행되는, 3차원 장면을 복수의 구역들로 분할하는 컴퓨터 구현 방법.
  10. 컴퓨터에 의한 실행을 위한 명령들을 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은 제 1 항 내지 제 3 항 중 어느 한 항에 기재된 방법의 단계들을 수행하도록 구성되는, 컴퓨터 판독가능 저장 매체.
  11. - 하나 이상의 오브젝트들을 포함하는 3차원 장면을 저장하는 저장 시스템; 및
    - 3차원 장면을 분할하는 복수의 구역들을 프로세싱하는 프로세싱 유닛으로서, 각각의 구역은 상기 프로세싱 유닛의 컴퓨팅 리소스에 의해 프로세싱되며, 상기 프로세싱 유닛은 제 1 항 내지 제 3 항 중 어느 한 항에 기재된 방법에 따라 상기 3차원 장면을 복수의 구역들로 분할하도록 구성되는, 상기 프로세싱 유닛을 포함하는, 컴퓨터화된 시스템.
  12. 삭제
  13. 삭제
KR1020130160506A 2012-12-21 2013-12-20 3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할 KR102040991B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP12306654.0 2012-12-21
EP12306654.0A EP2745892B1 (en) 2012-12-21 2012-12-21 Partition of a 3D scene into a plurality of zones processed by a computing resource

Publications (2)

Publication Number Publication Date
KR20140081739A KR20140081739A (ko) 2014-07-01
KR102040991B1 true KR102040991B1 (ko) 2019-11-05

Family

ID=47559235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130160506A KR102040991B1 (ko) 2012-12-21 2013-12-20 3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할

Country Status (6)

Country Link
US (1) US9454842B2 (ko)
EP (1) EP2745892B1 (ko)
JP (1) JP6359826B2 (ko)
KR (1) KR102040991B1 (ko)
CN (1) CN103971416B (ko)
CA (1) CA2837983C (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3201884B1 (en) 2014-09-30 2020-09-30 CAE Inc. Updating damaged-enhanced 3d polygon meshes
US10726619B2 (en) * 2015-10-29 2020-07-28 Sony Interactive Entertainment Inc. Foveated geometry tessellation
CN106683154B (zh) * 2015-11-04 2020-04-14 南京地心坐标信息科技有限公司 一种基于几何中心的三维模型动态调度方法
US11351468B2 (en) 2016-06-13 2022-06-07 Sony Interactive Entertainment LLC Generating challenges using a location based game play companion application
EP3301572B1 (en) * 2016-09-30 2023-05-24 Dassault Systèmes Method, program and system for simulating a 3d scene with a set of computing resources running in parallel
EP3340181A1 (en) 2016-12-21 2018-06-27 Dassault Systèmes Automatic partitioning of a 3d scene into a plurality of zones processed by a computing resource
CN106991013B (zh) * 2017-04-18 2018-09-07 腾讯科技(深圳)有限公司 一种对资源请求进行处理的方法及装置
KR102126561B1 (ko) * 2018-07-23 2020-06-24 주식회사 쓰리아이 적응적 삼차원 공간 생성방법 및 그 시스템
CN109603155B (zh) * 2018-11-29 2019-12-27 网易(杭州)网络有限公司 合并贴图的获取方法、装置、存储介质、处理器及终端
JP2020177074A (ja) * 2019-04-16 2020-10-29 株式会社デンソー 車両用装置、車両用装置の制御方法
CN111651369B (zh) * 2020-08-05 2020-12-22 浙江欣奕华智能科技有限公司 一种对智能设备进行仿真测试的方法和装置及设备
CN112363839B (zh) * 2020-11-23 2024-03-15 腾讯科技(深圳)有限公司 一种资源请求处理方法、装置及服务器

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US20030167220A1 (en) 1997-09-23 2003-09-04 Schoen Matthew B. Computer apparatus and method for illustrating, issuing, and managing disability coverage for retirement plans with individual accounts
US20070047469A1 (en) 2005-08-24 2007-03-01 Jean-Philippe Vasseur Efficient constrained shortest path first optimization technique
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US20080104609A1 (en) * 2006-10-26 2008-05-01 D Amora Bruce D System and method for load balancing distributed simulations in virtual environments
US20100087257A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Assisted navigation in virtual environments
US20100113159A1 (en) * 2008-11-06 2010-05-06 International Business Machines Corporation Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
WO2011046607A2 (en) 2009-10-14 2011-04-21 Thomson Licensing Filtering and edge encoding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5686887A (en) * 1994-12-07 1997-11-11 Schoeferisch Aeusserung Anstalt Electronic locating device
US6767287B1 (en) * 2000-03-16 2004-07-27 Sony Computer Entertainment America Inc. Computer system and method for implementing a virtual reality environment for a multi-player game
KR100469826B1 (ko) * 2004-02-05 2005-02-03 엔에이치엔(주) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템
US8127235B2 (en) * 2007-11-30 2012-02-28 International Business Machines Corporation Automatic increasing of capacity of a virtual space in a virtual world
EP2321730B1 (en) * 2008-07-25 2018-04-11 Qualcomm Incorporated Performance analysis during visual creation of graphics images
CA2730298A1 (en) * 2008-07-25 2010-01-28 Qualcomm Incorporated Partitioning-based performance analysis for graphics imaging
CN102109353B (zh) * 2009-12-24 2013-01-02 比亚迪股份有限公司 一种实现三维导航的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864342A (en) 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US20030167220A1 (en) 1997-09-23 2003-09-04 Schoen Matthew B. Computer apparatus and method for illustrating, issuing, and managing disability coverage for retirement plans with individual accounts
US20070047469A1 (en) 2005-08-24 2007-03-01 Jean-Philippe Vasseur Efficient constrained shortest path first optimization technique
US20070094325A1 (en) * 2005-10-21 2007-04-26 Nucleoid Corp. Hybrid peer-to-peer data communication and management
US20080104609A1 (en) * 2006-10-26 2008-05-01 D Amora Bruce D System and method for load balancing distributed simulations in virtual environments
US20100087257A1 (en) * 2008-10-03 2010-04-08 Microsoft Corporation Assisted navigation in virtual environments
US20100113159A1 (en) * 2008-11-06 2010-05-06 International Business Machines Corporation Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
WO2011046607A2 (en) 2009-10-14 2011-04-21 Thomson Licensing Filtering and edge encoding

Also Published As

Publication number Publication date
JP2014123368A (ja) 2014-07-03
EP2745892A1 (en) 2014-06-25
EP2745892B1 (en) 2018-12-12
CN103971416A (zh) 2014-08-06
KR20140081739A (ko) 2014-07-01
CA2837983A1 (en) 2014-06-21
CN103971416B (zh) 2018-09-04
JP6359826B2 (ja) 2018-07-18
US9454842B2 (en) 2016-09-27
CA2837983C (en) 2020-07-07
US20140176552A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
KR102040991B1 (ko) 3d 장면을 컴퓨팅 리소스에 의해 프로세싱되는 복수의 구역들로의 분할
US11087052B2 (en) Automatic partitioning of a 3D scene into a plurality of zones processed by a computing resource
JP6386225B2 (ja) 複数のゾーンに分割された3dシーン内におけるオブジェクトの物理的な挙動のシミュレーション
JP7071810B2 (ja) 並列に動作する演算リソースの集合を用いて3dシーンをシミュレートするための方法、プログラム、及びシステム
US11782500B2 (en) System, method and apparatus of simulating physics in a virtual environment
KR102077394B1 (ko) 도면 중첩식 가상 공간 설계 방법 및 시스템
Latif et al. Research Article A Critical Evaluation of Procedural Content Generation Approaches for Digital Twins

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