Как применить несколько эффектов шейдера к DrawingVisual? - PullRequest
0 голосов
/ 08 января 2020

Я получил объект DrawingVisual (dv) и нарисовал изображение после сложного преобразования в DrawingContext (d c). После d c .Close () я хочу запустить несколько шейдерных эффектов для объекта dv. Сначала настраиваемый оттенок, затем эффект размытия. Позже я хотел бы добавить коррекцию яркости, насыщенности и т. Д. c. Как я могу применить эффекты? DrawingVisual допускает только один эффект. Можно ли вложить его в другой объект и применить к нему второй эффект? Тогда новое гнездо, третий эффект, et c? Или что-то подобное? Конечный объект - после эффектов - должен быть источником RenderTargetBitmap Render () в конце.

Код за деталью:

DrawingVisual dv = new DrawingVisual();
DrawingContext dc = dv.RenderOpen();
...
dc.DrawImage(...);
dc.Close();

[Apply Effects Required]

BitmapSource render = dv.RenderVisualAsBitmap(...); // custom RenderTargetBitmap rendering

С уважением, Золтан

1 Ответ

1 голос
/ 08 января 2020

Вы можете использовать вложенные ContainerVisuals:

1002 *
...