commit f256e1a5f638736cb60a3d1301d76b359aee3ab5
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Sun Oct 16 23:37:22 2016 +0100

    Improve the comment the WAVE effect.

diff --git a/src/main/res/raw/main_vertex_shader.glsl b/src/main/res/raw/main_vertex_shader.glsl
index 7448638..d1bd777 100644
--- a/src/main/res/raw/main_vertex_shader.glsl
+++ b/src/main/res/raw/main_vertex_shader.glsl
@@ -400,6 +400,15 @@ void swirl(in int effect, inout vec4 v)
 //
 // d) compute the above and see that this is equal precisely to SX from (**).
 // e) repeat points b,c,d in direction Y and come up with (***).
+//
+// Note: we should avoid passing certain combinations of parameters to this function. One such known
+// combination is ( A: small but positive, B: any, amplitude >= length ).
+// In this case, certain 'unlucky' points have their normals almost horizontal (they got moved by (almost!)
+// amplitude, and other point length (i.e. <=amplitude) away got moved by 0, so the slope in this point is
+// very steep). Visual effect is: vast majority of surface pretty much unchanged, but random 'unlucky'
+// points very dark)
+//
+// Generally speaking I'd keep to amplitude < length, as the opposite case has some other problems as well.
 
 void wave(in int effect, inout vec4 v, inout vec4 n)
   {
