WPF中的快速像素绘制

Gig*_*igi 8 c# wpf raytracing

我想用WPF编写一个简单的光线跟踪器.这是一个学习项目,因此我赞成对性能的可配置性(否则我会选择C++).

我仍然想要相对较快的像素绘制.关于StackOverflow 的上一个问题包含通过获取GDI位图在WPF中实现此目的的代码.从我对Windows编程的了解相对较少,

  1. GDI很慢
  2. DirectX很快
  3. WPF下面使用DirectX(不知道WPF的哪些部分)

是否可以通过WPF Canvas(或类似)使用DirectX(而不是GDI)获得像素级访问?

如果可能的话,我还会考虑在WPF窗口(以及其他WPF控件)中合并DirectX API调用的建议.

提前致谢.

Kie*_*one 5

有趣的是,但通过光线追踪,将像素写入屏幕将(应该)不是缓慢的部分.但是,您可以将其WriteableBitmap用于此目的.对于你想要的东西来说,它当然足够快.

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx

(有关信息,我在这个emu/IDE中使用它 - http://0x10c-devkit.com/ - 它可以刷新低分辨率显示器,具有出色的性能.在github存储库LEM1802插件上有源代码. )

啊,这一点:https://github.com/kierenj/0x10c-DevKit/blob/master/PluginAPI/NyaElektriska.LEM1802/GPU.cs - 请参阅UpdateDisplay.