Vb.net 使用GDI+提高性能;

Vb.net 使用GDI+提高性能;,vb.net,bitmap,gdi+,gdi,Vb.net,Bitmap,Gdi+,Gdi,作为一项挑战,我计划纯粹在VisualStudio中制作一个游戏(使用Visual Basic),但在过去,我注意到GDI+并不是最好的渲染工具,但不管它是什么,它都是可以的 使用GDI+时,我应该使用和不使用哪些设置?以下是我的假设: InterpolationMode=Drawing2D.InterpolationMode.nearestneighbork此选项渲染速度最快是合理的。 PixelOffsetMode=Drawing2D.PixelOffsetMode.Half这似乎必须与最

作为一项挑战,我计划纯粹在VisualStudio中制作一个游戏(使用Visual Basic),但在过去,我注意到GDI+并不是最好的渲染工具,但不管它是什么,它都是可以的

使用GDI+时,我应该使用和不使用哪些设置?以下是我的假设:

  • InterpolationMode=Drawing2D.InterpolationMode.nearestneighbork
    此选项渲染速度最快是合理的。
  • PixelOffsetMode=Drawing2D.PixelOffsetMode.Half
    这似乎必须与最近的邻居一起使用。
  • CompositingQuality=?
    我不确定这一点。
  • CompositingMode=?
    再说一遍,我说不出来。
  • SmoothingMode=Drawing2D.SmoothingMode.None
    指定无平滑模式可能运行得最快。
  • SetClip(ClientRectangle)
    将其设置为剪辑是有意义的,这样图形就不会在窗体或控件之外绘制。
我的下一点:我注意到,在
私有子表单1_Paint(发送者作为对象,e作为PaintEventArgs)中添加所有图形代码的速度总是最快的。
在该空白中执行类似操作有什么好处吗:(创建一个临时位图并将其绘制到屏幕上。)

使用B作为新位图(ClientSize.Width、ClientSize.Height、Imaging.PixelFormat.Format32bppPArgb) 使用G作为Graphics=Graphics.FromImage(B) '在位图上绘制对象。 终端使用 e、 Graphics.DrawImage(B,0,0) 终端使用 我这样问是因为我注意到在创建位图时,可以指定
Imaging.PixelFormat
。是否有一种格式的渲染速度比其他格式快

提前感谢大家的帮助


~Nic

帮自己一个忙,使用XNA或Monogame之类的游戏套件……我相信
32bppPArgb
已经证明速度相当快(p表示它使用预乘alpha)。 Using B As New Bitmap(ClientSize.Width, ClientSize.Height, Imaging.PixelFormat.Format32bppPArgb) Using G As Graphics = Graphics.FromImage(B) ' Draw objects onto the bitmap. End Using e.Graphics.DrawImage(B, 0, 0) End Using