Поделиться через


Размытие движения (Direct3D 9)

Вы можете повысить воспринимаемую скорость объекта в трехмерной сцене, размывая объект и оставляя за объектом размытый след изображений объектов. Приложения Direct3D выполняют эту задачу, отрисовывая объект несколько раз на кадр.

Помните, что приложения Direct3D обычно преобразовывает сцены в буфер вне экрана. Содержимое буфера отображается на экране, когда приложение вызывает метод IDirect3DDevice9::P resent . Приложение Direct3D может несколько раз отрисовыть объект в сцене перед отображением кадра на экране.

Программным способом приложение выполняет несколько вызовов метода DrawPrimitive, многократно передавая один и тот же трехмерный объект. Перед каждым вызовом положение объекта немного обновляется, создавая ряд размытых изображений объектов на целевой поверхности отрисовки. Если объект имеет одну или несколько текстур, приложение может улучшить эффект размытия движения, отрисовав первое изображение объекта со всеми его текстурами почти прозрачными. Каждый раз при отрисовки объекта прозрачность текстуры объекта уменьшается. Когда приложение отрисовывает объект в его окончательном положении, оно должно отображать текстуры объекта без прозрачности. Исключением является добавление размытия движения в другой эффект, требующий прозрачности текстуры. В любом случае начальное изображение объекта в кадре должно быть максимально прозрачным. Окончательное изображение должно быть наименее прозрачным.

После отрисовки ряда изображений объектов на целевой поверхности отрисовки и отрисовки остальной части сцены приложение должно вызвать метод IDirect3Device9::P resent для отображения кадра на экране.

Если приложение имитирует эффект перемещения пользователя по сцене на высокой скорости, оно может добавить размытие движения ко всей сцене. В этом случае приложение отрисовывает всю сцену несколько раз за кадр. Каждый раз при отрисовки сцены приложение должно слегка перемещать точку просмотра. Если сцена очень сложная, пользователь может увидеть заметное снижение производительности, так как ускорение увеличивается из-за увеличения числа отрисовок сцены на кадр.

Сглаживание (антиальясинг)