When I plot Text in Graphics3D it always faces the ViewPoint. I would like to put the text on a plane. Motivation for this is to have tick labels of a 3D plot on XY plane and never overlap no matter the viewpoint. Here is the example of the plot I need it for.
Here is how I have done it so far by rasterizing the text and using it as Texture for a Polygon. Dimensions of the Polygon can be taken automatically using ImageDimensions.
textStr = "Dodecahedron";
texture =
Graphics[{Text[textStr, Background -> None,
BaseStyle -> {FontFamily -> "Monospac821 BT", FontSize -> 22}]},
ImageSize -> {Automatic, 28}]
textureDim = ImageDimensions@texture
Graphics3D[
{Antialiasing -> True, Yellow, Opacity[.8],
PolyhedronData["Dodecahedron", "Faces"],
Texture[Rasterize[texture, ImageResolution -> 300]],
Polygon[{-1, 2 + 0.5, 0} + {2, 2, 2} #/textureDim[[2]] & /@ {{0,
textureDim[[1]], 0}, {textureDim[[2]], textureDim[[1]],
0}, {textureDim[[2]], 0, 0}, {0, 0, 0}},
VertexTextureCoordinates -> -1 {{0, 0}, {0, 1}, {1, 1}, {1, 0}}]},
ViewPoint -> {2, -2, 2}]
Note that I Rasterize explicitly, such that I would have a control over ImageResolution. Texture will Rasterize anyway.
What I do not know, if there is a possibility of doing it without rasterization, which gets slow for many labels and requires DPI specification before exporting the plots.



