gpt4 book ai didi

c++ - Direct2D 渲染 CPU 使用率

转载 作者:行者123 更新时间:2023-11-30 05:29:29 24 4
gpt4 key购买 nike

我有一个用 C++ 编写的 Direct2D native 应用程序。渲染函数每秒调用大约 60 次,旨在显示大约 1,000 个图形几何图形(基本上是椭圆)。以下是渲染函数的代码:

void Render()
{
pRenderTarget->BeginDraw();
pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::Black));

const auto transform = D2D1::Matrix3x2F::Identity();
pRenderTarget->SetTransform(transform);

// draw all entities
for (auto& e : entities)
{
if (e)
e->Draw(pRenderTarget, transform);
}

pRenderTarget->EndDraw();
}


void Entity::Draw(ID2D1RenderTarget* pTarget, const D2D1_MATRIX_3X2_F& worldTransform) const
{
pTarget->SetTransform(transform * worldTransform);
pTarget->FillEllipse(ellipse, pBrush);
pTarget->SetTransform(worldTransform);
}

画笔、椭圆和变换是在开始时创建的(实体构造器)。

我的问题是,使用这些参数,我的 CPU 始终在 8/9% 左右是否正常。我期望值接近 0(如果我注释渲染函数,CPU 使用率下降到 0,即使更新函数,例如,总是被调用)。

最佳答案

如果您的几何图形是静态的(不会改变每一帧),请查看使用 geometry realizations .这应该会显着降低渲染大量图元的 CPU 成本。如果您需要更高的性能,您也可以尝试使用 sprite batch ;这可能是渲染大量形状的最快方法,前提是您可以将形状存储在位图中并且不需要按图元抗锯齿。

关于c++ - Direct2D 渲染 CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36371596/

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