KR100587974B1 - 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 - Google Patents

3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 Download PDF

Info

Publication number
KR100587974B1
KR100587974B1 KR1020040107199A KR20040107199A KR100587974B1 KR 100587974 B1 KR100587974 B1 KR 100587974B1 KR 1020040107199 A KR1020040107199 A KR 1020040107199A KR 20040107199 A KR20040107199 A KR 20040107199A KR 100587974 B1 KR100587974 B1 KR 100587974B1
Authority
KR
South Korea
Prior art keywords
block
animation
information
data
texture
Prior art date
Application number
KR1020040107199A
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 한국전자통신연구원
Priority to KR1020040107199A priority Critical patent/KR100587974B1/ko
Application granted granted Critical
Publication of KR100587974B1 publication Critical patent/KR100587974B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Geometry (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Remote Sensing (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 및 블록형 게임 데이터 구조를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 3차원 게임 엔진에서 최적화된 성능을 보장하면서 다른 게임 엔진과의 호환성 및 데이터의 확장성을 고려한 데이터 포맷(블록형 게임 데이터 구조)을 제공할 수 있는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 및 상기 블록형 게임 데이터 구조를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 게임 엔진에 사용되는 데이터의 포맷을 구축 방법에 있어서, 게임 엔진에 사용되는 모든 종류의 데이터를 블록(Block) 형식으로 저장하되, 상기 블록을 데이터의 특성에 따라, 블록의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block)과; 모델(Model)의 텍스처(Texture), 머티리얼(Material), 본(Bone), 메쉬(Mesh)의 정보와, 월드 스페이스(World Space)의 라이트(Light) 및 카메라(Camera) 정보를 저장하는 지오메트리 블록(Geometry Block)과; 모델의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block)과; 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block)으로 나누며, 모든 블록은 내부적으로 동일한 구조를 갖고 저장한 데이터의 종류에 따라 블록간의 계층구조를 이루며, 각 블록의 접근, 추가, 삭제, 수정을 포함하는 블록의 관리는 전체 블록의 구조에서 제일 앞 부분에 위치하는 인덱스 블록을 통해서 이루어지도록 하는 것을 특징으로 한다.
4. 발명의 중요한 용도
본 발명은 콘텐츠의 패킷나 기능 업그레이드 및 데이터 에디터 등과 같은 툴에 이용됨.
3차원 데이터 포맷, 게임 엔진, 지오메트리, 애니메이션, 3D 모델

Description

3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법{Construction method of specialized data format for 3D game engine}
도 1 은 본 발명이 적용되는 3D 모델 데이터 제공 시스템의 구성 예시도,
도 2 는 본 발명의 실시예에 따라 블록형 게임 데이터 구조를 나타낸 설명도,
도 3 은 본 발명의 실시예에 따라 블록형 게임 데이터 사이의 계층 구조를 보여주는 설명도이다.
도 4 는 본 발명의 실시예에 따라 블록형 3D 게임 데이터 구조를 나타낸 상세 설명도,
도 5a 및 5b 는 본 발명의 실시예에 따라 블록형 3D 게임 데이터 구조 중 지오메트리 블록(Geometry Block)의 Mesh Block 데이터 구조를 나타낸 상세 설명도이다.
* 도면의 주요 부분에 대한 부호 설명
10 : 3D 모델링 툴 20 : 블록 형태의 3차원 모델 변환 툴
30 : 게임 엔진
본 발명은 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법에 관한 것으로, 3차원 게임 엔진에서 최적화된 성능을 보장하면서 다른 게임 엔진과의 호환성 및 데이터의 확장성을 고려한 데이터 포맷(블록형 게임 데이터 구조)을 제공할 수 있는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 및 상기 블록형 게임 데이터 구조를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
3차원 게임 엔진으로 게임 콘텐츠를 제작하는데 있어서, 가장 핵심 요소라 할 수 있는 것은 공통의 3차원 게임 데이터의 포맷을 정의하는 것일 것이다. 하지만, 현재까지는 이러한 공통의 데이터 포맷이 정의되어 있지 않은 실정이다.
종래의 3차원 데이터 포맷으로는 엠펙(MPEG)에서 채택한 VRML(Virtual Reality Modeling Language), X3D(Extensible 3D), XMT(Extensible MPEG-4 Textual Format), MPEG4/BIFS(Moving Pictures Experts Group/Binary Format for Scenes) 등이 존재하지만, 이 포맷들은 이미 ISO MPEG 표준화 기구를 통해서 공개된 기술이고, 3차원 게임 엔진에서 최적의 성능을 내기 위한 특화된 포맷이 아닌 WEB 기반 및 다른 플랫폼(platform) 간의 범용성에 중점을 둔 포맷들이다.
현재, 게임 산업에서는 다양한 종류의 게임 콘텐츠을 만들기 위해서 게임마다 콘텐츠의 특징에 맞게 최적화되어 있는 게임 엔진을 사용하고 있으며, 이들 엔 진들 사이에는 지원되는 기능 및 성능의 차이로 인해 사용되고 있는 데이터 포맷도 모두 다르다. 따라서, 한 게임 엔진에서 사용하는 3차원 데이터를 다른 게임 엔진 적용시키기 위해서는 항상 데이터 변환 작업을 거쳐야만 한다.
통상적으로, 게임 엔진의 데이터로 쓰이는 모델(Model)들은 디자이너들에 의해서 3D Max나 Maya와 같은 3차원 모델링 툴(Modeling Tool)에서 생성된 후 게임 엔진에 최적화된 데이터로 사용되기 위해 모델 엑스포터(Model Exporter)에서 포맷 변환 단계를 거치게 된다.
기존 MPEG에서 채택한 여러 파일 포맷에서는 모델(Model) 데이터를 노드(Node) 형태로 저장한 후 장면 그래프(Scene Graph)를 이용해서 데이터를 관리하고 있다. 하지만, 여러 종류의 게임 엔진에 공통적으로 데이터를 적용하기 위해서는 장면 그래프(Scene Graph)를 파싱(Parsing)하는 단계를 항상 거쳐야 하고, 입력 모델(Input Model)의 구조에 따라 복잡해지는 장면 그래프(Scene Graph)의 구성도만으로는 다양한 게임 엔진들의 최적화된 성능을 이끌어 내기에는 여러 가지 후처리 단계를 다시 거쳐야만 한다.
정리해보면, 대부분의 3차원 콘텐츠 개발 과정에서는 다자이너가 생성한 모델(Model)을 게임 데이터로 변환할 때 그 콘텐츠에 최적화된 게임 엔진에 사용하기 위해서 다른 게임 엔진과의 호환성을 고려하지 않은 사용자 정의 데이터 포맷을 사용한다. 또한, MPEG에서 채택한 VRML과 같은 데이터 포맷이나 기존에 JAVA를 기반으로 범용성에 중점을 둔 데이터 포맷들은 장면 그래프(Scene Graph)와 같이 후처리 단계가 필요한 데이터 구조를 채택하고 있어서, 3차원 게임 엔진에 최적화시키 기에는 개발자들이 따로 파싱(Parsing) 단계를 추가해야 하는 등 전체적으로 콘텐츠 개발 과정이 오래걸리고 기존 데이터의 재사용이 용이하지가 않다.
따라서, 3차원 게임 엔진을 사용하는 게임 산업 분야 및 3차원 모델을 이용해서 장면을 연출하는 애니메이션 산업에서는, 3차원 게임 엔진에서 최적화된 성능을 보장하면서 다른 종류의 게임 엔진에서도 특별한 변환 작업없이 사용 가능하도록 할 수 있는 방안이 절실히 요구된다. 물론, 게임 엔진의 성능이 점차적으로 발전하면서 추가되는 새로운 데이터나 삭제되는 옛날 데이터의 관리 및 확장성도 함께 고려되어야 할 대상이다.
본 발명은 상기 요구에 부응하기 위하여 제안된 것으로, 3차원 게임 엔진에서 최적화된 성능을 보장하면서 다른 게임 엔진과의 호환성 및 데이터의 확장성을 고려한 데이터 포맷(블록형 게임 데이터 구조)을 제공할 수 있는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 및 상기 블록형 게임 데이터 구조를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명은, 게임 엔진에 사용되는 데이터의 포맷을 구축 방법에 있어서, 게임 엔진에 사용되는 모든 종류의 데이터를 블록(Block) 형식으로 저장하되, 상기 블록을 데이터의 특성에 따라, 블록의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block)과; 모델(Model)의 텍스처(Texture), 머티리얼(Material), 본(Bone), 메쉬(Mesh)의 정보와, 월드 스페이스(World Space)의 라이트(Light) 및 카메라(Camera) 정보를 저장하는 지오메트리 블록(Geometry Block)과; 모델의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block)과; 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block)으로 나누며, 모든 블록은 내부적으로 동일한 구조를 갖고 저장한 데이터의 종류에 따라 블록간의 계층구조를 이루며, 각 블록의 접근, 추가, 삭제, 수정을 포함하는 블록의 관리는 전체 블록의 구조에서 제일 앞 부분에 위치하는 인덱스 블록을 통해서 이루어지도록 하는 것을 특징으로 한다.
한편, 본 발명은 프로세서를 프로세서를 구비한 데이터베이스 관리 장치에, 게임 엔진에 사용되는 모든 종류의 데이터가 블록(Block) 형식으로 관리되되, 상기 블록(Block)은, 데이터의 특성에 따라, 블록의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block) 구조; 모델(Model)의 텍스처, 머티리얼(Material), 본(Bone), 메쉬(Mesh)의 정보와, 월드 스페이스(World Space)의 라이트(Light) 및 카메라(Camera) 정보를 저장하는 지오메트리 블록(Geometry Block) 구조; 및
모델의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block) 및 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block) 구조를 가지며, 상기 지오메트리 블록(Geometry Block) 구조는, 메쉬(Mesh)에 사용되는 텍스처(Texture) 정보를 저장하고 있는 텍스처 블록(Texture Block) 구조; 메쉬의 머티리얼 컬러(Material Color) 값들을 머티리얼의 개수만큼 리스트로 저장하고 있는 머티리얼 블록(Material Block) 구조; 메쉬에 붙어있는 본(Bone) 정보를 저장하고 있는 본 블록(Bone Block) 구조; 월드 스페이스(World Space)에 라이트(Light)를 셋팅하는데 필요한 정보를 라이트의 개수만큼 리스트로 저장하고 있는 라이트 블록(Light Block) 구조; 메쉬에 위치시킬 월드 스페이스(World Space)에서 카메라(Camera)의 셋팅 정보를 저장하고 있는 카메라 블록(Camera Block) 구조; 및 모델의 지오메트리(Geometry) 정보를 "Geometric Header", "Associated Animation", "Vertex Format", "Geometric Header by Material ID", "Geometry"로 분류해서 저장하고 있는 메쉬 블록(Mesh Block) 구조를 가지며, 상기 애니메이션 블록(Animation Block) 구조는, 애니메이션의 전체 정보를 나타내는 애니메이션 블록 헤더(Animation Block Header) 구조; 매 키 프레임(Key Frame)마다 트랜스폼 애니메이션(Transform Animation)에 필요한 트랜스레이션(Translation), 로테이션(Rotation), 스케일(Scale)의 좌표와 시간 정보를 저장하고 있는 트랜스폼 애니메이션 블록(Transform Animation Block) 구조; 매 키 프레임마다 버텍스 애니메이션(Vertex Animation)에 필요한 월드 스페이스(World Space)에서 이동할 정점의 인덱스(Index), 같은 버텍스 인덱스를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 이동 좌표 정보를 저장하고 있는 버텍스 애니메이션 블록(Vertex Animation Block) 구조; 매 키 프레임마다 텍스처 애니메이션(Texture Animation)에 필요한 버텍스 인덱스, 텍스처의 개수, 같은 텍스처 좌표를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 텍스처의 좌표 정보를 저장하고 있는 텍스처 애니메이션 블록(Texture Animation Block) 구조; 매 키 프레임마다 멀티텍스처 애니메이션(Multi-Texture Animation)에 필요한 시간 및 텍스처의 인덱스와 파일 이름 정보를 저장하고 있는 멀티텍스처 애니메이션 블록(Multi-texture Animation Block) 구조; 및 매 키 프레임마다 본 애니메이션(Bone Animaiton)에 필요한 베이스 본(Base Bone)의 인덱스와 트랜스폼 매트릭스(Transform Matrix) 정보를 저장하고 있는 본 애니메이션 블록(Bone Animation Block) 구조를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에서는 3차원 게임 엔진으로 게임 콘텐츠를 제작하는데 있어서 가장 핵심 요소라 할 수 있은 3차원 게임 데이터의 포맷을 정의하고자 한다.
본 발명에서 정의하는 게임 데이터 포맷은, 통상적으로 널리 쓰이는 3차원 모델링 툴(Modeling Tool)로부터 게임 데이터로 적용할 모델(Model)의 지오메트리(Geometry) 및 애니메이션(Animation) 정보를 추출한 후 게임 엔진에 특화된 포맷으로 하나의 파일에 저장하는 것이 핵심이다.
다양한 종류의 게임 엔진에서 최적화된 성능을 유지하면서 호환성 있는 게임 데이터를 사용하기 위해서는 하나의 표준화된 데이터 포맷은 필수이고, 본 발명에서는 블록(Block) 형태의 파일 구조로 이 문제를 해결하고 있다.
본 발명의 블록(Block) 형태의 파일 구조에서는, 게임 데이터의 유형에 따라 연관성있는 데이터들끼리 분리한 후, Block이라는 정형화된 포맷안에 인덱스(Index)와 블록 헤더(Block Header)를 포함시켜 하나의 파일에 저장한다. 이때, 모든 블록(Block)의 앞부분에 저장되는 블록 헤더(Block Header)는 일관된 포맷으로 정의되어 있기 때문에 데이터 종류에 상관없이 파일내에서 필요한 블록(Block)의 접근, 추가 및 삭제 등 데이터 확장성이 뛰어나다. 특히, 표준화된 블록(Block) 포맷으로 다양한 게임 엔진에 데이터의 재사용이 가능하기 때문에 새로운 게임 콘텐츠 개발마다 반복되었던 게임 데이터의 재생성이나 변환 작업을 피할 수 있다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1 은 본 발명이 적용되는 3D 모델 데이터 제공 시스템의 구성 예시도이다.
게임 엔진(30)의 데이터로 쓰이는 모델(Model)들은 디자이너들에 의해서 3D "Max"나 "Maya"와 같은 3차원 모델링 툴(Modeling Tool)(10)에서 생성된 후 게임 엔진(30)에 최적화된 데이터로 사용되기 위해 모델 엑스포터(Model Exporter)(20)에서 포맷 변환 단계를 거치게 된다.
여기서, 본 발명은 모델 엑스포터(Model Exporter)(차별화를 위하여 본 발명에서는 '블록 형태의 3차원 모델 제공 툴'이라 명명함)(20)에서 3차원 게임 엔진(30-1)에서 최적화된 성능을 보장하면서 다른 게임 엔진(30-N)과의 호환성 및 데이터의 확장성을 고려한 데이터 포맷(블록형 게임 데이터 구조)을 제공한다.
블록 형태의 3차원 모델 제공 툴(20)에서 제공되는 '블록형 게임 데이터 구조'는, 3차원 게임 엔진(30-1)에서 최적화된 성능을 보장하면서 다른 종류의 게임 엔진(30-N)에서도 특별한 변환 작업없이 사용 가능(즉, 장면 그래프(Scene Graph)의 사용이나 파싱(Parsing) 단계없이 다양한 게임 엔진(30)에 바로 적용 가능)하고, 게임 엔진(30)의 성능이 점차적으로 발전하면서 추가되는 새로운 데이터나 삭제되는 옛날 데이터의 관리 및 확장성도 함께 고려하고 있다.
디자이너가 생성한 게임 Model을 블록 형태의 3차원 모델 제공 툴(Model Exporter)(20)에서 게임 엔진(30)에 특화된 데이터로 변환할 때 정의되는 '블록화된 3차원 게임 데이터 구조'는, 게임 모델을 게임 엔진(30)에 특화된 데이터로 변환하기 위해서 크게 지오메트리(Geometry)와 애니메이션(Animation) 데이터로 추출한 후 데이터의 특성에 따라 블록(Block)화된 구조로 동일한 파일에 저장한다.
그럼, 이하에서는 '블록형 게임 데이터 구조'를 보다 상세하게 살펴보기로 한다.
'블록형 게임 데이터 구조'의 전체 구성은 도 2와 같고, 게임 데이터의 유형에 따라 연관성있는 데이터들(지오메트리(Geometry), 애니메이션(Animation))끼리 분리한 후, Block이라는 정형화된 포맷안에 인덱스(Index)와 블록 헤더(Block Header)를 포함시켜 하나의 파일에 저장한다.
'블록형 게임 데이터 구조'의 전체 구성을 보다 상세하게 살펴보면 도 4와 같다.
도 4에 도시된 바와 같이, 블록(Block)의 종류는 데이터의 특성에 따라 Block의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block), 모델(Model)의 "Texture", "Material", "Bone", "Mesh" 등의 정보와 월드 스페이스(World Space)의 "Light" 및 "Camera" 정보를 저장하는 지오메트리 블록(Geometry Block), Model의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block) 및 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block)으로 나누어진다.
모든 블록(Block)은 내부적으로 동일한 기본 구조를 가지며, 저장한 데이터의 종류에 따라서 블록 간의 계층 구조를 이룬다. 각 블록(Block)의 접근, 추가, 삭제, 수정 등의 블록 관리는 전체 블록의 구조에서 제일 앞 부분에 위치하는 인덱스 블록(Index Block)을 통해서 이루어진다.
'블록형 게임 데이터 구조'에서 쓰이는 기본 데이터 타잎은 하기의 [표 1]과 같다.
Figure 112004059447669-pat00001
그리고, 블록(Block)의 기본 포맷은 하기의 [표 2]와 같다.
Figure 112004059447669-pat00002
상기 [표 2]를 살펴보면, 블록(Block)의 기본 구조는 블록의 위치, ID, 이름, 데이터의 종류 및 크기 등 기본 정보를 포함하고 있는 '헤더(Header) 부분'과, 실제 모델(Model) 데이터를 저장하는 '데이터(Data) 부분'으로 나누어진다.
여기서, 헤더(Header) 부분에는 파일내에서 블록(Block)의 관리 및 접근을 위해 필요한 정보와 저장된 데이터(Data)의 기본 정보를 나타내는 부분으로 이루어져 있다. 이 중에서 "Index", "ID", "Name", "Version"은 블록(Block)의 파일내 관리를 위한 정보이고, "Parent_Index", "Child_Count", "Depth"는 Block의 계층 구조를 나타내기 위한 정보이다.
상기 [표 2]에서, "ID" 및 "Name"은 파일이 사용되는 영역안에서 고유한 값 을 갖는다. 또한, "Data_Size"는 저장된 데이터의 크기를 나타내는데, 전체 크기를 4-byte(32-bit)의 배수로 하기 위해 하기 [수학식 1]의 계산을 통하여 DWORD 정렬(align)된 크기를 계산한다.
Data_Size = (Block_Size + 3) & -4
또는,
#define ALING_(X, N)
((X) + (N) - 1) & (-N)
Data_Size = ALIGN_(Block_Size, 4)
저장된 데이터에서 DWORD 정렬(align) 이후의 1~3 byte는 "0x00"으로 채운다.
또한, 블록(Block)의 계층 구조에서 블록을 빠르게 접근하기 위해서 사용되는 해쉬(Hash) 값은 32-bit 체크섬(checksum) 혹은 MD5 등의 해쉬(Hash) 알고리즘을 사용한다. 이때, 사용하지 않을 시에는 "0x00000000" 값을 디폴트(Default)로 사용한다.
또한, 사용자 지정 데이터(User Defined Data) 부분에는 사용자가 정의한 추가 데이터가 일반 데이터와 같이 DWORD 단위로 저장된다.
블록(Block)형 데이터 포맷에서, 각 블록(Block)은 내부적으로는 독자적인 자료 구조를 가지고 있지만, 파일내에서는 계층 구조로 저장된다. 계층 구조는 도 3에서와 같이 "Depth First 알로리즘"을 사용하여 배열(Array) 형태로 저장된다. 블록(Block) 간의 계층 구조를 통해서 하위 블록의 정보는 상위 블록의 정보만으로 미리 해석할 수 있고, 블록(Block)의 관리 및 접근을 보다 더 빠르게 실행할 수 있다.
그럼, '블록형 게임 데이터 구조'에서 블록 데이터(Block Data)의 종류를 보다 상세하게 살펴보기로 한다.
블록(Block)에 저장되는 데이터의 종류는 모델 데이터(Model Data)의 종류에 따라 "인덱스 블록(Index Block) 데이터"(하기의 [표 3] 참조), "지오메트리 블록(Geometry Block) 데이터"(하기의 [표 4] ~ [표 8], 도 5a 및 5b 참조), "애니메이션 블록(Animation Block) 데이터"(하기의 [표 9] ~ [표 14] 참조), "옵션 블록(Optional Block) 데이터"로 나뉘어진다.
먼저, "인덱스 블록(Index Block)"에 저장되는 데이터 포맷은 하기의 [표 3]과 같다.
Figure 112004059447669-pat00003
상기 [표 3]을 살펴보면, 인덱스 블록(Index Block)의 데이터에는 파일내 위치하는 모든 종류의 블록(Block)의 개수, ID, 위치 정보를 저장하고 있다. 필요한 블록에 접근할 때에는 먼저 인덱스 블록(Index Block)에 접근한 후 해당 블록의 인덱스를 인덱스 테이블(Index Table) 값에서 읽어오면 파일내에서 특별한 블록 탐색(Block Search) 작업없이 곧장 접근이 가능하다.
이와 같이 인덱스 블록(Index Block)은 항상 파일의 제일 앞 부분에 위치해서, 인덱스 블록(Index Block) 자체를 파일 내에서 탐색(Search)하는 과정을 피할 수 있다.
한편, 지오메트리 블록(Geometry Block) 데이터로는 "Texture Block 데이터 "(하기의 [표 4] 참조), "Material Block 데이터"(하기의 [표 5] 참조), "Bone Block 데이터"(하기의 [표 6] 참조), "Light Block 데이터"(하기의 [표 7] 참조), "Camera Block 데이터"(하기의 [표 8] 참조), "Mesh Block 데이터"(하기의 도 5a 및 5b 참조) 등이 있다. 각 블록에 저장되는 데이터 포맷을 보다 구체적으로 살펴보면 다음과 같다.
먼저, "Texture Block"에 저장되는 데이터 포맷은 하기의 [표 4]와 같다.
Figure 112004059447669-pat00004
상기 [표 4]를 살펴보면, 텍스처 블록(Texture Block)의 데이터에는 메쉬(Mesh)에 사용되는 텍스처(Texture) 정보를 저장하고 있는데, 텍스처 정보는 내부적으로 텍스처의 종류, 크기, 데이터를 저장하거나 외부 텍스처 파일의 지원을 위해서 텍스처 파일의 이름 또는 위치를 저장하는 경우로 나뉘어서 저장하며, 텍스처의 개수만큼 리스트(List) 형태로 저장된다.
텍스처(Texture)의 종류로는 None: "_NON", Diffuse: "_DIF", Ambient: "_AMB", Specular: "_SPE", Emissive: "_EMI", Bump: "_BUM", Environment: "_ENV", Vertex Shader: "_VSH", Pixel Shader: "_TSH", Optional: "_OPT" 등이 존재한다.
한편, "Material Block"에 저장되는 데이터 포맷은 하기의 [표 5]와 같다.
Figure 112004059447669-pat00005
상기 [표 5]를 살펴보면, 머티리얼 블록(Material Block)의 데이터에는 메쉬(Mesh)의 머티리얼 컬러(Material Color) 값들을 머티리얼(Material)의 개수만큼 리스트(List)로 저장하고 있다. 각 머티리얼(Material)에서 사용되는 텍스처(Texture)는 텍스처 블록(Texture Block)에서 참조할 수 있는 인덱스 리스트(Index List)로 저장된다.
다른 한편, "Bone Block"에 저장되는 데이터 포맷은 하기의 [표 6]과 같다.
Figure 112004059447669-pat00006
상기 [표 6]을 살펴보면, 본 블록(Bone Block)의 데이터에는 메쉬(Mesh)에 붙어있는 본(Bone) 정보를 저장하고 있다. 3D Max와 같이 3D 모델링 툴(Modeling Tool)에서는 "Biped Bone"과 같은 미리 정형화된 본(Bone) 구조체를 많이 사용하기 때문에, 본 블록(Bone Block)에서는 본(Bone) 집합체와 본(Bone) 집합체 안에서 사용되는 베이스 본(Base Bone)의 정보를 따로 저장한다. 본(Bone) 집합체를 이루는 각 베이스 본(Base Bone)에는 본(Bone)의 구조를 나타내기 위해서 "Name", "ID", "Parent_ID" 정보가 저장되고, 본 애니메이션(Bone Animation)을 위한 데이터로는 "Transform_Matrix" 정보가 저장된다.
또 다른 한편, "Light Block"에 저장되는 데이터 포맷은 하기의 [표 7]과 같다.
Figure 112004059447669-pat00007
상기 [표 7]을 살펴보면, 라이트 블록(Light Block)의 데이터에는 월드 스페이스(World Space)에 라이트(Light)를 셋팅하는데 필요한 정보를 라이트(Light)의 개수만큼 리스트로 저장하고 있다.
또 다른 한편, "Camera Block"에 저장되는 데이터 포맷은 하기의 [표 8]과 같다.
Figure 112004059447669-pat00008
상기 [표 8]을 살펴보면, 카메라 블록(Camera Block)의 데이터에는 메쉬(Mesh)에 위치시킬 월드 스페이스(World Space)에서 카메라(Camera)의 셋팅 정보를 저장하고 있다. 이 중에서 "FOV_y"는 카메라(Camera)의 y축 방향의 "Field of View" 각도를 라디안(Radian)으로 저장하고 있다.
또 다른 한편, "Mesh Block"에 저장되는 데이터 포맷은 도 5a 및 5b에 도시된 바와 같다.
도 5a 및 5b에 도시된 바와 같이, 메쉬 블록(Mesh Block)의 데이터에는 모델(Model)의 지오메트리(Geometry) 정보를 크게 "Geometric Header", "Associated Animation", "Vertex Format", "Geometric Header by Material ID", "Geometry"로 분류해서 저장하고 있다.
여기서, "Geometric Header" 정보에는 메쉬(Mesh)의 이름(Mesh_Name), Vertex 및 Face의 개수(Vertex_Count, Face_Count), 현재 메쉬(Mesh)의 계층 구조에서의 깊이(Node-Depth) 등 메쉬(Mesh)의 전체적인 지오메트리(Geometry) 정보를 저장하고 있다.
또한, "Associated Animation" 정보에는 현재 이 메쉬(Mesh)에 적용된 애니메이션(Animation)의 개수 및 인덱스 블록(Index Block)에서 위치 정보를 알아낼 때 필요한 애니메이션 인덱스(Animation Index) 값 등을 저장하고 있다.
또한, "Vertex Format" 정보에는 메쉬(Mesh)를 구성하는 버텍스(Vertex)의 데이터 형식에 포함되는 정보를 저장하고 있다. 여기서, FVF(Flexible Vertex Format) 값에 따라서 각 버텍스(Vertex)마다 "Geometry Position", "Normal Position", "Vertex Color", "Texture Coordinate" 값을 포함하게 된다.
또한, "Geometric Header by Material ID" 정보에는 페이스(Face)의 Material ID 값에 따라 버텍스(Vertex) 및 페이스 리스트(Face List)를 재정리한 정보를 저장하고 있다. 이 정보는 버텍스(Vertex)의 머티리얼(Material) 값에 따라 그래픽 파이프라인(Graphic Pipeline)의 성능에 영향을 미치는 MS DirectX 기반 게임 엔진의 성능을 최적화하는데 효율적으로 쓰일 수 있다.
또한, "Geometry" 정보에는 버텍스(Vertex) 및 페이스 리스트(Face List), 모델(Model)의 바운딩 박스(Bounding Box) 정보, 스키닝 애니메이션(Skinning Animation)에 적용하는 본 링크(Bone Link) 정보를 저장하고 있다.
이제, 하기의 [표 9] 내지 [표 14]를 참조하여, 애니메이션 블록(Animation Block) 데이터에 대해 보다 상세하게 살펴보기로 한다.
애니메이션 블록(Animation Block) 데이터는 모델(Model)에 적용되는 애니메이션(Animation)의 종류에 따라 "Animation Block Header 데이터"(하기의 [표 9] 참조), "Transform Animation Block 데이터"(하기의 [표 10] 참조), "Vertex Animation Block 데이터"(하기의 [표 11] 참조), "Texture Animation Block 데이터"(하기의 [표 12] 참조), "Multi-Texture Animation Block 데이터"(하기의 [표 13] 참조), "Bone Animation Block 데이터"(하기의 [표 12] 참조) 등으로 구분된다. 각 블록에 저장되는 데이터 포맷을 보다 구체적으로 살펴보면 다음과 같다.
먼저, "Animation Block Header"에 저장되는 데이터 포맷은 하기의 [표 9]와 같다.
Figure 112004059447669-pat00009
모든 애니메이션 블록(Animation Block)에는 상기 [표 9]와 같은 애니메이션의 전체적인 정보를 나타내는 헤더(Header) 정보를 애니메이션 블록(Animation Block)의 시작 부분에 저장하고 있다.
한 개의 애니메이션(Animation)에 여러 개의 애니메이션 블록(Animation Block)이 존재할 수 있기 때문에 각 애니메이션 블록(Animation Block)은 애니메이 션(Animation) 넘버와 이름 정보를 저장하고 있다. 즉, 같은 애니메이션 넘버와 이름을 가지고 있으면, 한 캐릭터 애니메이션(Character Animation)에 속하는 블록(Block)이 된다. 따라서, 애니메이션 넘버는 저장되는 애니메이션의 순서에 따라 부여되며, 동일한 이름을 가지고 있는 블록(Block)에는 동일한 애니메이션 넘버가 주어진다.
한편, "Transform Animation Block"에 저장되는 데이터 포맷은 하기의 [표 10]과 같다.
Figure 112004059447669-pat00010
상기 [표 10]을 살펴보면, 트랜스폼 애니메이션 블록(Transform Animation Block)의 데이터에는 매 키 프레임(Key Frame)마다 트랜스폼 애니메이션(Transform Animation)에 필요한 "Translation", "Rotation", "Scale"의 좌표와 시간 정보를 저장하고 있다.
다른 한편, "Vertex Animation Block"에 저장되는 데이터 포맷은 하기의 [표 11]과 같다.
Figure 112004059447669-pat00011
상기 [표 11]을 참조하면, 버텍스 애니메이션 블록(Vertex Animation Block)의 데이터에는 매 키 프레임(Key Frame)마다 버텍스 애니메이션(Vertex Animation)에 필요한 월드 스페이스(World Space)에서 이동할 정점의 인덱스(Index), 같은 버텍스 인덱스(Vertex Index)를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 이동 좌표 정보를 저장하고 있다.
또 다른 한편, "Texture Animation Block"에 저장되는 데이터 포맷은 하기의 [표 12]와 같다.
Figure 112004059447669-pat00012
상기 [표 12]를 살펴보면, 텍스처 애니메이션 블록(Texture Animation Block)의 데이터에는 매 키 프레임(Key Frame)마다 텍스처 애니메이션(Texture Animation)에 필요한 버텍스 인덱스(Vertex Index), 텍스처(Texture)의 개수, 같은 텍스처(Texture) 좌표를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 텍스처(Texture)의 u, v 좌표 정보를 저장하고 있다.
또 다른 한편, "Multi-Texture Animation Block"에 저장되는 데이터 포맷은 하기의 [표 13]과 같다.
Figure 112004059447669-pat00013
상기 [표 13]을 살펴하면, 멀티텍스처 애니메이션 블록(Multi-texture Animation Block)의 데이터에는 매 키 프레임(Key Frame)마다 멀티텍스처 애니메이션(Multi-Texture Animation)에 필요한 시간 및 텍스처(Texture)의 인덱스(Index)와 파일 이름 정보를 저장하고 있다. 여기서, "Tex_ID"는 상기 텍스처 블록(Texture Block) 데이터(상기 [표 4] 참조)에 저장된 텍스처(Texture)의 인덱스(Index) 값을 가르킨다.
또 다른 한편, "Bone Animation Block"에 저장되는 데이터 포맷은 하기의 [표 14]와 같다.
Figure 112004059447669-pat00014
상기 [표 14]를 살펴보면, 본 애니메이션 블록(Bone Animation Block)의 데이터에는 매 키 프레임(Key Frame)마다 본 애니메이션(Bone Animaiton)에 필요한 베이스 본(Base Bone)의 인덱스(Index)와 트랜스폼 매트릭스(Transform Matrix) 정보를 저장하고 있다.
마지막으로, "User Defined Block 데이터"를 살펴보기로 한다.
사용자 지정 블록(User Defined Block)의 데이터에는 사용자가 필요에 의해 상기에서 정의한 인덱스 블록(Index Block) 데이터, 지오메트리 블록(Geometry Block) 데이터, 애니메이션 블록(Animation Block) 데이터 포맷 이외의 정보를 추가적으로 저장할 수 있다. 데이터 포맷은 기본적으로 상기 [표 2]에서 정의한 기본 구조를 따르며, 데이터(Data) 부분에 사용자가 원하는 데이터를 저장한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 게임 엔진을 이용해서 콘텐츠를 제작하는데 있어 성능의 최적화를 유지하면서 데이터의 호환성 및 관리의 효율성을 크게 향상시킬 수 있는 효과가 있다.
본 발명에 따르면, 새로운 콘텐츠를 개발하는데 있어서 동일한 데이터를 다양한 게임 엔진에 특별한 변화 작업없이 재사용이 가능하고, 최적화된 엔진 성능 역시 보장 받을 수 있고, 기존에 사용하던 데이터도 본 발명이 제공하는 데이터 포맷으로 한 번만 변환해서 사용하면 여러 콘텐츠에 재사용이 가능하며, 콘텐츠 개발에 필요한 시간과 인력을 크게 절약할 수 있는 효과가 있다.
특히, 본 발명에서 제공하는 데이터 포맷은 특정 데이터의 접근, 추가, 삭제, 수정 등의 관리가 용이하기 때문에 추후 콘텐츠의 패치(Patch)나 기능 업그레이드(Upgrade) 및 데이터 편집기(Editor)와 같은 툴(Tool)을 제작하는데도 사용할 수 있는 효과가 있다.

Claims (4)

  1. 게임 엔진에 사용되는 데이터의 포맷을 구축 방법에 있어서,
    게임 엔진에 사용되는 모든 종류의 데이터를 블록(Block) 형식으로 저장하되,
    상기 블록을 데이터의 특성에 따라, 블록의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block)과; 모델(Model)의 텍스처(Texture), 머티리얼(Material), 본(Bone), 메쉬(Mesh)의 정보와, 월드 스페이스(World Space)의 라이트(Light) 및 카메라(Camera) 정보를 저장하는 지오메트리 블록(Geometry Block)과; 모델의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block)과; 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block)으로 나누며,
    모든 블록은 내부적으로 동일한 구조를 갖고 저장한 데이터의 종류에 따라 블록간의 계층구조를 이루며, 각 블록의 접근, 추가, 삭제, 수정을 포함하는 블록의 관리는 전체 블록의 구조에서 제일 앞 부분에 위치하는 인덱스 블록을 통해서 이루어지도록 하는 것을 특징으로 하는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법.
  2. 제 1 항에 있어서,
    상기 지오메트리 블록(Geometry Block)은,
    메쉬(Mesh)에 사용되는 텍스처(Texture) 정보를 저장하고 있는 텍스처 블록(Texture Block);
    메쉬의 머티리얼 컬러(Material Color) 값들을 머티리얼의 개수만큼 리스트로 저장하고 있는 머티리얼 블록(Material Block);
    메쉬에 붙어있는 본(Bone) 정보를 저장하고 있는 본 블록(Bone Block);
    월드 스페이스(World Space)에 라이트(Light)를 셋팅하는데 필요한 정보를 라이트의 개수만큼 리스트로 저장하고 있는 라이트 블록(Light Block);
    메쉬에 위치시킬 월드 스페이스(World Space)에서 카메라(Camera)의 셋팅 정보를 저장하고 있는 카메라 블록(Camera Block); 및
    모델의 지오메트리(Geometry) 정보를 "Geometric Header", "Associated Animation", "Vertex Format", "Geometric Header by Material ID", "Geometry"로 분류해서 저장하고 있는 메쉬 블록(Mesh Block)
    을 포함하는 것을 특징으로 하는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법.
  3. 제 1 항에 있어서,
    상기 애니메이션 블록(Animation Block)은,
    애니메이션의 전체 정보를 나타내는 애니메이션 블록 헤더(Animation Block Header);
    매 키 프레임(Key Frame)마다 트랜스폼 애니메이션(Transform Animation)에 필요한 트랜스레이션(Translation), 로테이션(Rotation), 스케일(Scale)의 좌표와 시간 정보를 저장하고 있는 트랜스폼 애니메이션 블록(Transform Animation Block);
    매 키 프레임마다 버텍스 애니메이션(Vertex Animation)에 필요한 월드 스페이스(World Space)에서 이동할 정점의 인덱스(Index), 같은 버텍스 인덱스를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 이동 좌표 정보를 저장하고 있는 버텍스 애니메이션 블록(Vertex Animation Block);
    매 키 프레임마다 텍스처 애니메이션(Texture Animation)에 필요한 버텍스 인덱스, 텍스처의 개수, 같은 텍스처 좌표를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 텍스처의 좌표 정보를 저장하고 있는 텍스처 애니메이션 블록(Texture Animation Block);
    매 키 프레임마다 멀티텍스처 애니메이션(Multi-Texture Animation)에 필요한 시간 및 텍스처의 인덱스와 파일 이름 정보를 저장하고 있는 멀티텍스처 애니메이션 블록(Multi-texture Animation Block); 및
    매 키 프레임마다 본 애니메이션(Bone Animaiton)에 필요한 베이스 본(Base Bone)의 인덱스와 트랜스폼 매트릭스(Transform Matrix) 정보를 저장하고 있는 본 애니메이션 블록(Bone Animation Block)
    을 포함하는 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법.
  4. 프로세서를 구비한 데이터베이스 관리 장치에,
    게임 엔진에 사용되는 모든 종류의 데이터가 블록(Block) 형식으로 관리되되,
    상기 블록(Block)은,
    데이터의 특성에 따라, 블록의 파일내 위치 정보를 저장하는 인덱스 블록(Index Block) 구조;
    모델(Model)의 텍스처, 머티리얼(Material), 본(Bone), 메쉬(Mesh)의 정보와, 월드 스페이스(World Space)의 라이트(Light) 및 카메라(Camera) 정보를 저장하는 지오메트리 블록(Geometry Block) 구조; 및
    모델의 애니메이션 정보를 저장하는 애니메이션 블록(Animation Block) 및 사용자가 정의한 추가적인 정보를 저장하는 옵션 블록(Optional Block) 구조를 가지며,
    상기 지오메트리 블록(Geometry Block) 구조는,
    메쉬(Mesh)에 사용되는 텍스처(Texture) 정보를 저장하고 있는 텍스처 블록(Texture Block) 구조;
    메쉬의 머티리얼 컬러(Material Color) 값들을 머티리얼의 개수만큼 리스트로 저장하고 있는 머티리얼 블록(Material Block) 구조;
    메쉬에 붙어있는 본(Bone) 정보를 저장하고 있는 본 블록(Bone Block) 구조;
    월드 스페이스(World Space)에 라이트(Light)를 셋팅하는데 필요한 정보를 라이트의 개수만큼 리스트로 저장하고 있는 라이트 블록(Light Block) 구조;
    메쉬에 위치시킬 월드 스페이스(World Space)에서 카메라(Camera)의 셋팅 정보를 저장하고 있는 카메라 블록(Camera Block) 구조; 및
    모델의 지오메트리(Geometry) 정보를 "Geometric Header", "Associated Animation", "Vertex Format", "Geometric Header by Material ID", "Geometry"로 분류해서 저장하고 있는 메쉬 블록(Mesh Block) 구조를 가지며,
    상기 애니메이션 블록(Animation Block) 구조는,
    애니메이션의 전체 정보를 나타내는 애니메이션 블록 헤더(Animation Block Header) 구조;
    매 키 프레임(Key Frame)마다 트랜스폼 애니메이션(Transform Animation)에 필요한 트랜스레이션(Translation), 로테이션(Rotation), 스케일(Scale)의 좌표와 시간 정보를 저장하고 있는 트랜스폼 애니메이션 블록(Transform Animation Block) 구조;
    매 키 프레임마다 버텍스 애니메이션(Vertex Animation)에 필요한 월드 스페이스(World Space)에서 이동할 정점의 인덱스(Index), 같은 버텍스 인덱스를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 이동 좌표 정보를 저장하고 있는 버텍스 애니메이션 블록(Vertex Animation Block) 구조;
    매 키 프레임마다 텍스처 애니메이션(Texture Animation)에 필요한 버텍스 인덱스, 텍스처의 개수, 같은 텍스처 좌표를 사용하는 이전 버텍스 인덱스(Vertex Index), 시간 및 텍스처의 좌표 정보를 저장하고 있는 텍스처 애니메이션 블록 (Texture Animation Block) 구조;
    매 키 프레임마다 멀티텍스처 애니메이션(Multi-Texture Animation)에 필요한 시간 및 텍스처의 인덱스와 파일 이름 정보를 저장하고 있는 멀티텍스처 애니메이션 블록(Multi-texture Animation Block) 구조; 및
    매 키 프레임마다 본 애니메이션(Bone Animaiton)에 필요한 베이스 본(Base Bone)의 인덱스와 트랜스폼 매트릭스(Transform Matrix) 정보를 저장하고 있는 본 애니메이션 블록(Bone Animation Block) 구조
    를 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020040107199A 2004-12-16 2004-12-16 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법 KR100587974B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040107199A KR100587974B1 (ko) 2004-12-16 2004-12-16 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040107199A KR100587974B1 (ko) 2004-12-16 2004-12-16 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법

Publications (1)

Publication Number Publication Date
KR100587974B1 true KR100587974B1 (ko) 2006-06-08

Family

ID=37182520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040107199A KR100587974B1 (ko) 2004-12-16 2004-12-16 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법

Country Status (1)

Country Link
KR (1) KR100587974B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108711182A (zh) * 2018-05-03 2018-10-26 广州爱九游信息技术有限公司 渲染处理方法、装置及移动终端设备
CN113744412A (zh) * 2021-08-16 2021-12-03 长沙眸瑞网络科技有限公司 一种处理3d模型数据的方法及装置
CN113781658A (zh) * 2021-08-16 2021-12-10 长沙眸瑞网络科技有限公司 一种流式处理3d模型数据的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055971A1 (en) 2000-01-31 2001-08-02 Ivast, Inc. Textual format for animation in multimedia systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001055971A1 (en) 2000-01-31 2001-08-02 Ivast, Inc. Textual format for animation in multimedia systems

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108711182A (zh) * 2018-05-03 2018-10-26 广州爱九游信息技术有限公司 渲染处理方法、装置及移动终端设备
CN113744412A (zh) * 2021-08-16 2021-12-03 长沙眸瑞网络科技有限公司 一种处理3d模型数据的方法及装置
CN113781658A (zh) * 2021-08-16 2021-12-10 长沙眸瑞网络科技有限公司 一种流式处理3d模型数据的方法及装置
CN113781658B (zh) * 2021-08-16 2024-05-14 长沙眸瑞网络科技有限公司 一种流式处理3d模型数据的方法及装置

Similar Documents

Publication Publication Date Title
CN108710739B (zh) 一种建筑信息模型轻量化和三维场景可视化的方法及系统
KR100928192B1 (ko) 내장형 디바이스에서의 3d 콘텐츠에 대한 오프라인 최적화파이프라인
RU2360275C2 (ru) Уровень интеграции сред
US7337030B2 (en) Automated derivative view rendering system
CN108897567B (zh) 基于Unity的软件加载文件的方法、装置、设备及存储介质
KR101814811B1 (ko) 3d 모델링된 객체의 워터마킹
KR100503789B1 (ko) 렌더링시스템, 렌더링방법 및 그 기록매체
US20070171222A1 (en) Application-independent method for capturing three-dimensional model data and structure for viewing and manipulation
AU2009305105A1 (en) System and method for hybrid solid and surface modeling for computer-aided design environments
CN110135070A (zh) 一种bim模型创建的方法及装置
CN107818594A (zh) 三维模型文件格式系统及读取方法
WO2021109688A1 (zh) 光照探针生成方法、装置、存储介质和计算机设备
US8274520B2 (en) Facilitating caching in an image-processing system
CN108415697B (zh) 一种可视化组件的配置方法及装置
CN114969586A (zh) 基于web端的bim图形引擎加载方法及装置
CN106709985A (zh) 一种虚拟祭祀三维场景的生成方法及装置
KR100587974B1 (ko) 3차원 게임 엔진에 특화된 공통 데이터 포맷 구축 방법
CN110992460B (zh) 用于移动设备的模型流畅展示方法、系统、装置及存储介质
CN117077256A (zh) 从rvt格式到b3d格式的转换方法及其插件和系统
Adão Ontology-based procedural modelling of traversable buildings composed by arbitrary shapes
CN115359208A (zh) 一种适合于运维管理的bim数据轻量化存储方法
CN112604293A (zh) 数据处理方法、装置、电子设备及可读介质
JP5010000B2 (ja) シーングラフ中のパラメータのアクセス性および制御のための方法およびシステム
KR101005322B1 (ko) 3차원 그래픽 모델과 애니메이션의 포맷을 구성하는 방법
Di Benedetto et al. SpiderGL: a graphics library for 3D web applications

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150527

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160601

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180515

Year of fee payment: 13