Dynamic Lighting in GOW3  이창희(cagetu@softnette.com)
Intro• Siggraph2011에서 발표한 문서• God Of War 3 에서 사용한 다수의 동적 라  이팅 처리에 대한 내용• 원본은 아래에서 받아보실 수 있습니다.  http://advances.realtimer...
Intro• 일반적으로 PC게임 엔진에서는 Dyniamic  Lighting에 대한 고민을 Deferred Lighting을  이용해서 해결하려고 시도. (어쩌면 유행?!)• 하지만, 시간이 지난 현시점에서 Deferr...
Intro• PS3에서는 RSX가 병목  – (RSX를 GPU라고 생각하시면 됩니다. SPU는 vertex    processing까지 처리할 수 있는 CPU라고 생각하시면    될 듯. RSX의 픽셀 처리 능력이 그렇...
Hybrid Vertex Lights• Omni(point)와 Directional Light를 Hybrid Vertex Light들로 표  현하자!?   – Pixel Light들을 하나의 라이트로 처리하자.   – ...
최종 공식!
내용 소개 (본문 참조)
구현 사례 소개• 화면에 보이는 오브젝트 마다 영향을 받는  라이트를 수집한다.  – 수집하는 라이트 개수를 제한!• 오브젝트가 영향 받는 오브젝트 개수 만큼  vertex shader에서 합산하여, pixel shad...
• 2개의 라이트를 적용
결론• 장점  – 충분히 납득할만한 결과를 얻을 수 있다.  – 픽셀 셰이더의 부담이 많이 가지 않기 때문에, 꽤 보편적으로 사용    이 가능할 듯 하다.  – Forward rendering으로도 충분히 구현이 가능...
Q/A
Dynamic lighting in gow3
Dynamic lighting in gow3
Upcoming SlideShare
Loading in …5
×

Dynamic lighting in gow3

2,600 views

Published on

2012-02-08 kasastudy 발표자료.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,600
On SlideShare
0
From Embeds
0
Number of Embeds
1,226
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Dynamic lighting in gow3

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

×