DirectX Graphics 프로그래밍 가이드 고도의 주제 픽셀 파이프라인 anti-aliasing 모션 블러   [목차열람] [주소복사] [슬롯비우기]
모션블러
 
Microsoft DirectX 9.0

모션블러


3D 장면에서 파악되는 개체의 속도는 개체를 흐릿하게 하여, 개체 뒤쪽에 개체 이미지의 흐릿한 자취를 남겨서 높일 수가 있다. Microsoft® Direct3D® 애플리케이션은, 프레임 마다 개체를 여러 차례 렌더링 해, 이것을 실현한다.

보통, Direct3D 애플리케이션은 장면(scene)를 오프 스크린 버퍼에 렌더링 하는 것을 생각해 내면 좋겠다. 버퍼의 내용은, 애플리케이션으로 IDirect3DDevice9::Present 메서드를 호출했을 때에 스크린에 표시된다. Direct3D 애플리케이션은, 스크린에 프레임을 표시하기 전에 개체를 장면(scene)에 여러 차례 렌더링 할 수 있다.

애플리케이션으로 DrawPrimitive 메서드에의 호출을 여러 차례 실시해, 같은 3D 개체를 반복해 건네준다. 각각의 호출전에, 개체의 위치 좌표를 조금 갱신해, 타겟 렌더링 표면상에 일련의 불선명한 개체 화면을 생성한다. 개체가 1 개 또는 복수의 텍스처를 가지고 있는 경우, 텍스처 모든 것을 거의 투명하게 해 개체의 최초의 화면을 렌더링 하면, 모션블러 이펙트를 높일 수가 있다. 개체를 렌더링 할 때마다, 개체의 텍스처의 투명도가 감소한다. 최종 위치 좌표로 개체를 렌더링 할 때는, 투명도없이 개체를 렌더링 하는 것. 예외는, 텍스처의 투명도를 필요로 하는 다른 이펙트에 모션블러를 추가하는 경우이다. 어느 경우에서도, 프레임의 개체의 최초의 화면이 가장 투명해야 한다. 마지막 화면의 투명도가 가장 낮지 않으면 안 된다.

타겟 렌더링 표면에 일련의 개체 화면을 렌더링 해, 나머지의 장면(scene)도 렌더링 하면IDirect3DDevice9::Present 메서드를 호출해 스크린에 프레임을 표시한다.

사용자가 장면(scene)를 고속으로 이동하는 이펙트를 시뮬레이션 하는 경우는, 스크린 전체에 모션블러를 추가할 수 있다. 이 경우, 애플리케이션은, 프레임 마다 장면(scene) 전체를 여러 차례 렌더링 한다. 장면(scene)를 렌더링 할 때마다, 시점을 조금 이동해야 한다. 장면(scene)가 매우 복잡한 경우, 프레임마다 장면(scene)의 렌더링 회수가 증가하므로, 고속으로 이동하는 장면(scene)(정도)만큼 퍼포먼스가 저하하는 것이 사용자에 안다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP