• Like
NDC08_실시간비주얼그래프편집
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

  • 508 views
Published

NDC08

NDC08

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
508
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
10
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