Thursday, January 31, 2013

Sony Games Modelling - 3

Now I have been modelling for about 5-6 days and I have the basic geometry ready. This it the blocking I have with the rough geometry.

Work in progress:

Work in progress: Clean geometry
Now I am going in and cleaning up the geometry, organising my assets a bit and then I get on with destruction and texturing.

Monday, January 28, 2013

Sony Games Modelling - 2

It's day 2 working on the project. Have just slept for 4 hours in the last 40 hours, so was a slow night. This is where I got to till now. I have nearly 6000 polygons on it and this is rendered using renderMan in 32 seconds for the frame. The geometry hasn't really been optimised yet, so hopefully it will be much more economical when finished.

Day 2 progress
I am beginning to get a bit worried now as I just have 10 days left to finish this off. Will need to increase my speed.

Sunday, January 27, 2013

Sony Games Modelling - 1

After weeks of delays I have actually got on to modelling for the Sony games project. I am starting with modelling props and I have done the couch and the centre table. I am very slow with the process but hopefully I will pick up some speed as I go along. I am really enjoying the modelling and I am surprised as I always found modelling a tedious process. Will post the couch images with more detail of the mesh later. Been working for 18 hours straight and can't be bothered to take screen-shots and crop them on gimp.

This is the render of the basic cleaned up geometry of the props. I still have to texture it and add wear and tear and character to it. This scene has some 3500 polys. This is a rough renderMan render with render time of 19 seconds.

A rough render of the couch and the table. Rendered with renderMan,

Wire-frame for the scene

Friday, January 18, 2013

Houdini Fracture Systems 4

So moving on from where I left off, I went on and used the concepts I have been learning in the past weeks and applied them to some dummy geo that Ross made for me. This is mainly a visual post, so no descriptions here and frankly this is very basic, I don't think I can add anything interesting to it :)

This is the final result I got from this:

Destruction and Debris: Rough test 

The process for this was the same as in the earlier blogposts.

Step 1: Preparing the geometry for destruction. Adding surface and interior detail, thickness and scaling for the scene.

Step 2: Painting the areas to be effected

Step 3: Scattering points using the voronoifracturepoints node

Adding fracture points and tweaking to get the desired look

 Step 4: Doing the Voronoi pre-fracturing

Voronoi pre-fracturing
The fractured geometry

Step 5: Adding a ground plane and fracturing using a collision object

I am happy with the result for this is the level of detail I am working at. This is basically a rough test for a upcoming rough test, so it is fine. There are still a lot of things to tweak but I would do that on the final dummy geometry with the final collision object.

That's all for now. Here is the link to the video of the simulation on Vimeo:

Friday, January 11, 2013

Houdini Fracture Systems 3

Tonight was a very slow night. Got stuck in several places and then had to do a lot of sims on Houdini and they can take a while.

I worked on pre-fracturing using geometry today. This is the result of the pre-fracturing:

Pre-fracturing using geometry

The node-network for the pre-fracturing

For this operation, I used a sphere and fractured it using a grid.

The Sphere with the intersecting grid use to fracture it
Voronoi fracturing applied
Visualising with the explodedview SOP
Visualising with noise
Adding some clustering to the internal pieces

After this I moved on to checking out some bullet simulations. Here is the output:

RBD with bricks
RBD with more random pieces
Adding some levels to the system and adding debris

It's morning now, so I need to go home, but just before going back I am testing out things I researched in the last couple of days, on the dummy geometry that needs to be fractured. This is a very rough test, and the geo still needs to be prepared for the fracture first.

The imported dummy geometry

Pre-fracturing using Voronoi

Will be working on it in the coming days. Let's see how that goes :)

Off for the weekend now.. Bbye labs! Forever!! Till Monday :p

Thursday, January 10, 2013

Houdini Fracture Systems 2

Day 2 of working with Houdini fracturing. Found a good basic tutorial for Voronoi fracturing. This approach combines the best of both worlds, pre-fracturing AND dynamic fracturing.

Pre-Visualising dynamic fracturing

This is the final output from the dynamic fracturing:

Final output of the dynamic fracture

Below is kind-of flip-book of the simulation. I am working on a Linux system, so can't really take screen-captures and can't be bothered to render out the sequence.

The basic problem I face when doing destruction is that I am faced with two choices. First is that I can pre-fracture stuff and just apply RBD on to the pieces and live happily ever after. However, the problem with the approach is that as I am painting the fracture or creating it procedurally, it either looks contrived or looks too uniform and artificial. The pro being that it is much faster and easier to control. Second option is doing a dynamic fracture. This is physically more accurate, so gives a better looking result. However, the problem with this approach is speed. Every time a parameter is changed, you need to re-run the sim and wait to see how the result looks like.

This approach that I found tonight is a good mid-way between the two. We get the pre-visualisation power from the pre-fracturing we do and the accuracy from the dynamic fracturing. It might not be a major invention and might just be a standard industry practice, but it is definitely very interesting for me :)

How this works is that we build a very simple network using SOPs. First of all we take the geometry we want to fracture. In this case it is a sphere, with a mountain SOP appended to it giving the look of a rock.

The pre-visualisation pre-fracturing network

The base geometry

Next, a scatter node is attached to it and 1 point is placed on the mesh. This gives us an impact point. This information, along with the base geometry is passed on to the voronoifracturepoints SOP. This SOP adds several parameters to the geometry passed down to it.

voronoifracturepoints SOP adding fracture points to the geo

The above picture is the output of the voronoifracturepoints SOP. The sphere represents the impact radius. The yellow points are the fracture points ON the surface, the red points represent the interior points and the blue points are the back-faces.

The output of this SOP is passed on to the voronoifracture SOP. Here we can visualise the fracturing.

Creating fractures using fracture points

Voronoi pre-fracturing

I then played with a few attributes till I got the look I was looking for. This was the result I got in the end. Notice that this has much more size variation than before. Now there are some small pieces which will form the fine debris that lends believability to the scene.

Tweaking the parameters to get the desired look

After visualising the exterior, I appended an explodedview SOP that helps visualising the interior geometry.

The GL view showing the interior after appending the explodedview SOP

The explodedview SOP is an important part of the visualisation process. Below are some results from the SOP.

A thing to notice is that the main chunk of the rock is still intact. This is achieved by turning on 'clustering'. Once inside the fractured geo, I turned on 'add interior detail' and also the 'visualise noise scale' option. This gave me a visualisation of how the noise impacted the interior pieces. Red areas are maximum scale and blue areas are minimum scale.

Visualising the interior details using noise scale option

Once this pre-visualisation was done, I created a DOP net, simulated the rock falling and hitting the ground plane and made it breakable. Then I created relative references between the voronoifracture and voronoifracturepoints SOPs and fractureparms node in the DOP network.

By doing this, I got a result very close to my visualisation, but I still had the option to fracture dynamically and add steps, multiple fracturing etc.

Also, the relative references to the SOP level are good as if we need to change our result, we can go back to the SOPs, re-visualise and the DOP will update in a relatively controlled way.

Below are the snapshots from two scenarios for comparison. Notice that the pre-vis is very close to the dynamic fracture.

Pre Visualisation

The result of the dynamic fracturing

That was a LONG post, but I enjoyed explaining the process and hopefully someone will find ii useful if they are stuck with this stuff. It will definitely help me in a week, when I forget how I managed to do this :p

Here are some more pretty pictures. Enjoy :)