WPF - 在 Viewport3D 中渲染文本

发布于 2024-09-03 14:34:56 字数 490 浏览 7 评论 0原文

我想在 Viewport3D 中呈现最多 300 个字符串(只是几个单词) - 速度很快!我想将它们渲染在不同的 Z 位置并流畅地放大和缩小。

到目前为止,我发现在 Viewport3D 中渲染文本的方法:

  • 将 TextBlock 放入 Viewport2DVisual3D 中。
  • 这家伙的 PlanarText 类。
  • 同一个人的 SolidText 类。
  • 创建我自己的 2D 面板并在其上对齐 TextBlock。每次更新相机位置时调用 InvalidateArrange() 。

所有这些都非常慢,即使仅使用 10 根字符串也无法流畅地缩放。 有人有这个方便的解决方案吗?必须能够在 Viewport3D 中渲染一些文本,而无需等待几秒钟!

I want to present up to 300 strings (just a few words) in a Viewport3D - fast! I want to render them on different Z positions and zoom in and out fluently.

The ways I have found so far to render text in a Viewport3D:

  • Put a TextBlock in a Viewport2DVisual3D.
  • This guy's PlanarText class.
  • The same guy's SolidText class.
  • Create my own 2D panel and align TextBlocks on it. Call InvalidateArrange() every time I update the camera position.

All of these are extremely slow and far apart from zooming fluently even with 10 strings only.
Does anyone have a solution for this handy? It's got to be possible to render some text in a Viewport3D without waiting seconds!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淡淡の花香 2024-09-10 14:34:56

您是否尝试过使用 VisualBrush 作为每个 GeometryModel3D 的材质?

像这样的事情:

<GeometryModel3D>
  <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 1,0,0 1,1,0 0,1,0" TriangleIndices="0,1,2 2,3,0" />
  </GeometryModel3D.Geometry>
  <GeometryModel3D.Material>
    <VisualBrush ...>
      <VisualBrush.Visual>
        <TextBlock Text="Some text here" />
      </VisualBrush.Visual>
    </VisualBrush>
   </GeometryModel3D.Material>
 </GeometryModel3D>

Have you tried using a VisualBrush as the material for each GeometryModel3D?

Something like this:

<GeometryModel3D>
  <GeometryModel3D.Geometry>
    <MeshGeometry3D Positions="0,0,0 1,0,0 1,1,0 0,1,0" TriangleIndices="0,1,2 2,3,0" />
  </GeometryModel3D.Geometry>
  <GeometryModel3D.Material>
    <VisualBrush ...>
      <VisualBrush.Visual>
        <TextBlock Text="Some text here" />
      </VisualBrush.Visual>
    </VisualBrush>
   </GeometryModel3D.Material>
 </GeometryModel3D>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文