我搜索过,但没有找到办法。 我想在HoloLens应用程序中使用sharpDX将标签附加到3D对象。
谁知道怎么样?感谢
编辑: 所以我决定将文本转换为图像,然后将其作为纹理放在由2个三角形网格构成的平面上。 所以现在我尝试了这段代码: https://gist.github.com/naveedmurtuza/6600103
但不能包含引用,我该如何解决?
感谢
答案 0 :(得分: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