gpt4 book ai didi

directx - 线的 Direct2D/DirectX 光栅化规则

转载 作者:行者123 更新时间:2023-12-04 15:57:16 32 4
gpt4 key购买 nike

我已经阅读了关于 DirectX 光栅化规则的在线文档,但我仍然不明白为什么这段代码没有在屏幕上产生任何可见的东西?

target->SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
target->DrawLine(D2D1::Point2F(0.f, 0.f), D2D1::Point2F(10.f, 0.f), redBrush, 1.f);

当然,如果我将两个线点的 y 从 0.0f 更改为 1.0f,我会在 Window 客户区的左上角看到一条可见的水平线,但我想了解这里涉及的原则。我无法从可用文档中找出它们。

最佳答案

你应该在“像素中间”画线:

target->DrawLine(D2D1::Point2F(0.0f, 0.5f), D2D1::Point2F(10.f, 0.5f), redBrush, 1.f);

否则,如果您不使用抗锯齿,您的线可以绘制在 0/0...10/0 线的任一侧。在您的情况下,它被绘制在窗口 Canvas 之外。

请注意,屏幕上的像素实际上是一个坐标为 D2D1::Point2F(0.0f, 0.0f)D2D1::Point2F(1.0f, 1.0f)

D2D1::Point2F(0.5f, 0.5f) 是该矩形的中心。如果围绕该坐标绘制 1x1 矩形,它将精确覆盖像素。

关于directx - 线的 Direct2D/DirectX 光栅化规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51352532/

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