DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 텍스처 텍스처 혼합 알파 텍스처 혼합   [목차열람] [주소복사] [슬롯비우기]
알파 텍스처 혼합
 
Microsoft DirectX 9.0

알파 텍스처 혼합


Microsoft® Direct3D® 에서는, 기본도형를 렌더링 할 때 기본도형의 머트리얼 또는 그 정점의 색, 조명 정보에 근거해 기본도형의 색을 생성한다. 더 자세한 정보는, 「라이트와 머트리얼」을 참조할것. 애플리케이션으로 텍스처 혼합이 유효하게 되어 있는 경우, Direct3D 는 처리된 다각형의 픽셀색의 값을, 이미 frame buffer에 저장 되고 있는 픽셀과 조합해야 한다. Direct3D 에서는, 다음 공식을 사용해, 기본도형의 화면의 각 픽셀에 대한 최종색을 결정한다.

FinalColor = TexelColor × SourceBlendFactor + PixelColor × DestBlendFactor

이 공식에서,FinalColor 는, 타겟 렌더링 표면에 출력되는 마지막 픽셀색이다. TexelColor 는, 현재 픽셀에 대응하는 입력색값 (텍스처 필터링 후)을 나타낸다. Direct3D 로 텍셀을 픽셀에 맵핑 하는 방법의 더 자세한 정보는, 「텍스처 필터링」을 참조할것. SourceBlendFactor 는, 마지막에 적용하는 입력색값의 비율을 결정하기 위해서(때문에) Direct3D 가 사용하는 계산값이다. PixelColor 는, 기본도형의 화면내에 현재 저장 되고 있는 픽셀의 색이다. DestBlendFactor 는, 마지막에 렌더링 되는 픽셀로 사용되는 현재 픽셀의 색의 비율을 나타낸다. SourceBlendFactorDestBlendFactor 의 값의 범위는, 0.0 으로 1.0 을 포함한 0.0 ~ 1.0 이다.

위에의 공식으로부터 알도록(듯이),SourceBlendFactor 가 D3DBLEND_ONE 으로 DestBlendFactor 가 D3DBLEND_ZERO 의 경우, 마지막에 렌더링 되는 픽셀은 투명도가 없는 것으로서 렌더링 된다. SourceBlendFactor 가 D3DBLEND_ZERO 로 DestBlendFactor 가 D3DBLEND_ONE 의 경우는, 텍스처는 완전하게 투명하게 된다. 이러한 계수에 상기 이외의 값을 설정했을 경우는, 마지막에 렌더링 되는 픽셀은 어느 정도의 투명성이 있는 색과 블렌드 된다.

텍스처 필터링 후는, 모든 픽셀색값은, 적색·녹색·청색의 색값을 가지고 있다. 디폴트에서는, Direct3D 는 D3DBLEND_SRCALPHA 를 SourceBlendFactor 으로서 D3DBLEND_INVSRCALPHA 를 DestBlendFactor 로서 사용한다. 따라서, 애플리케이션에서는, 텍스처의 알파값을 설정하는 것으로 처리된 픽셀의 투명도를 제어할 수 있다.

C++ 로 개발하는 애플리케이션에서는, D3DRS_SRCBLEND 및 D3DRS_DESTBLEND 렌더링 스테이트를 사용해 혼합 계수를 제어한다. IDirect3DDevice9::SetRenderState 메서드를 호출해, 제 1 인수의 값으로 렌더링 스테이트값의 어느쪽이든을 건네준다. 제 2 인수는 D3DBLEND 열거형의 멤버가 아니면 안된다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP