卸载到HLSL / GPU而不显示?

时间:2010-04-19 06:43:15

标签: c# silverlight gpu hlsl perlin-noise

据我所知,在GPU上作为像素着色器完成时,某些数学函数(如FFT和perlin噪声等)可以快得多。我的问题是,如果我想利用它来计算结果并流式传输到位图,我可以在不需要在Silverlight中实际显示它的情况下进行吗?

更具体地说,我正在考虑将此用于大型地形生成,涉及大量的perlin和其他噪声,以及高通过等后处理以及从高度图等导出法线等。

2 个答案:

答案 0 :(得分:1)

简短的回答是肯定的。更长的答案是你可以设置(例如)纹理作为渲染目标,将结果存放在那里。

除非您真的开始使用着色器进行计算,否则您可能需要考虑使用实际为此类工作设计的内容,例如Cuda或OpenCL。

答案 1 :(得分:0)

这是一个很好的问题。

可以使用WriteableBitmap及其Render方法的实例呈现可以显示的任何内容。您可以使用Pixels字节数组属性访问输出。

然而(假设开启GPU加速并且内容被适当标记以利用GPU)这样的渲染是否会在转到WriteableBitmap而不是显示时实际使用GPU不知道。