【问题标题】:Draw text on a 3D plane sharpDX在 3D 平面上绘制文本 sharpDX
【发布时间】:2017-11-21 22:55:16
【问题描述】:

我搜索并没有找到这样做的方法。 我想在 HoloLens 应用程序中使用 sharpDX 将标签附加到 3D 对象。

有人知道怎么做吗?

谢谢

编辑: 所以我决定将文本转换为图像,然后将其作为纹理放在由 2 个三角形网格组成的平面上。 所以现在我尝试了这段代码: https://gist.github.com/naveedmurtuza/6600103

但不能包含引用,我该如何解决?

谢谢

【问题讨论】:

    标签: c# sharpdx hololens


    【解决方案1】:

    几年前我使用 SharpDx 编写了一个游戏,这是它的视频:

    https://www.youtube.com/watch?v=tDRmIY6-8Z4

    如果我理解正确的话,你想要我用来解释游戏元素的 3D 文本吗?如果是这样,您可能会从以下源代码中获得一些想法:

    protected override bool draw(Camera camera, DrawingReason drawingReason, ShadowMap shadowMap)
            {
                if (drawingReason != DrawingReason.Normal)
                    return true;
    
                camera.UpdateEffect(Effect);
                foreach (var item in Items)
                {
                    Effect.World = Matrix.BillboardRH(item.Target.Position + item.GetOffset(item), camera.Position, -camera.Up, camera.Front);
                    Effect.DiffuseColor = item.GetColor(item);
                    SpriteBatch.Begin(SpriteSortMode.Deferred, Effect.GraphicsDevice.BlendStates.NonPremultiplied, null, Effect.GraphicsDevice.DepthStencilStates.DepthRead, null, Effect.Effect);
                    SpriteBatch.DrawString(Font, item.Text, Vector2.Zero, Color.Black, 0, Font.MeasureString(item.Text) / 2, item.GetSize(item), 0, 0);
                    SpriteBatch.End();
                }
    
                Effect.GraphicsDevice.SetDepthStencilState(Effect.GraphicsDevice.DepthStencilStates.Default);
                Effect.GraphicsDevice.SetBlendState(Effect.GraphicsDevice.BlendStates.Opaque);
    
                return true;
            }
    

    完整的游戏代码是开源的,可在此处获得: https://github.com/danbystrom/Larv/blob/master/src/factor10.VisionThing/FloatingText/FloatingTexts.cs#L32

    【讨论】:

    • 是否可以在没有工具包的情况下执行此操作?我正在尝试用文本渲染一个 3D 窗口。
    猜你喜欢
    • 2015-12-18
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多