I have debugged this issue in the editor. Here is what is happening (hopefully someone from amazon is listening):
When the shader generation options are changed (by clicking the checkbox for realtime reflections), the code ends up checking the material to see if it is compatible with the new shader generation options. The option for realtime reflections has a requirement that you have selected an environment map. Since you don’t have an environment map (you cant because the option to select one doesn’t exist until you enable the option) the code decides that you have selected an invalid option and clears it. The code that does this is found in CShaderMan::mfModifyGenFlags.
A workaround is to copy a water material that is already set up and modify it rather than trying to create the material from scratch.
Thanks for sharing the workaround and observations. All of this is very valuable information and key for us in improving Lumberyard. I’ve added these our feedback list for further action! (And from myself, +1 on needing a visible option for environment map)
What about the overall improvement of real-time reflections? If you look, the engine uses several types of real-time reflections, and all of them have a bunch of their shortcomings.
Reflections of WaterVolume, it is not bad, but there are drawbacks. (The particles and the spec from the point light sources are not reflected, Geometry in the immediate vicinity of WaterVolume begins to distort and looks bad. Of the merits! WaterVolume reflects everything that is in the field of view of the camera, the objects at a distance are reflected almost like in a mirror).
Real-time reflections Illum shader, has even more shortcomings than the reflection of WaterVolume. (There are no reflections of everything that enters the camera’s vision field, only what is in the immediate vicinity of the reflecting surface is reflected, reflections consist of segments looks terrible, smoothness only in gauss, does not allow to create a smooth softening of reflection)
The ocean has a third type of real-time reflections and looks different. Perhaps this is not a very significant rendering technology, that Amazon and Crytek do not pay attention to the improvement of this technology in their engines. But all the same from the quality of real-time reflections, it depends how the glossy materials in the engine will look. Therefore, I would like to see one quality type of real-time reflection for all types of shaders Stochastic Screen-Space Reflections as an example
This is fantastic feedback and we truly appreciate you taking the time to bring your suggestions to our attention. I have sent this directly to our product team so it is on their radar. We are constantly looking to improve and develop our tech and your feedback really helps us with that!
Thanks again, and be sure to keep an eye on our release notes for new improvements and features as they come online!
You can use reflection probes now. You have to either copy a working example water material or edit your .mtl file in a text editor. The easiest way is to just find a water material from one of the sample projects and copy it.