1

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

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

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

所有这些都非常缓慢,即使只有 10 根弦也无法流畅地缩放。有没有人有这个方便的解决方案?必须可以在 Viewport3D 中渲染一些文本而无需等待几秒钟!

4

1 回答 1

2

您是否尝试过使用 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>
于 2010-06-05T06:13:24.317 回答