Newsletter 2

Applying game techniques into real life simulation

Trying to find the best solution to make a realistic simulation of terrain, our objective is to find which is the best tool for this. The video game industry has an extended experience in simulators of many kinds, such as flight simulators, racing games (which include car, bike and truck simulators). They have become more and more intuitive over the years and thousands of people have used them.

Caterpillar’s goal is to make a system that allows operators to remotely control bulldozers. In the end, it is a very similar experience to controlling a truck in Monster Truck Madness; with a few changes like the 3D models or the speed of the vehicles.

Our research in different game engines, such as Unity 3D, will allow us to learn more about how video games simulate the real world; with things like collisions between objects and physics, and apply that into our simulation.

Simulation Tests

This week was pretty productive, as I was able to prep for quarters while continuing research into possible solutions for material simulation. By using the CA-6 texture provided by Sam, I was able to create a short video that shows how the gravel may move when the Multi-Terrain Loader is plowing through it. The simulation was made in 3DS Max using simple helper objects to deform the meshes as the MTL moved through the terrain, while I animated the texture to further simulate the gravel’s flow. From this, I learned that the meshes would have to be much more complicated with a higher end bone setup in order to accurately display the simulation.

For modeling, I’ve made more progress on the gears & pistons detail for the MTL, and will be moving onto modeling the cab interior for next week.

Visualizing Terrain

This week I have been working on finding what would be the best way to make the different types of materials. I have been looking into a number of different options to do this. The one I have spent the most time on so far is Unity 3D’s particle system. From what I was able to find, the particle system in Unity can be useful in a few different ways. However it does have some set backs with not being able to use 3d particles. Because of this, I have been looking into what else could be used to make up for that. One method I have come across is to bake a physics simulation into 3D models.

I have started looking at taking 3D modeled rocks in 3DS Max and applying a Reactor simulation to them. Reactor is 3DS Max’s built-in physics simulation system. I tried a few things to have them fall and layer naturally. I baked the animation down from the simulation onto each rock. With this I can take these rocks into Unity. What I am aiming to do next is to have the MTL run over them and push them to see how they behave, take that simulation into Unity to see how they would look with the terrain and a mixture of particles.

UDK Research

This past week I’ve been doing further research into higher-end game engines, such as Epic’s Unreal Development Kit and Crytek’s CryEngine 2. The reason we decided to look into these engines is that they contain the capability to use a 3D particle system that also inherit physics capabilities. These features provide a plausible method to achieve the realistic simulation of material spillage that Caterpillar is looking for.

Other avenues of research are using 3D assets that inhibit physics and using them en-mass to be pushed by the dozer; though this could result in massive lag in real-time playback and may not be the best solution. Another route that will be researched is using other effects such as fluid simulations, as soil is very similar to water.

The Change of Researching Engines

This week is very crucial to me, as I researched the core function of Truevision3D: allowing terrain deformation based on influence of the user’s control object. The function is successful colliding after a modification of the vertices from a static mesh. The result is, the MTL model falls down and collides with the terrain mesh. However, while I was digging the terrain where the MTL stands, it was not falling down by the terrain sinking. So the conclusion is, the physics engine could not recognize the deformation of the mesh but only remember the initial placement of it. Due to this failure, I gave up doing research of the engine and go on working with the Unreal Development Kit.

In the last 3 days, I have been focusing on learning the basics about UDK. This development kit has a complete and strong IDE and as well as functions. The user interface is pretty straight forward and much easier to use. From the tutorial, I can get that it is very robust, with plenty of high end gaming features. The shader functionality is strong and organic, very artist friendly, much like using a Maya shading network. The physics module is from PhysicsX so I think it might work well and could satisfy our requirements. I will continue research into this engine, specifically looking into whether the scripting function of the engine is strong enough to modify the vertices of the surface and importing proper data stream.

Posted in news letter | Comments Off on Newsletter 2

Newsletter 1

Terrain toolkit

One of the key points for our project is the simulation not only of the Caterpillar’s bulldozer in a realistic way in terms of movement of its parts, but also the simulation of the terrain behavior. While the machine is moving, it will move the sand, clay or gravel on the ground. That material will start piling up in front of the blade of the machine, and as lots of the material pile together, some of it will spill through the edges of the blade, piling on the sides of the machine’s path.

All this physical behavior needs to be represented on the simulation, as realism is the main objective to achieve in our team. To simulate the terrain, one of the options we have is the Terrain toolkit, a free add-on for the Unity engine. This toolkit allows to use a variety of mathematical algorithms to randomly generate realistic looking terrains. It also allows to apply erosion effects usually caused by wind and water.

This toolkit is very useful for video games with large outdoors scenarios which require realistic formations. For our purposes where we will simulate smaller areas typical of constructions sites, generating large natural terrain formations might not be so useful, so we will look into ways to generate our own custom made terrains, but the Toolkit was definitely worth taking a look.

Visual Upgrade for the MTL

One of Caterpillar’s main goals is to make their bulldozers look as realistic as possible in a real-time scenario. To achieve this goal, I have been building upon the Multi-Terrain Loader that last semester’s team created as a starting point. Since CAT wants this in real-time, I will be creating a high-polygon model to create a normal map to use on the low-polygon model. This will allow the MTL to be used in real-time with little to no effect on the frame rate.

Unity’s Particles and Texture

One of the hardest tasks we are faced with in this project is finding a realistic way to portray the spillage of dirt as it is moved. Being able to understand the behavior of different ground material is something we are going to be focusing on; but before we can focus that we have to find the best way do this in Unity. What I have been looking into is the function of Unity’s particles system. What we want to do with this is be able to control the particles so that they replicate the look and behavior of the different dirt soil types.

Another area we a focusing on is making the terrain more realistic. I have been looking into the capabilities of Unity’s terrain painting system. Focusing on how easily textures can be layered to make a more realistic ground base as well as what possible limits there are. Luckily Unity is very easily used in this area. This meaning I have had time to make my own ground textures and get them into the engine to test them out very quickly. One of the things I have learned while doing this is that to make a believable ground texture its important to use a number of textures. These textures having varying darkness and brush tip so that the ground doesn’t appear repetitive.

Truevision3D Research

There are two crucial factors that we need to work out to meet the client’s requirements: deformable terrain system and robust particle system. So this week I focused on doing research in terms of these two.

For the terrain function, I made a testing program to test whether it is feasible to deform the terrain surface according to the specific conditions, such as position, depth, etc. This application demonstrates how the terrain deforms by clicking the mouse button. This application is a primary model for this function for our project, it has all the essential factors to deform a terrain.

For particle system, I exam the functions from the particle module in TV3D library. This module could provide basic functions and operations to run particle objects just like other game/graphic engines. Moreover, it has something advanced, like mesh instance, shader assignment, key-frame control, etc.

Due to the simulation for those tiny rocks movement, the best way to simulate that is to use a particle system, so it should be carefully exam and tested to know whether could be strong to use.

Game Engines

We’ve begun research into two game engines – Unity 3D and Truevision 3D. Truevision is a bit different than your standard game engine’s editor; the only visual interfaces are separate executable such as a model viewer, model converter, particle FX editor and a shader tool. The majority of the editing is done through code, such as C#, C++, COM and managed interface (DLL). Since we are a heavy artist team, this may not be the best approach, as the creation of terrain is strictly through code. However, if the artists provide black and white height maps, this can still be modified in the runtime.

On the other end we have been getting to know Unity, as the previous Heavy Metal team chose it after research into 3 other engines. Unity is very artist-friendly and provides a full user interface. The default code setup in Unity is javascript, but it’s also open to C# and Boo. Unity is also capable of some rather modern effects, such as normal maps and particle FX. Next week we will be looking into how to get Unity to perform the task of material spillage as the bulldozer digs a trench.

Posted in news letter | Comments Off on Newsletter 1