I looked at applying my Cinema 4D knowledge into this water topic; having made water bodies in 3D before I have experience with the techniques involved. I started with a blank Cinema 4D document and added a flat plane. This would be the surface of the water. I then created a container around the water using two boxes, and subtracting the smaller from the larger using the Boole tools. I then added a sky object and used an image I had taken of a sunset. I added a camera object and positioned this near the plane. I then applied a displacement object to the plane, with a Wavy Turbulence Noise shader, which distorts the flat plane to give it waves. I adjusted the detail of the nosie shader, including depth and scale, which ultimately adjusts the height and size of the waves, and also the speed at which they move. The noise shader is animated and randomly generated, so the waves' movements are animated randomly. I then created a water texture from scratch, using a blue/green colour. I set the transparency, diffusion and reflectance of the material based on what looked best, and I applied this to the plane. I also added a black reflective texture to the container sides, and added another water body that is less detailed, outside and beneath the container of water, that continues into the horizon. I set the depth of field on the camera and adjusted the target to the water plane. I increased the blur so that the background was distinguishable, but not completely clear. I added camera movements and keyframed these in. I keyframed the camera focus so that it would stay focussed on the water whilst the camera moved. Below is the draft render of the project so far:
CGI Water - Experimentation
CGI Water Test
Images ©Dylan Furst
I then added text objects that would float in the water. I added a MoGraph text object which I then placed so that the letters were half in and half out of the water. I typed the word 'Water' in capitals and adjusted the depth of the text. I added a white material to it, and separated each letter into separate entities. This meant each letter could move independently on the water surface. I added a constraint tag to each letter, and set the settings such that each letter would follow the central point where it touches the water's surface, almost as if the letter is being attached to one point on the water surface. I positioned the letters so that some were above the water, some were underneath and others inbetween, to make the most of the realistic distortion created by the displacement of the waves.The letters also blur and fade slightly as they get deeper, due to my water material containing diffusion properties. Added dust orbs floating around randomly to give some interest to the animation; this worked well with the depth of field (the more distant dust orbs were more blurred). I keyframed the camera movements so that it begins closer up and slowly zooms out and upwards, whilst maintaining focus on the text, but revealing the word more clearly towards the end. It lasts for 280 frames, which I felt was long enough for this animation, but not too long to render (each frame took around 2.5 mins to render). As with all CG animation, if I were to make a mistake or if an error were to appear, I would have to render the whole thing again. I adjusted the render settings to render quickly but at a good enough quality for the most efficient render.
The text movements (because they were generated by a physics engine) were slightly glitchy at points and therefore there are times when the letters are not floating smoothly and jump about. I could not find a workaround online, so I just converted the text movements into keyframe animations of the position and rotation of each object. This would mean the text would move exactly the same each time I ran the animation pre-rendering. It did mean I couldn't adjust the constraint tag settings, however I did not need to as I was happy with the general motion of the text. Because I copied the movements frame for frame, the glitchy parts of the animation were transferred too, but because of the way keyframe animation works I could delete the bad keyframes and the software fills the gap by slowly transitioning between position A and position B before and after that keyframe. This resulted in a much smoother, nicer movement of text. The result can be seen below.