'재미있는거/다이렉트x9.0'에 해당되는 글 5건
- 다이렉트X 9.0 실습..1 2 2008.11.24
- directx9.0 합성 종류 1 2008.11.02
- 3DMAX7.0를 x.file로 변경 하는 방법 2008.11.01
- directx9.0 중요함수들 2008.11.01
- directx9.0 비주얼스튜디오6.0 에서 설치방법 2 2008.11.01
합성 하는 이미지
선형 합성
이미 그려진 색과 지금부터 렌더링 하려고 하는 폴리곤의
색을 다음과 같은 비율로 합성
최종색 = (1 - α) * 바닥색 * α * 덮일색.
α(opacity)
0 ~ 0xff 까지 0x7f 이면 50% : 50% 로 표현됨
정점의 α 값에 따라서 합성되는 강도가 바뀜
덧셈 합성
최종색 = 바닥색 + α * 덮일색
α 의 값이 커지는 것 만큼 , 위에 그려지는 폴리곤을 강하게 합성됨
폴리곤을 여러 번 합치면 백색화면이 됨
게임에서 빛의 눈부심을 표현하기 위하여 많이 사용
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
뺄셈 합성
최종색 = 바닥색 - α * 덮일색
폴리곤을 여러 번 합치면 검은화면이 됨
SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_REVSUBTRACT);
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
그림자 표현에 많이 쓰임
곱셈합성
최종색 = 바닥색 * 덮일색
SetRenderState (D3DRS_DESTBLEND, D3DBLEND_SRCCOLOR);
SetRenderState (D3DRS_SRCBLEND, D3DBLEND_ZERO);
제곱 합성
어두운 곳은 더 어둡게 하고 밝은 곳은 더 밝게 !
최종색 = 바닥색 * 바닥색
바닥색을 제곱해서 색의 채도를 강조.
제곱 합성은 렌더링 하는 폴리곤의 색이나 알파값에 영향을 받지 않음
폴리곤을 입혀 렌더링해도 텍스쳐는 효과를 미치지 않음
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_DESTCOLOR);
SetRenderState (D3DRS_SRCBLEND, D3DBLEND_ZERO);
네거티브 포지티브 반전
흰 폴리곤을 렌더링하면, 검은 부분은 희게, 흰 부분은 검게
최종색 = 바닥색 * 바닥색
게임에서 충격을 받은 표정 등에 사용됨
SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ZERO);
SetRenderState (D3DRS_SRCBLEND, D3DBLEND_INVDESTCOLOR);
위 그림들은 이미지 하나를 반투명 상태로 합성시켰기때문에 반투명 상태를 하지 않고 했을때는 조금 틀린결과가
나타날수 있어요~
위의 모든 설정은 RestoreDeviceObjects() 함수 안에서 실행되요.
1. 위의 파일을 다운 받는다.
2. 3DMAX7.0 폴더 안에 있는 플러그 인에 저장한다.
3. 3DMAX7.0을 실행시키고 임포트를 누른뒤 파일 익스포트 시킬 파일 확장자를 찾고 x파일로 임포트 시킨다.
마지막으로 중요한것은 마지막 옵션에서 디렉토리 설정을 맨위 상위 파일로 올려줘야되는것이다.~~
설정해준게 맨위로 해주지 않으면 다이렉트x는 실행되지 않는다.