繁体   English   中英

使用SlimDX绘制2D

[英]Drawing 2D with SlimDX

您好我在使用SlimDX正确渲染精灵时遇到问题。 它绘制了一个小缩放,就像.NET绘图DrawImageUnscaled一样。 我没有使用任何转换。

在里面:

Vector2 position;
Sprite sprite;
Size size;
Texture texture;
sprite = new Sprite(Device);
string filename = /*some bitmap*/;
using (Image b = Bitmap.FromFile(filename))
  size = b.Size;

position = new Vector2(550, 230);
texture = Texture.FromFile(Device, filename);

渲染:

Device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0);
Device.BeginScene();
sprite.Begin(SpriteFlags.None);
sprite.Draw(texture, new Vector3(size.Width / 2, size.Height / 2, 0), new Vector3(position, 0), Color.White);
sprite.End();
Device.EndScene();

编辑:如果你不知道如何想象错误的渲染,这里是我得到的渲染和参考(忽略那种白色,它只是透明的PNG)。 注意第一个图像缩放如何错误 更正

是否有可能您的图形卡在绘制NPOT纹理时出现问题(非2次幂)。 如果是这样,请将纹理大小增加到下一个POT。 这为我解决了许多绘图问题(也使用SlimDX)。

顺便说一下......我也使用SlimDX进行2D渲染,但没有使用精灵,而是将所有东西都画成“基元”并使用顶点缓冲区。 也许这也可以是一种选择

初始化精灵时添加alpha混合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM