Direct3D 지형시스템 라이트맵 생성 작업
Programming/DirectX / 2009/07/20 18:46
기존에 작업했던 버텍스 노멀 구하기에서 약간의 문제가 있었습니다.
노멀을 구하기 위해 3개의 정점을 이용했는데 한쪽방향으로만 해놨더니 모서리 부분에서 정점 하나가 부족해서리..
그냥 맨 끝쪽만 계산을 안하고있었습니다..
그렇게 놔두다가 보기 흉하고 해서 모서리부분만 정점을 이 전 줄에서 하나씩 빼오고 역벡터로 취해줌으로써 간단하게 예외처리를 해놓았습니다..
빛의 방향을 벡터값으로 정해놓고 여지껏 구했던 버텍스들의 노멀값과 내적을 통해서 음영을 구해줍니다..
DirectX 기본라이브러리에 있는 Directional Light 도 이 방법일 것 같네요...
그림자가 버텍스단위로 너무 딱딱 끊겨서 이상하기에 라이트맵에 블러를 주었습니다.
하지만 음영의 레벨값 차이가 너무 강하죠.. 어두운곳은 너무 어둡고 밝은곳은 너무 밝고....
그래서 이와같이 레벨값을 조정해주었습니다.
왼쪽의 결과가 나오기 위해선
기존의값 / 2.0f + 127.0f / 255.0f 의 공식을 사용해주었고
오른쪽의 결과는
기존의값 / 3.0f + 150.0f / 255.0f 의 공식을 사용하였습니다.
( 색상값의 범위 0.0 ~ 1.0 에 1.0 흰색 기준입니다. )
오른쪽 결과에선 너무 밝아서 사라졌었던 부분의 그림자 디테일도 살아났네요..
조금씩 레벨값을 조정하면서 최대한 실사에 근접한 공식값을 찾아봐야겠군요..ㅎㅎ
'Programming > DirectX' 카테고리의 다른 글
| Direct3D 지형시스템 만들기 : 멀티텍스쳐링 + 안개 (0) | 2009/07/25 |
|---|---|
| Direct3D 지형 시스템 만들기 : 라이트맵 적용 + 버텍스 블러링 (0) | 2009/07/20 |
| Direct3D 지형시스템 라이트맵 생성 작업 (0) | 2009/07/20 |
| Direct3D 지형시스템 버텍스 노멀 계산 추가 (0) | 2009/07/18 |
| Direct3D 지형시스템 구현중 2 (0) | 2009/07/17 |
| Direct3D 지형 시스템 구현중 (0) | 2009/07/16 |


댓글을 달아 주세요