[데브루키] FOG3. FOG 개념
• 3D 장면을 구성하는 가상 카메라에서, 멀리 있
는 오브젝트는 포그의 색상에 가깝게 만들고 가
까운 오브젝트는 물체를 선명하게 보이게 하는
기법.
흡수작용 - 입자에 가로막히는 빛
외산란 - 다른 방향 으로 반산 되는 빛
내산란 - 광선을 따라 반사된 다른 방향 의로 부터의 빛
4. FOG 효과
• 현실감 상승.
• 게임의 몰입도 극대화.
• 랜더링 속도의 향상.
• 갑자기 오브젝트가 나타나는 부자연 스러
움 방지.
14. D3D FOG
• 정점 포그
• 픽셀 포그
• 다각형의 각 정점에 포그 계산을 적용한다.
• Rasterize 때 다각형의 면에 결과를 보간 한다.
• 고정파이프라인에서 처리되어 진다.
15. D3D FOG
• 정점 포그
• 픽셀 포그
• SetRenderState(D3DRS_FOGENABLE, TRUE);
• SetRenderState(D3DRS_FOGCOLOR, Color);
• SetRenderState(D3DRS_FOGVERTEXMODE, Mode);
16. D3D FOG
• 정점 포그
• 픽셀 포그
• 픽셀단위로 포그 계산을 한다.
• 포그 계수를 사전에 계산된 참조테이블을 이용하기 때문
에 테이블 포그 라고도 부른다.
• 정점포그 보다 더 컬리티가 높다.
• 장치 드라이브가 처리한다.
17. D3D FOG
• 정점 포그
• 픽셀 포그
• SetRenderState(D3DRS_FOGENABLE, TRUE);
• SetRenderState(D3DRS_FOGCOLOR, Color);
• SetRenderState(D3DRS_FOGTABLEMODE, Mode);
18. C = f * 폴리곤 색상 + ( 1 - f ) * 포그색상
f = 포그 계수 (1.0 ~ 0.0)
( 1.0 = 투명하다 0.0 = 탁하다)
- f의 계산 방식에 따라서 시각적으로 다양
한 효과를 얻을 수 있다.
19. F 를 구하는 방법?
• 선형포그
• 지수포그
• 지수제곱포그
20. 선형 FOG
• 안개 구현 중 가장 간단하다
• 해당하는 거리에 걸쳐서 안개 입자가 균등하게 분포되어
있다.
• 시작 값과 종료 값으로 안개를 조절한다.
21. • start - FOG 가 시작되는 거리.
• end - FOG 가 증가하지 않는 거리.
• d - 시점으로부터의 거리.
22. D3D 선형FOG
• SetRenderState(
• D3DRS_FOGVERTEXMODE, Mode );
• SetRenderState(
• D3DRS_FOGSTART, *(DWORD *)(&Start) );
• SetRenderState(
• D3DRS_FOGEND, *(DWORD *)(&End) );
• //D3DFOG_LINEAR
25. • e - 자연대수의 바닥 ( 약 2.71828)이다.
• density - 0.0 ~ 1.0 의 범위의 임의의 FOG 밀도이다.
• distance - 즉 시점으로부터의 거리를 나타낸다.
29. • e - 자연대수의 바닥 ( 약 2.71828)이다.
• density - 0.0 ~ 1.0 의 범위의 임의의 FOG 밀도이다.
• density - 즉 시점으로부터의 거리를 나타낸다.