[geg1] 2.the game asset pipeline

30
Game Engine Gems 1 Chap 2. The Game Asset Pipeline ohyecloudy homepage http://ohyecloudy.com twitter @ohyecloudy shader café http://cafe.naver.com/shader 2011.06.13

Upload: -

Post on 27-Jun-2015

1.733 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: [GEG1] 2.the game asset pipeline

Game Engine Gems 1 Chap 2. The Game Asset Pipeline

ohyecloudy homepage http://ohyecloudy.com

twitter @ohyecloudy

shader café http://cafe.naver.com/shader

2011.06.13

Page 2: [GEG1] 2.the game asset pipeline

1GB가 큰건가?

요즘 게임은 다 우습게 1GB는 넘긴다

여기서 대부분은 game asset

갈수록 커지는 asset 관리가 문제

아티스트가 하얗게 불태울 수 있는 효율적인 pipeline 필수

플랫폼에 맞는 최적화는 필수

Page 3: [GEG1] 2.the game asset pipeline

Asset 가공 pipeline을 살펴본다

COLLADA를 살짝 소개

intermediate asset format으로 제격

Page 4: [GEG1] 2.the game asset pipeline

Asset pipeline overview

Asset pipeline design

Push or pull pipeline model

COLLADA

Conclusion

Page 5: [GEG1] 2.the game asset pipeline

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Exporters

Build Platform A

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Build Platform B

Fast Path

Build Path

Source Assets

Intermediate Assets

Final Assets

Page 6: [GEG1] 2.the game asset pipeline

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Exporters

Build Platform A

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Build Platform B

Fast Path

Build Path

Source Assets

Intermediate Assets

Final Assets

빌드 프로세스 타겟 플랫폼에 맞는 최적화된 asset을 만드는 과정

효율적인 개발을 위해 자동은 기본

종속성 정보가 부재 없다면 하나 바뀌어도 전체 빌드 빌드 프로세스 최적화 이슈 source asset을 만드는 사람이 직접 기술하거나 따로 시스템을 만들어야 한다

Page 7: [GEG1] 2.the game asset pipeline

Exporters

Build Platform A

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Build Platform B

Fast Path

Build Path

Intermediate Assets

Final Assets

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Source Assets

아티스트와 디자이너가 만드는 asset DCCDigital Content Creation tools source asset을 만드는 툴을 부르는 용어

final asset을 만드는 모든 정보가 있어야 함 source asset만 빼고 다 지워도 final asset을 만들 수 있어야 한다

Page 8: [GEG1] 2.the game asset pipeline

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Exporters

Build Platform A

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Build Platform B

Build Path

Source Assets

Final Assets

Intermediate Assets Intermediate Assets DCC로 만들고 난 뒤 타겟 플랫폼에 최적화된 asset을 만들기 전

읽기, 파싱, 확장이 쉬워야 함 바이너리는 엿먹는다 문제점 추적 및 임시 변경 테스트가 용이 plain text나 XML을 추천

Fast Path

Page 9: [GEG1] 2.the game asset pipeline

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Exporters

Build Platform A

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Build Platform B

Build Path

Source Assets

Final Assets

Fast Path

Fast Path 게임 엔진으로 로드할 수 있음 전체 빌드 프로세스를 거치지 않고

효율성 향상에 핵심 아티스트에게 빠른 이터레이션 제공

Intermediate Assets

Page 10: [GEG1] 2.the game asset pipeline

3D tool + plug-ins

Image tool + plug-ins

Model Animations

Textures

Exporters

Interm. Models

Interm. Anims

Interm. Textures

Exporters

Fast Path

Source Assets

Intermediate Assets

Build Platform A

Build Platform B

Build Path

Final Assets

타겟 플랫폼에 맞게 최적화되고 묶인 asset 대부분 binary 파일 파싱에 드는 CPU 시간을 줄이기 위해

Page 11: [GEG1] 2.the game asset pipeline

Asset pipeline overview

Asset pipeline design

Push or pull pipeline model

COLLADA

Conclusion

Page 12: [GEG1] 2.the game asset pipeline

게임 엔진 에디터 성격

view-only

editing

Page 13: [GEG1] 2.the game asset pipeline

view-only

카메라 위치, 라이팅 조건 등 컨트롤을 가짐

asset 변경은 불가능. DCC에서만 변경할 수 있다

editing

asset을 변경할 수 있어 빠른 반복이 가능

하지만 asset pipeline이 더 복잡해짐

Page 14: [GEG1] 2.the game asset pipeline

view-only와 editing 결합이 필요

모든 프로젝트를 만족하는 마법 같은 솔루션은 없다

source asset에 모든 정보가 있다는 것만 만족시키면 됨

Page 15: [GEG1] 2.the game asset pipeline

왜 intermediate asset이 필요한가?

source asset과 final asset 결합 제거

크로스 플랫폼 asset 생성이 쉽다

Page 16: [GEG1] 2.the game asset pipeline

source asset과 final asset 결합 제거

DCC에서 export할 때 final asset을 바로 만들면

엔진 변경에 의존하게 되어서 re-export가 빈번

프로그래머와 아티스트 작업 결합도 줄임

디버깅과 실험은 intermediate asset을 사용

Page 17: [GEG1] 2.the game asset pipeline

크로스 플랫폼 asset 생성이 쉽다

intermediate asset 가공만 생각하면 된다

Page 18: [GEG1] 2.the game asset pipeline

Asset pipeline overview

Asset pipeline design

Push or pull pipeline model

COLLADA

Conclusion

Page 19: [GEG1] 2.the game asset pipeline

Push model

전통적인 방법

빌드 프로세스를 호출해 intermediate나 final asset 생성

게임 엔진 에디터로 로드

Pull model

더 진보된 방법

게임 엔진 에디터에서 intermediate나 final asset 로드

UI 지원이나 변경된 파일을 감시해서 구현

Page 20: [GEG1] 2.the game asset pipeline

모든 정보는 source asset에 있어야 함

수정 사항이 모두 기록되기 위한 제한

intermediate asset 변경 사항이 source asset에 반영

editing과 pull 결합

게임 엔진 에디터가 변경한 게 source asset에 반영되고

생성된 intermediate asset을 다시 읽어 들임

remote control 시스템이 필요

Page 21: [GEG1] 2.the game asset pipeline

Animation Tool

Modeling Tool

Normal Map Tool

Texturing Tool

Exp

ort

Exp

ort

Exp

ort

Exp

ort

Intermediate Asset Cache

Final Asset Cache

Build

Game Engine Editor

Build Path

Fast

Path

Source Asset

Source Asset

Source Asset

Source Asset

Remote Control

Page 22: [GEG1] 2.the game asset pipeline

Asset pipeline overview

Asset pipeline design

Push or pull pipeline model

COLLADA

Conclusion

Page 23: [GEG1] 2.the game asset pipeline

SIGGRAPH 2004에서 처음 소개

open standard

많은 DCC tool이 지원

3ds max, maya, google sketchup, …

많은 데이터 정의 지원

geometry, animation, skinning, morphing, physics, …

Page 24: [GEG1] 2.the game asset pipeline

<source id=“mesh-geometry-position”> <float_array id=“mesh1-geometry-position-array” count=“24”> 2518.1875 4074.512965 0. 2518.1875 0. … </float_array> <technique_common> <accessor source=“mesh1-geometry-position-array” count=“8” stride=“3”> <param name=“X” type=“float”/> <param name=“Y” type=“float”/> <param name=“Z” type=“float”/> </accessor> </technique_common> </source>

Page 25: [GEG1] 2.the game asset pipeline

intermediate asset format으로 추천

self-described data

많은 DCC tool에서 지원

이 용도로 쓰려고 만들어서 만들어진 게 많다

<library_xx>, <param>, URI technology, …

Page 26: [GEG1] 2.the game asset pipeline

Asset pipeline overview

Asset pipeline design

Push or pull pipeline model

COLLADA

Conclusion

Page 27: [GEG1] 2.the game asset pipeline

asset pipeline은 개발 backbone

안 되면 고쳐질 때까지 개발이 중지

source asset에 모든 정보가 있어야 함

source asset만 버전 컨트롤

수정된 사항을 잃어버리는 일이 없다

Page 28: [GEG1] 2.the game asset pipeline

효율적인 개발을 위한 Fast Path

하나 확인 하려고 긴 빌드 프로세스를 기다려야 해?

아티스트가 하얗게 불태울 수 있도록 하자

COLLADA

intermediate asset format으로 쓰려고 만들었다

왠만한 데이터는 다 기술되었음

많은 DCC tool에서 지원

쓰는 걸 적극 고려

Page 29: [GEG1] 2.the game asset pipeline
Page 30: [GEG1] 2.the game asset pipeline