Kindred Dance - Synopsis The exploration of the rythmic nature of marine life. This piece emphasises on the interplay between marine life and their environment. Strong emphasis will be placed on light and it's reaction to the rapid movement of elements with varying surfaces. Throughout the journey, the viewer is taken from tranquility to hostility, then back again. Kindred Dance is an ongoing project, first conceived for my Visual Effects Concepts class and now continued through my Studio I class. I anticipate finishing it over the next year. Technically, my main focus in this project is the dynamics and procedural animation. My main tool will be Sidefx Houdini.
Timeline of Events Class 1 September 15 During this time, the Entire Idea of Kindred Dance was pitched. This video shows diferent footages from a documentary called Planet Earth, stiched together in a sequence that will approximately match the timing of the final product. The music is not included in this piece, however it is timed according to music. The first shots in the piece shows a massive Kelp Forest, which is what I will be focusing on re-creating for this class. In addition to the HD version of the Planet Earth DVD, here are some images that I will be using as reference.
Class 2 September 17 Since i'll be doing almost all of my work in Houdini, I took the approach of modelling a completely customizable digital asset for one kelp branch. This way, I can create an entire forest of unique kelp from one asset. Not only is this more efficient, but may produce very interesting results. As of today, the asset has the following controls: Orientation - Aligns a kelp branch either horizontal or vertical. (may also add transform controls) Currently, the kelp has proxy leaves just for testing purposes. I hope to add options for leaf style as well as shape controls for completely random leaves. Check the images below for a look at the asset in action.
Class 3 September 22 I've been behind on the site updates, but have been getting some work done on the kelp asset behind the scenes. I've added more parameters for increased functionality and flexibility. Currently, the kelp leaves are low rez randomly generated polygons instanced onto some NURBS wires. Each leaf is completely random in shape, form and width. These random attributes can further be controled by these parameters: Leaf Twist - Add twist to the leaves. Can be random or explicit. Can also be controlled with time based functions. Below shows the first test of the kelp asset driven by a number of forces. Class 4 September 24 In an effort to meet maximum amount of flexibility, I have added alot more parameters on the kelp asset. One of the major change made was to use NURBS for the leaves instead of Polygons. Nurbs interpolate between Leaf Points and naturally gives a smoother final result while minimizing overall geometry weight. Here are the new parameters: Nurbs Points & Nurbs Order - These values enable the user to increase the quality of both U and V coordinates of the geometry. I've also added a series of File and Simulation operators that really saves time when using this asset. Their main function is to write geometry from simulation and read that geometry from disk for real time playback. Significantly increases my efficiency as I populate the kelp forest for Shot 3: Simulation - Two choices: "File" and "DOPs". "File" reads geometry from disk for real-time playback. "DOPs" solves the simulation through the wire solver and various forces. With this option, the "Render" button becomes available. With this option you can then specify frame range and path to render out solved geometry to disk.
Class 5 September 29 For class 5 I presented a completed camera move for what I call "shot 3." I also spent some time implementing a camera rig that closely simulates the subtle dynamics of an underwater camera. I plan to complete atleast 3 more shots for this film. At this point, it is very easy to populate a scene with kelp assets and do a camera move. This shot was rendered out from the viewport with wireframe enabled, so I could inspect the geometry for interpenetration. There is not much I could do in the event of interpenetration, since it would take too long to solve using the dynamics system. I would just have to find creative ways to cover it up using lighting. Here is the completed and approved camera move for shot 3: Class 6 October 1 Knowing that I may have to do a few custom shaders for specific needs, it was important that I do early shading tests to know what was available to me and what their shortcomings were. Here, I used a Vex Lit fog shader with atmosphere, and a Sphere primitive turned into volume smoke. The fog and smoke adds for a nice effect closely simulating most of what I would like for the final render. With a bit more customizing, it should be suitable enough for use. I then proceeded to try transparency solutions available within houdini on the kelp. It did not work quite well and may need more extensive customization for the look I would want. Here is the first test showing a translucency "grass" shader: This was rendered with a grass opacity map, just to see how it would look. Opacity maps gave the best result, especially with displacement. However, because every leaf on the kelp is completely randomized, an opacity map may not be the best way to go. I need to come up with a solution that gives accurate transparency from the actual geometry. Here is a screenshot without transparency: So now I know what to focus on more when it comes to the shading. In the meantime, I will go ahead and focus on populating kelp for the other shots. Class 7 October 6 I have completed the camera move for shot #2 and am working on lighting and optimal geometry placement. Here, I did extensive testing on caustics and light rays as seen underwater. This is really important for shot #2 because the camera is going closer to the surface. First of all, for this shot, I need to do some work on the placement of geometry to hide certain artifacs. The second thing is the issue with the light rays from the caustic maps. One can clearly observe the jaggedness of the rays. This result is inherited from the aliasing of my projection map, and can be fixed by anti-aliasing the map. Aliased Projection Map
Smoothed Projection Map Class 8 October 8 Translucency.... I have worked out a shader in Houdini VOPs that triggers translucency on the geometry. It works by reversing Normalized surface normals. The reversed normals are piped into a lambertian lighting model and then into a ramp, which gives me control over surface color variation based on intensity of light hitting the current microPolygon. Adding another ramp to that model and plugging it into "apparent opacity" output gives me control over surface opacity based on light intensity. Here is the result. The translucency shader appears to give a physically correct result when compared with my original reference. Multiple kelp bundled ontop of each other gives a darker color, as light has to go through multiple surfaces. However, some of my kelp asset make use of surface twisting, which quite abruptly switches the orientation of the surface normal. This causes what appears to be a flickering surface. This is something I will be looking out for in my further tests and trying to cover it up strategily at this point. I chose to spend some time on shot #3 to perfect my shader and lighting workflow before moving back to shot #2. Lighting a underwater shot turns out to be quite interesting and very time consuming to get the illusion that I need. Using my reference as a guide, I began to break up the image into segments and stragegize how i'm going to shade and light each segment.
When observing objects in the natural world, contrast can be best seen by squinting. A similar effect can be achieved through photoshop's lens blur filter. This helps me to block out the dark and light areas into geometric shapes. Using these distinct segments of light and darks, I can focus on laying out my lights in Houdini to approximately match the lighting in my reference. In addition to this is the fact each kelp in the rendered frames above had the same translucency shader applied. For my new tests, I took a different approach by disabling the opacity effect on the kelp in the midground. For the kelp the furthest from the camera, I took the translucency shader off completely. The kelp positioned the closest to the camera has the full translucency shader applied. This creates a more accurate overall look. Here a still frame render of revised shot #3:
Comparing the blurred image with the one from the reference, I can see that I have achieved a very similar variation with a more careful placement of lights. The more subtle variations and elements I can add to these shots, the more I can fool the eye. Making use of Houdini's Delayed Read Archive (procedural shader) helped alot in populating the background with a variety of kelp geometry. I will be making a few minor adjustments to this shot then I will post the full 400 frames. Class 9 October 13 For Class 9 I presented my progress with this shot. The only difference with this one and the one above, was a reduction of the caustic specularity and some minor arrangements of the Kelp. I will aim to generate minor particles for the presentation on Class 10. Hopefully, after class 10, I will resume working on shot #2. Class 10 October 15 Class 10 marked the midpoint of the quarter. I presented an almost completed shot #3. With some "Minutia" (some particles). I had been working on shot #2, but I put it on a hold to continue perfecting shot #3 and to work on my breakdowns. I will soon put up my progress for shot #2. Class 11 October 20 For shot #3 I actually reworked the translucency shader to provide a little variation to my surfaces for the front kelp. I slowed down the particles and started the rendering process for the shot. I am actually working on my breakdowns and am hoping to finish those for the weekend. Here is a snapshot for completed shot #3. I am hoping to post an animation soon. Class 12 October 22 This should be my last day working on shot #3 for now. I've spent extra time trying to fine tune it and really getting all the assets organized. In terms of changes, I have added two extra lights for the front Kelp, which takes away a bit more black and accentuates the translucency element of the Kelp blades a bit more. I have also deleted some artifact-causing geomety from the front Kelp to get rid of a few of that more noticable flickering as the geometry flips. For this weekend I will be working entirely on the breakdowns. Class 13 October 27 Today I presented corrected shot #3 for the second time along with the completed breakdowns. I got some great suggestions for the breakdowns, which I will look into later, but for now, I need to get back into shot #2 and try to see if I can get that done by the upcoming weekend. Here is Shot #3 + Breakdowns! Class 14 October 29 Stay Tuned for an update on troublesome shot #2. Class 15 November 2 I've fell way behind on the progress updates, but I've been working hard to get shot 2 at a good level and also to crank out shot 1 in a limited time. Shot 1 is just basically an intro shot consisting of glowing particles. It will be the last shot I work on for studio 1, since it's the easiest. From here, I'll be working on shot 1 and 2. Stay tuned for the final version as Studio 1 comes to a close. Class 20 November 18 After a few weeks of work, the first phase of Kindred Dance is finaly done. All 3 shots were completely done using Sidefx Houdini 9.5 and rendered with Mantra. Turn up the sound and enjoy!
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||