Saturday, 2 June 2012

Night of Fire Cinematic Trailer

This is a short cinematic sequence I co-directed along with Matt Oliver and Sam Townsend for our Degree. I would like to thank everyone who worked with us and making this possible! I hope you all enjoy it :)

Tuesday, 15 May 2012

My Oh Maya: bonus tools

So I realise that these last posts have been very boring and quite technical. I havn't been able to show you any more cool stuff from Night of Fire (even though I really want to!) because it's so close to the Glammies and I don't want to spoil anything. I will continue to post the technical stuff for NoF and also a bunch of tutorials and blogs that have helped me with the making of the film.

This latest Blog I have found is called My Oh Maya by Steven Roselle and it covers some really cool stuff that is very helpful. This is probably the most useful Blog I have come across!

What caught my eye on My Oh Maya was the contious updates on the Bonus Tool features in Maya which is a collection of a bunch of free scripts and plug-ins that will speed up your workflow (Some of these are very basic and you would think Maya wouldn't need the use of a 3rd party plug-in to sort it out right?)

Link to the bonus tools post in My Oh Maya:

Link to a random tutorial that also goes over a feature in bonus tools:

Link to download the bonus tools:

Maya 2013 and Beyond: Animation Workflows for Games

Here is a link to what looks like a very interesting Webcast that will be shown tomorrow. It will show Steven Roselle going through some of Maya 2013 new workflow features in the context of animation for games. Even though I'm not an animator ... this should still be very interesting :)

Friday, 11 May 2012

Useful Scripts For Maya

Wouldn't it be great if they made a 3D application where they don't have to rely on other people to sort out it's problems?

To make this project as efficient as possible I have downloaded a bunch of really useful scripts for Maya that I think every artist using Maya should have saved to there shelf.

1. File Texture Manager - Great for organising your texture files in Maya. You can set the path of all files or just selected files. You can even change the texture size and format inside of Maya for a more organized scene.

2. Deo's Reload Textures - Having to constantly reload every texture file that you change in Maya is frustrating and time consuming. You could just set the path inside of File Texture Manager but if this is saved to the shelf it's just a one click job :)

3. spPaint3D - A very easy way of duplicating or instancing objects and painting them on a target surface. You can do this inside of Maya but it is very buggy and generally pretty rubbish to use. This script gives you a lot of control but is also kept very simple.

4. Rivet - A simple script to create a rivet that will constrain itself to a target surface. You can then parent an object to this to have it follow it.

5. Rename Tool - This is possibly my favourite tool. It's pretty obvious what it does. I have to have a clean scene with everyone named correctly. Get it!

Shading glitch in Maya.

 Ok so you're all probably bored of me going on about this but this lovely little bug/glitch has been my biggest set back so I had to find out what this is all about!!

Final result: Still don't really know what it is. Brilliant.

The good news is I have narrowed it down to a couple of reasons. I'm pretty sure this happens when a group of objects is selected and applied a shader in a specific layer when some of those objects are missing from the layer.

This strange little glitch also seemed to happen when selecting a group of objects from one layer and creating a new layer with the selected objects. This obviously doesn't sound right and might just be a bug with my Maya.

If anyone else out there has had this problem please comment and let me know what happened :)

Deleted shaders.

and again ....

 and again ...

Monday, 7 May 2012

Maya Hates Me! Ed Whetstone

Today I have found the king of blogs. Dedicated to Maya, this blog goes over some of the ways in which Maya wants to screw you over!!! Even if you don't find anything useful on there it's nice to just know there are other people out there getting the same (or maybe worse) problems you are getting inside of Maya.

Apart from being the author of this blog Ed Whetstone is also a very good VFX artist who I came across in a Digital Tutors tutorial. Check out his website and you will see some pretty cool stuff as well as his own script that has a bunch of useful tools for Maya.

Binary Space Partition - What is it?

Carrying on from my last post I thought it would be a good idea to explain exactly what BSP is. Here is an extract from a blog that is dedicated to decreasing rendering time. The link is here It has some really useful information that will help a lot of people when rendering complex scenes. The blog also goes through how to tweak the settings to get the best result .... probably should have read this before doing my tests!

What is BSP?
Mental ray uses BSP, or Binary Space Partition, to speed up its raytracing processes. Optimizing BSP settings can improve render speeds.
What is BSP Size and Depth?
Mental ray, to run efficiently, needs to know where each polygon is within your scene. BSP organizes your scene into sections. Each section stores a limited number of polygons. This limit is the BSP size.
If a section exceeds the limit with too many polygons, the section splits into two. This way, there will be a smaller number of polygons in each section. The BSP depth limits the number of splits.

More Ways To Speed Up Renders

Carrying on from the last post I have found a couple mroe ways to speed up the renders:

1: Looking through the texture files I have found there are a lot of textures that are a huge size and totally unecessary for the scene. I went through and changed each size of the textures and I also had to change any textures that were .JPG or .TGA to .PNG.

2: I also found that if my file textures are too large and I need them to be that size then I can change them to a .MAP file. This file format is memory-mappable, which means that Mental Ray can cut it up and use only bits and pieces in RAM as they’re needed. Also, it can flush those parts as soon as they’re done being used. There are a few fiddly ways to do this but thanks to the FileTextureManager script this can be done fairly easy.

3: Instancing my geometry. IIn the scene there are around 100 tents that are very high poly. My mistake was duplicating them without instancing them. This can be done with the Duplicate Special feature. I really don't want to reposition 100 tents again but I guess it will be necessary!

4: Most importantly .... Delete History and Optomize Scene File .... of course.

Mental Ray Memory

So when rendering the scene from my computer I am getting aMental Ray problem where it claims it's running out of memory .... yes of course you are, please ignore the 16GB of RAM I have on my computer and please go ahead and crash Mental Ray :)

Anyway I have done my research and this is the steps I have taken to try and solve the issue.

1: Close all other programme. I admit ... I might have had Photoshop and a few other propgrammes open when rendering. Rookie mistake. Apparently Firefox is a memory killer so I will definitely be keeping that off, tho I can't see that making too much of a difference eith 16GB RAM.

2: Unless I am trying to do quick test renders (which I do a lot) I will batch render. This should speed things up slightly.

3: Check my Acceleration Method and Memory Limit.

Here are my results after rendering a 640x480 AO pass and tweaking the settings

BSP2 - 4096 = crashed
BSP2 + 8912 = 1.19
BSP2 + Auto Limit (10859) = 1.21

Large BSP + 4096 = 1.01
Large BSP + 8912 = 1.01
Large BSP + Auto Limit (10859) = 1.00

So the last result seemed to give me the best performance. I'll now test out the BSP depth to see if I can decrease the time even more.

When rendering, Mental Ray subdivides or triangulates the scene in a perticular way that will try to keep thinking running faster. By going into the Diagnostics setting we can render out a visual representation of whats going on behind the scenes and then tweak the BSP settings. In this case I have done 3 renders of the BSP Depth.
 BSP Depth = 40 (default)

  BSP Depth =30

  BSP Depth = 50

 As you can see from the first render the front row of tents are almost completely red which is showing me that will take a very long time to render. Now I know there is something I need to change on the tents to speed up rendering.

The second image shows a BSP depth of 30 which has covered the image in red and orange which is the oppposite way I want to go. (Changing these settings does not actually change the look of the image, it is purely for how Mental Ray computes the renders)

I increased the Depth in the third image which now gives me more greens and yellows which would suggest it would speed up the rendering. However for some reason this isn't true. The second image increased the render time by a lot and the third increased it by some but not as much. I played around with the settings and did plenty of renders and found if I changed the Depth to 37 then I could shave off 5 seconds from my original render.This doesn't seem like a lot but when I change the render setting to 1080 and render off 3000 frames this will make a big difference.

Not only has that made a difference but it has also told me whats taking long to render in the scene so now I can go back and see what can be changed with the tents.


Sunday, 6 May 2012

Render Layers - Part 2

 Ambient Occlusion, Z Depth, Object ID

Creating an ambient occlusion pass should be a fairly simple thing to do. That is until you involve transparency maps. I first created a new layer and applied a mib_occlusion shader to all the objects. I then found out that it didn't occlude the transparency maps I had for the leaves on the ground. Obviously leaves arnt an important thing in the scene but it was very frustrating for me to accept the fact that Maya will nto do this. I had to find a way! Turns out there is a way :D I had to create a perticular shading network that was very frustrating to set up as there is very little tutorials on the web so I spent my time just doing trial and error to get it finally working. A screenshot of the shading network is below.

Here is the proof that it does work!

Object ID was a pretty easy pass to do and it doesn't take long to render at all. I just created a bunch of different SurfaceShaders with different colours and applied it to different objects, making sure none of them overlap so it's easy to select whatever you wanted.

After a bit of research I found there are multiple ways of creating a Zdepth pass but the easiest way is to apply a LuminanceDepth preset to the render layer, break the connections it had on the shader and input my own numbers of a small min distance and a max distance of around 14,000. This was calculated using the Distance Tool.

We have also been asked by our VFX guy to render out a Normal pass and World Point Position pass so he can take it into Nuke if any major lighting changes need to be made. I will post my progress on this at a later date.

Render Layers - Part 1

So I have been in charge of the rendering which at first was a real pain in the ass because this is all pretty new to me but know I am getting the hang of things it's not too bad. The biggest set back I have had is ... yes, you guessed it .... Maya. I will breifly explain the process and the reasons behind the rendering decisions I have made. I will try to explain as much of this as I can through text and avoid showing some of the renders (can't spoil the film now can I?) These render layers are just for the environment. More will be added when it comes to rendering the characters.

I started by breakingdown the layers into what I already knew was needed. Diffuse, Reflections, Shadow, AO, Zdepth. I then thought that by splitting up the tents from the ground I could get more control when it comes to compositing. It meant that I could correct both the colour and the shadows of the tents seperately to the ground. I also had to split up the trees from the render as they will also need to be tweaked in After Effects. I got rid of the specular pass because I didnt think it was necessary until it came to rendering the characters. I also got rid of the Zdepth because I was having troubles getting that but I will go on to that later. Finally I knew the ObjectID pass would be needed for selecting and masking in post-production. Here is a screenshot of my render layers so far.

Splitting up the diffuse pass (or beauty pass I should probably be calling it) and the shadow pass was slightly frustrating at first because I hadn't got to grips with the render layers yet. To do it I basically selected everything in the scene except for the mountains, props and trees and created a new layer and called that ground_diffuse. I duplicated this and renamed it Ground_shadows. To remove the shadows being casted onto the objects in the diffuse pass I selected all the objects, headed over to the attribute spreadsheet, then render, then selected recieve/cast shows and set that to Off.

In the Shadows pass then I had to select all of the objects and assign a UseBackground shader to everything. I reduced the reflectivity to 0 and the reflection limit to 0.

Of course ... for most people this is probably a simple thing to do. For me ... Maya had other plans. I managed to hit a pretty big set back here. I came across this problem where Maya would simply remove all shading information on some of the props in the scene when ever it liked. It seemed as if it was only doing it when I applied the UseBackground shader to the props. This is very stressful when you have spread out hundreds of leaves with 5 different textures on them and it deletes there shading networks. I was forced to applying different textures to each individual leaf ... only for Maya to remove them once again. Anyway to cut a long story short I ended up deleting the history on the props which despite removing the shading again it seemed to have removed the weird bug I had going on.

If there is one thing you should learn from this .... it's to regularly DELETE HISTORY!!!

Industry Visit - Jon Rennie

So this week we were fortunate to have Jon Rennie talk to us about the industry and about his latest production, Ha Ha Hairies. Jon Rennie was previously the Head of Visual Effects at Dinamo Production and is now the owner and director of Red Wire Media.

We got to hear from Jon what goes on behind the scenes at a VFX company like Red Wire. He told us how he created all the work Red Wire did for Ha Ha Hairies which relied heavily on the Shave and a Haircut and 3Delight software. I have done many tests using Maya Hair and Maya Fur but have never been fully satisfied with the results so I did wonder "how they hell do they do this in industry??" Obviously the use of external programmes are used more and more these days due to them being a lot more reliable and sometimes cheaper on render time. I heard Shave and a Haircut was a very easy plug-in to use and it works great with 3Delight which Jon believes is a much smoother, faster rendering plug-in comapared to Mental Ray which I am currently using. The reason I can't use Shave and a Haircut and 3Delight for my current project is because I will be rendering from the 32 node renderfarm in the University which won't support the external plug-ins. I will, however, give both of these a go over the summer and hopefully get some good results which could prep me for my MA.

Jon also spoke to us about employment in VFX companies and said that unless you aim to work in a big VFX  company then you don't want to be spending your time building the flashiest truck or a night in shining armour (or a 90 second cinematic on soldiers and barbarians =]) instead you shoud make sure you are at a good standard with the technical aspects such as lighting. Admitedly lighting isn't my strong point mainly because I simply havn't done enough of it. I have started getting into it on Night of Fire (mainly through MentalRay rendering settings and not physically setting up the lighting) but along with the other stuff, I will focus on lighting over the summer and get that nailed so I can put it into practice for my MA next year. Time to get reading .....

Finally Jon sat down with myself, Matt and Sam to discuss the Night of Fire project and give us some advice to help us along. Hopefully we can impress him at the Glammies this year!

Links ... (Shave and a Haircut)

Thursday, 26 April 2012

Maya Texturing - Layering Textures for Terrain

 Over the past few weeks I have come across a number of problems in Maya and I find as soon as I solve one problem ... a harder problem just replaces it. I have been told that Maya 2012 is one of the buggiest versions of Maya so I'm hoping some of these bugs I have encountered will be fixed by then.

I have decided to document just some of the problems I have been having. Most of them have nothing to do with bugs just Maya's lack of ability to excecute some pretty basic stuff. By writing this I am hoping to help out some people who have come across the same problems so they don't end up wasting time on things such as AO with transparency.One of the reasons I had these troubles was because I can't download and use any plug-ins because I will be rendering this on the University's RenderFarm.

Layering Textures for a Terrain

So I'm going to kick start this with something that set me back a few days trying to find the best method to texture a terrain. Anyone who has done research on this matter has probably come across this video on YouTube: You might have spent hours and hours trying to get it to work but what the author fails to tell you is that this cannot actually be rendered ... it is purely a real time effect used to in game engine.

 CreativeCrash hosts a good shader for this which allows you to use multiple layers for MentalRay but unfortunately I couldn't use this because of the RenderFarm. It will no doubt cause some problems later down the line if I use this. Here it is anyway

One method would be to use the BlendColors node which is ok but it limits you to just 2 materials. If you want to use this method then you will have to create the BlendColors node, apply two different materials OR shaders and have a transparency map in the Blender slot. To apply this to your mesh you must first make a SurfaceShader node and connect the BlendColors to the OutputColor of the SurfaceShader and then assign that to the mesh.

Using the Layered Shader didn't work for me at the time but the Layered Texture node can be pretty useful. I didn't use this method because I thought you could only hook up a texture instead of a Blinn material (because of the name layered 'texture') But after some testing I have discovered you can infact put materials in the slots and each layer has its own Alpha channel. (really wish I found this out earlier)

So anyway this bring me to my last method and the one I went for. It's using a node called the mib_color_mix node found in the Data Conversion section of the MentalRay nodes. This is better explained here It is a great node for having a lot of control over your layers but I found it very frustrating to get the connections right as you can't just apply the mib_color_mix node to a mesh so you have to work around that. Here is a pretty good tutorial on it

I hope this has helped anyone who was in the same position as me. Please comment if you would like to add anything to this :)

Tuesday, 10 April 2012

nCloth Flag Finished

Here is my final test render of the flag using nCloth in Maya.Please feel free to comment on it :)

Since the last WIP of the flag I have changed a few things. I raised to the Scale slightly (I realise some people say set this at 0.01 but I thought I had a better effect with that number raised slightly) The biggest change I made for this flag was creating a Volume Axis Field and creating an expression for the Turbulence and the Magnitude. This really helped break the repetative waves I had going on. Any questions on how I made it please feel free to ask.

Tent Fire Finished - Maya Fluids

Here is my final test render of the tent fire in Maya. I had some feedback from my tutor saying there wasn't enough detail around the edges ... it was generally all too smooth. To fix this I animated a texture into the fluids to give it a lot of depth and created a general turbulance in the fire.

There are still some final tweaks I would like to make before rendering and that will just involve slowing the texture speed down very slightly but overall I am happy with the result :) Below are some of the improvements I made since that last post.

 Here I have created a texture and creating an expression to animate the texture. I found that to get the right result I had to animate the texture in a negative direction to the fire.

I wanted a bit of variety in the density/voxel/sec of the main emitter so I set 4 keys and used the post cycle feature to keep this infinate.

I have done two things here. First I have imrpoved the incandescence of the FluidShape, mainly effecting the smoke. Also by default, MentalRay doesnt render the shadows very well. The shadows seemed to be solid black and unafected by the properties of the light so I changed the Shadow Method to Segments which improved it a lot but made the render time very slow.

 Finally I just animated the magnitude and the direction of the wind, much the same as how I animated the Fluid Emitter earlier.


 Along the way I rendered out a few tests if you would like the see my progress. There are still some things I would like to take further in the future ... at the moment it feels like there is something slightly stronger than just the material driving the fire, oil for example so I would like to make a fire that is a lot calmer.

I would also like to find a way to animate the texture so it changed direction at certain points, for example if the wind is blowing the fire half way up then the texture would have to move side ways at that specific point in time. Maybe there is just a more complex expression you need to write to achieve this effect.


Monday, 9 April 2012

Environment WIP

 It's taken me a while to get this post up but it's finally here! This is my second environment and is proving to be a tough one as it is totally different to the previous Italian scene. This environment involves a lot of open space, tonnes of trees and unlike the last one I have to make a 360 background with a sky.

I pretty much knew straight away I wanted to work with PaintFX and MR Proxies. I knew it was a fast way to get loads of detailed trees and not have to spend days rendering it. I started off just looking at the trees available in PaintFX and editing them to make them more advanced than the standard PaintFX tree.

 I started looking at various types of Oak trees. I went with the oak on the far right which ended up rendering faster than most of them.

I then started playing around with the settings in PaintFX. The first two shows what I can get with different leaf reflectivity. The second two shows off the shading you can get on just the upper part of the tree which could be handy for faking shadows. The final two shows the difference between the root fade and the tip fade of the leaves.

I noticed the textures on the tree were pretty lame but I found you could play around with the bump and displacement of the bark which was cool :)

Here I was just optomizing the segments of the tree. Making sure I had enough to get the right amount of foilage without over doing it and wasting rendertime on segments I don't need.

 Here I experiment with leaf clusters, tranclucency, leaf tip colouring and hue randomizastion.

  Finally I am playing with the width of the tree trunk by using a graph which gave me a lot of control. 

These are the final 4 trees I made. I wanted quite a bit of variety in my forest which I think I will get from these 4. If you want to see how I made these into proxies then please check out my older post on the topic PaintFX & MR Proxies

 I felt I had done enough with the trees so moved onto the ground which is still a WIP. I initially tested out the Substance texturing within Maya. I found, for what I was trying to achieve, it wasn't that great. Because my ground was so huge I would have had to repeat the texture so much it would have been very noticable in the renderer but the main reason why I couldn't use this is because you will need a specific plu-gin for it to work with Mental Ray and because I will be using a RenderFarm I just though I would come across problems when trying to get the script working.

 When it came to positioning the trees I asked a friends of mine, Lee Dunham, to write me a script for randomizing the placement of the trees. It was a bit fiddly at first but I got used to it and it helped a lot. Once that was done I was just fine tuning the pisitionnig and size of the trees. In the image above you can see all the 4 trees positioned seperately and then altogether in one scene. Thanks to the proxies, this has enabled me to work in a scene with potentially hundred of millions of polygons.

To create a realistic environment I had to create a convincing background. I am not currently dealing with the sky so for now it's just the mountains. I wanted to create a full 360 panoramic that is mapped onto a sky dome and has an alpha that leaves out the sky. I found this excellent image online and went into Photoshop to edit it. I first deleted the sky by using an adjustment layer and paint around the edges.

To create more depth in the image I applied a de-saturated layer and used another adjustment layer to paint in the areas I wanted more desaturated (the distanct mountains)

Because I am applying this to a sky dome I have to make this a cylidrical map. I used the Polar Coordinates filter in PS and matched up the ends so they loop nicely.

After removing the red background this is what I get. To map this I simply used a planer UV in the Y direction and relaxed the UV's slightly.

Here is the final shot comped together. Hope you all like this so far and please comment if you have anything to say or ask :)

Monday, 26 March 2012

Maya nCloth - Flag - WIP

Here's a quick render of my flag using nCloth. There's not much to write about here as I will be doing a more in depth video on how I created it as soon as I have finished the final simulation. Hope you enjoy.

Maya Fluids - Large Flre WIP

 Now I got the basics sorted I wanted to move onto something more advanced. I want to create a fire on a tent, I want it to raise and produce a lot of smoke and I want it reacting with some wind. I am going to do this in a slightly different approach to how I did the flaming arrow.

I started the same way with a 3D container but I created my own emitter from a curve which I snapped along the tent.

I played around with the settings for a while to get a nice dynamic simulation with some cool swirls and added some self shadowing.

I then made an air field and hooked it up to the simulation via the dynamic relationship editor.

This is where the main difference comes in. i turned the Temperature and the Fuel off so the emitter only creates density. This will now become just the smoke and not the fire. 

To get the fire I had to duplicate the curve and assign a new emitter that had no density, but it had Temp and Fuel set to Dynamic. This fuel creates a reaction with the density to make the temperature raise up. Pretty cool?

From here on there was so many parameters to play with and tests I had to do I thought it would be much more efficient if I screen captured myself and added a few comments here and there.

This is still a WIP. I intend to get a better reaction with the air field and possibly looking into driving the simulation with a 2d texture, animating that texture and concentrate more on the shading of the flames. I also intend to create variations of the fire so it won't be repetitive in the film.

Maya Fluids - Flaming Arrow WIP

 I've played around with Maya Fluids before creating a realistic flame but I've never managed to get good results. From watching tutorials and trying out different setting I now have the knowlage to try and get something pretty realistic. My first attempt was on this arrow.

 First I had to look at reference. Here is 2 pretty good images (obviously I looked at a lot more, including how fire moves)

So I started by making a simple 3D container with an emitter.

 I then added more swirl and turbulance to the density

 I raised to buoyancy and the temperature scale

 I lowered the diffusion and dissipation of the density

 To make that big jump to get this flame I increased the Density/Voxel/Sec, the Heat/Voxel/Sec in the emitter tab and edited the Incandescence colour to make it really stand out (more on the incandescene below)

 This is the same test but with the render interpolater set to Smooth. It didn't make much of a difference but there is some smoothness to the flame.

 Here I just want to show you how I got the Incadescence right. By adding different colours to the incandescene ramp you can get various effects.

This can be further modified with the Inpout Bias slider which, when used with the Opactity slider as well, can create various different effects. This took the most time to play about with.

Realistically the flame wouldn't be coming out of a small emitter, it would be coming of some sort of cloth wraps around the start of the arrow shaft. To do this I created a cylinder and chose the Emit from Object setting and also the Extend Fluid Option to give me a bigger space to work with.

This is still a WIP. I intend to add an Air field to act as wind which will make the arrow look like it shooting through the air.

Saturday, 24 March 2012

Rigging with The Setup Machine

I found rigging to be a very difficult process as it is something I have never really had much experience with. I found this rig to be very complex as the character has a lot of extra bits that require more bones like the armour and the belts ect. I will keep this post short and sweet :)