c# - 在离屏位图上应用像素着色器

标签 c# .net-3.5 image-processing shader

我目前正在尝试使用随 .net 3.5 sp1 引入的 PixelShaders 来提高图像处理性能。一切都快得多,但直到我才将效果应用于我的 wpf 表单中的某些元素,我实际上想要避免。

我们有很多图像处理功能,我想用像素着色器逐个替换其他功能以获得一些性能。 有没有办法将这样的像素着色器应用于 ImageSource 而无需显示它?

最佳答案

在 C++/DirectX 中通常做的是:

准备(完成一次)

  • 使用 CreateRenderTarget 创建渲染目标
  • 使用 CreateOffscreenPlainSurface 创建离屏表面
  • 使用 SetRenderTarget 设置渲染目标表面
  • 创建所需的任何其他输入资源(纹理、顶点缓冲区...)

渲染(多次完成)

  • 根据需要更新输入资源(纹理、缓冲区)
  • 渲染
  • 通过GetRenderTarget将渲染目标的内容复制到离屏表面
  • 锁定屏幕外表面并在 CPU 上读取其内容

关于c# - 在离屏位图上应用像素着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/295337/

相关文章:

c# - 在另一个页面中嵌入带有 silverlight 应用程序的 aspx 页面

c# - 释放 WPF 图像控件的缓存

c# - 将数据传递给 .net Web 服务并取回结果?

c# - 是否可以在 FileSystemWatcher 上设置间隔?

C# 到 VB.Net : Why does this fail to compile when converted to VB?

c# - 使用 File.ReadAllText 的静态字符串

c# - 如何获取文本文件中同一字符串的最后两次出现 C#

java - 获取图像的一部分

c++ - 哪里可以下载 BOOST 通用图像库的数字扩展

matlab - 生成量化矩阵