Рендеринг DirectX 3D-графики непосредственно на изображение с использованием C # - PullRequest
1 голос
/ 08 декабря 2010

Проект, над которым я работаю, требует возможности трансформировать любой из 4 углов изображения.Поскольку GDI +, к сожалению, не имеет этой возможности, мы прибегаем к использованию 3D-графики DirectX.

Хотя у меня есть квадратная сетка с текстурой, которая успешно отображается на экране, мне нужно иметь возможность генерировать изображениеиз этого рендеринга, с фоном, установленным на прозрачный.Есть ли способ эффективно достичь этого?

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

Редактировать :

На самом деле, я только что понялпрозрачный фон строго не нужен, но это немного помогло бы производительности нашего проекта.

В любом случае, мне повезло, что-то подобное, но это слишком медленно.Возможно, есть лучший метод?

// Create a surface to render an image to
Surface mSurface = mDevice.GetRenderTarget(0);

// Render the visualization
mDevice.Clear(ClearFlags.Target, Color.Transparent, 1.0f, 0);
mDevice.BeginScene();

/* Do some amazing stuff */

// Exit rendering
mDevice.EndScene();
mDevice.Present();

// Render the bitmap images
GraphicsStream mGraphics = SurfaceLoader.SaveToStream(
        ImageFileFormat.Bmp, mSurface);
Image mImage = new Bitmap(mGraphics, false);

1 Ответ

0 голосов
/ 09 декабря 2010

Что ж, если вы используете D3D для окончательного рендеринга на экран, вы можете легко сделать то, о чем вы говорите, используя рендер-текстуру.

...