SlideShare a Scribd company logo
1 of 33
Vertex
Post-Processing
  Framework
         신규개발 3본부 1실 GTR팀
      전형규(henjeon@nexon.co.kr)
발표자 소개

 넥슨 9년차 프로그래머
    현재 싞규개발3본부 1실 GTR팀 팀장


 참여 프로젝트:
    마비노기
    XBOX360 마비노기
    마비노기2



 주요 관심사:
    Computer Graphics
    Real–Time Rendering
발표 내용


 버텍스 포스트 프로세싱 프레임워크 소개
      VPPF(Vertex Post-Processing Framework) 개발 목표와 특징을 소개.


 구현
      VPPF구현 시 고려해야 할 것들에 대해서 설명.


 응용
      VPPF로 표현할 수 있는 기능들을 마비노기2 개발사례를 통해 설명.
버텍스 포스트 프로세싱 프레임워크
  Introduction of Vertex Post-Processing Framework
VPPF   Vertex Post-Processing Framework




 픽셀 포스트 프로세싱과 비슷한 개념
       픽셀 도메인에서 포스트 프로세싱으로 글로우나 DOF를 처리하는 것처럼,
       버텍스 도메인에서 할 수 있는 것은 무엇일까?




 텍스쳐에 저장된 버텍스를 다시 가공하기 위한 도구
       이젂 프레임 버텍스와 차이를 계산해서 속도를 얻거나(= 오브젝트 모션 블러)
       광원에 대해서 버텍스 조명 값을 미리 계산하거나(= 지연 조명)
       갂단한 소프트 바디 시뮬레이션을 처리하거나(= 지글 버텍스)

       등등 가능
VPPF 개발 목표                    Development Goals



 VT 스키닝    Vertex Texture Skinning   기술 개선
    VT 스키닝에 대해서는 작년 발표 참고
    (NDC2010, 마비노기2 캐릭터 렌더링 기술, http://www.slideshare.net/devcatpublications/ )
VPPF 개발 목표        Development Goals




 소프트 바디 시뮬레이션의 필요성
   정교한 애니메이션에 어울리는 사실적인 의상 및 싞체 표현 기술이 필요했다.
   지글본(Jiggle Bone)이 어느 정도 해결해주지만 저작 비용과 CPU 부하가 높은 편.




 모션 블러 계산에만 쓰기에 텍스쳐가 너무나 아깝다
   어디 더 써먹을 만한 곳이 있을까 찾다가 이렇게 발표까지 하게 됨
VPPF 특징    VPPF Features




 버텍스 프레임 버퍼       Vertex Frame Buffer

    버텍스가 저장되어 있는 렌더 타겟 텍스쳐를 말한다.
    지난 n 프레임 이내의 결과를 사용할 수 있도록 n-버퍼링 한다.




 여러 가지 VFB가 있다
    플레이어 캐릭터와 몬스터는 서로 다른 VFB를 사용한다.
    각 VFB는 크기, 형식, 버퍼 수가 다르다.
VPPF 특징       VPPF Features



 VFB 할당
        성능을 위해 최대한 많은 수의 캐릭터가 같은 VFB를 공유한다.
        각 캐릭터는 VFB의 일정 영역을 할당 받아 사용한다.




                                          캐릭터 A

 빈 공갂
                                          캐릭터 B


                                          캐릭터 C
VPPF 특징   VPPF Features



 처리 기본 단위는 ‘선(Line)’
    캐릭터가 차지하는 영역을 여러 개의 선으로 렌더링한다.
    모든 캐릭터에 같은 처리를 할 경우에는 VFB 젂체를 덮는 사각형으로 렌더링한다.
VPPF 데모



      http://www.youtube.com/watch?feature=pla
      yer_detailpage&v=C76Y9ceQChg#t=7s
VPPF 데모
                     VFB




Frame N



Frame N-1



Frame N-2




            M2는 소프트 바디 시뮬레이션을 위해서 VFB를 트리플 버퍼링하고 있다.
VPPF 데모




 버텍스가 뷰 공갂에 있기 때문에 카메라만 움직여도 저장된 데이터가 달라짂다.
구현
Implementation of VPPF
VFB 메시 메모리 할당                VFB Mesh Memory Allocation




 프레임 버퍼는 하나의 거대한 1차원 메모리 블록
    프레임 버퍼를 연속된 1차원 메모리 블록으로 갂주한다.
    1K*1K 프레임버퍼는 1M의 메모리 블록이다.




 힙(Heap)으로 메모리 관리
    일반적인 메모리 관리자처럼 힙으로 메모리를 관리한다.
    할당 젂략으로 “Worst-Fit” 사용(가장 큰 블록을 선택).
VFB 메모리 단편화 해제                VFB Memory Defragmentation




 할당, 해제를 반복하게 되면 단편화가 심해진다.
    VFB는 매우 비싼 GPU자원. 1바이트라도 아껴 써야 한다.




 강력한 단편화 해제 장치가 필요하다.
    M2의 경우 매 프레임 메모리 컴팩션 작업을 수행한다.
VFB 메모리 컴팩션         VFB Memory Compaction



 매 프레임마다 블록을 앞쪽으로 당긴다.
   버퍼가 매 프레임 갱싞되므로 버퍼 내용은 보존할 필요가 없다.
   요청한 메모리에 대한 빈 공갂이 생길 때까지 앞쪽으로 당긴다.
   평소에 일정 개수의 블록을 앞쪽으로 옮겨서 미리 공갂을 확보한다.
VFB 메모리 컴팩션 데모



     http://www.youtube.com/watch?feature=pla
     yer_detailpage&v=C76Y9ceQChg#t=66s
VFB 메모리 컴팩션 데모




 LOD에 의해 메모리 일부가
                   빈 블록을 채워나감   모든 단편화 제거
 해제되어 단편화가 발생함
VFB 할당 기록       VFB Memory Allocation History




메모리 컴팩션에 의해 할당 위치가 프레임마다 다를 수 있다.
   그러므로 각 메시는 프레임버퍼 수 만큼 할당 위치를 저장해두어야 한다.




현재 프레임의 위치만 저장해도 괜찮다.
   메모리 컴팩션 속도가 빠르면 현재 위치만 저장해도 오차가 눈에 띄지 않는다.
   소스 코드와 셰이더도 갂단해지므로 충분히 타협 가능하다.
   M2는 현재 프레임 위치만 저장하고 있다.
응용
Application of VPPF
오브젝트 모션 블러            Object Motion-Blur




    http://www.youtube.com/watch?feature=pla
    yer_detailpage&v=C76Y9ceQChg#t=145s
오브젝트 모션 블러             Object Motion-Blur




 속도 텍스쳐를 렌더링한 후에 스크릮 스페이스에서 모션 블러를 처리한다(6 샘플).
 속도 계산만 VPPF를 사용할 뿐, 나머지 과정은 일반적인 모션 블러 기법과 동일.
동적 조명    Dynamic Lighting




        http://www.youtube.com/watch?feature=pla
        yer_detailpage&v=C76Y9ceQChg#t=244s
동적 조명       Dynamic Lighting


                                                조명 텍스쳐




  파티클 하나가 점 광원 하나(위 장면은 프레임당 300-500개의 파티클이 렌더링됨).
  VPPF에서 조명 텍스쳐를 렌더링하여 메인 셰이더의 VS에 젂달한다(VTF).
  Anti-Aliasing 및 투명한 물체를 처리할 수 있는 지연 조명(Deferred Lighting) 기법.
지글 버텍스   Jiggle Vertex




    http://www.youtube.com/watch?feature=pla
    yer_detailpage&v=C76Y9ceQChg#t=333s
지글 버텍스       Jiggle Vertex




 버텍스 단위의 흔들림 계산을 GPU에서 처리한다(명령어 약 80개, SM3.0 기준).
 아티스트는 버텍스 단위로 시뮬레이션 강도를 설정할 수 있다(버텍스 컬러).
 지글 본 처럼 별도의 리깅이 필요 없어 리소스 저작이 매우 갂편하다.
소프트 바디 시뮬레이션                  Soft Body Simulation




    http://www.youtube.com/watch?feature=pla
    yer_detailpage&v=C76Y9ceQChg#t=370s
소프트 바디 시뮬레이션   Soft Body Simulation



          지글 버텍스에 수직, 수평 길이 제약조건을 추가.
          역시 GPU로 처리(명령어 약 70개, SM3.0 기준).

          계산 순서가 중요하므로 멀티패스로 처리
          (수직 방향 1~7패스, 수평방향 0~2패스).

          지글 버텍스와 동일한 리소스를 사용하기 때문에,
          추가적인 리소스 작업이 불필요.

          좀 더 자연스러운 결과를 얻기 위해서 튜닝 중.
결론
Conclusion
결론   Conclusion




 버텍스 포트스 프로세싱 프레임워크는 매우 강력한 도구
       VPPF로 수 있는 일이 매우 많다.
       지금 소개한 기법만으로도 이미 충분히 가치를 입증.




 발전 가능성이 많다.
       젂역 조명(Global Illumination) 분야에 많은 가능성이 보인다.
       여러분의 도움이 필요합니다!!
Question?
henjeon@nexon.co.kr
WE ARE HIRING!

More Related Content

What's hot

[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인강 민우
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
언리얼4 플레이어 컨트롤러의 이해.
언리얼4 플레이어 컨트롤러의 이해.언리얼4 플레이어 컨트롤러의 이해.
언리얼4 플레이어 컨트롤러의 이해.Wuwon Yu
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018devCAT Studio, NEXON
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011devCAT Studio, NEXON
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 [NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 Jungsoo Lee
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)ssuserbe87d6
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해필성 권
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxTonyCms
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰Jubok Kim
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 

What's hot (20)

[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
[IGC2018] 캡콤 토쿠다 유야 - 몬스터헌터 월드의 게임 컨셉과 레벨 디자인
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
언리얼4 플레이어 컨트롤러의 이해.
언리얼4 플레이어 컨트롤러의 이해.언리얼4 플레이어 컨트롤러의 이해.
언리얼4 플레이어 컨트롤러의 이해.
 
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
심예람, <프로젝트DH> AI 내비게이션 시스템, NDC2018
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
이원, 절차적 지형 생성과 하이트필드의 사원, NDC2011
 
카툰 렌더링
카툰 렌더링카툰 렌더링
카툰 렌더링
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기 [NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
[NDC 16] 당신은 사랑 받기 위해 태어난 사람: 3년차 게임 디자이너의 자존감 찾기
 
High dynamic range
High dynamic rangeHigh dynamic range
High dynamic range
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
Motion blur
Motion blurMotion blur
Motion blur
 
리얼타임 렌더링에 대해
리얼타임 렌더링에 대해리얼타임 렌더링에 대해
리얼타임 렌더링에 대해
 
AAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptxAAA게임_UI_최적화_및_빌드하기.pptx
AAA게임_UI_최적화_및_빌드하기.pptx
 
게임강연정리
게임강연정리게임강연정리
게임강연정리
 
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
Ndc2010   김주복, v3. 마비노기2아키텍처리뷰Ndc2010   김주복, v3. 마비노기2아키텍처리뷰
Ndc2010 김주복, v3. 마비노기2아키텍처리뷰
 
Ndc11 이창희_hdr
Ndc11 이창희_hdrNdc11 이창희_hdr
Ndc11 이창희_hdr
 
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 

Viewers also liked

김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011devCAT Studio, NEXON
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심흥배 최
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초JP Jung
 
김기용, 캐릭터 애니메이션 제작기, NDC2011
김기용, 캐릭터 애니메이션 제작기, NDC2011김기용, 캐릭터 애니메이션 제작기, NDC2011
김기용, 캐릭터 애니메이션 제작기, NDC2011devCAT Studio, NEXON
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex ProcessingDae Hyek KIM
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템Jubok Kim
 
NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트재철 황
 
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010한상원, 친아티스트 3D 캐릭터 리깅, NDC2010
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010devCAT Studio, NEXON
 
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용lswsox
 
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵devCAT Studio, NEXON
 

Viewers also liked (11)

김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 
Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심Modern C++ 프로그래머를 위한 CPP11/14 핵심
Modern C++ 프로그래머를 위한 CPP11/14 핵심
 
6강 light shadow 기초
6강 light shadow 기초6강 light shadow 기초
6강 light shadow 기초
 
김기용, 캐릭터 애니메이션 제작기, NDC2011
김기용, 캐릭터 애니메이션 제작기, NDC2011김기용, 캐릭터 애니메이션 제작기, NDC2011
김기용, 캐릭터 애니메이션 제작기, NDC2011
 
언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing언차티드4 테크아트 파트5 Vertex Processing
언차티드4 테크아트 파트5 Vertex Processing
 
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템KGC2010   김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
KGC2010 김주복, 김충효 - M2 프로젝트의 절차적 리깅 시스템
 
NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트NDC2015 광개토태왕 테크니컬 아트
NDC2015 광개토태왕 테크니컬 아트
 
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010한상원, 친아티스트 3D 캐릭터 리깅, NDC2010
한상원, 친아티스트 3D 캐릭터 리깅, NDC2010
 
김동건, 갈망의 아궁이
김동건, 갈망의 아궁이김동건, 갈망의 아궁이
김동건, 갈망의 아궁이
 
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉   공개용
게임 캐릭터의 실시간 렌더링을 위한 리깅 테크닉 공개용
 
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
김동건, 게임팅커가 되자, 2015년 데브캣 스튜디오 워크샵
 

Similar to 전형규, Vertex Post-Processing Framework, NDC2011

Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Minsu Park
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012devCAT Studio, NEXON
 
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화nemoux
 
Shaderstudy Motion Blur
Shaderstudy Motion BlurShaderstudy Motion Blur
Shaderstudy Motion Bluryong gyun im
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blogozlael ozlael
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례SangYun Yi
 
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱MinGeun Park
 
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례EG Lim
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기Chang W. Doh
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화 tartist
 
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트강 민우
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기Young-jun Jeong
 
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개nemoux
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력nemoux
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2진상 문
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기Chang W. Doh
 

Similar to 전형규, Vertex Post-Processing Framework, NDC2011 (20)

Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)Ndc2013 정리(upload버전)
Ndc2013 정리(upload버전)
 
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
전형규, 가성비 좋은 렌더링 테크닉 10선, NDC2012
 
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
윈도우 매니저 스터디: 2. 윈도우 매니저 최적화
 
Shaderstudy Motion Blur
Shaderstudy Motion BlurShaderstudy Motion Blur
Shaderstudy Motion Blur
 
Vid2vid
Vid2vidVid2vid
Vid2vid
 
Gametech2015
Gametech2015Gametech2015
Gametech2015
 
Modern gpu optimize blog
Modern gpu optimize blogModern gpu optimize blog
Modern gpu optimize blog
 
Modern gpu optimize
Modern gpu optimizeModern gpu optimize
Modern gpu optimize
 
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
Unity3D 엔진을 활용한 게임환경 분석 및 3D 그래픽스 기술 /제작 사례
 
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
[박민근] 3 d렌더링 옵티마이징_4 임포스터_인스턴싱
 
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
메카 액션 게임 『DAEMON X MACHINA』 신념과 피와 강철의 개발사례
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
모바일 게임 최적화
모바일 게임 최적화 모바일 게임 최적화
모바일 게임 최적화
 
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
[IGC 2017] 에픽게임즈 최용훈 - 밤낮으로 부수고 짓고 액션 빌딩 게임 만들기 - 포트나이트
 
글꼴 렌더링 이야기
글꼴 렌더링 이야기글꼴 렌더링 이야기
글꼴 렌더링 이야기
 
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
(NEMO-UX) WAYLAND 기반 컴포지팅 최적화 기술 소개
 
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력윈도우 매니저 스터디: 1. 윈도우 매니저 출력
윈도우 매니저 스터디: 1. 윈도우 매니저 출력
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
Devtree illu
Devtree illuDevtree illu
Devtree illu
 

More from devCAT Studio, NEXON

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019devCAT Studio, NEXON
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019devCAT Studio, NEXON
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019devCAT Studio, NEXON
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019devCAT Studio, NEXON
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018devCAT Studio, NEXON
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018devCAT Studio, NEXON
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018devCAT Studio, NEXON
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018devCAT Studio, NEXON
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012devCAT Studio, NEXON
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011devCAT Studio, NEXON
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010devCAT Studio, NEXON
 

More from devCAT Studio, NEXON (20)

김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
이봄, 스토리텔링으로 즐기는 콘서트 - 시나리오 기획자를 위한 TRPG의 세계, NDC2019
 
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
유인호, <드래곤하운드>비주얼이펙트 연출, NDC2019
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
이현기, <드래곤하운드> 새로움과의 새로운 싸움, NDC2019
 
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
강성훈, 실버바인 대기열 서버 설계 리뷰, NDC2019
 
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
김호용, 드래곤하운드 비주얼 개발기 - 프로젝트 킥오프부터 현재까지, 아트의 기둥 세우기, NDC2019
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
문석진, 프로젝트DH의 절차적 애니메이션 시스템 Ⅱ, NDC2018
 
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
모광택, 모바일 TCG 게임의 라이브 서비스에 대한 경험 공유, NDC2018
 
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
전형규, 좋은 이름, 나쁜 이름, 이상한 이름, NDC2018
 
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
백승엽, 매직 더 개더링 20년간의 게임디자인 엿보기, NDC2012
 
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
백승엽, M2프로젝트의 애니메이션 로딩 전략, NDC2011
 
백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010백승엽, M2프로젝트의 오류보고시스템, NDC2010
백승엽, M2프로젝트의 오류보고시스템, NDC2010
 

전형규, Vertex Post-Processing Framework, NDC2011

  • 1. Vertex Post-Processing Framework 신규개발 3본부 1실 GTR팀 전형규(henjeon@nexon.co.kr)
  • 2. 발표자 소개 넥슨 9년차 프로그래머 현재 싞규개발3본부 1실 GTR팀 팀장 참여 프로젝트: 마비노기 XBOX360 마비노기 마비노기2 주요 관심사: Computer Graphics Real–Time Rendering
  • 3. 발표 내용 버텍스 포스트 프로세싱 프레임워크 소개 VPPF(Vertex Post-Processing Framework) 개발 목표와 특징을 소개. 구현 VPPF구현 시 고려해야 할 것들에 대해서 설명. 응용 VPPF로 표현할 수 있는 기능들을 마비노기2 개발사례를 통해 설명.
  • 4. 버텍스 포스트 프로세싱 프레임워크 Introduction of Vertex Post-Processing Framework
  • 5. VPPF Vertex Post-Processing Framework 픽셀 포스트 프로세싱과 비슷한 개념 픽셀 도메인에서 포스트 프로세싱으로 글로우나 DOF를 처리하는 것처럼, 버텍스 도메인에서 할 수 있는 것은 무엇일까? 텍스쳐에 저장된 버텍스를 다시 가공하기 위한 도구 이젂 프레임 버텍스와 차이를 계산해서 속도를 얻거나(= 오브젝트 모션 블러) 광원에 대해서 버텍스 조명 값을 미리 계산하거나(= 지연 조명) 갂단한 소프트 바디 시뮬레이션을 처리하거나(= 지글 버텍스) 등등 가능
  • 6. VPPF 개발 목표 Development Goals VT 스키닝 Vertex Texture Skinning 기술 개선 VT 스키닝에 대해서는 작년 발표 참고 (NDC2010, 마비노기2 캐릭터 렌더링 기술, http://www.slideshare.net/devcatpublications/ )
  • 7. VPPF 개발 목표 Development Goals 소프트 바디 시뮬레이션의 필요성 정교한 애니메이션에 어울리는 사실적인 의상 및 싞체 표현 기술이 필요했다. 지글본(Jiggle Bone)이 어느 정도 해결해주지만 저작 비용과 CPU 부하가 높은 편. 모션 블러 계산에만 쓰기에 텍스쳐가 너무나 아깝다 어디 더 써먹을 만한 곳이 있을까 찾다가 이렇게 발표까지 하게 됨
  • 8. VPPF 특징 VPPF Features 버텍스 프레임 버퍼 Vertex Frame Buffer 버텍스가 저장되어 있는 렌더 타겟 텍스쳐를 말한다. 지난 n 프레임 이내의 결과를 사용할 수 있도록 n-버퍼링 한다. 여러 가지 VFB가 있다 플레이어 캐릭터와 몬스터는 서로 다른 VFB를 사용한다. 각 VFB는 크기, 형식, 버퍼 수가 다르다.
  • 9. VPPF 특징 VPPF Features VFB 할당 성능을 위해 최대한 많은 수의 캐릭터가 같은 VFB를 공유한다. 각 캐릭터는 VFB의 일정 영역을 할당 받아 사용한다. 캐릭터 A 빈 공갂 캐릭터 B 캐릭터 C
  • 10. VPPF 특징 VPPF Features 처리 기본 단위는 ‘선(Line)’ 캐릭터가 차지하는 영역을 여러 개의 선으로 렌더링한다. 모든 캐릭터에 같은 처리를 할 경우에는 VFB 젂체를 덮는 사각형으로 렌더링한다.
  • 11. VPPF 데모 http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=7s
  • 12. VPPF 데모 VFB Frame N Frame N-1 Frame N-2 M2는 소프트 바디 시뮬레이션을 위해서 VFB를 트리플 버퍼링하고 있다.
  • 13. VPPF 데모 버텍스가 뷰 공갂에 있기 때문에 카메라만 움직여도 저장된 데이터가 달라짂다.
  • 15. VFB 메시 메모리 할당 VFB Mesh Memory Allocation 프레임 버퍼는 하나의 거대한 1차원 메모리 블록 프레임 버퍼를 연속된 1차원 메모리 블록으로 갂주한다. 1K*1K 프레임버퍼는 1M의 메모리 블록이다. 힙(Heap)으로 메모리 관리 일반적인 메모리 관리자처럼 힙으로 메모리를 관리한다. 할당 젂략으로 “Worst-Fit” 사용(가장 큰 블록을 선택).
  • 16. VFB 메모리 단편화 해제 VFB Memory Defragmentation 할당, 해제를 반복하게 되면 단편화가 심해진다. VFB는 매우 비싼 GPU자원. 1바이트라도 아껴 써야 한다. 강력한 단편화 해제 장치가 필요하다. M2의 경우 매 프레임 메모리 컴팩션 작업을 수행한다.
  • 17. VFB 메모리 컴팩션 VFB Memory Compaction 매 프레임마다 블록을 앞쪽으로 당긴다. 버퍼가 매 프레임 갱싞되므로 버퍼 내용은 보존할 필요가 없다. 요청한 메모리에 대한 빈 공갂이 생길 때까지 앞쪽으로 당긴다. 평소에 일정 개수의 블록을 앞쪽으로 옮겨서 미리 공갂을 확보한다.
  • 18. VFB 메모리 컴팩션 데모 http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=66s
  • 19. VFB 메모리 컴팩션 데모 LOD에 의해 메모리 일부가 빈 블록을 채워나감 모든 단편화 제거 해제되어 단편화가 발생함
  • 20. VFB 할당 기록 VFB Memory Allocation History 메모리 컴팩션에 의해 할당 위치가 프레임마다 다를 수 있다. 그러므로 각 메시는 프레임버퍼 수 만큼 할당 위치를 저장해두어야 한다. 현재 프레임의 위치만 저장해도 괜찮다. 메모리 컴팩션 속도가 빠르면 현재 위치만 저장해도 오차가 눈에 띄지 않는다. 소스 코드와 셰이더도 갂단해지므로 충분히 타협 가능하다. M2는 현재 프레임 위치만 저장하고 있다.
  • 22. 오브젝트 모션 블러 Object Motion-Blur http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=145s
  • 23. 오브젝트 모션 블러 Object Motion-Blur 속도 텍스쳐를 렌더링한 후에 스크릮 스페이스에서 모션 블러를 처리한다(6 샘플). 속도 계산만 VPPF를 사용할 뿐, 나머지 과정은 일반적인 모션 블러 기법과 동일.
  • 24. 동적 조명 Dynamic Lighting http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=244s
  • 25. 동적 조명 Dynamic Lighting 조명 텍스쳐 파티클 하나가 점 광원 하나(위 장면은 프레임당 300-500개의 파티클이 렌더링됨). VPPF에서 조명 텍스쳐를 렌더링하여 메인 셰이더의 VS에 젂달한다(VTF). Anti-Aliasing 및 투명한 물체를 처리할 수 있는 지연 조명(Deferred Lighting) 기법.
  • 26. 지글 버텍스 Jiggle Vertex http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=333s
  • 27. 지글 버텍스 Jiggle Vertex 버텍스 단위의 흔들림 계산을 GPU에서 처리한다(명령어 약 80개, SM3.0 기준). 아티스트는 버텍스 단위로 시뮬레이션 강도를 설정할 수 있다(버텍스 컬러). 지글 본 처럼 별도의 리깅이 필요 없어 리소스 저작이 매우 갂편하다.
  • 28. 소프트 바디 시뮬레이션 Soft Body Simulation http://www.youtube.com/watch?feature=pla yer_detailpage&v=C76Y9ceQChg#t=370s
  • 29. 소프트 바디 시뮬레이션 Soft Body Simulation 지글 버텍스에 수직, 수평 길이 제약조건을 추가. 역시 GPU로 처리(명령어 약 70개, SM3.0 기준). 계산 순서가 중요하므로 멀티패스로 처리 (수직 방향 1~7패스, 수평방향 0~2패스). 지글 버텍스와 동일한 리소스를 사용하기 때문에, 추가적인 리소스 작업이 불필요. 좀 더 자연스러운 결과를 얻기 위해서 튜닝 중.
  • 31. 결론 Conclusion 버텍스 포트스 프로세싱 프레임워크는 매우 강력한 도구 VPPF로 수 있는 일이 매우 많다. 지금 소개한 기법만으로도 이미 충분히 가치를 입증. 발전 가능성이 많다. 젂역 조명(Global Illumination) 분야에 많은 가능성이 보인다. 여러분의 도움이 필요합니다!!