Monday 23 April 2012

First Development Closing

As I have now finished my Directed Studies class, the initial development cycle for this project is complete.   I definitely plan to continue working on this project, including further refinement of these systems, as well as developing many more.

I plan to use these tools for Animations focused on Education and Awareness, for elements in Video Game Environments, and even for Visual Art Installations.  Though this project definitely has a long way to go before any applications can really be taken seriously. 

I put together a compilation video, briefly showing each of the systems I have developed during this cycle. 








I also created a sample oil tanker spill animation, using a Kinect sensor for camera controls.  This implementation is the Organic Motion Camera, which I also plan on using extensively and refining for ease of use.


Wednesday 4 April 2012

Advanced Land Modification and Dirt Movement

I have done significant work on refining the dirt systems.  I have worked on smoothing out the basic land alteration, making changes in texture, height and saturation smooth between vertices, and have ensured that the height of the land can not be less than the height of the bucket.



I have also changed the dirt system to implement point sprites.  These sprites are simple a set of masks that use the ground textures for color.  When a sprite is created, its life span is the current height of the bucket, as it falls closer to the ground it fades out to ensure a smooth blend into the land.  This system is heavily reliant on how much the bucket is "open".  Given as a percentage, this value is used to calculate the spawn rate, the amount of side to side variation (width of stream) and the depth of each point sprite.



If the bucket is barely open, you should see a very thin stream from the side, but a thicker stream from the front.  If the bucket us fully open, the stream from the side will appear much thicker.  This implementation is done by storing the Vector direction of the bucket and the value of the bucket when the dirt particles are spawned.  In the rendering process, the width of each sprite is determined by taking the dot product between the spawn direction vector, and the vector between the current sprite and the camera.  this is scaled by the complement of the bucket value and added to the value of the bucket multiplied by the sprite width.


As you can see I have also integrated the exhaust and light systems into this model.  The visuals are quite strong, and this is definitely the aesthetics I am looking for.  For model shading, I have implemented basic "Desaturate Highs" and "Desaturate Lows" which are basic Final Cut filters.  This coloring gives a much more dissonant feel than normal shading.

These systems could still use some refinement, but are pretty much finalized.

Land Formations and Water Pollution

A simple system I have worked on is creating an animation of undisturbed land changing into a mine site. Using a simple map editor, I can save XML files that contain vertex data for the land grid, which holds values for terrain height, texture weights, and saturation. In the editor I created an additional array to hold the "change" values for the terrain map, which is the height at the end of the animation.

At the start of the program, I simple divide the difference between the height and the change values by the running time for the animation. Once the animation has started, I subtract the divided difference value from the height, and also change the saturation and the texture by this same value.







The process is simple, but the results are pretty strong.


Another supplementary system is general water pollution.  This system only discolors water, but could be easily used to represent sedimentary contamination, acid mine drainage, and thermal pollution.  My goal is to have this system work with streams and lakes, which means the pollution needs to be able to flow in a specific direction.





So far I am using a diffuse algorithm, and only spreading the pollution weight in the specified direction, but these results are not quite what I am looking for.  I want the pollution to disipate more from the source, and flow down stream if the emitter is turned off.  I will continue to work on this process define in more detail the algorithm used.