top of page

RETROREFLECTIVE

image.png

3M Retroreflection Explanation 

The retroreflective shader requires pointing the light back to the light source. We did not want to create a new shading model to make the DXR pass run slower. So we created a tech art solution to make it cheap and look right for our use case.

In Forza Motorsport, the player view is mostly matching with car light direction. The lighting system is already doing the work to calculate the lights, we just need to trick the lighting system to make it think it needs to point the light back to the eye.

image.png

This is the extremely complex retroreflective math, we replace the normal with the view vector and because the view vector is mostly from the same direction of the light direction, it directly reflects the light back.

We use a pattern mask to make this more believable. 

This video shows the difference between effect on and effect off.

For the effect amount:

  • Value 0 turns off the effect

  • Value 1 turns on the effect 100%

  • Value 1 should work for 99% of the case but Value between 0 and 1 is allowed

image.png

Close Range Difference

image.png

Medium Range Difference

image.png

Far Range Difference

CONCLUSION

Is this retroreflective shader physics accurate? Nope. Did it get the job done with the restriction? Yes! We should always aim for physic accuracy but sometimes you just need to make it feel right for games.  

© 2025 - ZHENGYU YE

bottom of page