WPF - Рендеринг текста в Viewport3D - PullRequest
1 голос
/ 01 июня 2010

Я хочу представить до 300 строк (всего несколько слов) в Viewport3D - быстро! Я хочу визуализировать их в разных положениях Z и плавно увеличивать и уменьшать масштаб.

Способы визуализации текста в Viewport3D, которые я нашел до сих пор:

  • Поместить текстовый блок в Viewport2DVisual3D.
  • Класс этого парня PlanarText.
  • Класс SolidText того же парня.
  • Создайте мою собственную 2D панель и выровняйте на ней TextBlocks. Вызывайте InvalidateArrange () каждый раз, когда я обновляю положение камеры.

Все они чрезвычайно медленные и далеки от плавного масштабирования даже с 10 строками. У кого-нибудь есть решение по этому удобству? Должна быть возможность рендерить некоторый текст в Viewport3D без секунд ожидания!

1 Ответ

1 голос
/ 05 июня 2010

Вы пытались использовать 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>
...