gpt4 book ai didi

c# - 使用 SlimDX 绘制 2D

转载 作者:行者123 更新时间:2023-11-30 14:44:07 27 4
gpt4 key购买 nike

您好,我在使用 SlimDX 正确渲染 Sprite 时遇到了问题。它的绘制有点像 .NET Drawing 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)。注意第一张图片是如何缩放的 Wrong Correct

最佳答案

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

顺便说一句...我也使用 SlimDX 进行 2D 渲染,但没有使用 Sprite ,而是将所有东西绘制为“基元”并使用顶点缓冲区。也许这也是一种选择

关于c# - 使用 SlimDX 绘制 2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/841873/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com