3D-графика Direct3D поверх 2D-спрайтов

В приложении Direct3D, над которым я работаю, мне нужно визуализировать систему частиц (точечные спрайты) поверх 2D-спрайтов. Двухмерные спрайты рисуются с помощью объекта LPD3DXSPRITE с методом Draw. Частицы рисуются в трехмерной перспективе, и мне нужно, чтобы они были наложены поверх двухмерных спрайтов. Моя проблема в том, что фоновый спрайт, который я визуализирую для фона игры, покрывает точечные спрайты в трехмерной перспективе. Если я удалю фоновое изображение, я вижу точечные спрайты.

Как я могу разместить точечные спрайты поверх фонового изображения? Спасибо.


person Nitrex88    schedule 23.02.2011    source источник


Ответы (1)


Отключите запись z (ZWRITEENABLE, если вы используете D3D9) нарисуйте спрайт. Затем нарисуйте свою систему частиц как обычно (что может включать или не включать включение записи Z), и она будет рисоваться поверх спрайта.

person Goz    schedule 26.02.2011
comment
в этом случае проблема была не в этом. Когда я вызвал метод Begin D3DXSPRITE, я не передал ему параметр, который помещает спрайт в объектное пространство. Изменение этого позволило мне использовать спрайт так, как мне нужно. - person Nitrex88; 28.02.2011