This fish bowl has two parts: one stylized outline shader and one water shader.
1. Edge detection：
To get the outline effect, first we need to detect edge to be drew. I do this by first taking the dot product of vertex normal of the object and the view direction. The more this product approaches 0, the closer is the angle between normal and view direction to 90 degrees.
Then, in order to make the contrast stronger, I set a threshold, discard (set to white) values above that and take the power of values above that.
2. Texture Overlaying and Tweaking
Finally, I overlayed a bunch of texture pictures of real life ink and watercolor and did a lot of trying and treaking to achieve the effect I want. I actually used two bowls with same model but different tweaking (a bigger grayish one and a black, thinner one)
The basic effect of foam is achieved by tweaking an voronoi node by plugging in time and radial shear and finally take the power of all of them to make the edge stronger.
(*this part I learned from youtube tutorials about water shader)
2. Chromatic Aberration
Next we simply get three wave with red, green and blue colors and add them together with a small offset to fake a chromatic aberration effect.
3. Vertex animation
I plugged in a gradient noise to the offset of vertex to get the animation on the surface of water.
Finally I made a normal graph that’s influenced by time, Perlin Noise and the foam we just created.
5. Modeling and Putting together models
The water here has two models: one half-sphere and a circle sheet that layers on top to fake the effect of a moving water surface