To stop your visor misting .. Try washing up liquid. Not perfect but cheap and in plentiful supply.
For the Inside – Clean the visor and then apply a liberal squirt of washing up liquid. Take a clean microfibre cloth (avoid paper towels as these scratch) and “polish” the washing up liquid until the visor is clear. The wax or whatever it is in the washing up liquid forms a barrier and stops the moisture in your breath condensing on the inside of the visor. Lasts typically (for me) 3 or 4 weeks.
Stange but true - they did the same thing on the inside of the Apollo Astronauts helmets!
Same processes for the outside does something similar to Rain-X for a lot less money. Plus you can find washing up liquid at work if you get soaked on the way to work. You can also find washing up liquid in a lot of petrol stations if you are caught on a long run in the rain.
This consumer advice is offered without liability 😊