I often need to have some 3D images, and some text or images describing the image usually layered on top of the 3D image like here.
I know two solutions, but none of them are perfect:
add them inside the scene (add text/insert image as plane, the
theta
was added like that) and place them to face the camera. Cons: it is close to impossible to line up the text properly, the perspective will quickly tilt long texts and it is therefore only usable for small texts. Pro: We have the full power of blender to generate the text (here using the latex2blender extension), and it is visible while playing the animationusing the compositor (that's how I added "definition RSP"). Pro: the line-up is perfect, the colors of the images are preserved accurately. Cons: not visible while playing the animation in preview mode (I need to render the full animation to see what's going on), the nodes quickly gets complicated when animating the visibility of many images and I need to generate the images separately (for instance from another text or image editor/blender instance).
Is it possible to combine a perfect 2D adjustment of the texts/images (maybe using an orthonormal camera aligned along the X axis) with preserving the animation preview functionality?
EDIT
To give an example, here is a simple scene I made:
To create the image, I used Image as plain
with shadeless
material (super cool to preserve colors). To orient the image, I used a constraint:
I also parented this to the camera to ensure it moves with the camera. And then I manually needed to move and scale the big image to ensure that it fits the camera... (and it's hard to get it pixel-precise).
Also, I need to move the text close enough to the camera, or it will intersect with other objects:
If I don't perfectly center the image, I get issues with perspective (I pushed here the image to show the issue):
Also, the images create shadows on the objects around it, while most of the time I'd like to avoid these shadows:
Also, if I try to move the text elsewhere, I need to rotate it manually as otherwise I can see perspective issues when it gets close to the top or bottom part of the screen.
and it's also harder to align when the object is big and the center is not in the center of the screen:
I think that the issue is that the dampedTrack
constraint rotates the text instead of lining it up with the plane of the camera. But then I'm not sure what is the proper way to align this object.
So I'm basically asking what is the best and easier way:
- to properly create constraints to ensure the images are well aligned with the camera
- make sure that some images are scaled exactly to the size of the camera (here the "definition RSP" image), not less, no more,
Bonus:
- to ensure that the image has no shadow on objects (eeve and cycles)
- ensure that the 2D world is above the 3D world, as robustly as possible.
Blender file:
EDIT
The solution proposed by Chris does not work (this works only because the center of the text is in the center of the picture by changing the alignment to center, but it means that I can't move the text on the side of the text):