SlideShare une entreprise Scribd logo
1  sur  13
Dynamic Lighting in GOW3
  이창희(cagetu@softnette.com)
Intro
• Siggraph2011에서 발표한 문서
• God Of War 3 에서 사용한 다수의 동적 라
  이팅 처리에 대한 내용

• 원본은 아래에서 받아보실 수 있습니다.
  http://advances.realtimerendering.com/
Intro
• 일반적으로 PC게임 엔진에서는 Dyniamic
  Lighting에 대한 고민을 Deferred Lighting을
  이용해서 해결하려고 시도. (어쩌면 유행?!)
• 하지만, 시간이 지난 현시점에서 Deferred
  Lighting에 대해서 고민해볼 필요가 생겼음.
  – 과연 정말 원했던 대로 많은 수의 라이팅을 퐉퐉
    뿌려대고 있느냐?
• 이 내용이 어느 정도는 힌트가 될수도…
Intro
• PS3에서는 RSX가 병목
  – (RSX를 GPU라고 생각하시면 됩니다. SPU는 vertex
    processing까지 처리할 수 있는 CPU라고 생각하시면
    될 듯. RSX의 픽셀 처리 능력이 그렇게 좋지 않다고…)
• 어떻게 하면, SPU를 최대한 활용하여 라이팅 퀄리
  티를 높이면서 RSX를 싸게 유지할 수 있을까를 고
  민하게 됨
• PS3에서 더 많은 per pixel lighting을 아티스트들이
  요구하기 시작 했다고 함.
Hybrid Vertex Lights
• Omni(point)와 Directional Light를 Hybrid Vertex Light들로 표
  현하자!?
   – Pixel Light들을 하나의 라이트로 처리하자.
   – 다수의 라이트들에 대해서
      •   Vertex에 대해서 거리에 따른 감쇠 계산
      •   Vertex에 대해서 하나의 합쳐진 Light로 만든다
      •   Pixel에서는 합쳐진 Light Position을 보간한다
      •   Pixel Shader에서는 스펙큘러 계산 등을 하나의 라이트에 대해서 수행한
          다.
• 즉, Vertex에서 여러 개의 라이트들을 하나의 라이
  트로 합성하여, Pixel에서는 하나의 라이트로 처리!
최종 공식!
내용 소개 (본문 참조)
구현 사례 소개
• 화면에 보이는 오브젝트 마다 영향을 받는
  라이트를 수집한다.
  – 수집하는 라이트 개수를 제한!
• 오브젝트가 영향 받는 오브젝트 개수 만큼
  vertex shader에서 합산하여, pixel shader
  에서 적용
• 2개의 라이트를 적용
결론
• 장점
  – 충분히 납득할만한 결과를 얻을 수 있다.
  – 픽셀 셰이더의 부담이 많이 가지 않기 때문에, 꽤 보편적으로 사용
    이 가능할 듯 하다.
  – Forward rendering으로도 충분히 구현이 가능하다.
       • Deferred Lighting을 사용하지 못하는 PC의 경우에는 대안으로 적용할
         수 있을 듯… (Uber Shader라면… 스위칭도 어렵지 않아요~)
• 적절한 라이트 개수는 정해주어야 할 듯

• 참고자료
  – http://cagetu.egloos.com/5587945
Q/A

Contenu connexe

Plus de changehee lee

모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기changehee lee
 
Mobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphMobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphchangehee lee
 
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)changehee lee
 
개발자여! 스터디를 하자!
개발자여! 스터디를 하자!개발자여! 스터디를 하자!
개발자여! 스터디를 하자!changehee lee
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희changehee lee
 
Gamificated game developing
Gamificated game developingGamificated game developing
Gamificated game developingchangehee lee
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your gameschangehee lee
 
Basic ofreflectance kor
Basic ofreflectance korBasic ofreflectance kor
Basic ofreflectance korchangehee lee
 
Valve handbook low_res
Valve handbook low_resValve handbook low_res
Valve handbook low_reschangehee lee
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipelinechangehee lee
 
아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기changehee lee
 
아빠 개발자로 살아남기
아빠 개발자로 살아남기아빠 개발자로 살아남기
아빠 개발자로 살아남기changehee lee
 
R banninga visual_arts_specingoutaaa
R banninga visual_arts_specingoutaaaR banninga visual_arts_specingoutaaa
R banninga visual_arts_specingoutaaachangehee lee
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리changehee lee
 

Plus de changehee lee (20)

Paper games 2013
Paper games 2013Paper games 2013
Paper games 2013
 
모바일 엔진 개발기
모바일 엔진 개발기모바일 엔진 개발기
모바일 엔진 개발기
 
V8
V8V8
V8
 
Wecanmakeengine
WecanmakeengineWecanmakeengine
Wecanmakeengine
 
Mobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraphMobile crossplatformchallenges siggraph
Mobile crossplatformchallenges siggraph
 
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)
개발 과정 최적화 하기 내부툴로 더욱 강력한 개발하기 Stephen kennedy _(11시40분_103호)
 
개발자여! 스터디를 하자!
개발자여! 스터디를 하자!개발자여! 스터디를 하자!
개발자여! 스터디를 하자!
 
[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희[Kgc2012] deferred forward 이창희
[Kgc2012] deferred forward 이창희
 
Light prepass
Light prepassLight prepass
Light prepass
 
Gamificated game developing
Gamificated game developingGamificated game developing
Gamificated game developing
 
Windows to reality getting the most out of direct3 d 10 graphics in your games
Windows to reality   getting the most out of direct3 d 10 graphics in your gamesWindows to reality   getting the most out of direct3 d 10 graphics in your games
Windows to reality getting the most out of direct3 d 10 graphics in your games
 
Basic ofreflectance kor
Basic ofreflectance korBasic ofreflectance kor
Basic ofreflectance kor
 
C++11(최지웅)
C++11(최지웅)C++11(최지웅)
C++11(최지웅)
 
Valve handbook low_res
Valve handbook low_resValve handbook low_res
Valve handbook low_res
 
Ndc12 이창희 render_pipeline
Ndc12 이창희 render_pipelineNdc12 이창희 render_pipeline
Ndc12 이창희 render_pipeline
 
아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기
 
아빠 개발자로 살아남기
아빠 개발자로 살아남기아빠 개발자로 살아남기
아빠 개발자로 살아남기
 
R banninga visual_arts_specingoutaaa
R banninga visual_arts_specingoutaaaR banninga visual_arts_specingoutaaa
R banninga visual_arts_specingoutaaa
 
Shadow mapping 정리
Shadow mapping 정리Shadow mapping 정리
Shadow mapping 정리
 
Color Control
Color ControlColor Control
Color Control
 

Dynamic lighting in gow3

  • 1. Dynamic Lighting in GOW3 이창희(cagetu@softnette.com)
  • 2. Intro • Siggraph2011에서 발표한 문서 • God Of War 3 에서 사용한 다수의 동적 라 이팅 처리에 대한 내용 • 원본은 아래에서 받아보실 수 있습니다. http://advances.realtimerendering.com/
  • 3. Intro • 일반적으로 PC게임 엔진에서는 Dyniamic Lighting에 대한 고민을 Deferred Lighting을 이용해서 해결하려고 시도. (어쩌면 유행?!) • 하지만, 시간이 지난 현시점에서 Deferred Lighting에 대해서 고민해볼 필요가 생겼음. – 과연 정말 원했던 대로 많은 수의 라이팅을 퐉퐉 뿌려대고 있느냐? • 이 내용이 어느 정도는 힌트가 될수도…
  • 4. Intro • PS3에서는 RSX가 병목 – (RSX를 GPU라고 생각하시면 됩니다. SPU는 vertex processing까지 처리할 수 있는 CPU라고 생각하시면 될 듯. RSX의 픽셀 처리 능력이 그렇게 좋지 않다고…) • 어떻게 하면, SPU를 최대한 활용하여 라이팅 퀄리 티를 높이면서 RSX를 싸게 유지할 수 있을까를 고 민하게 됨 • PS3에서 더 많은 per pixel lighting을 아티스트들이 요구하기 시작 했다고 함.
  • 5. Hybrid Vertex Lights • Omni(point)와 Directional Light를 Hybrid Vertex Light들로 표 현하자!? – Pixel Light들을 하나의 라이트로 처리하자. – 다수의 라이트들에 대해서 • Vertex에 대해서 거리에 따른 감쇠 계산 • Vertex에 대해서 하나의 합쳐진 Light로 만든다 • Pixel에서는 합쳐진 Light Position을 보간한다 • Pixel Shader에서는 스펙큘러 계산 등을 하나의 라이트에 대해서 수행한 다. • 즉, Vertex에서 여러 개의 라이트들을 하나의 라이 트로 합성하여, Pixel에서는 하나의 라이트로 처리!
  • 6.
  • 7.
  • 10. 구현 사례 소개 • 화면에 보이는 오브젝트 마다 영향을 받는 라이트를 수집한다. – 수집하는 라이트 개수를 제한! • 오브젝트가 영향 받는 오브젝트 개수 만큼 vertex shader에서 합산하여, pixel shader 에서 적용
  • 12. 결론 • 장점 – 충분히 납득할만한 결과를 얻을 수 있다. – 픽셀 셰이더의 부담이 많이 가지 않기 때문에, 꽤 보편적으로 사용 이 가능할 듯 하다. – Forward rendering으로도 충분히 구현이 가능하다. • Deferred Lighting을 사용하지 못하는 PC의 경우에는 대안으로 적용할 수 있을 듯… (Uber Shader라면… 스위칭도 어렵지 않아요~) • 적절한 라이트 개수는 정해주어야 할 듯 • 참고자료 – http://cagetu.egloos.com/5587945
  • 13. Q/A