i want to simulate an effect such as a heads up display and tried to recreate it simply, through the use of light projecting through a reticle, through a convex lens, and onto a pane of glass seen here. the light definitely reflects onto the glass, but doesn't stay in the same position when i move my view port.

this is the full scene full scene

these are two angles, compared to each other the light definitely does not stay in the same place angle 1

angle 2

i realize this could totally just be a limitation in blender, or a simple mistake in my scene, but clarification or tips would be helpful!

  • $\begingroup$ I would like to use transparent + glossy shader in the reflection glass. And the lens below need to be a perfect Refractive len as well. $\endgroup$ – HikariTW May 19 '19 at 6:41
  • $\begingroup$ Do you need to simulate it or would it be enough to fake it with compositing? $\endgroup$ – J.Doe Jun 22 '19 at 8:44
  • $\begingroup$ Wouldn't a heads up display move with the camera? $\endgroup$ – Leander Jul 22 '19 at 5:26

As the wiki page said, you need your lens to refract parallel light.

Key Points

  • the lens need to be perfect refraction lens or it will cause distortion

  • the iron sight laser thing need to on the exatly same position of the lens focus point

  • the reflective plane should be 45 degree above the lens


You can create a nearly perfect refraction lens by intersect two ball. Lens

After the lens is setup, you need to know its focus length. It can be done several ways. I use a sun light with orthogonal view to tune the point on a plane:

Focus point

You need to change parameter in render panel, for those thing will clamp indirect light, turn it off to get accurate result.

And last thing, your 45 degree reflective glass need to be fully transparent without distortion, recommend to use transparent shader + Glossy shader, and place above the lens correctly:


Then the result can be stable in sight with slightly distortion: 2 enter image description here

The full scene is extremely complicated in rendering, consider something else.

And for the file I test for it in Blender 2.80:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.