Showing posts with label Dynamics. Show all posts
Showing posts with label Dynamics. Show all posts

Tuesday, 5 July 2011

Growth

Over the last two weeks, I have been developing the concept for the final outcome of my Masters project. This will take the form of a short video (approximately 3-4 minutes in length) and is intended to showcase some of the cell visualisation work I have completed. In addition to this, I plan on creating a second video which will be a technical showcase of my skills and abilities and also contextualise the work I have completed.

Although I don't want to give away too much, the main piece will be split into two halves, titled Growth. My title concept can be seen below;

growth_titles

As a sneak preview, the video below shows one of the shots I am currently working on in After Effects. Using the VERL render farm, I have already generated most of the content I plan on using (in 1920x1080 lossless TIFF format) which gives me a great deal of flexibility. The original shot did not feature any depth of field and looked flat and uninteresting, whereas this updated version has much more style and visual interest;


So far, I haven't decided if I will include the dust motes/particles idea which I previously worked on. Although I have considered this option, I don't have any sequence renders which I can use, so I took a still frame and applied the effect, as a test. This frame test can be seen below;

growth_04_cameraMoves_1000

Moving forwards, I will continue developing the look and feel of these shots. I am also currently looking at using music to add impact to these shots, but this is an ongoing project and I plan on trying to finish work on the visuals first, so that I can get a good 'feel' for the experience I want to create.

Friday, 1 July 2011

Falling Out

Matt Cameron, one of my classmates, is currently directing a short film titled "Falling Out" (production diary here). The logline for Falling Out is below;
A pregnant woman struggles to find direction after a nuclear blast decimates Scotland. Locked in a bunker with a jaded survivalist and her dying boyfriend she faces tough choices in this brutally changed world.
I will be assisting Matt in creating some of the visual effects which will be added to this film - in particular, using 3D computer graphics and animation to create a dynamically-driven nuclear explosion which can be composited onto a live plate at the beginning of the film.

So far, I have recreated the camera setup in my 3D environment (so the CG cameras match the real-world cameras), and completed some early explosion tests. Over the next few weeks, I hope to tighten up the explosion (which is not nearly nuclear enough) and generate some nice high-definition renders which will be suitable for the opening shot of Falling Out...

Monday, 27 June 2011

RealFlow Character Fill

Over the last couple of weeks I have been working on a shot for one of the other students on my course. Kaye is working on applying an illustration style to an animated commercial, and her blog can be found here.

After creating her animatic, Kaye's opening shot showed a 3D character filling up with liquid, and she had decided to use RealFlow's liquid simulation tools to achieve this. I already had previous experience of working with RealFlow and was able to help her in building this sequence.

To begin with, I imported her character model (built using Cinema 4D) and created emitters in each of the feet. My target was to fill the model in approximately 180 frames, as this is what Kaye had advised. I started by filling the model using these two emitters, and adjusted the emission speeds to suit the fill rate I wanted. Around halfway up the model, it became slightly more difficult, as I had added two additional emitters (one in each hand) and then needed to try and balance the levels of the fluid (this involved manually keyframing each emitter and re-simulating the liquid several times, a time-consuming process). Upon reaching the head, a fifth emitter was added, to speed up filling the volume (as the narrow neck creating a fountain-like bottleneck). Finally, a polygonal mesh was added, and the radius size adjusted so that the mesh was not larger than the original model.

At this point, I passed the source files back to Kaye to implement in her own project. As an additional step I imported the RealFlow files into Maya and created a simple render to show the outcome of this short project;

Wednesday, 8 June 2011

Creating Dust Effects

Continuing on from my recent work involving compositing in After Effects (here), I decided to explore the different methods of adding dust and/or bokeh effects - either in 3D or 2D based software. My goal was to find the most efficient method of adding the effects that I wanted, without having to learn a large amount of technical skills - allowing me to maintain a focus on the process of visual experimentation.


Initially, I had started by creating dust motes using a particle system in Maya (above). This gives the most flexible result, but is time-consuming. It does factor in object depth however, creating a 3D particle system which objects can be placed inside of.

As a different approach, I tried using the Particular plug-in for After Effects (first used here). This is much simpler to use, and I created a scene with dusty clouds (or could be used as a simple bokeh effect in the background). This created an entirely different result to the Maya particles, as it is not truly 3D, and cannot 'surround' my cell structures. It is much easier to get a nice-looking result quickly though.

The result of my Particular testing can be seen below. It is important to note that I was only testing motion and style, rather than colours, so all of these videos are greyscale purposely;


Finally, I used After Effects to composite the two 'passes' together, out of interest, and decided that although each approach has it's own advantages and disadvantages, they do work well together, because they do different things. The result of this can be seen below;


Although these are relatively short and simple tests, each method can be easily adapted and scaled to fit a larger composition, or longer timeline - something which will be important in the next stages of my projects.

Monday, 6 June 2011

Getting Particular

Between semesters, I decided to briefly sidestep my main programme of study, and play around with After Effects, using Video Co-Pilot as inspiration.

My aim was to take a break from all the technical development I had been working on - avoid scripting - and get back to visual development, so that I could continue down this route when returning to my programme of study at the start of semester 3.

Using an After Effects plug-in, called Particular (by Trapcode - more information here) I set out to create interesting particle-based sequences. To help in this process, I followed through a couple of video tutorials, and then adapted and experimented further to get something really nice looking.

At the moment, I am not sure if these techniques are something I will use moving forwards, but I am still exploring different options, especially when considering how I will present my work at the Masters Show later this year!

Below are two videos which show some of the experimentation that took place;


Sunday, 8 May 2011

Compositing Goodness...

Following on from my most recent post (here), I continued to develop the scene I had been working on as a 2D image in Photoshop (using 3D renders from Maya).

I then added additional layers/objects to the Maya scene file and organised the appropriate render layers. Image sequences were rendered, and imported into After Effects, where a 10-second sequence was constructed - using the same 'style' as the prototype image.

The completed test sequence can be seen below;


Moving forwards, I would like to continue this visual development, perhaps with the addition of camera movement and depth-of-field techniques.

Thursday, 5 May 2011

Having Fun!

In terms of technical development, my knowledge of 3D software, scripting skills and problem solving abilities have surpassed those that I need to be able to complete the projects I am currently working on.

This has given me the time and opportunity to focus on visual experimentation, bringing a bit more fun back into my work, and making it more interesting than searching through pages of MEL commands!

I have been experimenting with using the skills gained in the Going Live module, to enhance the output and presentation of my previous cell visualisation work - using my skills as a digital artist.

Starting with a previous data-set, I adapted one of my scripts to create locators instead of spheres. I then created a simple particle system and used a modified version of a script provided by the external examiner to 'attach' the particles to the locators. This meant that I could use Maya's own 'metaball' system - not strictly metaballs, as it is a particle render type called "Blobby Surfaces", but it gives a similar effect. The image below shows a beauty render of the blobby surfaces;

cellVis_data1_cells_locators_original

Once this model had been created, I started to experiment with shaders. After reading some articles in this months 3D Artist and 3D world magazines, I created an MIA mental ray shader, and added a mental ray fast skin shader (normally used for subsurface scattering) and adjusted the colours and attributes to create a suitable look.

I added lighting in the form of two area lights, which used the mental ray area light options to transform from squares into cylinders, 'wrapping' around my geometry. Decay was set to quadratic (to create more accurate lighting) and the intensity of the lights was increased significantly (around 4500 each).

The next stage was to incorporate dust motes floating around. This is something I could imagine in my head, but was not sure how to implement. I looked at adding this in post-production, but although this could be quicker, did not provide enough control (or use 3 dimensions). I created a new scene file and using a particle emitter, created a particle 'explosion' - the forces were then zeroed out, so that I had a static particle cloud. I added my own gravity and turbulence fields, and tweaked these until I had the movement that I liked.

Finally, I setup render layers to output the passes I wanted - a MIA shader pass, a second MIA with an outline style shader, and separate pass for dust motes. After rendering a single frame, I moved into Photoshop and started experimenting with compositing these passes together, to create the look I wanted. I also added some fake bokeh effects in the background, coupled with some randomly generated cloud textures. The final image can be seen below, looking entirely different to how it first started (above);

cellVis_data1_cells_locators_comp

At this stage, I wanted to make sure that I could recreate this look with image sequences, so I started work in After Effects. Fortunately I was able to mirror this image in video form, and can swap in the rendered image sequences when finished. By working in AE, I realised that I would need to add a matte pass for the cell geometry. Below, a short video shows the breakdown of how this shot was constructed, and although static, shows how a final video could look;


I have thoroughly enjoyed this experimentation, and I have created something I am really happy with - something very different to the first attempts (which can be seen in an earlier post here). Although I don't yet see this as a finished piece, I can already see ideas developing, and it is good to try new techniques and methods of presenting the same mathematical data... more importantly it is good to get back to being an artist, something that I did not realise I missed until now!


Wednesday, 16 March 2011

More Data

Over the last couple of weeks, I have had to divide my attention between multiple projects.

The 'Going Live' project has ramped up into production, with modeling and rigging now complete. Animation has started, and texturing is currently underway. My role as CG Supervisor has been demanding, as all of these CG elements have been happening in quick succession. On top of this role, I was also responsible for implementing a customised nCloth dynamics system for our 'character'. This was created alongside the rigging process, to ensure that these components would work together happily, and after resolving a few technical problems, the system is now working nicely. My next task was to create and organise the appropriate render layers in Maya, ready for rendering and then compositing to take place (hopefully late this week or early next). Although I had worked with render layers before, this project requires more variants than I am used to working with, so has taken a bit of time to configure and setup properly. Despite all this work taking up more time than initially expected, the project has made good progress, and continues to do so.

After my meeting with mathematics last week (and several more since), my cell visualisation workload has increased also. I have received new data from both students, and I am currently in the process of writing scripts that will translate these into 3D scenes inside Maya.

The first new data set contains fibres (to be added to cells), which are based on xyz locations and xy rotations. I had not scripted rotation values yet, so this was a good opportunity to expand my knowledge of MEL. I am currently awaiting the full data-set for this part of the visualisation, so will continue to work on this moving forwards.

The other data set adds oxygen density to a scene containing cancer cells and blood vessels. This file contains over 30 million lines of information, and weighs in at around 800mb - making it rather difficult to work with. I have tried different approaches in visualising this data efficiently, such as adjusting transparency on cubes based on the density value or scaling particle clouds. Unfortunately, there are about 10,200 points per frame, so these methods take far too long to calculate. I am currently testing a new method, which creates a single polygonal plane, with the required number of vertices. The script then runs through each vertice, and moves it in the y-axis based on the density value (between 0 and 1). A ramp shader then adjusts the transparency of the plane based on the height (where 0 density is fully transparent). This creates white, cloudy patches where oxygen density is high. Although this still takes a long time to process, it is considerably faster than the other methods.

Most of this work is still on-going, and has 'arrived' at the same time, making it difficult to balance. Fortunately, I have been able to allow extra time in working on these projects, so hopefully the worst of it is over now...

On a more exciting note, three of my videos were used at an event in Dundee on Saturday 12th March. The videos are 3D visualisations of mathematical models which are being used to predict cancer growth and development, and were developed in collabroation with a PhD student in the University's mathematics division. They were shown at an event called "Sensational Women in Science" as part of the Women in Science Festival 2011.

Also, some of the other data I am currently working with will be presented at a large conference later this year (in June), so I have a deadline which I can work towards.

Monday, 21 February 2011

Reaching Limits...

This week has proven difficult in terms of my ideas being restricted in their implementation, primarily by the software/technology I have available.

Scripting has made a reasonable amount of progress. I have added colour changes to my first data-set, as it was not clear when cells 'appeared'. New cells begin red, and fade to their regular colour over 25 frames (1 second), which is more informative, and better communicates the data visually. It is important to point out here, that this change was added to the MEL version of my script. A render taken from the Maya scene can be seen below;

cellVis_v106_colourTest

I started developing skills in scripting using Python, as Houdini relies on this for data input. Python also crosses over with Maya as the shared 'language'. I began by trying to find the common links between MEL and Python, which accelerated my understanding of how to code effectively in Python and make things happen. The Maya-Python version of the script is now equivalent to the MEL script.

However, the Houdini-Python script currently only reads data, but does not yet generate or animate geometry - I am having difficulties finding useful information on the Houdini specific Python module (commands), so this part of scripting is on hold for now.

Due to these difficulties, I returned to Maya, and started work on trying to create an organic-looking cell surface - that is, a single surface which is created from all of the cells, and moves and acts as one (instead of 1067 individual cell 'spheres'). Initially, I wanted to generate a particle field in place of spheres, but, unfortunately, Maya does not allow transformation of individual particles within a particle object. There is no way around this, except by creating a separate particle object per cell - by doing this however, the particles can no longer merge together as one.

I started to consider other options to achieve this organic look, with RealFlow being top of my list. I generated a 'particle sphere' in Maya and exported this directy into RealFlow. After developing a complicated workflow of imports and exports, and a lot of experimentation, I was able to then use RealFlow to mesh this particle field. However, for one cell to be meshed fully, I required around 37,000 particles, generating approximately 110,000 faces for the mesh. With a scene containing 1067 cells, I realised that although giving a nice result, it was certainly not a viable option. A render of the style of cell-split can be seen below;


Beyond using RealFlow, my next efforts will involve using particles or metaballs in Houdini. Metaballs work very nicely (tested using 2-3 objects manually), and are 'clever' spheres which merge together when they are close to each other (without any configuration in Houdini, metaballs give a great looking result). Particles in Houdini will hopefully offer more flexibility than Maya, allowing me another technique to create the look that I want to achieve.

Although I have found this week frustrating, finding limitations in the software I am using, I am confident that I will be able to find a solution, allowing me to realise the full potential of the creative ideas I want to unleash...

Saturday, 27 November 2010

Visualisation Techniques : Cells (Continued)

Continuing my experimentation with how my cells could look (first post here), here are three more examples which all use a spherical soft-body as a starting point. These examples also show a change in colour - something relevant to the mathematical data I am working with.


The first example combines previous render techniques, and uses a Cloud shader applied to the particles. Unfortuantely this gave the cell a glowing appearance, and had no distinct shape or outline.


The second example instead uses particles which are invisible, using a Blinn shader applied to the soft-body surface directly (the particles are used solely to drive the animation of the cell). A 2D fractal was used as a bump-map, ensuring that the surface was not too smooth and plain.


The third and final example builds on the second, using the same Blinn shader, also applied to the surface. The difference is that the surface material is created using a Layered Shader, which uses the original Blinn (made almost transparent) and a second copy which uses a Ramp Shader to adjust the transparency based on the object's facing ratio (making the shader less transparent towards the object edges). Although there are two shaders layered here, it gives a more interesting look - a transparent looking cell with a clearly defined outline.

Saturday, 20 November 2010

Visualisation Techniques : Cells

Experimentation is often the key to success, and computer graphics are no exception...

Recently, I have been manually building a 3D scene from some mathematical data (due to problems using MEL to import this automatically), so I needed to start work on how the data could be represented.

This first data-set features cells which multiply over time, and also change colour (which represents their type, or stage). Previously I had already tested changing particle colours (early results of this can be found here) so it was time to experiment with how these spherical 'cells' might look.

Working separately to the data setup earlier, I started off creating a polygonal sphere, and using a surface emitter to create the particles. I started by key-framing the emission rate, but then decided to output the required amount of spheres and set the initial state (so that we did not see the creation of the particles). I created a simply three-point lighting setup, and animated a camera moving through a 90-degree arc - the scene was now ready for aesthetic testing.


This first example shows the particles, rendered using the Blobby Surface render type. The Radius and Threshold were then key-framed and oscillated, to create a moving, pulsing surface. Ideally I wanted each particle to pulse individually, but I had difficulties in doing this. Using a Blobby Surface created a simple effect, with required very little computational time on render - something which might outweigh the 'awkward' pulse effect when hundreds of cells are required (and can pulse at different intervals to each other).


This second example builds on the first, although uses the Cloud render type. This was combined with a Lambert surface, and used the same animated Radius and Threshold. The cell was animated to rotate on the XYZ-axis, giving more variance visually. I preferred the effect created here, as it seemed more random, but there was not enough definition in the shadows or highlights, forcing the cell to appear flatter than it actually is. Also, several 'holes' appeared in the surface, which was an unwanted effect.


This third and final example is a development of the second, and uses a Ramp shader instead of a Lambert shader combined with a Particle Cloud node. The Ramp shader used the 'glass' preset, and was recoloured to be more neutral. I found that this video looked the best, and gave almost a glass-like look to the cell, with visible shadows and strong specular highlights. When the cell turns green, the glass outer-casing becomes more apparent, something which contributed to the overall style of the cell.

Although great progress has been made here, and I particularly like the third example, it took considerably longer to render. Also, the cell still 'pulsed' in an unnatural fashion - something I would like to correct moving forwards.

Although more work still needs to be done, I happy with the results so far, and it is always good to see progress being made.

Sunday, 14 November 2010

Snow Is Falling...

After realising Gnomons 'Dynamics' series wasn't going to be a good source of learning for me, I decided to give Digital Tutors a try. After a quick look through their material, I started on their 'Introduction to Dynamics in Maya' lessons (more information here).

Looking at the individual tutorials within this lesson, there was bound to be some overlap. However, I felt that it would provide a good opportunity to consolidate the learning I already have, and fill in any gaps in my knowledge (I find Digital Tutors to be extremely thorough in explaining features).

After completing the first 5-6 lessons, I decided to experiment with some colour techniques which will prove useful for my project with the University mathematics division. Part of this project will feature cells which change type, and each type is associated with a different colour - I needed to find a way to animate an object between colours effectively. More importantly, I needed to find a way to control the colour changes in particles, as these are more likely to be used moving forwards.


The first example shows some simple 'particle rain/snow' which has keyframed colour changes, and works very well. Although the particle effects are not what I'm looking for, I was testing colour here, and this has worked as hoped. Since I already have Lambert shaders setup with the colour changes, I also needed to find a way to use these, as particles use Particle Cloud shaders. Fortunately I can simply plug the coloured Lambert into the colour input of the Particle Cloud shader, providing an additional level of control.


The second example shows something a bit more fun. After my experimentation in the first video, I realised I could make some decent-looking snow. After modeling a basic landscape, with a hill and some simple trees, I created a snow particle effect, with a small amount of randomness applied to it. After creating this short clip, it really made me wish there was snow outside!

Tuesday, 9 November 2010

Tornado Warning

Since there has been lots of wind and weather warnings recently, it makes the next chapter of Studio Projects Dynamics even more topical than usual!

It introduces new ways of using Maya Fluids, and how to control them using a variety of fields. These tutorials have helped create some really nice effects (not just in this chapter on Tornado Winds). The final part in this chapter recreates a tornado demolishing a house, but I have still to start this.


The first example shows a Funnel Cloud. This was created by using Fluids and a Volume Axis Field, which spins the fluid. This example was to test the circular motion, and although basic colours were applied, that was not the focus.


The second example builds on the first set of techniques, although it uses a Volume Curve field instead - this gives more control over the shape and size of the simulation. A simple curve was used alongside the volume curve field to define the shape of the tornado. This was then paired with a second, smaller fluid container (for dust and debris) at the base of the tornado. Finally, a dynamic hair curve was used to move the finished tornado around. A directional light was added, and the finished clip was rendered using Mental Ray.

Tuesday, 2 November 2010

In Constant Motion

In Constant Motion. A rather fitting title for a post about using dynamics...

Progress continues on my new source of learning - 'Maya Studio Projects: Dynamics'. In addition to using dynamics within a scene, I have introduced Maya's nDynamics, and made good use of the nCloth system. Although nCloth is intended (as the name suggests) for recreating fabric, it can also be used to create a variety of adaptable and tearable surfaces which rigid bodies can interact with.

I have also now started work on using Maya's Fluids feature, something which will be extremely useful moving forwards, particularly when experimenting with cell aesthetics.

Good progress has been made so far this week, and my understanding of using dynamics is really setting in. Although these seem like simple examples, I am aware I have started with the basics and intend on building strong foundations. Moving forwards, I plan to work on more complicated setups and develop my Maya skills even further.


The first example illustrates a simple 'sandbox' idea, and uses a half-cylinder as a 'bucket'. We can see the earth-like material (automatically generated nParticles) moving around without any key-framed animation - it is all dynamically generated, and moves, collides and flows as appropriate.


The second example takes this idea further and adds an nCloth plane, with the idea of dropping a heavy sphere onto the ground, which then smashes, sending shards flying. The nParticles are used to provide a more accurate simulation - if they were not present, the ball would simply drop through the plane... this would not happen in real life!


The third example shows a volcano erupting. Relying heavily on the use of a 3D container for Fluids,  attributes were manually configured to create the smoke, and an nCloth 'explosion' was used to create the initial blast.

Friday, 29 October 2010

Research Continues...

Today was a day for research. Or at least that's what I thought before I started.

Continuing on with 'In Silico', I worked through Chapters 12-13. This introduced MEL scripting, and also looked at importing numerical data into Maya. These chapters seemed to ramp up the complexity significantly on previous material, and were difficult to follow. Although I worked through all of the examples, nothing has stuck in my mind and I feel like I haven't gained a huge amount... except the mess of expressions and terms floating around in my mind.

After struggling with the In Silico material, I chose to shift focus to something more creative (and let's say more interesting). Instead of using the Gnomon material to explore the use of dynamics, I have started working on a new book, on loan from the University Library. 'Maya Studio Projects: Dynamics' is written by Todd Palamar and published by Sybex, and deals with creating realistic earth, wind, fire and water effects in Maya. Although my interest lies within creating fire, I decided to look at the particle stuff and see how it compared to using the older Gnomon material.

Studio Projects Dynamics

Within a page of starting, I was already working with simple dynamics setups in Maya. The book was clear, and easy to follow. It made use of high-quality images to complement the textual instructions - something the Gnomon DVDs struggled with.

The first chapter of the Studio Projects book deals with using particles, and has you creating and customising emitters, whilst playing with different types of particles and changing the appearance of the outcome. It uses simple expressions alongside the normal Maya interface. Having completed a couple of examples, I felt better about today's work.

Who knows, after time, the complicated approach of In Silico may make sense. In the meantime I'll walk before I can run, and give this new book a chance.


The first video example shows a comet 'flying' along a path. This was created by applying a lifespan to the particles which 'trailed' from a sphere. Ramp shaders were also applied to colour and transparency values.


The second video example shows an asteroid belt 'orbiting' around a planet (pre-supplied). This was an experiment in using a NURBS circle to emit particles, and then containing them with a cylindrical volume. A ramp was also applied based on the size of the spheres, which was randomised using a simple expression.

Friday, 22 October 2010

Gnomon Dynamics 1 : Galaxy Spiral

Today I decided to approach the Gnomon material, giving 'In Silico' a rest before starting on the more complicated MEL scripting chapters.

Gnomon's Dynamics 1 disc is designed as a basic introduction to dynamics, and according to the package, introduces the following tools;
Particle Tool, Create Emitter, Directional Emitters, Volume Emitters, Various Fields, Hardware Rendering Techniques
Quite an extensive list for an introduction, especially with a runtime of only 110 minutes. I say only... after getting about 9 minutes in, my imagination was already running wild and I had been well and truly distracted by the possibilites of 'painting' particles directly into a scene.

With the addition of two fields (Turbulence and Vortex) I had created a swirling galaxy system using only particles. I knew that I wanted to develop this scene further and see what I could do with it. I created a basic ramp shader and using a simple expression, coloured the particles based upon their distance from the scene's origin point.

After an hours worth of tinkering and playing around with these simple tools in Maya, I remembered the Gnomon Dynamics tutorial I should have been watching - not that it felt immediately important, I had created something really spectacular all by myself...

Wednesday, 20 October 2010

In Silico : Chapters 1-7

So far this week, I have been reading 'In Silico', and working through the tutorials provided. I had previously completed a lot of work within Maya, so the majority of material covered was not new to me... until I reached the section on dynamics, something I haven't worked with before.

As part of this new material, I created a simple dynamics system - a cylinder filled with tiny little spheres, which would 'float' around and collide with the cylinder and each other. This was created using a particle emitter, and although somewhat basic, has already opened my eyes to the benefits of using the dynamic system. The ability to create a fully animated scene by simply just setting up some object properties is amazing. Certainly much easier than trying to animate each object individually (there were 200 spheres) and far more realistic!

In addition to realising the potential of using dynamics, I was also introduced to my first piece of MEL scripting. MEL stands for Maya Embedded Language and is a scripting language within Maya. I used MEL to apply colour to each of the spheres based on their proximity to other spheres. They are normally black, and become more red as they get closer to other spheres, becoming fully red upon collision. Using colour made the simulation clearer - something which will be very important in later work that I undertake.

Finally, I created a quick playblast of the simulation. Nothing fancy, or complicated, but it shows the start of my research into using dynamics and scripting within Maya.