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에서는 하나의 라이트로 처리!
12. 결론
• 장점
– 충분히 납득할만한 결과를 얻을 수 있다.
– 픽셀 셰이더의 부담이 많이 가지 않기 때문에, 꽤 보편적으로 사용
이 가능할 듯 하다.
– Forward rendering으로도 충분히 구현이 가능하다.
• Deferred Lighting을 사용하지 못하는 PC의 경우에는 대안으로 적용할
수 있을 듯… (Uber Shader라면… 스위칭도 어렵지 않아요~)
• 적절한 라이트 개수는 정해주어야 할 듯
• 참고자료
– http://cagetu.egloos.com/5587945