I had a really cool anti-fog helmet shield from Xelement a few years ago, but it cracked off in the cold weather. I ended up returning the helmet and bought a nice HJC.
I like to ride in most any weather, but I hate when my helmet fogs up. I've tried the Rain X product on the outside surface, and that works pretty well. Its the inside surface that is the problem. I saw someone try shaving cream, and that didn't work for me. It fogged up just the same.
Then I read that F1 race drivers will apply a single drop of shampoo to their helmet shield. The drop of shampoo is distributed evenly with the tip of the finger and left to dry. Then a microfiber cloth can be used to buff it clear again.
This seemed like a simple trick and worth trying. In my demonstration video below I compared an untreated helmet shield (silver helmet) with a treated shield (white helmet). The results are surprisingly different. The shield treated with shampoo really did resist fogging!