Your SlideShare is downloading. ×
0
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
NDC08_실시간비주얼그래프편집
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

NDC08_실시간비주얼그래프편집

568

Published on

NDC08

NDC08

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
568
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 차세대 게임 개발을 위한실시간 비주얼 그래프 편집VISUAL GRAPH EDITOR FOR GAME DEVELOPMENT 소속 : 폭스/엔트리브소프트 발표자 : 김성익
  • 2. overview• 그래프 편집 소개• 비주얼 그래프 편집 시스템 구성• 그래프 도입 사례 소개
  • 3. 그래프 편집 소개
  • 4. 그래프란• 노드(node, vertex)과 노드를 연결하는 선(edge)으로 구성된 집합
  • 5. 도입 사례• 차세대 엔진 • 프로젝트 오프셋 • 언리얼 3 • 크라이시스• 일반 어플리케이션 • Shader FX • SynthEdit
  • 6. 참고영상
  • 7. 그래프 편집 특성• 장점 – 직관성 – 사용성 – 확장성• 그래프형 데이터 표현 가능
  • 8. 직관성• 시각적인 흐름 / 관계• vs 스크립트
  • 9. 사용성• 에디트의 편리함• 실시간 프리뷰• 사용층 확대• vs HLSL
  • 10. 확장성• 컴포넌트 단위 구성• 컴포넌트 추가 확장• 프로그램과 연동• vs 파라메트릭 파티클 시스템
  • 11. 그래프 편집 시스템 구성
  • 12. 그래프 구성요소/성격• 함수(component) – 함수 – 노드(node)• 링크• 그래프 성격 – 방향성 다중 그래프 – 트리 / 순환 – 연결 조건
  • 13. 툴로 구성• 그리기 – 기본 드로잉 – 곡선 드로잉 – 확대 / 축소• 에디팅 – 노드 연결 검증 – 함수 추가/삭제/수정 – 그룹핑 – 파라메터 연동
  • 14. 데이터 구성• 리스트 형태 – 함수 (with 프로토타입) – 링크• XML로 구성
  • 15. 그래프 도입 사례 소개셰이더 // 랜더링 파이프라인 // 파티클 // 캐릭터셰이더 랜더링 파이프라인 파티클 캐릭터 스테이트 // 사운드 // 인공지능 // 모션합성 스테이트 사운드 인공지능 모션합성
  • 16. 셰이더 그래프
  • 17. 셰이더 그래프• 프로그래머블 셰이더 • HLSL(High Level Shader Language)• 어려움 • 코드 작성의 어려움 • 조합의 폭발• 그래프방식 • 직관성 • 사용성 • 확장성
  • 18. 셰이더 특성• HLSL을 컴파일해서 바이너리 생성 •중간 변수 사용 가능 •사용 안 하는 코드 및 변수 제거
  • 19. 셰이더 코드 분석
  • 20. 분류• 일반적인 구분 •header •vertexinput •vertexoutput(pixelinput) •vertexcode •pixelcode
  • 21. 분해• 3가지 컴포넌트로 분해 •버텍스입력 •텍스처 출력 •소스 출력
  • 22. 재구성• 중간변수 이용• 라인 단위 분리 가능하도록
  • 23. 함수 디자인• 함수의 프로토 타입 •노드 상태 •삽입될 코드
  • 24. 코드 생성• 컴포넌트 고유 id 할당 •전달 변수명 결정
  • 25. 셰이더 그래프 구현• 툴 구성 •노드 연결 속성 (변수타입, vs/ps 타입) •함수별 id 할당 •파라메터와 연동 •순환 구조를 가질 수 없음• 빌드 •함수 id 기반으로 변수 이름 생성 •연결된 그래프 상태로 코드 생성 •함수 순서 결정
  • 26. 셰이더 그래프 적용• 머트리얼 / 셰이더 •셰이더 공유 •머트리얼 = 셰이더 + 고유 파라메터• 코드에 전역적인 렌더 상태 반영 •Fog, Shadow Projection, .. •전처리기 활용 •n개의 technique 활용
  • 27. 시연
  • 28. 렌더링 파이프라인 그래프
  • 29. 랜더링 파이프라인 그래프• 포스트 프로세싱 •셰이더 제작에 따른 손쉬운 확장 •랜더 타겟을 활용한 컴포넌트 •데이터 드리븐• 렌더 파이프라인 그래프 •프레임버퍼 렌더링 •포스트 프로세싱
  • 30. 특징• 그래프 방식 •직광성 •사용성 •확장성• 생산성 향상 •lod 파이프라인• 실시간 확인
  • 31. 랜더링 파이프라인 그래프 적용• 파라메터 연동 •Alias와 내부 고유값 매칭• 렌더 텍스처 관리
  • 32. 시연
  • 33. 파티클 그래프
  • 34. 파티클• 전통적인 파티클 시스템 •파라메터 형식 •정적 •일괄적인 적용으로 인해 확장 •수치중심으로 시각적 표현의 어려움• 그래프방식 •코드와 쉬운 매칭 (컴포넌트화) •확장이 용이 •직관성 (vs 스크립트)
  • 35. 파티클 그래프 구성• 툴 구성 •노드 연결 속성 검증 (변수 타입) •뷰포트상에서 vector, aabb, sphere 상수 에디팅 •다형성 •multiply(scalar, vector) = vector •multiply(scalar, scalar) = scalar• 기본 아이디어 •함수 하나에 ‘variable’ 변수 하나 할당 •연산 결과를 정해진 변수 slot 에 저장 •노드별 slot 인덱스
  • 36. 파티클 함수 구성
  • 37. 파티클 그래프 구현• 빌드 •셰이더와 같은 방식으로 정렬 •함수별로 슬롯 할당 •노드에 슬롯 매칭 •상수함수 •초기화 리스트 •업데이트 리스트
  • 38. 파티클 구성• 파티클별 데이터 •정적 •함수 리스트 •함수별 상수및 입/출력 파라메터 array •상수 array •변수 array
  • 39. 파티클 그래프 적용• 컴포넌트와 런타임 함수 매칭 •다형성 •null node 체크• 입,출력 슬롯 전달• 상수 사용시 상수 슬롯 전달• 초기화 컴포넌트 리스트• 업데이트 컴포넌트 리스트• 캐시 히트를 높이는 슬롯 할당
  • 40. 시연
  • 41. 캐릭터 스테이트 그래프
  • 42. 캐릭터 스테이트 그래프• 캐릭터 처리 •전형적인 FSM 적용 •액션 게임 등 복잡도 요구 •그래프로 표현이 베스트• 특징 •직관적으로 연결 흐름 파악 •쉽게 수정 •그래프의 복잡도와 규모
  • 43. 사운드 그래프
  • 44. 사운드 그래프• 전통적인 방법으로 충분• BUT 기술적인 요구 사항이 필요한 경우 •자동차의 rpm 별 엔진 사운드 합성 •랜덤 사운드 •이펙트 설정• 기능 확장이 유리
  • 45. 시연
  • 46. 인공지능 그래프
  • 47. 인공지능• FSM• 인공지능 커스트 마이징• Sub state
  • 48. 모션 합성 그래프
  • 49. 모션 합성• 게임내 모션 프로그래밍 비중 증가 추세 •모션 블랜딩, 애니메이션 리타게팅 •래그돌, IK, LookAT• 기능의 기술 필요성 •복잡화 •데이터 드리븐 •XML, 스크립트 그래프 편집
  • 50. 시연
  • 51. 정리• 개발 트랜드 : 그래프 형태의 에디팅• 그래프 편집의 장점 •확장성 - 코드와 연계 편의성 •직관성 - 비주얼하게 표현 •사용성 – 쉽게 표현 가능, 사용층 넓힘• Just do it
  • 52. 감사합니다~감사합니다~
  • 53. Q/A• Email:noerror@ntreev.com

×