Lightmap 돌아오다 !
Programming/DirectX / 2010/01/12 18:10
먼저 현재 적용되어있던 쉐이더 기반의 라이팅입니다.
스카이돔을 만들면서 생긴 태양의 위치를 기반으로 빛의 방향을 실시간으로 받아옵니다.
부하가 적어 완전실시간으로 음영을 만들어 낼 수 있다는 장점이 있지만 단점은 영상에서 보이듯이 LOD가 적용되었을 때 음영을 처리해주는 버텍스 수가 줄어들어서 보기가 영 좋지 않지요..
특히나 멀리서 볼 때는 더욱 더 심해집니다.
그래서 예전에 사용하던 라이트맵을 조금 손봐서 다시 적용하였습니다.
기존에는 라이트맵 계산 후 텍스쳐로 저장하였는데, 이번에는 저장하지 않고 바로 메모리상에서 관리를 하도록 되어있습니다.
연산량도 조금 더 많고 ( 기본적인 라이트 계산 후 2~3번의 블러 과정을 거칩니다 ) 쉐이더처럼 빠른 연산이 불가능하기 때문에 완전 실시간으로 적용하기엔 부하가 커서 일정시간마다 라이트맵을 태양위치에따라 갱신하도록 하였습니다.
지금은 테스트 목적으로 1초에 한번씩 갱신해주도록 설정되어있습니다.
나중에 적용할 때는 게임의 시간과 실제 시간의 흐름이 같게 설계해놨기에 5분정도에 한번씩 갱신해주면 되겠지요.
라이트맵 계산 과정은 1초에 30~40번 정도 수행 할 수준이라 다행히도 라이트맵 생성시에 끊김현상등은 없습니다.
확실히 라이트맵을 따로 생성해놓으니 멀리서봐도 산처럼 보이네요 ㅎㅎ
'Programming > DirectX' 카테고리의 다른 글
| Shadow Map (0) | 2010/01/16 |
|---|---|
| 애니메이션 블렌딩 (0) | 2010/01/14 |
| Lightmap 돌아오다 ! (0) | 2010/01/12 |
| Skinning Animation Using VertexShader (0) | 2010/01/11 |
| 스키닝 구현중 2 (0) | 2010/01/09 |
| 스키닝 메쉬 재구현중.. (2) | 2010/01/08 |


댓글을 달아 주세요