directx11为DrawLine 2d添加发光

时间:2017-04-26 06:49:14

标签: c++ directx direct2d

我正在绘制一条2d线,我将如何为其添加发光效果?

auto renderer::draw_line(point<float> const& start_point, point<float> const& end_point, float const stroke_width, color const& stroke_color) -> void {

    brush->SetColor(D2D1::ColorF(stroke_color.r, stroke_color.g, stroke_color.b, stroke_color.a));

    device_context_d2d1->DrawLine(
        D2D1::Point2F(start_point.x + offsetX, start_point.y + offsetY),
        D2D1::Point2F(end_point.x + offsetX, end_point.y + offsetY),
        brush.get(), stroke_width
    );

}

我认为这个函数有一些东西

ID2D1Effect* shadowEffect;
device_context_d2d1->CreateEffect(CLSID_D2D1Shadow, &shadowEffect);

1 个答案:

答案 0 :(得分:0)

您可以将Gaussian blur effect(实际上用于阴影效果),然后(可选)apply Brightness effect应用于模糊图像,然后最终在原始线条图像上绘制模糊图像。

blurred line